- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4-2常用命令
第五讲 Linux设备管理命令 Linux 设备管理 Linux下的设备 设备管理是操作系统五大管理中最复杂的部分。与Unix系统一样,Linux系统采用设备文件统一管理硬件设备,从而将硬件设备的特性及管理细节对用户隐藏起来,实现用户程序与设备无关性。在Linux系统中,硬件设备分为三种,即块设备和字符设备和网络设备。 用户是通过文件系统与设备接口的,所有设备都作为特别文件,从而在管理上就具有一些共性。对于设备文件,则文件的逻辑空间通常就等价于设备的逻辑空间,然后从设备的逻辑空间映射到设备的物理空间,再驱动底层的物理设备工作。 Linux系统和设备驱动程序之间使用标准的交互接口。无论是字符设备、块设备还是网络设备的驱动程序,当内核请求它们提供服务时,都使用同样的接口。 Linux 设备管理 设备驱动程序和内核之间的接口 Linux系统和设备驱动程序之间使用标准的交互接口。无论是字符设备、块设备还是网络设备的驱动程序,当内核请求它们提供服务时,都使用同样的接口。 Linux提供了一种全新的机制,就是“可安装模块”。可安装模块是可以在系统运行时动态地安装和拆卸的内核模块。利用这个机制,可以根据需要在不必对内核重新编译连接的条件下,将可安装模块动态插入运行中的内核,成为其中一个有机组成部分,或者从内核卸载已安装的模块。设备驱动程序或与设备驱动紧密相关的部分(如文件系统) 都是利用可安装模块实现的。 Linux 设备管理 如前所述,Linux系统是一个动态的操作系统。用户根据工作中的需要,会对系统中设备重新配置,如安装新的打印机、卸载老式终端等。这样,每当Linux系统内核初启时,它都要对硬件配置进行检测,很有可能会检测到不同的物理设备,就需要不同的驱动程序。 在构建系统内核时,可以使用配置脚本将设备驱动程序包含在系统内核中。在系统启动时对这些驱动程序初始化,它们可能未找到所控制的设备,而另外的设备驱动程序可以在需要时作为内核模块装入到系统内核中。 为了适应设备驱动程序动态连接的特性,设备驱动程序在其初始化时就在系统内核中进行登记。Linux系统利用设备驱动程序的登记表作为内核与驱动程序接口的一部分,这些表中包括指向有关处理程序的指针和其它信息。 Linux 设备管理 1.特别文件 用户是通过文件系统与设备接口的,所有设备都作为特别文件,从而在管理上就具有一些共性。 (1)每个设备都对应文件系统中的一个索引节点,都有一个文件名。设备的文件名一般由两部分构成,第一部分是主设备号,第二部分是次设备号。主设备号代表设备的类型,可以惟一地确定设备的驱动程序和界面,如hd表示IDE硬盘,sd表示SCSI硬盘,tty表示终端设备等;次设备号代表同类设备中的序号,如hda表示IDE主硬盘,hdb表示IDE从硬盘等。 (2)应用程序通常可以通过系统调用open( )打开设备文件,建立起与目标设备的连接。 (3)对设备的使用类似于对文件的存取。打开设备文件以后,就可以通过read( )、write( )、ioctl( )等文件操作对目标设备进行操 Linux 设备管理 (4)设备驱动程序都是系统内核的一部分,它们必须为系统内核或它们的子系统提供一个标准的接口。例如,一个终端驱动程序必须为Linux内核提供一个文件I/O接口;一个SCSI设备驱动程序应该为SCSI子系统提供一个SCSI设备接口,同时SCSI子系统也应为内核提供文件I/O和缓冲区。 (5)设备驱动程序利用一些标准的内核服务,如内存分配等。另外,大多数Linux设备驱动程序都可以在需要时装入内核,不需要时可以卸载下来。 Linux 设备管理 字符设备 在Linux系统中,打印机、终端等字符设备都作为字符特别文件出现在用户面前。用户对字符设备的使用就和存取普通文件一样。在应用程序中,使用标准的系统调用来打开、关闭、读写字符设备。当字符设备初始化时,其设备驱动程序被添加到由device_struct结构组成的chrdevs结构数组中。 device_struct结构由两项构成,一个是指向已登记的设备驱动程序名的指针,另一个是指向file_operations结构的指针。而file_operations结构的成分几乎全是函数指针,分别指向实现文件操作的入口函数。设备的主设备号用来对chrdevs数组进行索引。 Linux 设备管理 块设备 对块设备的存取和对文件的存取方式一样,其实现机制也和字符设备使用的机制相同。Linux系统中有一个名为blkdevs的结构数组,它描述了一系列在系统中登记的块设备。 数组blkdevs也使用设备的主设备号作为索引,其元素类型是device_struct结构。该结构中包括指向已登记的设备驱动程序名的指针和指向block_device_opera
文档评论(0)