a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 117|回复: 1

[LPI认证] linux学习:LPI硬件和体系结构(五)

[复制链接]
发表于 2012-8-4 12:13:19 | 显示全部楼层 |阅读模式
正!   即插即用(Plug and play)" ?3 n( K/ e* Z' C3 ^- l- n' H
  早期的 PC 为特定设备分配固定的端口号和 IRQ,比如键盘或者并行打印端口。这导致难以添加新设备或者使用两个相同类型的设备,比如两个调制解调器或者两个打印机。第一个串行端口通常称为 COM1,第二个称为 COM2。Linux 系统通常将它们称为 ttyS0 和 ttyS1。例如,某些可配置的卡通常具有硬件跳线,允许一个调制解调器既可以在 COM1 上使用也可以在 COM2 上使用。随着设备越来越多,原来分配的 IO 端口地址空间和 IRQ 不再能满足要求,从而提出了 即插即用(Plug and Play,PnP)。其思想是,允许设备告诉系统它需要多少资源及所需资源的种类,然后由 BIOS 告诉设备它应该使用的具体资源。IBM PS/2 开始使用这种半自动的配置,它使用了一种称为 微通道(microchannel) 的总线体系结构。后来,那个思想以及即插即用这一名称得到了 ISA 卡的使用,尤其是调制解调器和声卡,当时它们是流行的附加设备卡。PCI 总线进一步发展了那个思想,所有 PCI 设备都本质上是即插即用的。) o- G- G1 T! K& i* F8 d
  如果使用的系统恰巧安装了 ISA PnP 设备,那么要意识到您必须避免设备间端口和 IRQ 的冲突。两个设备不能共享端口;每个设备 必须 拥有它自己的端口。这同样适用于 DMA 通道。除了一些例外情形,ISA 设备也不能共享 IRQ。如果有 非-PnP 设备,那么必须手工配置每个设备,以使得它不与其他设备相冲突。PnP 能够做的事情是自动执行配置。不过,如果有某些 ISA 设备不参与 PnP,那么这可能不会总是完全成功。为了让系统可用,可能能够使用 isapnptools(接下来会讨论)来解决冲突,或者可能不得不重新分配 非-PnP 设备上的某些端口和 IRQ。* g5 l" M4 \/ }9 e, A
  在 2.4 内核之前,有一个名为 isapnptools 的软件包可以支持用户配置 PnP 设备。 isapnp 命令会解释配置文件(通常是 /etc/isapnp.conf)来配置 PnP 设备。这通常是在 Linux 引导过程中完成的。pnpdump 命令会扫描 PnP 设备,并转储 PnP 卡所需要的或者将要使用的资源列表。其格式可以由 isapnp 命令使用,只需要去掉实际希望使用的命令的注释。必须确保避免资源冲突。请参考 isapnp 和 pnpdump 的手册页以获得关于使用这些命令的更多资料。
: G" Z9 ]+ [1 R1 o/ D5 J8 S  从 2.4 内核起,Linux 内核就已经集成了 PnP 支持,isapnptools 软件包成为过时工具。例如,在 2002 年 5 月发布的 Red Hat 7.3 中已经将它删除了。这种支持类似于前面讨论的 PCI 支持。可以使用 lspnp 命令(kernel-pcmcia-cs 软件包的一部分)来显示关于 PnP 设备的信息。如果 BIOS 在初始化过程中找到了 PnP 设备,那么可以在 /proc 文件系统中找到其信息。文件 /proc/bus/pnp 将包含此信息。在只有 PCI 的系统中,这个文件不会出现。
# B2 }' e, B* S9 F  IDE 硬盘驱动器
/ U+ u7 w" T7 @5 D2 S* I  在现代 PC 系统中,Integrated Drive Electronics(IDE)硬盘驱动器最为常见。与最初的 IBM PC-AT 相一致,这些也称为 AT Attachment(ATA)。另一类使用 Small Computer System Interface(SCSI)接口的驱动器也很流行,尤其是在服务器机器上。IDE 驱动器的优势在于价格低廉,而 SCSI 接口支持连接大量驱动器,并且在同一总线上对不同驱动器进行重叠操作的能力更强,因此具有更高的潜在性能。( j& s" z  @" I2 V( I4 Z4 b5 m
  一种名为 Serial ATA(SATA)的新类型驱动器最近进入了市场。SATA 规范试图突破 ATA 规范的某些限制,同时保持与 ATA 的有效兼容。) P, P8 B- u5 p8 H7 R7 }  m8 |% L) A
  BIOS 和 IDE 驱动器大小
5 U2 B! q' z- ^  f! P. S- J, f  IDE 驱动器格式化为 扇区(sectors),即 512 字节的数据单元。一个驱动器可能包括多个旋转的盘面,所以扇区被排列中同心圆中,每个圆称为一个 柱面(cylinder)。通过 磁头(head) 来读写特定盘面的数据。要找到特定扇区的数据,磁盘会移动分配给那个柱面的磁头,选择适当的磁头并等待正确的扇区移动到磁头下面。这就引出了 CHS(表示 Cylinder、Head 和 Sector)寻址的概念。您可能也听说这叫做 磁盘几何学(disk geometry)。
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:13:20 | 显示全部楼层

linux学习:LPI硬件和体系结构(五)

  历史上很不幸,早期的 BIOS 对所允许的 C、H 和 S 值实行了限制,并且,PC 所用的流行操作系统 DOS 也实行了另外的限制。在九十年代,磁盘的迅速超出了 BIOS 和 DOS 所施加的人为的 CHS 限制。人们使用了一些中间策略来将实际的 CHS 值转化为满足那些约束的 “虚拟”值,那些约束是 BIOS 本身的约束,或者是 Ontrack 的 Disk Manager 软件等底层软件例程的约束。
# [# z1 T7 Z7 r5 D2 H& W1 o. `  就算是没有 BIOS 或者 DOS 的人工限制,CHS 设计也最多只允许 65536 个柱面、16 个磁头,以及 255 扇区/磁轨。这就将容量限制为 267386880 个扇区,即大约 137 GB。注意,磁盘的容量以 10 的幂次来度量,所以 1GB=1,000,000,000 字节,不同于某些其他 PC 值。8 I; [  _( f0 L& t$ c, v& V
  解决方案是让系统忽略几何结构,交由驱动器来完成。系统不需要去查询 CHS 值,而只需要查询 逻辑块地址(Logical Block Address,LBA),驱动器电子装置会找出要读或写的实际扇区。这一过程在 1996 年被标准化,并由 ATA-2 标准所采纳(ANSI 标准 X3.279-1996,AT Attachment Interface with Extensions)。
5 |$ R! @5 a) [  如前所述,BIOS 需要引导系统,所以,要从硬盘驱动器引导,BIOS 对磁盘的布局所了解的程度必须足以定位并加载初始化程序,初始化程序接下来加载整个操作系统。不支持 LBA 磁盘的较老的 BIOS 可能被限制只能从磁盘的前 1024 个柱面进行引导,或者至少前 1024 个柱面,就像是 BIOS 知道磁盘的几何结构一样!现在这种 BIOS 可能已经相当少见了,不过,如果确实需要使用这样一个 BIOS,那么它可能有用于 LBA 支持的设置,而且您可能需要将 /boot 目录置于前 1024 柱面之内的分区中。就算是系统可以顺利地从非常大的硬盘的最末尾处引导,但很多 Linux 分区工具会警告您分区扩展超出了 1024 柱面限制。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-15 09:30 , Processed in 0.153285 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表