《Linux命令行与Shell脚本编程大全(第3版)》读书笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Linux命令行与Shell脚本编程大全(第3版)》读书笔记相关的知识,希望对你有一定的参考价值。

第一章 初始Linux Shell

Linux可以划分为4个部分:

- Linux内核

- GNU工具

- 图形化桌面环境

- 应用软件

Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

内核主要负责以下4种功能:

- 系统内存管理

- 软件程序管理

- 硬件设备管理

- 文件系统管理

操作系统内核的主要功能之一就是内存管理。内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(即实际并不存在的内存)。

内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space)。内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存中的内容,这使得系统以为它拥有比物理内存更多的可用内存。

内存存储单元按组划分成很多块,这些块称作页面(page)。内核将每个内存页面放在物理内存或者交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到了磁盘上。

内核会记录哪些内存页面正在使用中,并自动把一段时间没有访问的内存页面复制到交换空间区域(称为换出,swapping out),即使还有可用内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。显然,这个过程要花费时间,拖慢运行的过程。只要Linux系统在运行,为运行中的程序换出内存页面的过程就不会停。

Linux操作系统将运行中的程序称为进程。进程可以在前台运行,将输出显示在屏幕上,也可以在后台运行,隐藏到幕后。内核控制着Linux系统如何管理运行在系统上的所有进程。

init进程为内核创建的第一个进程,用以启动系统上的其它进程。当内核启动时,它会将init进程加载到内虚拟内存中。内核在启动任何其它进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。某些Linux系统使用/etc/inittab来管理系统开机时要自启动的进程。另外一些使用/etc/init.d目录,该目录下的脚本自动启动或者停止,这些脚本通过/etc/rcX.d目录下的入口启动,这里的X代表运行级别。这些入口实际上是到/etc/init.d目录中启动脚本的符号链接。

Linux操作系统的init系统采用了运行级别。运行级决定了init进程运行/etc/inittab文件或/etc/rcX.d目录中定义好的某些特定类型的进程。

运行级为1时,只启动基本的系统进程和一个控制台终端进程。又称之为单用户模式。单用户模式通常用来在系统有问题时进行紧急的文件系统维护。在这种模式下,仅有一个人能登录到系统上操作数据。

标准的启动运行级是3,在这个运行级上,大多数应用软件都会启动。

运行级5支持启动图形化的X Window系统 。

任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在Linux内核中有两种方法用于插入设备驱动代码:

- 编译进内核的设备驱动代码

- 可插入内核的设备驱动模块

第一种方法已淘汰,第二种方法允许驱动代码插入到运行中的内核而无需编译内核。同时,当设备不再使用也可以将内核模块从内核中移走。

Linux系统将硬件设备当成特殊的文件,称为设备文件,分成3种:

- 字符型设备文件

- 块设备文件

- 网络设备文件

字符型设备文件是指处理数据时每次只能处理一个字符的设备。大多数类型的调制解调器和终端都是作为字符型设备文件创建的。块设备文件是指处理数据时每次能处理大块数据的设备,比如硬盘。网络设备文件是指采用数据包发送和接受的设备,包括各种网卡和一个特殊的回环设备。这个回环设备允许Linux系统使用常见的网络编程协议同自身通信。

Linux为系统上的每个设备都创建一种称为节点的特殊文件。与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对供Linux内核标识它。数值对包括一个主设备号和一个次设备号。类似的设备被划分到同一个主设备号下,次设备号用于标识主设备组下的某个特定设备。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。

Linux内核采用虚拟文件系统(Virtual File System,VFS)作为和每个文件系统交互的接口。这为Linux内同任何类型文件系统通信提供了一个标准接口。当每个文件系统被挂载和使用时,VFS将信息都缓存在内核中 。

供Linux系统使用的这组核心工具称为coreutils(core utilities)软件包,包含:

- 用以处理文件的工具

- 用以操作文本的工具

- 用以管理进程的工具

将多个shell命令放入文件作为程序执行,这些文件被称为shell脚本。所有Linux默认发行版都是Bash Shell。

X Window最流行的软件包是X.org。此外还有Fedora的Wayland还有Ubuntu开发出了Mir显示服务器。

除了X Window,还有GNOME桌面和KDE桌面,Unity桌面。

完整的Linux系统包称为发行版。发行版有3种:

- 完整的核心Linux发行版

- 特定用途的发行版

- LiveCD测试发行版


本文出自 “Alex的博客” 博客,请务必保留此出处http://houjun19830610.blog.51cto.com/9269760/1871781

以上是关于《Linux命令行与Shell脚本编程大全(第3版)》读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

持续更新中Linux命令行与Shell脚本编程大全(第3版)读书笔记12-20章

《Linux命令行与Shell脚本编程大全(第3版)》读书笔记

更新完毕Linux命令行与Shell脚本编程大全(第3版)读书笔记21-26章

免费Linux命令行与Shell脚本编程大全 第3版 PDF全本 21MB 百度网盘下载

《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf

Linux 命令行与 shell 脚本编程大全 3.基本的bash shell命令#yyds干货盘点#