一、什么是Linux
在Linux系统中,这4个部分各自承担着不同的责任,每个部分都是不可或缺的。Linux系统如图所示:
1、Linux简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
2、Linux内核
内核(kernel)。内核控制计算机系统上的所用硬件和软件,在必要时分配硬件,在需要时执行软件。
内核的4种功能:
系统内存管理
软件程序管理
硬件管理
文件系统管理
(1)系统内存管理
交换空间(swap space)。内核不断的在交换空间和实际物理内存之间交换虚拟内存位置的内容,系统认为可用的内存比实际存在的内存多。
查看Linux系统中虚拟内存的当前状态/proc/meminfo文件
[root@x86-139 ~]# cat /proc/meminfo
MemTotal: 131739900 kB
MemFree: 128351464 kB
MemAvailable: 128396632 kB
Buffers: 2268 kB
Cached: 464196 kB
SwapCached: 0 kB
Active: 1422692 kB
Inactive: 311044 kB
Active(anon): 1268816 kB
Inactive(anon): 8864 kB
Active(file): 153876 kB
Inactive(file): 302180 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 1267412 kB
Mapped: 126140 kB
Shmem: 10400 kB
Slab: 362412 kB
SReclaimable: 205212 kB
SUnreclaim: 157200 kB
KernelStack: 17488 kB
PageTables: 57412 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 70064248 kB
Committed_AS: 6431084 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 501004 kB
VmallocChunk: 34291843068 kB
HardwareCorrupted: 0 kB
AnonHugePages: 661504 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 250732 kB
DirectMap2M: 5920768 kB
DirectMap1G: 130023424 kB
Mem:一行说明该Linux服务器的物理内存为132G,还剩128G的空间未使用,该系统的交换空间为4G
使用特殊命令ipcs可以查看系统当前的共享内存分页:
[root@x86-139 ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 262144 root 600 524288 2 dest
0x00000000 360449 root 600 393216 2 dest
0x00000000 589826 root 600 524288 2 dest
0x00000000 688131 root 600 393216 2 dest
0x00000000 1245190 root 600 524288 2 dest
(2)软件程序管理
内核控制Linux系统如何管理在系统中运行的所有进程。Linux实现包含一个进程表,可以在引导时自动启动,该表通常位于/etc/inittabs中。Linux操作系统使用具有运行级别功能的初始系统,有5个初始运行级别。
级别1:只启动基本系统进程,以及一个控制台终端进程,这称为单用户模式。常用于紧急情况的系统维护,只允许管理员登录操作系统操作数据。
级别3:在该运行级别下,可以启动大部分应用软件,如网络支持软件。
级别5:在该运行级别下,系统可以启动图形化X Window软件,允许使用图形化桌面窗口登录。
(3)硬件管理
Linux系统需要与之通信的设备都必须在内核代码中插入驱动程序代码。驱动程序代码使内核能够向设备传输数据,它的作用就像应用程序与硬件之间的中间人。
向Linux内核插入设备驱动的2中方式:
1》在内核中编译驱动程序;
2》向内核添加驱动程序模块
设备文件,有:字符、块、网络三类。 字符设备文件用于那些一次仅处理一个字符的设备,如调制解调器和终端类型都是;块文件用于那些一次可处理大量数据块的设备,如磁盘驱动器;网络文件类型用于那些使用数据包发送和接收数据的设备,如网卡和特殊的回路设备。
(4)文件系统管理
3、GNU实用程序
计算机操作系统需要程序执行标准功能,如控制文件和程序,尽管Linux创建了Linux系统内核,但没任何系统实用程序来运行它。GNU组织(GNU代表GNU’s Not Unix)开发了一个完整的Unix实用程序集,但是没有任何内核去运行它们,这些实用程序的开发基于一种新的软件思想,称为开源软件(OSS)。
Linux内核和GNU实用程序一般统称为Linux,但Internet上有时也称Linux为GNU/Linux系统,表达对GNU组织的贡献的敬意。
(1)核心GNU实用程序
主要目的是使Unix系统管理员有一个类似Unix的环境,提供给Linux系统的核心实用程序包称为coreutils软件包。
GNU coreutils软件包由3部分组成:
处理文件的实用程序;
操作文本的实用程序;
管理进程的实用进程;
(2)shell
GNU/linux shell是一个特殊的交互式实用程序,为用户提供一种启动程序、管理文件系统中的文件和管理运行在Linux系统上的进程方式。
3、Linux桌面环境
(1)X Windows系统
控制视频环境的两个基本元素是PC中的显卡和监视器。X Windows软件是一个低级别的程序,能与PC中的显卡和监视器直接交互,并控制Linux应用程序如何在计算机中展示高级别窗口和图形。核心X Windows软件仅仅生成一个图形显示环境,尽管对运行单个应用程序而言不错,但对日常的计算机使用并不实用,没有任何桌面环境允许用户操纵文件或启动程序,要实现这些还得,需要在X Windows系统软件上安装桌面环境。
(2)KDE桌面
KDE桌面允许在桌面区域放置应用程序和文件图标,如果单击应用程序图标,Linux系统将启动该应用程序,如果单击文件图标,KDE桌面将确定使用哪种应用程序处理该文件。
(3)GNOME桌面
GNU网络对象模型环境,是一种流行的Linux桌面环境。
(4)其他桌面
二、Linux发行版
Linux发行版一般可分为以下3种类型:
完整核心Linux发行版
特定发行版
LiveCD测试发行版
(1)完整核心Linux发行版
核心Linux发行版包括内核、一个或多个图形化桌面环境,以及几乎所有的Linux应用程序,它针对内核进行了预编译。
(2)特定Linux发行版
(3)Linux LiveCD
使用Linux发行版创建可引导的CD,其中包含一个示例Linux系统,称为Linux LiveCD