linux操作系统基础知识

目录

一、linux的组成

1.1 组成结构

1.2 Shell与Kernel

二、Linux Kernel

2.1 linux kernel作用

2.2 进程管理

2.3 文件系统

2.4 文件分类

2.5 设备驱动与网络接口

三、linux系统目录结构


一、linux的组成

1.1 组成结构

参考文章: https://blog.csdn.net/weixin_36282409/article/details/88658576

内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。

Linux内核的模块分为以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等。

应用程序是最外层,shell与应用系统进行交互,再向内是内核,也就是kernelkernel与硬件进行交互。

由内而外:硬件资源——内核Kernel——Shell——应用程序

1.2 ShellKernel

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。

目前主要有下列版本的shell

  • Bourne Shell:是贝尔实验室开发的。  
  • BASH:是GNUBourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell
  • Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。    
  • C Shell:是SUN公司ShellBSD版本

查看相应shellkernel的版本的方法:

  • 查看内核版本 cat /proc/version
  • 查看shell版本  cat /etc/shells
ww@smartdsp3:~$ cat /proc/version
Linux version 4.15.0-72-generic (buildd@lcy01-amd64-023) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #81~16.04.1-Ubuntu SMP Tue Nov 26 16:34:21 UTC 2019
ww@smartdsp3:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen

二、Linux Kernel

参考: https://blog.csdn.net/kai_zone/article/details/80444872

https://baike.baidu.com/item/Linux%E5%86%85%E6%A0%B8/10142820?fr=aladdin

2.1 linux kernel作用

内核是操作系统的核心,具有很多最基本功能,决定着系统的性能和稳定性。它负责:

  • 管理系统的进程
  • 内存
  • 设备驱动程序
  • 文件和网络系统

2.2 进程管理

https://www.cnblogs.com/wsxcode/p/9572872.html

进程实际是某特定应用程序的一个运行实体。在 Linux  系统中,能够同时运行多个进程,Linux  通过在短的时间间隔内轮流运行这些进程而实现多任务。这一短的时间间隔称为时间片,让进程轮流运行的方法称为进程调度,完成调度的程序称为调度程序。

内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(forkexec Portable Operating System Interface [POS] 函数),停止进程(killexit),并在它们之间进行通信和同步(signal 或者 POS 机制)。

2.3 文件系统

  DOS 等操作系统不同,Linux 操作系统中单独的文件系统并不是由驱动器号或驱动器名称(如 A:  C:  等)来标识的。相反,和 UNIX  操作系统一样,Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。Linux  将新的文件系统通过一个称为“挂装”或“挂上”的操作将其挂装到某个目录上,从而让不同的文件系统结合成为一个整体。Linux  操作系统的一个重要特点是它支持许多不同类型的文件系统。Linux 中最普遍使用的文件系统是 Ext2,它也是 Linux  土生土长的文件系统。但 Linux  也能够支持 FATVFATFAT32MINIX 等不同类型的文件系统,从而可以方便地和其它操作系统交换数据。由于 Linux  支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.

       虚拟文件系统(VirtualFileSystem,VFS:隐藏了各种硬件的具体细节,把文件系统操作和不同文件系统的具体实现细节分离了开来,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

VFS 上面,是对诸如 opencloseread write 之类的函数的一个通用 API 抽象。在 VFS 下面是文件系统抽象,它定义了上层函数的实现方式。它们是给定文件系统(超过 50 个)的插件。文件系统的源代码可以在 ./linux/fs 中找到。

2.4 文件分类

1) 普通文件:C语言元代码、SHELL脚本、二进制的可执行文件等。分为纯文本和二进制。

2) 目录文件:目录,存储文件的唯一地方。

3) 链接文件:指向同一个文件或目录的的文件。

4)  设备文件:与系统外设相关的,通常在/dev下面。分为块设备和字符设备。注意,设备在linux中是以文件形式存在的。在Linux中访问设备的方式和访问文件的方式是相同的。

5管道(FIFO)文件 :  提供进程建通信的一种方式 https://blog.csdn.net/hyklose/article/details/80419450

 

6套接字(socket) 文件 该文件类型与网络通信有关

2.5 设备驱动与网络接口

设备驱动程序是 Linux  内核的主要部分。和操作系统的其它部分类似,设备驱动程序运行在高特权级的处理器环境中,从而可以直接对硬件进行操作。

众所周知,TCP/IP  协议是 Internet  的标准协议,同时也是事实上的工业标准。Linux  的网络实现支持 BSD 套接字,支持全部的TCP/IP协议。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

三、linux系统目录结构

https://www.runoob.com/linux/linux-system-contents.html

https://www.runoob.com/wp-content/uploads/2014/06/003vPl7Rty6E8kZRlAEdc690.jpg

/binbinary的缩写,可执行二进制文件(ls,cat,mkdir等),常用命令

/boot:启动linux的核心文件,包括一些连接文件以及镜像文件,存放用于系统引导时使用的各种文件

/dev devDevice(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件(例如windows下叫什么.chk)。类似于回收站,但不是回收站

/etc:etcetera,存放一些系统管理所需要的配置文件和子目录,例如/etc/passwd https://blog.csdn.net/blueair_ren/article/details/79937599

/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/var:用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

 

发布了210 篇原创文章 · 获赞 584 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/weixin_36474809/article/details/103528951