1.Linux的组成
Linux内核
GNU实用程序
图形桌面环境
应用软件
2.Linux内核
内核主要有以下4能:系统内存管理;软件程序管理;硬件管理;文件系统管理;
(1)系统内存管理
内存管理是操作系统内核的主要功能之一。内核不仅能管理可用的物理内存,还可以创建并管理虚拟内存。
内存管理必须使用硬盘空间,该空间被称为交换空间。内核不断的在该交换空间和实际物理内存之间交换虚拟内存位置的内容。这样系统的可用内存比实际内存多。
将内存位置分组为多个数据块,此操作被称为分页。内核定位物理内存或交换空间中的每个内存分页,然后维护一个内存分页页表,此表说明位于物理内存的分页和交换到磁盘的分页。内存跟踪使用的分页,并且自动将一段时间没有用到的内存分页复制到交换空间区域,称为换出过程。即使内存够也执行这个过程。当程序需要访问已经换出的分页时,内存必须换出另一个分页,以在物理内存中为该内存分页腾出空间,然后从交换空间换入需要的分页。
在Linux系统上运行的每个进程都有自己的内存分页,一个进程不能访问另一个进程正在使用的分页。内核也有自己的内存区域,出于安全考虑,任何进程都不能访问内核进程正在使用的内存。
(2)软件程序管理
正在运行的程序被称为进程。进程可以在前台运行,也可以在后台运行。
内核创建的第一个进程被称为初始进程,该进程在系统上启动所有其它进程。内核启动的时候,初始进程被加载到虚拟内存中,内存每启动一个其它进程,都将在虚拟内存中为其分配一个唯一的空间,用于储存该进程的数据和代码。
(3)硬件管理
Linux系统需要与之通信的设备都必须在内核代码中插入驱动程序代码。驱动程序代码使内核能够向设备传输数据。在Linux中插入设备驱动的程序有两种方法:
1.在内核中编译驱动程序。
2.向内核添加驱动程序模块。
Linux将硬件设备标识为特殊文件,称为设备文件。设备文件分为3种:
1.字符
2.块
3.网络
字符设备文件用于那些一次仅处理一个字符的设备。块文件用于那些一次可处理大量数据块的设备。网络文件用于那些使用数据包发送和接收数据的设备。
(4)文件系统管理
Linux系统可以使用不同类型的文件系统与硬盘传输数据。除了本身的文件系统外,还可以通过其他的操作系统使用的文件系统传输数据。Linux内核使用虚拟文件系统与每个文件系统进行连接。为内核与其他文件系统类型的通信提供了一个标准接口,挂载和使用每个文件系统时。虚拟文件系统中缓存相关的信息。