硬盘扇区

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的限制下

《ucore lab1 练习4》实验报告

时光总嘲笑我的痴心妄想 提交于 2019-12-02 14:44:49
[练习4]分析bootloader加载ELF格式的OS的过程 通过阅读bootmain.c,了解bootloader如何加载ELF文件。通过分析源代码和通过qemu来运行并调试bootloader&OS,理解: 1.bootloader如何读取硬盘扇区的? 2.bootloader是如何加载ELF格式的OS? 问题1:bootloader如何读取硬盘扇区 分析原理 阅读材料其实已经给出了读一个扇区的大致流程: 1.等待磁盘准备好 2.发出读取扇区的命令 3.等待磁盘准备好 4.把磁盘扇区数据读到指定内存 实际操作中,需要知道怎样与硬盘交互。阅读材料中同样给出了答案:所有的IO操作是通过CPU访问硬盘的IO地址寄存器完成。硬盘共有8个IO地址寄存器,其中第1个存储数据,第8个存储状态和命令,第3个存储要读写的扇区数,第4~7个存储要读写的起始扇区的编号(共28位)。了解这些信息,就不难编程实现啦。 分析代码 bootloader读取扇区的功能是在boot/bootmain.c的readsect函数中实现的,先贴代码: static void waitdisk ( void ) { //如果0x1F7的最高2位是01,跳出循环 while ( ( inb ( 0x1F7 ) & 0xC0 ) != 0x40 ) /* do nothing */ ; } /* readsect -

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。但是由于早期硬盘外圈密度低,导致盘片利用率不高

操作系统——文件管理

此生再无相见时 提交于 2019-12-01 08:55:34
目录 一、文件系统 1.1文件与文件系统 1.2文件的逻辑结构 1.3文件目录 1.4文件共享 1.5文件保护 二、文件系统实现 2.1文件系统层次结构 2.2目录实现 2.3文件实现 三、磁盘组织与管理 3.1磁盘的结构 3.2磁盘调度算法 3.3磁盘的管理 一、文件系统 1.1文件与文件系统 1、文件 1)数据项 在文件系统中,数据项是最低级的数据组织形式。分为两种类型: 基本数据项。描述一个对象某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称字段。除了数据名还有数据类型 组合数据项。由若干基本数据项组成 数据项的名字和类型共同定义了数据项的“型”,表征一个实体在数据项上的数据称为“值” 2)记录 记录是一组相关数据项的集合,用于描述一个对象在某方面的属性 一个记录应包含哪些数据项取决于需要描述对象的哪个方面 唯一标识一个记录的一个或多个数据项称为 关键字 3)文件 文件是具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件 有结构文件由若干个相关记录组成,无结构文件看成是一个字符流 文件是文件系统中最大的数据单位 文件属性包括:文件类型、文件长度、文件的物理地址、文件的建立时间 2、文件系统 1)定义 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法;也指用于存储文件的磁盘或分区,或文件系统种类

详解Linux磁盘管理与文件系统

☆樱花仙子☆ 提交于 2019-12-01 05:08:37
磁盘基础 硬盘结构 物理结构 盘片:硬盘有多个盘片,每盘片 2 面。 磁头:每面一个磁头。 数据结构 扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区。 硬盘的第一个扇区,叫做引导扇区。 磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个 圆形轨迹,这些圆形轨迹就叫做磁道。 柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组 成的一个圆柱面。 储存容量 硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数。 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,用 fdisk -l 查看分区信息。 硬件的接口 硬盘按数据接口不同,大致分为 ATA(IDE) 和 SATA 以及 SCSI 和 SAS ,接口速度不是实 际硬盘数据传输的速度。 ATA :全称 Advanced Technology Attachment ,并口数据线连接主板与硬盘,抗干扰性 太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代。 SATA :全称 SerialATA ,抗干扰性强,支持热插拔等功能,速度快,纠错能力强。 SCS I:全称是 Small Computer System Interface (小型机系统接口), SCSI 硬盘广为 工作站级个人电脑以及服务器所使用,资料传输时 CPU 占用率较低

Linux入门(磁盘与挂载)

女生的网名这么多〃 提交于 2019-12-01 05:02:05
Linux入门之 磁盘管理与挂载   在我们使用计算机或者是服务器时,总会需要接入外部存储的时候,正如我们使用的移动硬盘、U盘、接入手机等,就是一个接入外部存储的过程。上述这些在接入Windows时我们都能看到系统会自动安装驱动,接着就可以直接使用了。但是在LInux下,我们若想手动接入一块硬盘,有四个步骤: 1.磁盘分区 2.格式化 3.挂载 4.存储和读取 磁盘    磁盘 是指利用磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。 早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘)。 软盘 Soft Disk 硬盘 Hard Disk   硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁盘有两个面,每个面都有一个磁头,习惯用磁头号来区分

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 年 1

核能气质少年 提交于 2019-11-29 01:55:34
1、为主机新增两块30GB的SCSI硬盘 关机 编辑虚拟机设置添加硬盘 开机 2、划分3个主分区,各5GB,剩余空间作为扩展分区 [root@localhost ~]# fdisk /dev/sdb 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分区号 (1-4,默认 1): 起始 扇区 (2048-62914559,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-62914559,默认为 62914559):+5G 分区 1 已设置为 Linux 类型,大小设为 5 GiB 命令(输入 m 获取帮助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p 分区号 (2-4,默认 2): 起始 扇区 (10487808-62914559,默认为 10487808): 将使用默认值 10487808 Last 扇区, +扇区 or +size{K,M,G} (10487808-62914559,默认为 62914559):

CentOS 7 启动故障、密码忘了怎么办?服务启动怎么优化?手把手教你解决!

*爱你&永不变心* 提交于 2019-11-28 14:03:43
前 言: 在解决问题前我们先了解一下开机引导的过程: 启动故障主要出现在前三个步骤,开机自检主要是检查硬件是否损坏,主要是检查CPU和内存, 所以如果是这一步骤出问题了我们就需要更换硬件了。下面我开始从MBR开始讲。 什么是MBR? 通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊管理职能,作为管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。主引导扇区由三个部分组成(共占用512个字节): 1.主引导程序即主引导记录(MBR)(占446个字节) 可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。 2.磁盘分区表项(DPT,Disk Partition Table) 由四个分区表项构成(每个16个字节)。 负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。(具体内容略) 3.结束标志(占2个字节) 其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。 修复MBR扇区故障: 故障原因: 病毒、等造成破坏 不正确的分区操作、磁盘读写误操作 故障现象: 找不到引导程序,启动中断