📄 node30.html
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds --><HTML><HEAD><TITLE>Hard disks</TITLE><META NAME="description" CONTENT="Hard disks"><META NAME="keywords" CONTENT="sag"><META NAME="resource-type" CONTENT="document"><META NAME="distribution" CONTENT="global"><LINK REL=STYLESHEET HREF="sag.css"></HEAD><BODY LANG="EN" > <A NAME="tex2html672" HREF="node31.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html670" HREF="node28.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html664" HREF="node29.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html674" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html675" HREF="node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR><B> Next:</B> <A NAME="tex2html673" HREF="node31.html">Floppies</A><B>Up:</B> <A NAME="tex2html671" HREF="node28.html">Using Disks and Other </A><B> Previous:</B> <A NAME="tex2html665" HREF="node29.html">Two kinds of devices</A><BR> <P><H1><A NAME="SECTION00520000000000000000">硬盘</A></H1><P>本节介绍有关硬盘的术语。如果你已经知道这些项目和内容,可以跳过本节。<P>见图<A HREF="node30.html#fighdschematic">4.1</A>,是硬盘重要部分的图解。硬盘包括一到数片<b>盘片platters</b>,<A NAME="tex2html11" HREF="footnode.html#1028"><IMG ALIGN=BOTTOM ALT="gif" SRC="./foot_motif.gif"></A>其一个或两个<b>面surfaces</b>涂有磁性材料用于记录数据。每面有一个<b>读写头read-write head</b>用于读写数据。盘片有一个共同的轴,典型的旋转速度是每分钟3600转,高性能的硬盘转速可能更高。磁头可沿着盘片的半径移动,磁头移动加上盘片旋转可以使词头存取磁盘表面的任何一个位置。<P>处理器(CPU)和实际磁盘通过<b>磁盘控制器disk controller</b>通讯。这使计算机其他部分不必知道如何使用驱动器,因为不同磁盘的控制器可以做成对计算机其他部分相同的接口。这样,计算机只要说"嗨,磁盘,给我我要的东西",而不是用一串长而复杂的电信号来移动磁头到正确的位置,并等正确的位置到了磁头下后再做那些不愉快的工作。(实际上,到控制器的接口仍然很复杂,但比没有好多了。)控制器还可以做一些其他的事,比如缓冲,或自动坏扇区替换等。用电信号控制操作机械部件,<P>以上只是理解硬件所需的。还有其他好多工作,比如马达旋转磁盘、移动磁头,但这都与理解硬盘工作原理无关。<P>磁盘表面通常被分为同心圆环,叫<b>磁道tracks</b>,磁道又被分为<b>扇区sectors</b>。用这样分来将磁盘定位,用于为文件定位磁盘空间。要在硬盘上找到给定的位置,可能说"3面5道7扇区"。通常所有磁道有相同的扇区数,但也有硬盘在外圈磁道放较多的扇区(所有扇区用同样大小的物理空间,这样在较长的外圈磁道可以容纳更多的数据)。一般一个扇区容纳512字节数据。磁盘不能处理比一个扇区更小的数据量。<P> <P><A NAME="1038"> </A><A NAME="fighdschematic"> </A><IMG WIDTH=367 HEIGHT=410 ALIGN=BOTTOM ALT="figure1034" SRC="img4.gif"><BR><STRONG>Figure 4.1:</STRONG> A schematic picture of a hard disk.<BR><P><P>每个面以相同的方式分为磁道和扇区。这意味着当一个磁头在某个磁道时,其他磁头也在相应的位置,所有相同位置的磁道组成<b>柱面cylinder</b>。磁头从一个磁道(柱面)移动到另一个需要花时间,所以将经常要在一起存取的数据(如一个文件)放在一个柱面里。这改善了性能。当然不可能完全作到,文件被放在几个相分离的位置叫<b>碎片fragmented</b>。<P>磁盘的面(或头,实际是一样的)、柱面、扇区数各不相同,硬盘这些数目叫<b>硬盘参数geometry</b>。硬盘参数通常存在一个特定的、由电池供电的存储区中,叫<b>CMOS RAM</b>,操作系统在引导启动或驱动器初始化时可以从那里得到硬盘参数。<P>不幸的是,BIOS<A NAME="tex2html12" HREF="footnode.html#1045"><IMG ALIGN=BOTTOM ALT="gif" SRC="./foot_motif.gif"></A>有一个设计限制,就是不能在CMOS RAM中定义大于1024的磁道数,这对大硬盘来说就太小了。为了克服这个问题,硬盘控制器在磁盘参数上做了一个欺骗,用<b>地址转换translates the addresses</b>使计算机接受。例如,一个硬盘可能有8个磁头,2048个磁道,每磁道35个扇区<A NAME="tex2html13" HREF="footnode.html#1047"><IMG ALIGN=BOTTOM ALT="gif" SRC="./foot_motif.gif"></A>。其控制器可以对计算机谎称它有16个磁头,1024个磁道,每磁道35个扇区,这样就没有超过磁道数的限制,地址转换将磁头数减半,磁道数加倍后传给硬盘。实际的算法可能更复杂,因为数量可能不象我们在这里假设的这么好(但这不影响我们理解原理)。这个转换在操作系统来看产生了错觉,并可能影响操作系统对把所有数据存在相同柱面的企图受到影响。<P>转换只是IDE硬盘的问题。SCSI硬盘使用连续的扇区号(即控制器将连续的扇区好转换成磁头、柱面、扇区的三参数组),对CPU与控制器的通信使用完全不同的方法,因此不会有这个问题。注意,计算机可能根本不知道一个SCSI硬盘的实际参数。<P>由于Linux经常不知道一个硬盘的真正参数,其文件系统也不试图将文件存在一个柱面里。而是争取给一个文件分配连续编号的山区,这样能得到类似的性能。对于控制器上有cashe或控制器能自动预取的硬盘,情况将更复杂。<P>每个硬盘表现为一个单独的设备文件。通常只能有2-4个IDE硬盘。这就是<tt>/dev/hda</tt><A NAME="1460"> </A>, <tt>/dev/hdb</tt><A NAME="1462"> </A>,<tt>/dev/hdc</tt><A NAME="1464"> </A>, 和<tt>/dev/hdd</tt><A NAME="1466"> </A>。SCSI是<tt>/dev/sda</tt><A NAME="1468"> </A>, <tt>/dev/sdb</tt><A NAME="1470"> </A>, 等等。其他硬盘类型有类似的命名约定,更多的信息见[<A HREF="node107.html#device-list">Anv</A>]。注意硬盘的设备文件给出整个硬盘的存取,而不是分区(下面讨论的),因此如果不小心可能搞乱分区或数据。硬盘的设备文件只在存取主引导扇(也将在下面讨论)时使用。<P><HR><A NAME="tex2html672" HREF="node31.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html670" HREF="node28.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html664" HREF="node29.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html674" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html675" HREF="node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR><B> Next:</B> <A NAME="tex2html673" HREF="node31.html">Floppies</A><B>Up:</B> <A NAME="tex2html671" HREF="node28.html">Using Disks and Other </A><B> Previous:</B> <A NAME="tex2html665" HREF="node29.html">Two kinds of devices</A><P><ADDRESS><I>Lars Wirzenius <BR>Sun Jun 29 13:31:22 EEST 1997</I></ADDRESS></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -