linux架构与历史
什么是Linux
Linux可以划分为4个部分
-
Linux内核
-
GNU工具
-
图形化桌面环境
-
应用软件
Linux内核
内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件;
内核主要负责四个功能:
-
系统内存管理
-
软件程序管理
-
硬件设备管理
-
文件系统管理
系统内存管理
内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space);
内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存中的内容;
内存存储单元按组划分成很多块,这些块称作页面(page); 内核将每个内存页面存放在物理内存或交换空间,然后内核会维护一个内存页面表,指明哪些页面位于物理内存,哪些页面被换到磁盘上了;
文件系统管理
Linux内核支持通过不同类型的文件系统从硬盘读写数据;
Linux系统用来读写数据的标准文件系统:
文件系统 | 描述 |
---|---|
ext | Linux扩展文件系统,最早的linux文件系统 |
ext2 | 第二扩展文件系统,在ext的基础上提供了更多的功能 |
ext3 | 第三扩展文件系统,支持日志功能 |
ext4 | 第四扩展文件系统,支持高级日志功能 |
hpfs | OS/2高性能文件系统 |
jfs | IBM日志文件系统 |
iso9660 | ISO 9660文件系统 |
minix | MINIX文件系统 |
msdos | 微软的FAT16 |
ncp | Netware文件系统 |
nfs | 网络文件系统 |
ntfs | 支持Microsoft NT文件系统 |
proc | 访问系统信息 |
ReiserFS | 高级Linux文件系统,能提供更好的性能和硬盘恢复功能 |
smb | 支持网络访问的Samba SMB文件系统 |
sysv | 较早期的Unix文件系统 |
ufs | BSD文件系统 |
umsdos | 建立在msdos上的类Unix文件系统 |
vfat | Windows 95文件系统(FAT32) |
XFS | 高性能64位日志文件系统 |
Linux内核采用虚拟文件系统(VFS,Virtual File System)作为和每个文件系统交互的接口;这为Linux内核同任何类型文件系统通信提供了一个标准接口;
当每个文件系统在被挂载和使用时,VFS信息都缓存在内存中;
软件程序管理
硬件设备管理
GNU工具
Linus在创建Linux系统内核时,并没有可用的系统工具;
GNU组织(GNU`s Not Unix)开发了一套完整的Unix工具;
将Linus的Linux内核和GNU操作系统工具整合起来,就产生了一款完整的、功能丰富的免费操作系统;
通常将Linux内核和GNU工具的结合体称为Linux;
核心GNU工具
GNU项目的核心主旨在于为Unix系统管理员设计出一套类似于Unix的环境;
供Linux系统使用的这组核心工具被称为coreutils(core utilities)软件包:
1.用来处理文件的工具;
2.用来操作文本的工具;
3.用来管理进程的工具;
shell
Linux shell是一种特殊的交互式工具;为用户提供了启动程序、管理文件系统中的文件及运行在Linux系统上的进程的途径;
shell的核心是命令提示符,命令提示符是shell负责交互的部分;它允许你输入文本命令,然后解释命令,并在内核执行;
Linux shell
shell | 描述 |
---|---|
ash | 一种运行在内存受限环境中简单的轻量级shell,但与bash shell完全兼容 |
korn | 一种与Bourne shell兼容的编程shell |
tcsh | 一种将C语言中的一些元素引入到shell脚本中的shell |
zsh | 一种结合了bash、tcsh和korn的特性,同时提供高级编程特性、共享历史文件和主题化提示符的高级shell |
Linux桌面环境
X window系统
KDE桌面
GNOME桌面
Unity桌面
其他桌面
Linux发行版
将完整的Linux系统包称为发行版;
不同的Linux发行版通常归类为3种:
1.完整的核心Linux发行版
2.特定用途的发行版;
3.LiveCD测试发行版;
核心Linux发行版
核心发行版含有内核、一个或者多个图形化桌面环境、以及预编译好的几乎所有能见到的Linux应用;
它提供了一站式的完整Linux安装;
核心Linux发行版:
发行版 | 描述 |
---|---|
Slackware | 最早的Linux发行版中的一员 |
Red Hat | 主要用于Internet服务器的商业发行版 |
Fedora | 从Red Hat分离出的家用发行版 |
Gentoo | 为高级Linux用户设计的发行版,仅包含Linux源代码 |
OpenSUSE | 用于商业和家用的发行版 |
Debian | 在Linux专家和商用Linux产品中流行的发行版 |
特定用途的Linux发行版
发行版 | 描述 |
---|---|
CentOS | 一款基于Red Hat企业版Linux源代码构建的免费发行版 |
Ubuntu | 一款用于学校和家庭的免费发行版 |
PCLinuxOS | 用于家庭和办公的免费发行版 |
Mint | 用于家庭娱乐的免费发行版 |
dyne:bolic | 用于音频和MIDI应用的免费发行版 |
Puppy Linux | 适用于老旧PC的小型免费发行版 |
Linux LiveCD
发行版 | 描述 |
---|---|
Knoppix | 最早的LiveCD Linux |
PCLinuxOS | 一款成熟的LiveCD形式的Linux发行版 |
Ubuntu | 为多种语言设计的世界级Linux项目 |
Slax | 基于Slackware Linux的一款LiveCD Linux |
Puppy Linux | 适用于老旧PC的一款全功能Linux |
由于要从CD上访问所有的东西,应用程序会运行的更慢;
由于无法向CD写入数据,对Linux系统作的任何修改都会在重启后失效;
总结
Linux系统及其基本工作原理
Linux内核是系统核心;
GNU工具是Linux系统中的一个重要部分;Linux shell是GNU核心工具集中的一部分;
Linux桌面环境;
Linux发行版就是把Linux各个不同部分汇聚起来组成一个易于安装的包。