免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5532 | 回复: 10
打印 上一主题 下一主题

linux下mkfs的实现问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-17 16:35 |只看该作者 |倒序浏览
各位大侠,我在man page搜了很久也没有找到linux下有提供格式化硬盘的系统调用,同样C语言的库里似乎也没有提供类似的函数。那么由此产生一个问题:shell下的mkfs命令是怎么实现的呢?

请各位大侠不吝赐教!谢谢。

论坛徽章:
0
2 [报告]
发表于 2007-07-17 16:51 |只看该作者

我猜的。

一,设备文件(路径 /dev 下)
1,硬盘。硬盘设备文件是 sda,sdb,等,也有的是hda,hdb,等表示一块硬盘。
2,硬盘分区。比如:sda,如果他有多个分区,那么会有sda1,sda2,等。

二,文件系统
1,一切皆文件。Linux里面,所有设备都是文件,包括硬盘。
2,原始数据。在设备文件里面,只是一堆字节而已,理解成为一堆比特,也可以。
3,文件系统。文件系统是用来管理这一堆字节,方便使用。一般有文件,路径的概念。例如fat32, ext2等。

三,mkfs
1,可能调用文件系统驱动实现。那样,需要知道怎么调用驱动。
2,可能直接读写设备文件实现。那样,需要自己搞明白文件系统格式,再对设备文件操作。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2007-07-17 18:07 |只看该作者
open,write,read.....

论坛徽章:
0
4 [报告]
发表于 2007-07-19 09:21 |只看该作者
三,mkfs
1,可能调用文件系统驱动实现。那样,需要知道怎么调用驱动。
2,可能直接读写设备文件实现。那样,需要自己搞明白文件系统格式,再对设备文件操作。
----------------------------------------------------------------------------------------------------
“直接读写设备文件”就是像三楼所说的用open、read、write吗?这样可以实现硬盘格式化吗?能否说得具体一点?

论坛徽章:
0
5 [报告]
发表于 2007-07-19 09:49 |只看该作者
mkfs仅仅是按照文件系统的格式往设备上写数据。

你觉得什么是格式化

论坛徽章:
0
6 [报告]
发表于 2007-07-19 11:39 |只看该作者
原帖由 cjaizss 于 2007-7-17 18:07 发表
open,write,read.....

这些都是在文件系统之上干的事,格式化是要构建个文件系统

论坛徽章:
0
7 [报告]
发表于 2007-07-19 11:41 |只看该作者
原帖由 feasword 于 2007-7-19 11:39 发表

这些都是在文件系统之上干的事,格式化是要构建个文件系统


是在你已有的文件 系统上构建新的文件系统,所以 open, write, close正解

论坛徽章:
0
8 [报告]
发表于 2007-07-19 15:15 |只看该作者
原帖由 cjaizss 于 2007-7-17 18:07 发表
open,write,read.....


为什么linux不把这些构建文件系统的操作封装到一个系统函数中去呢?
像windows就提供了硬盘格式化的API

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
9 [报告]
发表于 2007-07-19 17:33 |只看该作者
原帖由 tianix 于 2007-7-19 15:15 发表


为什么linux不把这些构建文件系统的操作封装到一个系统函数中去呢?
像windows就提供了硬盘格式化的API

难道 Linux 提供的就不叫 API 了?你是想说 system call 吧?

论坛徽章:
0
10 [报告]
发表于 2007-07-19 18:36 |只看该作者
原帖由 tianix 于 2007-7-19 15:15 发表


为什么linux不把这些构建文件系统的操作封装到一个系统函数中去呢?
像windows就提供了硬盘格式化的API


system("mkfs -t ext2 /dev/hda");
这样比windows的好用吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP