Chinaunix

标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗 [打印本页]

作者: yyt7529    时间: 2003-06-11 18:51
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
我想读区UNIX文件系统的超级块和INODE节点,谢谢!!!
作者: xzh2002    时间: 2003-06-11 18:59
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
问的太好了,我觉得不可能,否则系统就坏了
作者: hecm23    时间: 2003-06-12 08:27
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
应该可以吧? 病毒专干这事的
作者: wqkjj    时间: 2003-06-12 14:27
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
我在SCO下干过你想干的事情,因此答案是肯定的。
对于文件系统而言,超级块磁盘inode的位置都是固定的,因此,只需要打开文件系统设备文件进行读写即可。如对"/"文件系统操作,对设备文件"/dev/root"操作即可,至于offset,象超级块由宏SUPERBLOCK?(记不清了)。
有兴趣的话,应该找操作系统的文件系统结构的资料看看。
另外,从磁盘inode到文件名称的对应,以及从inode的地址到文件的数据区的处理,我没有能够作到。如果有这方面的进展,提供思路?
作者: 流浪的狗    时间: 2003-06-13 14:00
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
楼上的台兄,你想绕过unix的内核中的文件系统,而直接管理硬盘上的数据吗?你要用硬件的微指令编写在硬盘上直接定位数据的程序才行。
而此程序又能在机器引导时接管硬件的控制权才行,还有.....总之干的工作不少。至于现在流行的病毒对硬盘数据的读写都是调用文件系统的功能。这样对数据的读写限制比较多。包括使用打开文件系统设备文件进行读写的方法,也是采用调用文件系统的功能的方法对硬盘上的数据进行读写,同样限制也多。
作者: yyt7529    时间: 2003-06-14 16:37
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
我想不用吧,因为在UNIX的内核中,在文件系统下面还有一层,进行磁盘空间的管理,文件系统应该建在这个之上,

比如说当要调用系统建立一个文件时,首先系统要给它一个空闲节点,分配空闲节点是文件系统的事,但要把文件的节点和数据保存到磁盘要调用相应的磁盘空间管理模块,磁盘空间管理模块在调用磁盘驱动程序来写到磁盘上指定的扇区,
作者: wqkjj    时间: 2003-06-16 10:43
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
原帖由 "流浪的狗" 发表:
楼上的台兄,你想绕过unix的内核中的文件系统,而直接管理硬盘上的数据吗?你要用硬件的微指令编写在硬盘上直接定位数据的程序才行。
而此程序又能在机器引导时接管硬件的控制权才行,还有.....总之干的工作不少。?.........
   

不是完全绕开内核,而是不用系统提供缺省命令做一些事情而已。实际是可以作到的。系统中实际上存在内核编译的库文件,只是要对库文件中提供的函数和函数调用方法需要作一些研究而已。
所有的操作,不需要汇编指令。
作者: yyt7529    时间: 2003-06-16 15:36
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
wqkjj

你能给出在SCO的源程序吗?
作者: wolfop    时间: 2003-06-16 19:14
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
[quote]原帖由 "yyt7529"]我想读区UNIX文件系统的超级块和INODE节点,谢谢!!![/quote 发表:
     
一样open /dev/
下面的设备文件读写咯,只要你有权限。
作者: xzh2002    时间: 2003-06-17 08:32
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
那样的话,UNIX就不安全了。我觉得不能
作者: wolfop    时间: 2003-06-17 12:06
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
[quote]原帖由 "xzh2002"]那样的话,UNIX就不安全了。我觉得不能[/quote 发表:
   
你的特点就是喜欢猜测,不去实践。你自己试试在说不行吗?要对/dev下面的设备写,任何一个合格的管理员都不会乱设权限。要是不能直接对这些设备读写,数据库怎么用裸设备。
UNIX在安全也是建立在他的权限控制之上,你要有了root权限,要系统趴下还难吗?
dd if=/dev/zero of=/dev/sda就能让系统完蛋,
或者rm -rf /lib /usr/lib。
作者: yyt7529    时间: 2003-06-21 16:49
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
有谁看过postpreSQL数据库系统的源码没有,里面的磁盘空间是如何管理的,
作者: wolfop    时间: 2003-06-21 18:38
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
[quote]原帖由 "yyt7529"]有谁看过postpreSQL数据库系统的源码没有,里面的磁盘空间是如何管理的,[/quote 发表:
     
postgresql目前不支持裸设备,所以她的磁盘数据库空间还是文件系统的文件。
作者: yyt7529    时间: 2003-06-22 21:58
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
那ORACLE数据库,肯定有自己的磁盘空间管理,但在WINDOWS安装的ORACLE中每个分区都对应一个文件,我想这其中是不是有些关系,就是说ORACLE自身的磁盘空间管理和操作系统的文件系统还是有些关系,比如说要用到文件系统中的空磁盘块数据结构表,等等一些文件系统要用到的关键数据结构,或者用到他们的一些分配空磁盘块的算法什么的,
作者: tinywind    时间: 2003-06-24 16:06
标题: 在UNIX下有系统调用涵数来直接访问到硬盘某个扇区吗
wolfop的帖子提醒了,可以去看dd的源代码。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2