初始Linux shell
1.1什么是Linux
liunx可以分为以下四部分:
1.Liunx内核
2.GNU工具
3.图形化桌面环境
4.应用软件
1.1.1深入探究Linux内核
内核主要负责以下四种功能:
1.系统内存管理
2.软件程序管理
3.硬件设备管理
4.文件系统管理
1.系统内存管理
操作系统内核的主要功能之一就是内存管理。内核不仅仅管理服务器上的可用的物理内存,还可以创建和管理虚拟内存。 内核通过硬盘上的存储空间来实现虚拟内存,这块区域成为交换空间。内核不断地在交换空间和实际物理内存之间反复交换虚拟内存中的内容。。这使得系统认为它拥有比物理内存更多的可用内存。 内存存储单元按组划分成很多块,这些块称之为页面。内核将每个内存页面放在物理内存或交换空间。然后内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到磁盘上。 内核会记录哪些内存页面正在使用,并自动把一段时间为访问的内存页面复制到交换空间区域,称为换出--即使还有可用的内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。
2.软件程序管理
Linux操作系统将正在运行中的程序称为进程。内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,它会将init进程加载到虚拟内存中。内核在启动其他进程时,都会在虚拟内存中给新进程分配一块专有的区域来存储该进程用到的数据和代码。
3.硬件设备管理
内核的另一个职责是管理硬件设备。任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备之间的中间人,允许内核与设备之间交换数据。在Liunx内核中有两种方法用于插入设备驱动代码。 1.编译进内核代码的设备驱动代码 2.可插入内核的设备驱动模块 Linux系统将硬件设备当成特殊文件,称为设备文件。设备文件分为3类: 1.字符型设备文件 2.块设备文件 3.网络设备文件 字符型设备文件是指处理数据是每次只能处理一个字符设备。块设备是指处理数据时每次能处理大块数据的设备。网络设备文件是指采用数据包发送和接收数据的设备。 Linux为系统上的每个设备都创建一个称为节点的特俗文件。与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对供Linux内核标识它。数值对包括一个主设备号和一个次设备号。类似的设备被划分到同样的主设备号下。次设备用于标识主设备组下的某个特定设备。
4文件管理系统
不同于其他一些操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。
GNU工具
除了由内核控制硬件设备外,操作系统还需要执行一些标准功能,比如控制文件和程序
1.核心的GUN工具
GNU项目的主旨在于为Unix系统管理员设计出一套类似于Unix的环境。供Linux系统使用的这组核心工具被称为coreutils软件包。 GNU coreutils软件包由三部分构成: 1.用以处理文件的工具 2.用于操作文本的工具 3.用以管理进程的工具
2.shell
GNU/Linux shell 是一种特殊的交互式工具。它为用户提供启动程序,管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。在命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。‘ shell包含了一组内部命令,用这些命令可以完成复制文件等操作。shell也允许你在命令行提示符中输入程序的名称,它会将程序名传递给内核以启动它。 也可以将多个shell命令放入文件中作为程序执行。这些文件被称为shell脚本。你在命令行上执行的任何命令都可以放进一个shell脚本里面作为一组命令执行。这为创建那种需要把几个命令放在一起来工作的工具提供了便利。