作为计算机而言,软件和硬件之间是相互依赖的,硬件如果脱离了软件,则无法正常工作,软件脱离了硬件则无法正常运行。这个软件一般指的是操作系统的内核,作为Linux而言,内核也被称为Kernel。内核主要由5部分组成:进程管理、内存管理、设备管理、网络协议、文件系统。
①、进程管理:进程的创建与删除、进程的时间片分配、进程的通信、进程的优先级管理
②、内存管理:内存的分配算法、每个进程的内存空间
③、设备管理:一般指的是字符设备(键盘、鼠标、LCD)、块设备(U盘、硬盘)
④、网络协议:协议簇、网络协议、TCP/IP、传输层(TCP/UDP)、应用层(HTTP、FTP、MQTT)
⑤、文件系统:支持多种文件系统,如下
Linux内核源码下载地址:Linux内核源码下载
(1)、内存管理
(2)、文件系统
(3)、网络协议
(4)、设备管理
Linux系统离不开文件系统,首先Linux系统搭载的是根文件系统rootfs,需要注意:根文件系统本身就是文件系统,只不过是Linux内核挂载的第一个文件系统。Linux内核是存储在文件系统中,所以启动引导程序时会加载内核并利用内核挂载根文件系统
根文件系统被挂载以后,一些服务和一些脚本才可以存储到文件系统中,其他的文件系统才可以被挂载
根文件系统会提供一些服务:比如根文件系统会提供一个根目录(关键文件和目录)、一个shell终端(用户才可以输入命令)、根文件系统会存储应用程序…所以,Linux内核离开根文件系统是无法正常工作的
根目录文件
树状型目录:
root:
- 该目录为管理员,也称为超级权限者的用户目录
sbin:
- s就是Super User的意思,是Superuser Binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序
srv:
- 该目录存放一些服务器启动之后需要提取的数据
temp:
- 用来存放一些临时文件
usr:
- 用户的很多应用程序和文件都放在这个目录下
usr/bin:
- 系统用户使用的应用程序
bin:
- 这个目录存放经常使用的命令
boot:
- 存放一些启动Linux时使用的核心文件,包括一些链接文件和镜像文件
dev:
- 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
etc:
- 这个目录用来存放系统管理所需要的配置文件和子目录(比如一些脚本文件)
home:
- 用户的主目录,每个用户都有一个自己的目录,一般是以用户账户名命名的
lib:
- 存放着系统最基本的动态链接共享库,几乎所有程序都会用到这些共享库
lost+found:
- 这个目录一般是空的,当系统非法关机之后,就存放了一些文件
media:
- Linux会自动识别一些设备,比如U盘、光驱等。当识别后,Linux会把设备挂载在这个目录下
opt:
- 是给主机额外安装软件所添加的目录
proc:
- 是Processes进程的缩写,是一种伪文件系统(虚拟文件系统),存储的是当前内核运行状态的一系列文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
usr/src:
- 内核源码默认的放置目录
var:
- 一般将经常被修改的目录放在这个目录下,包括各种日志文件