Linux四部分:
Linux内核
GNU工具
图形化桌面环境
应用软件
Linux内核:
内核控制所有硬件和软件,必要时分配硬件,根据需要执行软件。
四大功能:
系统内存管理
软件程序管理
硬件设备管理
文件系统管理
系统内存管理
内核管理可用物理内存,创建、管理虚拟内存。内核不断地在交换空间和实际物理内存之间反复交换虚拟内存中的内容,使得系统以为它拥有大于物理内存的可用内存。
页面:内存按组划分成很多块,这些块称作页面(page)。内核维护一个内存页面表,指明哪些在物理内存,哪些被换到了磁盘上。内核记录哪些页面正在使用中,并自动把一段时间未访问的页面换出(swapping out)到交换空间。程序如果访问已被换出的内存页面,内核需要从物理内存换出另一个页面给它让出空间。然后从交换空间换入请求的内存页面。
软件程序管理
运行中的程序称为进程,有前台进程、后台进程等。
内核创建了第一个进程,即init进程,来启动系统上所有其他进程。内核启动时,会将init进程加载到虚拟内存。
/etc/inittab文件管理系统开机时要自动启动的进程。也有使用*/etc/init.d*目录存储启动停止某个应用的脚本。
Linux的5个启动运行级:
1:单用户模式,只启动基本的系统进程及一个控制台终端进程,只有一个人(系统管理员)能登录系统操作数据,通常是紧急的文件系统维护。
3:标准运行级,大多数应用软件都会启动。
5:系统会启动图形化的X Window系统。
硬件设备管理
任何与Linux系统通信的设备,都需要在内核代码中加入其驱动代码。
插入驱动代码的两种方法:编译进内核的设备驱动代码,可插入内核的设备驱动模块。后者允许将驱动代码插入运行中的内核而无需重新编译内核,设备不再使用时移走。
Linux将硬件设备当成特殊的文件,即设备文件:字符型设备文件,块设备文件,网络设备文件。
字符型设备文件:处理数据时每次只能处理一个字符,大多数的调制解调器和终端。
块设备文件:处理数据时每次能处理大块数据,如硬盘。
网络设备文件:采用数据包发送和接收数据的设备,如各种网卡。
Linux为每个设备创建一种特殊文件,即节点。与设备的通信都通过节点完成。节点通过唯一的数值对被Linux内核标识。数值对包括主设备号和次设备号。类似设备划分到同一主设备号下,次设备号标识主设备组下的某个特定设备。
文件系统管理
Linux内核支持读写多种不同类型的文件系统,内核必须在编译时加入对需要的文件系统的支持。
内核采用虚拟文件系统(VFS)作为和每个文件系统交互的接口。
GNU工具
供Linux使用的核心工具称为coreutils(core utilities)软件包,包含三部分:处理文件、操作文本、管理进程。
shell:交互式工具,为用户提供了启动程序、管理文件及进程的途径。shell的核心是命令行提示符,负责用户交互。
将多个shell命令放入文件中作为程序执行,即shell脚本。
默认bash shell。
Linux桌面环境
X Window系统
KDE桌面
GNOME桌面
Unity桌面
其他桌面
Linux发行版
即完整的Linux系统包。归为三类:
完整的核心Linux发行版
包含内核、一个或多个图形化桌面,预编译好的几乎所有Linux应用,提供一站式的完整Linux安装。
Slackware,RedHat,Fedora,Gentoo,openSUSE,Debian
特定用途的发行版
通常基于某个主流发行版,但仅包含主流发行版中一小部分用于某种特定用途的应用程序。
CentOS,Ubuntu,PCLinuxOS,Mint,dyne:bolic,PuppyLinux
LiveCD测试发行版
可引导的Linux发行版,无需安装。