柱面

2.3.3 IDE磁盘【译】

╄→尐↘猪︶ㄣ 提交于 2019-12-02 15:49:56
现代个人计算机器磁盘是从IBM PC XT进化而来,XT的磁盘控制器位于插件卡中,控制着10MB的希捷磁盘。希捷磁盘由4个磁头,306个柱面,每个磁道有17个扇区。控制器能够操作两个驱动。操作系统读写磁盘的方式是:把参数放进CPU寄存器,然后调用PC内建只读内存中的BIOS(基本输入输出系统)。BIOS发布机器指令来加载硬盘控制器寄存器。 从控制器位于分开的板子上,到控制器和驱动紧密集成,技术的飞速发展始于20世纪70年代中期的IDE驱动(电子集成驱动器)。然而,BIOS的调用规范由于向后兼容的原因并未发生变化。调用规范通过给磁头,柱面和扇区编号来给扇区编址,磁头和柱面从0开始编号,扇区从1开始。这种选择可能是来自早期BIOS程序员犯的错误,他在8088汇编器中编写他的杰作。磁头编号有4位,扇区编号有6位,柱面有10位,最大的驱动可能有16个磁头,63个扇区和1024个柱面,合计1032192个扇区。这样一个最大的驱动能存储504MB,在当时看起来似乎是无限的,在今天肯定不是。(你会抱怨今天新买的计算机不能驾驭超过1000TB的驱动吗?) 很不幸的是,不久,504MB以下的驱动诞生了,但是它的结构是错的(比如,4个磁头,32个扇区,2000个柱面共计256000个扇区)。由于一成不变的调用规范,操作系统无法给扇区编址。就这样,磁盘控制器开始撒谎了,假装驱动结构处于BIOS的限制下

Linux磁盘

眉间皱痕 提交于 2019-12-02 03:05:34
1、磁盘的接口类型与命名方式   磁盘接口分为SATA、SCSI、SAS、PCI-E、光纤FC通道。常见的设备在Linux中的命名如下: 设备   设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCSI/SATA/USB硬盘 /dev/sd[a-p] U盘 /dev/sd[a-p] 软驱 /dev/fd[0-1] 打印机 25针:/dev/lp[0-2] USB:/dev/usb/lp[0-15] 当前CD ROM/DVD ROM /dev/cdrom   1.1 IDE接口   IDE的接口是40个针39个口,防插反。一个IDE扁平线缆可以连接两个IDE设备,通常主机提供两个IDE接口,所以最多连接4个IDE设备。这两个IDE接口又被称为IDE1(primary)和IDE2(secondary)。每条IDE扁平线缆上的IDE设备被分为Master(主设备)和Slave(从设备)。这四个IDE设备的文件名如下表: IDE/Jumper Master Slave IDE1(Primary) /dev/hda /dev/hdb IDE2(Secondary) /dev/hdc /dev/hdd   1.2SATA接口   SATA口的磁盘又叫串口磁盘。   SATA接口磁盘的命名方式不同于IDE的顺序命名,而是依照Linux内核检测到磁盘的顺序。例如:  

硬盘分区及Linux文件系统

左心房为你撑大大i 提交于 2019-12-01 16:40:05
1. 硬盘物理结构 硬盘物理上主要分为: 盘片 磁道 扇区 机械臂 磁头 主轴 磁道: 当硬盘盘片旋转时,磁头若固定在一个位置上,则磁头会在盘片表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。以盘片中心为圆心,由此可以划分出很多磁道来, 这些磁道用肉眼是根本看不到的,因为它们仅 是盘面上以特殊方式磁化了的一些磁化区,硬盘上的信息便是沿着这样的轨道存放的, 盘片上的磁道由外向内依次从“0”开始进行编号。 柱面: 由于硬盘可以由很多盘片组成,不同盘片的相同磁道就组成了柱面(cylinder),如第一个图片。 磁头: 假设有N个盘片组成的硬盘,那么有2N个盘面(一个盘片有2面),那么磁头也就有2N个,即每个盘面有一个磁头。 扇区: 早期的硬盘盘片的盘面以圆心开始向外放射状将磁道分割成等分的弧段,这些弧段便是硬盘的扇区。每个扇区一般规定大小为512byte,这里大家应该比较疑惑,外圈周长很明显比内圈要长,怎么可能每个扇区都是512byte?其实答案早期硬盘外圈存储比内圈存储密度低一些,所以外圈很长但是仍然只能存储512byte,因此如果我们知道了柱面数(磁道数) Cylinders、磁头数Heads、扇区数Sectors,基本上硬盘的容量我们能够计算出来 硬盘总容量= Cylinders * Heads * Sectors * 512byte。但是由于早期硬盘外圈密度低,导致盘片利用率不高

007块设备驱动

纵饮孤独 提交于 2019-11-29 05:55:06
一、 块设备驱动程序的引入(第十八课/第一节) 总结一下字符设备驱动程序: 1、引入字符设备驱动程序 当应用程序调用 open 时,驱动程序的 drv_open 函数就会被调用。 2、 最简单驱动程序的写法 1. 确定主设备号:可以自己确定,也可让内核分配。 2. 构造驱动中的"open,read,write"等函数,然后放入"file_operation"结构体里。 3. register_chrdev 注册字符设备,把构造的"file_operation"结构放到内核的字符设备中的以主设备号为下标的数组中去。"register_chrdev(主设备号,主设备名,file_operation结构)." 4. 入口函数:调用这个"register_chrdev"函数,内核装载某个模块时,会自动的调用这个入口函数。 5. 出口函数:调用"unregister_chrdev" 3、 我们按键驱动为例写了很多个驱动程序 1. 查询方式:驱动程序提供一个读函数,直接返回某个引脚状态,应用程序会不断的读取,比较前后两次的引脚状态是否有变化。CPU的占用率会很高。 2. 中断方式(休眠唤醒):应用程序使用读函数时进入驱动程序的读函数。在驱动程序里,若没有数据就休眠,若有中断发生就会被唤醒,然后copy_to_user把数据拷贝到用户空间。 3. poll机制:就像定闹钟一样

精解磁盘与文件系统管理

时光总嘲笑我的痴心妄想 提交于 2019-11-27 21:15:52
一、磁盘基础 磁盘是指利用磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(简称软盘),如今常用的磁盘是硬磁盘(简称硬盘)。 1、硬盘的结构 (1)物理结构 盘片:硬盘有多个盘片,每盘片2面。 磁头:每面一个磁头。 (2)数据结构 扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区)硬盘的第一个扇区,叫做引导扇区。 磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。 柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面。 (3)存储容量 硬盘存储容量=磁头数X磁道(柱面)数X每道扇区数X每扇区字节数。可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域。 2、硬盘接口 IDE:并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被SATA所取代。SATA:支持热插拔等功能,速度快,纠错能力强。 SCSI:此硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低转速快,支持热插拔等。 SAS:是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s。 二、磁盘分区表示 1、MBR MBR是主引

【收藏】FAT文件系统原理——MBR(主引导记录

为君一笑 提交于 2019-11-27 11:19:58
FAT文件系统原理——MBR(主引导记录) 一、硬盘的物理结构: 硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。 硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。 二、硬盘的逻辑结构。 硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。如果有N个盘片。就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。)每个盘片的划分规则通常是一样的