谁能来说说,逻辑的文件系统和物理的硬盘存储介质之间是如何建立的关联?!
这些天一直在看linux的文件系统,我想说的是文件系统总是逻辑的,那么如何和物理的硬盘存储介质建立关联的,我是越看越不懂,越看越乱,能给个提示或者怎么一个理解方法,或者给点资料也行。对于硬件还是有点了解的,比如硬盘吧,都是对应CPU的物理地址上的唯一东西,内存也一样由CPU决定了内存的唯一分配地址,但总有一个起始点地址,硬盘一样,内存也一样,但如何从这个硬盘的物理起始地址开始或内存的物理开始地址,来构建linux的文件系统呢?!乱啊,理解的头都大了,我想linux的文件系统就如同一个个对象操作一样,应该是统一的吧?! 还是有区别的啊?! 哪位能来说说啊,给点思路和具体的理解方法了。谢谢!!!!
相思爱文 于 2012-11-06 07:16:13发表:
[i=s] 本帖最后由 相思爱文 于 2012-11-6 07:17 编辑 [/i]
这个问题有些难住我了。下面说得很不专业,供参考。
计算机的硬件,只是一些集成电路。需要由编程控制。单独拿出硬盘来,它是一个独立的设备,相当于一台功能相对单一的计算机。它由内部驱动电路,对碰盘完成读写等操作。而对外,提供接口。
硬盘,本身不认识分区、文件系统等东东,只认识位置和数据(0和1)。
操作系统,dos时代,对系统没有太多限制,可以通过编程命令对硬盘物理扇区直接读写操作。
再后来,由于效率、安全性等发展,操作者不能直接对硬盘操作,每次写入硬盘数据时,是由操作系统完成。
文件系统,就是操作系统能识别和使用的数据结构。
linux,支持多种文件系统(ext2、ext3、vfat、ntfs等),每个程序和编程时,不需要知道具体是什么格式,统一对vfs操作。这样所有格式都会兼容,包括以后会出现的新文件系统。vfs是文件系统对外的接口。
计算机各组件,通过接口对外通信。硬件是这样,软件也是这样。
对硬盘或其他介质,能存储多少数据,不由操作系统控制。当内部驱动电路出现问题,操作系就不能正常存储数据了。(如黑心商家常见的U盘扩容)
文件系统和具体文件数据,对于硬盘都是一样的数据。用dd克隆备份,linux可以对不能识别的文件系统操作。