1. 首页
  2. 文档大全

《Linux应用》重点复习

上传者:心**** 2022-05-27 17:06:06上传 DOC文件 94.50KB
《Linux应用》重点复习_第1页 《Linux应用》重点复习_第2页 《Linux应用》重点复习_第3页

《《Linux应用》重点复习》由会员分享,可在线阅读,更多相关《《Linux应用》重点复习(7页珍藏版)》请在文档大全上搜索。

1、内核体系结构1. 进程调度(SCHED)操作系统为用户态进程与硬件设备进行交互提供了一组接口,把用户从底层的硬件编程中解放出来,极大的提高了系统的安全性,使用户程序具有可移植性。过程:执行陷阱异常指令trap 0à2. 进入异常后,处理器PSR最高位被硬件置1,实现普通3. 用户到特权用户的转变à4. 根据系统调用号(r1传入),调用相应函数,满足用5. 户需求à6. 系统调用返回,重新回到用户态,用户获得资源。2. 内存管理(MM)Linux系统最低限度地使用I386体系的分段机制,把整个虚拟地址空间直接映射为线性地址空间,一个虚拟空间只包含一个段,段的大小为4

2、GB。也就是说,一个进程最大可以占有4GB的空间。系统设置三级页表系列:页目录PGD(PaGe Directory)、页中间目录PMD(Page Middle Directory),页表PTE(Page TablE)。进程管理:进程切换:为了控制进程的执行,内核必须有能力挂起正在CPU上执行的进程,并恢复以前挂起的某个进程的执行,这叫做进程切换,任务切换,上下文切换。3. 虚拟文件系统(VirtualFileSystem,VFS)VFS是一个软件层,是用户应用程序与具体文件系统实现之间的抽象层:对用户界面:一组标准的、抽象的文件操作,以系统调用提供,如read()、write()、open()

3、等。对具体文件系统界面:主体是file_operations结构,全是函数指针,提供函数跳转表。VFS支持三种主要类型的文件系统:基于磁盘的文件系统:它们管理在本地磁盘分区中可用的存储空间。包括:ext2、ext3、ReiserFS、 MINIX、 MS-DOS、 NTFS 、 VFAT 、 DVD文件系统、 JFS 等等。网络文件系统:用于访问属于其他网络计算机的文件系统所包含的文件NFS、Coda、AFS、SMB、NCP特殊文件系统不同于上述两大类,不管理具体的磁盘空间如/proc4.网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。5

4、.进程间通讯(IPC) 支持进程间各种通信机制。X WindowX window系统是建于客户服务器联结基础上的图形子系统,独立于系统内核。X服务器是一个运行在本地计算机上的程序。它响应来自X客户程序的请求,在屏幕上画图或者读取键盘或鼠标的输入,并将它传给客户端。X客户端是一个用诸如Xlib, Xt的库写成的运用X协议的应用程序。它通过向负责管理自己的X服务器提出对显示和输出资源的请求来使用其他计算机的这些资源。X的设计理念:计算分布,设备分离,协议独立;X协议:X协议定义了客户服务器中应用程序和它的显示的联系。通过这个协议,应用与它的显示被分离开来。Xlib库是一个C语言库,它为X协议里的信

5、息交换提供了一个API。X工具包将常用的素材(如按钮,菜单等)收集到一起就形成了所谓的X工具包(X ToolKit)X窗口管理器负责安排客户窗口在显示屏幕上的摆放位置,并完成移动窗口和调整窗口尺寸等管理性的工作。X Windows的特征: 不论是本地还是网络上的计算,对用户和开发者其look-and-feel来说都是一样的; X Window System不是操作系统的一部分,而仅仅是一个应用,易于开发、维护、移植; X Server是高度可移植的,支持各种语言和操作系统; X Client也是高度可移植的; X支持任何面向字节流的网络协议不论是本地还是远程的; 应用的计算是分布的,性能不受约

6、束。 X Application的设计是高度灵活的,只需实现核心功能。X Window System从设计开始时就融入了面向对象的设计理念,大的窗口由小的窗口组成(Widget)。符合软件设计的准则,大大方便了X应用的开发。U盘命令Ppt内容磁盘挂载命令(mount)(1)作用挂载文件系统,它的使用权限是超级用户或/etc/fstab 中允许的使用者。挂载是指把分区和目录对应的过程,而挂载点是指挂载在文件树中的位置。mount 命令就可以把文件系统挂载到相应的目录下,并且由于 Linux 中把设备都当作文件一样使用,因此,mount 命令也可以挂载不同的设备。通常,在 Linux 下“/mnt

7、”目录是专门用于挂载不同的文件系统的,它可以在该目录下新建不同的子目录来挂载不同的设备文件系统。(2)格式mount 选项 类型 设备文件名 挂载点目录其中的类型是指设备文件的类型。(3)常见参数mount 常见参数如表所示。(4)使用实例使用 mount 命令主要通过以下几个步骤。确认是否为 Linux 可以识别的文件系统,Linux 可识别的文件系统只要是以下几种。 Windows95/98 常用的 FAT32 文件系统:vfat。 WinNT/2000 的文件系统:ntfs。 OS/2 用的文件系统:hpfs。 Linux 用的文件系统:ext2、ext3、nfs。 CD-ROM 光盘用

8、的文件系统:iso9660。确定设备的名称,确定设备名称可通过使用命令“fdisk -l”查看。查找挂接点。必须确定挂载点已经存在,也就是在“/mnt”下的相应子目录已经存在,一般建议在“/mnt”下新建几个如“/mnt/windows”,“/mnt/usb”的子目录。在使用完该设备文件后可使用命令 umount 将其卸载。百度答案:把你的优盘插上去,打开系统终端,先看看有没有认出来lsusb如果认出来了,你会看到usb什么的设备的接着进入mnt这个目录cd /mnt新建一个目录,比如:usbdiskmkdir usbdisk在运行命令#mount -t vfat -o iocharset=c

9、p936 /dev/sda1 /mnt/usbdiak(这个是在一行里的哦,t 和 o是两个参数,sda1是你的优盘盘符)这样在进入/mnt/usbdisk这个目录里去看看有没有东西要卸载的话umount /dev/sda1就可以了Linux启动过程开机启动 Linux 过程: 第一阶段,当用户打开 PC 的电源时,CPU 将自动进入实模式,并从地址 0xFFFF0 开始自动执行程序代码,这个地址通常是 ROM-BIOS 中的地址。这时 BIOS 进行开机自检,并按 BIOS 中设置的启动设备(通常是硬盘)进行启动,接着启动设备上安装的引导程序lilo 或 grub 开始引导 Linux(也就

10、是启动设备的第一个扇区),这时,Linux 才获得了启动权。 第二阶段,Linux 首先进行内核的引导,主要完成磁盘引导、读取机器系统数据、实模式和保护模式的切换、加载数据段寄存器以及重置中断描述符表等。 第三阶段,执行 init 程序(也就是系统初始化工作) init 程序调用了 rc.sysinit 和 rc 等程序,而 rc.sysinit 和 rc 在完成系统初始化和运行服务的任务后,返回 init。 第四阶段,init 启动 mingetty,打开终端供用户登录系统,用户登录成功后进入了Shell,这样就完成了从开机到登录的整个启动过程。i节点i节点区存放这个逻辑文件系统中所有的i节

11、点,第一个i节点是这个系统的根节点,其他所有文件和目录都占用一个i节点。利用根节点,可以把存放在这个磁盘分区的整个文件系统安装到另一个文件系统的枝节点上,作为另外文件系统完整的一棵独立子树。百度答案linux为每个文件都定义了一个编号,这样linux内核调用文件时其实是调用这个编号。如创建一个文件touch a。这时我们创建了一个文件a,系统会为a分配一个编号如23,23也就是a文件的节点。当我们查看文件时linux内核是调用的23这个编号来找文件。Linux中每个文件都会有I节点,查看可用命令ls -i  或ls -i 文件名。一个文件必须对应一个I节点,但一个I节点可以对应多个文

12、件,如软连接与硬连接。linux中,inode是一个很重要的实体,与文件有着很大的关系。系统在打开一个文件之前,都是先在一个inode表中查找该文件对应的inode,再去定位到具体的文件。具体过程如下文。我们都知道磁盘空间,上面布满了文件和目录,其实,磁盘的百分之一被inode表占据着。由名字可以看出,这个表由N多个inode组成。inode说白了就是一种数据结构,里面包含了多种多样的属性。一种inode对应着一个文件,也就是说,我们在创建一个文件时,系统就会为此文件分配一个inode,这个inode包含了该文件在磁盘上的位置,文件被修改的时间等信息。inode具体常用的属性如下: inode

13、 编号 用来识别文件类型,以及用于 stat C 函数的模式信息文件的链接数目 属主的 UID 属主的组 ID (GID) 文件的大小 文件所使用的磁盘块的实际数目 最近一次修改的时间 最近一次访问的时间 最近一次更改的时间    当我们使用vi编辑器编辑一个文件时,对应的inode就被分配出去,因此,如果有第二个人也想编辑该文件,则屏幕会报信息,说此文件正被使用。    由于系统预先建立的inode节点有限,因此,如果创建的文件数超过了inode数,则会报警。VFS的四个对象 超级块(superblock)对象: 存放系统中已安装文

14、件系统的有关信息 超级块用来描述整个文件系统的信息。每个具体的文件系统都有各自的超级块 VFS超级块是各种具体文件系统在安装时建立的,并在卸载时被自动删除,其数据结构是 super_block 与超级块关联的方法就是超级块操作表。这些操作是由数据结构super_operations来描述 索引节点(inode)对象: 存放关于具体文件的一般信息 文件系统处理文件所需要的所有信息都放在称为索引节点的数据结构inode中。 在同一个文件系统中,每个索引节点号都是唯一的 inode 中有两个设备号,i_dev(常规文件的设备号)和i_rdev(某一设备的设备号) 目录项(dentry)对象: 存放目

15、录项与对应文件进行链接的信息 每个文件除了有一个索引节点inode数据结构外,还有一个目录项dentry数据结构。 dentry结构代表的是逻辑意义上的文件,描述的是文件逻辑上的属性 inode结构代表的是物理意义上的文件,记录的是物理上的属性,对于一个具体的文件系统,其inode结构在磁盘上就有对应的映像 一个索引节点对象可能对应多个目录项对象 文件(file)对象: 存放打开文件与进程之间进行交互的有关信息 进程是通过文件描述符来访问文件的 Linux中专门用了一个file文件对象来保存打开文件的文件位置,这个对象称为打开的文件描述(open file description) file结

16、构中主要保存了文件位置,此外,还把指向该文件索引节点的指针也放在其中。file结构形成一个双链表,称为系统打开文件表。 基本的编译和调试命令结合实验gcc gdbLinux进程状态转换Linux系统的2.2.16版本进程共有六种状态,包括运行状态、可中断等待状态、不可中断等待状态、僵死状态、暂停状态和交换状态,而在2.4.0版本中取消了交换状态,加入独占状态。(1) 运行状态(running)Linux系统中的运行状态实际包含了上述基本状态中的执行和就绪两种状态,进程到底是正在运行还是处于就绪状态准备运行,要靠当前是否占有CPU资源来区分。(2) 等待状态Linux系统把基本的等待状态进一步细

17、化为可中断的等待态和不可中断的等待态两种。处于这种状态的进程都在等待某个事件或某个资源,可中断等待状态的进程可以被信号唤醒而进入就绪状态等待调度,而不可中断等待状态的进程是因为硬件资源无法满足,不能被信号唤醒,必须等到所等待的资源得到之后由特定的方式唤醒。(3) 僵死状态(zombie)由于某些原因进程被终止,这个进程所拥有的内存、文件等资源全部释放之后,还保存着PCB信息,这种占有PCB但已经无法运行的进程就处于僵死状态。(4) 暂停状态处于暂停状态的进程,一般都是由运行状态转换而来,等待某种特殊处理。比如处于调试跟踪的程序,每执行到一个断点,就转入暂停状态,等待新的输入信号。(5) 交换状

18、态处于交换状态的进程正在执行内存、外存的交换工作。这个状态在2.2.X版本的内核中基本已经不使用,在2.4.X版本中没有这种状态。(6) 独占状态它应该是等待状态的一种,处于独占状态的进程位于等待队列中,当等待的事件发生时,只有处于这种状态的进程被唤醒,其他处于可中断和不可中断等待状态的进程则继续等待。Linux 2.4引入独占状态后,如果事件发生,只唤醒处于独占状态的那一个进程,这就可以大大提高Apache这类Web应用的效率,使Linux更适合网络服务器的角色。v  来看Linux系统进程的状态转换情况。采取一定的简化措施:按照进程是否占有处理机为依据,把进程的运行状态分为执行和

19、就绪两种状态;等待状态统一考虑,不再区分是否可中断,独占状态也作为一种等待状态处理;不涉及交换状态。Linux IPC支持进程间各种通信机制。处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。v 1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。v (2)信号(Signal):信号是Unix系统中使用的最古老的进程间通信的方法之一。信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知接受进程有某事件发生,一个进程收到一个信号与处理

20、器收到一个中断请求效果上可以说是一样的。v (3)消息队列:消息队列是消息的链接表,包括 Posix 消息队列 system V消息队列。它克服了前两种通信方式中信息量有限的缺点,具有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读取消息。v (4)共享内存:可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种通信方式需要依靠某种同步机制,如互斥锁和信号量等。v (5)信号量/灯:主要作为进程间以及同一进程不同线程之间的同步手段。v (6)套接字(Socket):这是一种更为一般的进程间通信机制,它可用于不同机器之间的进程间通信,应用非常广泛。


文档来源:https://www.renrendoc.com/paper/212466110.html

文档标签:

下载地址