本章内容:
1. 什么是Linux
2.Linux内核的组成部分
3.探索Linux桌面
4.了解Linux发行版
1.1 什么是Linux
Linux可划分为四个部分:Linux内核 GNU工具组件 图形化桌面环境 应用软件
1.1.1 深入深究Linux内核
Linux系统的核心就是内核。内核控制着与计算机系统上所有的硬件和软件的交互:必要时分配硬件,有需要时执行软件
内核基本负责以下四项主要功能:系统内存管理 软件程序 管理硬件设备管理 文件系统管理
系统内存管理
内存管理包含可用物理内存、虚拟内存空间
虚拟内存空间 又称为交换空间(Swap Space),是内核通过硬盘上的存储空间来实现虚拟内存。内存存储单元会被按组分成很多块,这些块被称作页面(Page),内核会将每个内存页面放在物理内存或者交换空间,然后自己会维护一张内存页面表,来指明哪些页面位于物理内存,哪些页面被换到交换空间。
内核会记录哪些内存页面正在被程序或者系统使用中,并自动把一段时间未访问的内存页面复制到交换空间区域(这个过程称为换出,Swapping out)即使还有可用内存,与之相反的是当程序要访问一个之前被换出到交换空间的内存页面时,内核必须从物理内存空间换出另外一个内存页面来给其让出空间,然后从交换空间换入(这个过程称之为换入,Swapping in)请求的页面。这样一个过程始终是在Linux系统在运行时,在一直进行着。备注: 目前虚拟化的解决方案KVM是默认不分配交换空间,那就不在这个讨论的范畴之内。
通过查看专门的/proc/meminfo文件来观察Linux系统上虚拟内存和物理内存的当前状态
具体就不贴截图上来的,主要几个参数:MemTotal MemFree SwapTotal等等
默认情况下,运行在Linux系统上的每个进程都有各自的内存页面。进程不能访问其他进程正在使用的内存页面。内核维护着它自己的内存区域。出于安全的考虑,用户空间的进程不能访问内核空间使用的内存页面。
出于方便共享数据,你可以创建一些共享内存页面。多个进程可以在同一块共用内存空间进行数据的读取和写入操作。
每个共享内存区域都有属于某个所有者,也就是创建它的用户,每个区域都有标准的Linux权限设置来设定其他用户是否可以访问该区域。
软件程序管理
Linux操作系统称运行中的程序叫进程 。
内核创建了第一个进程(称为init进程)用来启动系统中所有其他的进程,当内核启动时,它会将init进程加载到虚拟内存中。内核在启动其他进程时,都会在虚拟内存中给新的进场分配一个专有区域来存储进程用到的数据和代码
Linux系统的init系统是采用7个启动运行级,运行级为1时,称为单用户模式,通常用来在系统有问题是进行紧急的文件系统维护(root用户密码丢失也在该模式下进行密码修改或者找回)。显然,该模式下仅有一个人(通常是系统管理员)能登陆到系统操作数据。
标准的运行级别是3,在这个运行级别上大部分应用软件,比如:网络支持程序,都会启动
图形化界面X Windows系统运行在级别5,同时运行用户通过图形化桌面登陆系统登陆。
重启运行在运行级别6
使用ps ax 查看当前系统当前运行在Linux系统上的进程
第一列 PID 进程的进程号,第一个进程就是init进程 进程号为1
第三列 进程的状态 S代表进程在睡眠状态 SW 代表在睡眠和等待 R代表在运行中
最后一列的方括号中的进程 表示由于不活动而被内存中换出到磁盘的交换空间
硬件设备管理
这个就不做详细的记录,有兴趣的可以google 相关内容,相信肯定比我写得要清楚
文件系统管理
文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。
Llinux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。
对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。
可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:
硬连接:原文件名和连接文件名都指向相同的物理地址。
目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)
文件在磁盘中只有一个拷贝,节省硬盘空间;
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。
符号连接:用ln -s命令建立文件的符号连接符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。
可以删除原有的文件而保存连接文件,没有防止误删除功能。
随着Linux的不断发展,它所支持的文件格式系统也在迅速扩充。特别是Linux 2.4内核正式推出后,出现了大量新的文件系统,其中包括日志文件系统ext4、ReiserFS、XFSJFS和其它文件系统。Linux系统核心可以支持十多种文件系统类型:JFS、 ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、 SMB、SysV、PROC等。
Linux操作系统,/proc/filesystems文件列出了当前内核支持的所有文件系统
1.2 GNU工具组件
GNU coreutils 软件包由3部分组成:处理文本工具 操作文本工具 管理进程工具
1.2.2 GNU/Linux Shell 称为交互式工具,它为用户提供了启动程序、管理文件系统上的文件以及管理运行在Linux上的进程的途径。
shell包含内置命令,可以完成一系列的操作,也可以通过将shell命令放入文件中作为程序执行,这个称之为shell脚本
大部分Linux发行版包含多个shell,通常默认的shell是bash shell
1.3 Linux 桌面环境
这个只需了解,对于我们的shell命令和shell脚本编程影响不大,主流的桌面环境: X Windows KDE桌面 GNOME桌面 其他桌面
1.4 Linux 发行版
主流发行版:Slackware Red Hat Fedora Gentoo Mandriva openSUSE Debian
只做了解,一般企业以Red Hat 红帽系统以及其社区版CentOS,Debian 及其分支Ubuntu为主,这里就不深入写下去,自行探索