linux核心(编辑修改稿)内容摘要:
的字节数转换为千字节 (并增加 14 了一些信息 )。 磁盘和其他存贮介质的使用 On a clear disk you can seek forever. 安装和升级系统时,需要对硬盘做很多工作。 必须在硬盘上做文件系统,使文件能存在其上,并为系统不同的部分保留空间。 本章说明所有这些初始化工作。 通常,一旦你建立了系统,就不必再做这些工作(除了使用软盘 )。 如果你要增加一个新硬盘或更好地调整你的硬盘的使用,那么可能回到这一章。 管理磁盘的基本任务有: 格式化磁盘。 这为磁盘进入使用做一些工作,比如检查坏扇区。 (现在多数硬盘无须格式化。 ) 给硬盘分区,如果想用于互相不干扰的几件事。 分区的一个原因是要在一个硬盘上存不同的操作系统。 另一个原因是将用户文件 和系统文件分开,以简化备份并在系统崩溃时有助于保护系统文件。 在每个磁盘或分区上建立合适类型 的文件系统,然后文件就可以在其上产生和存取。 在你建立文件系统前, 磁盘对 Linux 没有意义。 将不同的文件系统安装起来形成一个单独的树结构,按需要可以自动或手工完成。 (手工安装的文件系统通常还要手工 unmount) 5 章包括虚拟内存和磁盘 cache 的信息,使用磁盘应该知道这些。 本章说明对硬盘、软盘、 CDROM 和磁带机应该知道什么。 2 种设备 UNIX 及 Linux,识别 2 类设备:随机存取的块设备 (如磁盘 )和字符设备 (如磁带和串行线 ),有些是串行的,有些是随机存取的。 文件系统支持的每种看来是个设备文件。 当读写设备文件时,数据与设备联系。 这样没有必要为存取设备编制特别的程序 (程序不直接获取中断或读取串口 ),例如,发送文件到打印机,只需: $ cat filename /dev/lp1 $ 文件内容就被打印了 (当然,文件必须是打印机能理解 的格式 )。 当然,因为不应该让多人同时 cat 文件到同一打印机,一般用特定的程序发送文件去打印 (通常是 lpr )。 这个程序能确保同时只有一个文件被打印,并自动在完成后发送下一个。 多数设备有类似需要。 实际上,根本很少需要关心设备文件。 15 因为设备被视为文件系统中的文件 (在 /dev 目录中 ),很容易看到存在哪些设备文件,使用 ls 或其他的适当的命令即可。 在 ls l 的输出中,第一列包含文件类型和权限。 例如,查看我系统上的一个串行设备: $ ls l /dev/cua0 crwrwrw 1 root uucp 5, 64 Nov 30 1993 /dev/cua0 $ 第一列第一个字符,即 crwrwrw中的 c告诉用户文件的种类,这是一个字符设备。 一般文件的第一个字符是 ,目录是 d,块设备是 b;更多的信息见 ls man 页。 注意即使设备没有安装,一般所有设备文件都存在。 因此有 /dev/sda 文件并不意味着你真的有个 SCSI 硬盘。 有所有的设备文件使安装程序更简单,也易于增加新硬件 (无须再为产生新设备的设备文件找出正确的参数 )。 硬盘 本节介绍有关硬盘的术语。 如果你已经知道这些项目 和内容,可以跳过本节。 见图 ,是硬盘重要部分的图解。 硬盘包括一到数片 盘片 platters, 其一个或两个 面 surfaces 涂有磁性材料用于记录数据。 每面有一个 读写头readwrite head 用于读写数据。 盘片 有一个共同的轴,典型的旋转速度是每分钟 3600 转,高性能的硬盘转速可能 更高。 磁头可沿着盘片的半径移动,磁头移动加上盘片旋转可以使词头存取磁盘表面的任何一个位置。 处理器 (CPU)和实际磁盘通过 磁盘控制器 disk controller 通讯。 这使计算机其他部分不必知道如何使用驱动器,因为不同磁盘的控制器可以做成对计算机其他部分相同的接口。 这样,计算机只要说 嗨,磁盘,给我我要的东西 ,而不是用一串长而复杂的电信号来移动磁头到正确的位置,并等正确的位置到了磁头下后再做那些不愉快的工作。 (实际上,到控制器的接口仍然很复杂,但比没有好多了。 ) 控制器还可以做一些其他的事,比如缓冲,或自动坏扇区替换等。 用电信号控制操作机械部件, 以上只是理解硬件所需的。 还有其他好多工作,比如马达旋转磁盘、移动磁头,但这都与理解硬盘工作原理无关。 磁盘表面通常被分为同心圆环, 叫 磁道 tracks,磁道又被分为 扇区 sectors。 用这样分来将磁盘定位,用于为文件定位磁盘空间。 要在硬盘上找到给定的位置,可能说 3 面 5 道 7 扇区。 通常所有磁道有相同的扇区数,但也有硬盘在外圈磁道放较多的扇区 (所有扇区用同样大小的物理空间,这样在较长的外圈磁道可以容纳更多的数据 )。 一般一个扇区容纳 512 字节数据。 磁盘不能处理比一个扇区更小的数据量。 16 Figure : A schematic picture of a hard disk. 每个面以相同的方式分为磁道和扇区。 这意味着当一个磁头在某个磁道时,其他磁头也在相应的位置,所有相同位置的磁道组成 柱面 cylinder。 磁头从一个磁道 (柱面 )移动到另一个需要花时间,所以将经常要在一起存取的数据 (如一个文件 )放在一个柱面里。 这改善了性能。 当然不可能完全作到,文件被放在几个相分离的位置叫 碎片 fragmented。 磁盘的面 (或头,实际是一样的 )、柱面、扇区数各不 相同,硬盘这些数目叫 硬盘参数 geometry。 硬盘参数通常存在一个特定的、由电池供电的存储区中,叫 CMOS RAM,操作系统在引导启动或驱动器初始化时可以从那里得到硬盘参数。 不幸的是, BIOS 有一个设计限制,就是不能在 CMOS RAM 中定义大于 1024 的磁道数,这对大硬盘来说就太小了。 为了克服这个问题,硬盘控制器在磁盘参数上做了一个欺骗,用 地址转换 translates the addresses 使计算机接受。 例如,一个硬盘可能有 8 个磁头, 2048 个磁道,每磁道 35 个扇区。 其控制器可以对计算机谎称它有 16 个磁头, 1024 个磁道,每磁道 35 个扇区,这样就没有超过磁道数的限制,地址转换将磁头数减半,磁道数加倍后传给硬盘。 实际的算法可能更复杂,因为数量可能不象我们在这里假设的这么好 (但这不影响我们理解原理 )。 这个转换在操作系统来看产生了错觉,并可能影响操作系统对把所有数据存在相同柱面的企图受 到影响。 转换只是 IDE 硬盘的问题。 SCSI 硬盘使用连续的扇区号 (即控制器将连续的扇区好转换成磁头、柱面、扇区的三参数组 ),对 CPU 与控制器的通信使用完全不同的 17 方法,因此不会有这个问题。 注意,计算机可能根本不知道一个 SCSI 硬盘的实际参数。 由于 Linux 经常不知道一个硬盘的真正参数,其文件系统也不试图将文件存在一个柱面里。 而是争取给一个文件分配连续编号的山区,这样能得到类似的性能。 对于控制器上有 cashe 或控制器能自动预取的硬盘,情况将更复杂。 每个硬盘表现为一个单独的设备文件。 通常只能有 24 个 IDE 硬盘。 这就是 /dev/hda , /dev/hdb , /dev/hdc , 和 /dev/hdd。 SCSI 是 /dev/sda , /dev/sdb , 等等。 其他硬盘类型有类似的命名约定,更多的信息见 [Anv]。 注意硬盘的设备文件给出整个硬盘的存取,而不是分区 (下面讨论的 ),因此如果不小心可能搞乱分区或数据。 硬盘的设 备文件只在存取主引导扇 (也将在下面讨论 )时使用。 软盘 软盘的一面或两面涂有和硬盘类似的磁性介质。 软盘自己没有读写头,读写头在驱动器上。 软盘相当于硬盘的一张盘片,但可移动,一个驱动器可以存取不同的软盘,而硬盘则是一个独立的单元。 如同硬盘,一张软盘也分为磁道和扇区 (软盘 2 面上的相同的磁道组成柱面 ),但数量要比硬盘少得多。 软驱通常可以使用几中不同的盘片,例如,一个 39。 软驱可以使用 720KB 和 的软盘。 因为软驱操作有些不同,而操作系统必须知道软盘的容量,所以软驱有许多设备文件,每个都与软驱 和软盘种类有关。 因此, /dev/fd0H1440 是第一个软驱 (fd0),必须是 39。 软驱,使用 39。 高密度软盘 (H),容量是1440KB(1440),即普通的 39。 HD 软盘。 软盘设备的命名约定见 [Anv]。 软驱的名字是复杂的,因此 Linux 有一个特定的软驱设备类型,能自动检测软驱中软盘的种类。 它使用不同的软盘类型试图读 取新插入的软盘的第一个扇区,直到找到正确的一个。 这自然要求软盘是已经格式化过的。 自动设备叫 /dev/fd0 、/dev/fd1 等。 存取软盘的自动设备的参数可用程序 setfdprm 设定。 这可使你使用不是通常容量的软盘,例如有非标准扇区数的软盘,或自动检测由于某种原因失败或适当的设备文件丢失。 Linux 除了所有标准的,还能处理许多非标准的软盘格式。 这有时需要特殊的格式化程序。 我们现在先跳过这些软盘格式,同时你可以查看 /etc/fdprm 文件。 它定义了 setfdprm 识别的设定。 操作系统必须知 道软驱何时换了软盘,例如,以免使用上一张软盘的 cache 数据。 不幸的是,当用于此的信号线断了或不好时,当在 MSDOS 中使用时,这并不总有 18 效。 如果你曾遇到过软驱的这种怪异的问题,可能是这个原因。 解决这个问题的唯一方法是修理软驱。 CDROM CDROM 驱动器使用一个光学可读的塑料涂布的盘片。 信息记录在盘片表面 的从中心的边沿的螺旋型小坑上。 驱动器发出一束激光来读盘。 当激光射到小坑上,激光以一种方式反射;当它射到光滑表面上,它以另一种方式反射。 这很容易地编码成 bit,组成信息。 其他很容易,不过是机械。 CDROM 驱动器比硬盘慢。 典型的硬盘的平均寻道 (seek)时间小于 15 毫秒,而快速的 CDROM 驱动器要花零点几秒。 实际数据传输率则相当快,在 数百 KB/s。 速度慢使 CDROM驱动器不能代替硬盘使用 (有些 Linux distributions提供 live CDROM 文件系统,使之不必拷贝文件到硬盘,使安装简单并节约了许多硬盘空间 ),虽然是可能的。 要安装新软件, CDROM 很好,因为在安装时速度并非最重要的。 有多种方法在 CDROM 上安排数据。 最流行的是国际标准化组织定义的 ISO9660。 这个标准定义了一个最小的文件系统,甚至比 MSDOS 更粗糙。 这样,由于它是这么小,所有操作系统都可以将它映射到自己的系统。 不同 UNIX 不能使用 ISO9660 文件系统, 因此开发了对这个标准的一个增强,叫Rock Ridge 增强。 Rock Ridge 允许长 文件名、符号连接和许多其他优点,使CDROM 更象 UNIX 文件系统。 同时, Rock Ridge 文件系统仍然是一个有效的ISO9660 文件系统,使非 UNIX 一样可以使用。 Linux 同时支持 ISO9660 和 Rock Ridge 增强,增强被自动识别和使用。 文件系统只是一部分,许多 CDROM 包含的数据需要特定的程序存取,而多数程序不能运行在 Linux 下 (当然,可能运行在 Linux 的 MSDOS 仿真器 dosemu 下 )。 CDROM 驱动器通过相关的设备文件存取。 有多种方法将 CDROM 连接到计算机:SCSI、声卡或 EIDE。 要完成这的硬件 hacking 工作超出了本书的范围,但连接方法决定了设备文件。 指导见 [Anv] 格式化 格式化 在磁介质上写用于标记磁道和扇区的标志的过程。 磁盘格式化前,其磁表面是完成的一块。 格式化后,混沌变为秩序, 建立的磁道,划分了扇区。 实际细节并非准确地这样,但重要的是:磁盘不经过格式化是不能使用的。 这里术语有些模糊: MSDOS 中,格式化 (format)这个词还包括了产生文件系统的过程 (下面将讨论的 )。 这两个过程经常一起使用,尤其是软盘。 当必须区分时,真正的格式化被称为 低级格式化 lowlevel formatting,而建立文件系统被成 19 为 高级格式化 highlevel formatting。 在 UNIX 圈中,这两者叫格式画 format和建立文件系统 make a filesystem,本书中也这样称。 IDE 硬盘和一些 SCSI 硬盘实际上厂商已经做了格式化,并无须重复;因为多数人无须关心它。 实际上,格式化硬盘可能反而不好,比如因为硬盘可能需要用特定的方法格式化使坏扇区被自动替换。 磁盘经常需要特定的程序来格式化,因为驱动器的格式化逻辑的接口每个驱动器都不一样。 格式化程序经常在控制器 BIOS 上,或用 MSDOS 程序提供,这都不太容易在 Linux 中使用。 格式化中可能会发现磁盘的坏点,叫 坏块 bad blocks or bad sectors。 这有时由驱动器自己处理。 但有时,如果坏块太多,需要一些工作来避免使用磁盘的 这部分。 The logic to do this is built into the filesystem。 下面将说明如何增加这些信息到文件系统。 另外,产生一个只覆盖这些坏的部分的小分区也是一个办法。 如果坏区较大,这可能是个好办法。linux核心(编辑修改稿)
相关推荐
索 TTF 字库 , 接下来就是对旧配置文件 进行备份 , 最后 开始安装 . 4) 完成安装 , 如果安装了中文控制台环境 , 则需要重新启动 . 六、如何设置声卡 不用我说,这可是十分要紧的工作。 不过如果你安装了 RED HAT Linux,则这项工作就简单了。 用 root 登录系统,运行 /usr/sbin/sndconfig。 出现选择声卡类型的画面。 一般声卡可以选取 Sound
file 的效果一样。 d 设定时间与日期,可以使用各种不同的格式。 t 设定档案的时间记录,格式与 date 指令相同。 nocreate 不会建立新档案。 help 列出指令格式。 version 列出版本讯息。 范例: 最简单的使用方式,将档案的时候记录 改为现在的时间。 若档案不存在,系统会建立一个新的档案。 touch file touch file1 file2 将 file
是隐藏起来的,我们要在游览器中加入 c:\boot\grub 就 可以看得到; 0]打开 wingrub,点 tools =》 partioinlist (分区列表),这里能了解到机器的分区,比如我们可能看到的 FAT32 的分区是 (hd0,1)等等,事实上,我们的确需要 fat32 分来来存放下载的 Linux 光盘映象;我们通过这个能知道我们把光盘 ISO存放到 (hdX,Y)了,也能知道
或多个行程 (Process)的优先序 (一个或多个将根据所下的参数而定 ) 把计 p pid 重新指定行程的 id 为 pid 的行程的优先序 g pgrp 重新指定行程群组 (process group)的 id 为 pgrp 的行程 (一个或多个 ) 的优先序 u user 重新指定行程拥有者为 user 的行程的优先序 范例: 将行程 id 为 987 及 32 的行程与行程拥有者为
输入阻抗放大器,能够很好地与超声接收器件 B 相匹配,可获得较高接收灵敏度及选频特性。 VT1 采用自给偏压方式,改变 R3 即可改变 VT1 的表态工作点,超声接收器件 B 将接收到的超声波转换为相应的电信号,经 VT1 和 VT2两极放大后,再经 VD1和 VD2进行半波整流变为直流信号,由 C3 积分后作用于 VT3和基极,使 VT3 由截止变为导 通,其集电极输出负脉冲,触发器 JK触发
法很好地工作。 在我们遇到 INPUT 链的默认规则前,我们把它记入日志以便 发现可能的问题或 bugs。 它或者是一个我们不允许的包,或者是对我们做坏事的人,或者是我们防火墙中的一个问题,不允许那些被允许的包。 无论是那种情况我们都想知道然后做出处理。 虽然每分钟我们记录不超过 3个包,这是为了使日志文件不被垃圾充斥,我们还为日志记录加了前缀,使我们知道它是哪来的。 不被匹配的东西就会被