简介:
1、什么是Linux
2、Linux内核的组成
Linux划分为以下四部分
- Linux内核
- GNU工具
- 图形化桌面环境
- 应用软件
内核主要负责以下四种功能
- 系统内存管理
- 软件程序管理
- 硬件设备管理
- 文件系统管理
系统内存管理
系统内存管理 内核不仅管理服务器上的可用内存,还可以创建和管理虚拟内存(即实际上不存在的内存)
内核通过硬盘上的存储空间来实现虚拟内存,这块区域成为交换空间(swap space)。内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统认为它拥有比物理内存更多的可用空间。
内存存储单元按组划分成很多块,这些块被称为页面(page)。内核将每一个内存页面放在物理内存或交换空间。
内核会记录那些内存页面正在使用,并自动把一段时间未访问的内存页面复制到交换空间区域(称为换出,swapping out)——即增加可用内存。
软件程序管理
Linux操作系统将运行中的程序称为进程。内核控制着Linux系统如何管理运行在系统上的所有进程。
内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。
此外,一些linux发行版,通过一个表(存储在/etc/inittab/下)管理系统开机时自动启动的进程。
此外,像乌班图(Ubantu)则采用/etc/init.d目录,将启动或停止某进程的脚本存放在该目录中进行进程的管理。
这些脚本通过/etc/rcX.d下的entry启动(X是运行级)运行级决定init进程运行/etc/inittab文件或/etc/rcX.d/目录中定义好的特定类型进程。
运行级有五个级别:1(单用户模式:只启动基本的系统进程一集一个系统台终端进程)3(普遍的标准,大多数应用软件登)5(启动图形化的X window系统)
硬件设备管理
内核的另一个职责是管理硬件任务。
任何Linux系统需要与之通信的设备,都要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。
linux中两种用于插入设备驱动代码:
编译进内核的设备驱动代码
可插入内核的设备驱动模块
Linux系统将硬件设备当成特殊的文件,称为设备文件。
字符型设备文件(每次只能处理一个字符)(大多类型调制解调器和终端都是该类型)
块设备文件(比如硬盘:处理数据时能够大块处理)
网络设备文件(采用数据包发送以及接收数据的设备,如网卡和一个特殊的回环设备
注意:每一个设备文件都会创建一个叫节点的文件(每一个节点都有唯一的linux内核标识数值对包括一个主设备号和次设备号)
文件系统管理
一切都是文件,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。Linux支持从其他系统采用的文件系统中读写数据。
swap - 交换内存的固定格式,当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
EFI system partition - EFI 系统分区(也称为 ESP 或者 EFISYS)是一个 FAT32 格式的物理分区 (在硬盘主分区表上,而不是 LVM 或软件 RAID 等等) ,从这里 UEFI 固件启动 UEFI 引导器和应用程序。它与操作系统无关而是作为 EFI 固件要启动的引导器和应用程序的存储空间,是 UEFI 启动所必须。
xfs - XFS 是高度灵活性的高性能文件系统,最大可支持 16 EB(大约一千六百万 TB)的文件系统,大小为 8EB 的文件(大约八百万 TB),同时目录结构包含千百万条目。XFS 支持元数据日志,它可提高崩溃恢复速度。XFS 文件系统还可在挂载和激活的情况下清除磁盘碎片并重新定义大小。默认选择并推荐使用这个文件系统。XFS 最大支持分区大小为 500 TB。
ext4 - ext4 是基于 ext3 文件系统,并有大量改进。这些改进包括支持大文件系统和大文件;更迅速、有效的磁盘空间分配;目录中无限的子目录数;更快速的文件系统检查及更强大的日志功能。Red Hat Enterprise Linux 7 中目前支持的最大 ext4 文件系统为 50 TB。
ext3- ext3 文件系统是基于 ext2 文件系统,其主要优点是日志功能(journaling)。使用记录日志的文件系统可减少崩溃后恢复文件系统所需时间,因为它不需要在每次发生崩溃时都运行 fsck 程序检查文件系统元数据一致性。
ext2 - ext2 文件系统支持标准的 Unix 文件类型,包括常规文件、目录、符号链接等等。可分配长文件名,最多有 255 个字符。
vfat - VFAT 文件系统是一个 Linux 文件系统,它兼容 FAT 文件系统中的微软 Windows 长文件名。
GUN工具
GNU项目的主旨在于为Unix系统管理员设计出一套类似于Unix的环境。供Linux系统使用的这组核心工具被称为coreutils。
GNU coreutils软件包由三部分构成:
(1)用以处理文件的工具
(2)用以操作文本的工具
(3)用以管理进程的工具
shell:
GNU/Linux shell是一种特殊的交互式工具。它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。
shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。
shell类型:ash\korn\tcsh\zsh
Linux 桌面环境
X Window系统
有两个基本要素决定了视频环境:显卡和显示器。X Window软件是图形显示的核心部分,是直接和PC上的显卡及显示器打交道的底层程序同时它控制着Linux程序如何在电脑上显示出漂亮的窗口和图形。(X.org提供了X Window系统的开源)
KDE桌面
会生成一个类似Microsoft Windows的图形化桌面环境
KDE桌面、GNOME桌面、Unity桌面等,其他桌面
Linux发行版
将完整的linux系统包称为发行版。
(1)完整的核心Linux发行版:核心Linux发行版含有内核、一个或多个图形化桌面环境以及预编译好的大部分Linux应用
(2)特定用途的发行版:基于Debian Linux(CentOS\Ubantu\MintD等)
(3)LiveCD测试发行版:无需安装
小结:
本章主要讲述了linux系统及其基本的工作原理,linux内核是系统的核心,控制者内存、程序、硬件之间的交互。GNU工具是linux重要部分,shell是GNU重要部分,同时也讨论啦linux桌面环境和linux发行版。