2 illegal id illegal_id 于 2016.04.23 16:47 提问

块读写设备的CHS访问问题

在查看u盘设备的mbr时发现,其DPT里面还是和普通机械磁盘一样的申明了起始终止的磁头柱面和扇区。这个是怎么回事的呢?
我的猜测是兼容考虑u盘也是是提供chs访问的,这倒是能解释上一个问题,可是有牵扯到另外一个问题。
就是一个u盘,其虚拟出来的磁头数,最大柱面数,每磁道扇区数,这几个参数是怎么确定的呢?
在u盘的数据中?可是mbr中没有啊
由主板决定,那岂不是同一个u盘用来做启动盘还不得乱了套?
统一值,没听过也没看出来啊?
所以到底是怎么样的呢

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.24 04:30
已采纳

chs和mbr没有关系,这是cmos设置和bios决定的。你打开cmos设定,发现除了一个auto以外,chs是可以自己编辑的。其实这个是为了兼容dos时代的老程序,早就没用了,不必管它。

illegal_id
illegal_id 不过mbr的dpt里分别有3个字节表示起始和终止的chs,而且我记得好像int 13h中断也是通过chs来加载dbr了,现在我假设一中极端情况。 cmos里设置只有64个磁头,dpt里表示dbr所在扇区为255磁头,会发生什么? 而且我记得dbr里也是有几个以及表示分区最大磁头数,磁道扇区数,这和cmos会不会产生冲突
大约 2 年之前 回复
CSDNXIAOD
CSDNXIAOD   2016.04.23 16:52

对块设备读写时发生了什么?
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mtd块设备缓冲操作---mtdblock.c
这个文件中并没有增加mtd块设备,mtd块设备的代码文件是Mtd_blkdevs.c。它的功能是为mtd块设备读写提供缓冲操作。 驱动入口: static struct mtd_blktrans_ops mtdblock_tr = { .name = "mtdblock", .major = 31, .part_bits = 0, .blksize = 512, .o
Android平台读写i2c设备开发笔记一
在android开发和移植过程中,有时需要对某设备进行读写,但系统可能并未提供相应的服务。我们就需要自己开发硬件访问服务来控制设备。下面的例子是读写最简单的i2c设备eeprom的流程, i2c的驱动编写有两种方式,一种是利用系统提供的i2c-dev.c来实现一个i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写一个设备驱动,不需要i2c-de
C# 访问USB(HID)设备方法二
依次使用一下函数: 1、static public extern void HidD_GetHidGuid (ref System.Guid HidGuid); 2、static public extern IntPtr SetupDiGetClassDevs(ref System.Guid ClassGuid, string Enumerator, int hwndParent, i
磁盘快速读写简析
原文:http://blog.csdn.net/blues1021/article/details/44134623 快速读写磁盘数据的方法: 1.块读取:一下子将数据读取到内存的(无论是文本还是二进制),而不是一行行的读取。 2.异步的IO,创建多线程,或者使用重叠IO,IO复用,异步的事件回调通知机制(可以用事件对象,信号驱动来实现)。 3.优化分析文件的算法和尽量
嵌入式linux之Nor/Nand FLASH的读写
http://www.cnblogs.com/tureno/articles/2708461.html 所谓Flash,是内存(Memory)的一种,但兼有RAM和ROM 的优点,是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器,同时它的高集成度和低成本使它成为市场主流。     Flash 芯片是由内部成千上万个存储单元组成的,每个单元存储一个bit。具有低功耗、大容
缓冲技术之一:缓冲问题的来源和解决方法
缓冲技术某种程度上而言也是符合银弹理论,增加了一层抽象层–缓冲区,用于解决上下游机器介质速度不匹配导致的程序速度缓慢的问题。缓冲器是一个存储器,它可以是硬件级的,即独立于内存外设置的专门硬件缓冲器(内存页表起始地址寄存器),也可以是软件级的,即由软件在内存中开辟一块缓冲区域(buffer,cache)。硬件要花钱,所以一般用在关键的地方。1. 引入缓冲技术的原因 1.Cache缓存,减少读块设备的
PCIe设备漫游记----寄存器读写篇
上篇中,我们设备打开函数已经得到了我们PCIe设备的句柄了。接下来我们来看看,设备打开之后,上层软件是怎样利用该句柄实现对设备上具体寄存器的访问的。 1:寄存器写操作 上层应用程序写操作函数代码: /********************************************************************/ /* Write register 3
Linux系统中用户空间访问I2C接口设备
嵌入式Linux系统中,用户空间访问I2C接口设备代码示例,有需要的可以参考。
在Linux 2.6环境下读写HID设备(USB Key)
      Linux 2.6内核中包含了HID驱动,能够自动把USB Key等HID外设识别成“/dev/hiddev0”之类的设备。但是该驱动没有实现write接口,因此无法象Windows平台那样使用 ReadFile和WriteFile来读写HID设备,而只能使用ioctl接口。      网上有各种各样读写HID设备的源代码例子,有的是通过HIDIOCSUSAGE和HIDIOCGUSAG
chs_boot.ttf 字体
chs_boot ttf 字体