初识Linux
Linux四部分
1.首先,Linux可划分为以下四部分:
-
Linux内核
-
GNU工具
-
图形化桌面环境
-
应用软件
四者之间的关系如下
1.1 Linux内核
其中最重要的核心是Linux内核,控制着计算机系统上的所有硬件和软件。必要时分配硬件,并根据需求执行软件。
主要负责以下四种功能:
-
系统内存管理
-
软件程序管理
-
硬件设备管理
-
文件系统管理
1.1.1 系统内存管理
操作系统的主要功能之一就是内存管理。其中包括:服务器上的可用物理内存,创建和管理虚拟内存(实际上并不存在的内存)。
虚拟内存是通过硬盘上的存储空间来实现,这块区域称为交换空间(swap space)。内核不断地在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物 理内存更多的可用内存(如图1-2所示)。
将内存的存储单元按组划分成很多块,每一块称之为页面(page).内核会记录哪些内存页面正在使用,并自动将一些长时间为访问的页面复制到交换空间,称之为换出(swapping out)。只要Linux在运行,就会不断的持续这一过程。
1.1.2 软件程序管理
Linux系统将运行中的程序成为进程。
内核创建第一个进程(init进程)来启动系统上所有的其他进程。通常是使用一个表来管理开机时要自启动的进程。Linux中在/etc/inintab中,而Ubuntu Linux则在/etc/reX.d目录下的如何entry启动。
Linux操作系统的init采用运行级来决定一些特定类型的进程。运行级1(单用户模式)进行紧急的文件系统维护。运行级3(标准的启动运行级),启动大多数的应用软件。另一个常见的是运行级5,可以启动X window系统,可以使用图形化桌面。
1.1.3硬件设备管理
任何与内核通信的设备都要加入驱动程序代码,控制数据的交换。有两种方式进行插入
- 编译进内核的设备驱动代码
- 可插入内核的设备驱动模块
以前插入驱动代码的唯一途径是重新编译内核,不过每次添加设备时都要重新编译,效率低下。Linux开发人员设计出了一种更好的将驱动代码插入运行中的内核的方法。 提出了内核模块的概念,它允许将驱动代码插入到运行中的内核而无需重新编译内核。同时,当设备不再使用时也可将内核模块从内核中移走。这种方式极大地简化和扩展了硬件 设备在Linux上的使用。
Linux系统将硬件设备当成特殊的文件,称为设备文件。设备文件有3种分类:
-
字符型设备文件
-
块设备文件
-
网络设备文件
1.1.4文件系统管理
不同于其他一些操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。除了自有的诸多文件系统外,Linux还支持从其他操作系统(比如Microsoft Windows)采用的文件系统中读写数据。内核必须在编译时就加入对所有可能用到的文件系统的支持。表1-1列出了Linux系统用来读写数据的标准文件系统
1.2 GNU工具
除了由内核控制硬件设备外,操作系统还需要工具来执行一些标准功能,比如控制文件和程序。Linus在创建Linux系统内核时,并没有可用的系统工具。然而他很幸运,就在开发Linux内核的同时,有一群人正在互联网上共同努力,模仿Unix操作系统开发一系列标准的计算机系统工具。
GNU组织(GNU是GNU’s Not Unix的缩写)开发了一套完整的Unix工具,但没有可以运行它们的内核系统。这些工具是在名为开源软件(open source software,OSS)的软件理念下开发的。
1.2.1 核心GNU工具
GNU项目的主旨在于为Unix系统管理员设计出一套类似于Unix的环境。这个目标促使该项目移植了很多常见的Unix系统命令行工具。供Linux系统使用的这组核心工具被称为coreutils(core utilities)软件包。
GNU coreutils软件包由三部分构成:
-
用以处理文件的工具
-
用以操作文本的工具
-
用以管理进程的工具
这三组主要工具中的每一组都包含一些对Linux系统管理员和程序员至关重要的工具。
1.2.2 shell
GNU/Linux shell是一种特殊的交互式工具。它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。
1.3 Linux 桌面环境
1.3.1 X Window系统
X Window软件是直接和PC上的显卡及显示器打交道的底层程序。它控制着Linux程序如何在电脑上显示出漂亮的窗口和图形。
核心的X Window软件可以产生图形化显示环境,但仅此而已。虽然对于运行独立应用这已经足够,但在日常PC使用中却并不是那么有用。它没有桌面环境供用户操作文件或是开启程序.为此,你需要一个建立在X Window系统软件之上的桌面环境。
1.3.2 KDE桌面
KDE(K Desktop Environment,K桌面环境)它会生成一 个类似于Microsoft Windows的图形化桌面环境。
由以下四部分构成:
-
KDE菜单:和Windows的开始菜单非常类似,KDE菜单包含了启动已安装程序的链接。
-
程序快捷方式:在面板上有直接从面板启动程序的快速链接。
-
任务栏:任务栏显示着当前桌面正运行的程序的图标。
-
小应用程序:面板上还有一些特殊小应用程序的图标,这些图标常常会根据小应用程序
的状态发生变化。
1.3.3 GNOME桌面
GNOME(the GNU Network Object Model Environment,GNU网络对象模型环境)是另一个流行的Linux桌面环境。
1.3.4 Unity桌面
负责开发Ubuntu的公司采用自己的一套叫作Unity的Linux桌面环境。