社区
C#
帖子详情
关于文件系统~有空的进来讨论指点下~
睡神在睡觉
2010-01-05 04:55:40
众所周知,现在主流的操作系统都带有文件系统,譬如常用的FAT16、FAT32,对存储器的读写用流之类的方法就可以,至于硬盘闪存的电磁转换之类不谈。
想问问,如果没有文件系统,对存储器该如何读写?譬如,如果我想对硬盘写入无文件系统认知的文件该如何写?或者给点思路和资料,小弟谢过了~
...全文
140
13
打赏
收藏
关于文件系统~有空的进来讨论指点下~
众所周知,现在主流的操作系统都带有文件系统,譬如常用的FAT16、FAT32,对存储器的读写用流之类的方法就可以,至于硬盘闪存的电磁转换之类不谈。 想问问,如果没有文件系统,对存储器该如何读写?譬如,如果我想对硬盘写入无文件系统认知的文件该如何写?或者给点思路和资料,小弟谢过了~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
owlet_leo
2010-01-13
打赏
举报
回复
建议你看看《操作系统》。
睡神在睡觉
2010-01-12
打赏
举报
回复
[Quote=引用 11 楼 hdt 的回复:]
直接用汇编写扇区
我记得bios 中断是 int 13h
[/Quote]
悲剧了,我是搞不定了……
真相重于对错
2010-01-12
打赏
举报
回复
直接用汇编写扇区
我记得bios 中断是 int 13h
睡神在睡觉
2010-01-12
打赏
举报
回复
又沉了……
睡神在睡觉
2010-01-12
打赏
举报
回复
to vrhero:
这些“入库单”本身也要管理,所以还需要一个“索引目录”,就是目录或文件夹...否则你连“入库单”都找不到就更找不到那些堆字节都在哪儿...另外硬盘很大所以有分区的需要,就像仓库有好几个一样,那么就会有好几本“索引目录”,这些“索引目录”又得登记造册,形成一个“总目录”好知道这些“索引目录”都放在哪儿...
这就是文件系统的大概...所以对没有文件系统的未格式化盘来说,你写什么进去都是一堆字节,没有什么意义...你要想有意义就得按上面说的那些自己造一个索引系统,这就相当于自己搞文件系统了...
但是OS不会让你随便写,因为那些目录和文件表都存放在特殊的区域,这些区域不能被破坏...而且,还有个簇的概念,文件不是满满当当地写在磁盘上的...因为逐字节读写毫无效率可言...
就是这个意思,我自己总是说不清,按硬盘原理,自己创建一个文件链表,之后按头去索引。因为这个不是用再硬盘上,再闪存上来使用,就是把一堆字节写进去,之后读出来按自己的格式还原。链表区域操作确实是很麻烦,少不小心写错了,整个存储器也就废掉了,所以才来问问这个东西该怎么操作的。
还有一点,我不大清楚,如果我用的自定义的方法写到存储器上一串字节,再Fat32或者NTFS格式下,能看到我写入的文件么?请教啦
vrhero
2010-01-08
打赏
举报
回复
没有文件系统哪里来的文件?
磁盘文件不只是一堆字节,还包含一个“文件表”之类的东西...这个表存储在硬盘上一块特殊的区域中,以特定的格式存储,不同文件系统是不同的...它相当于那堆字节的“入库单”,记录了这堆字节叫什么、分成几堆、每堆都存在什么位置等...所有这些加起来才叫文件...
这些“入库单”本身也要管理,所以还需要一个“索引目录”,就是目录或文件夹...否则你连“入库单”都找不到就更找不到那些堆字节都在哪儿...另外硬盘很大所以有分区的需要,就像仓库有好几个一样,那么就会有好几本“索引目录”,这些“索引目录”又得登记造册,形成一个“总目录”好知道这些“索引目录”都放在哪儿...
这就是文件系统的大概...所以对没有文件系统的未格式化盘来说,你写什么进去都是一堆字节,没有什么意义...你要想有意义就得按上面说的那些自己造一个索引系统,这就相当于自己搞文件系统了...
但是OS不会让你随便写,因为那些目录和文件表都存放在特殊的区域,这些区域不能被破坏...而且,还有个簇的概念,文件不是满满当当地写在磁盘上的...因为逐字节读写毫无效率可言...
但是也不是不能写,否则那些分区、格式化的软件都没法用...而是必须突破OS的安全体系到最底层去直接操作硬件中断,即所谓的0环操作...而这个区域是.NET无法进入的,必须用C/C++或汇编写底层驱动程序...
owlet_leo
2010-01-08
打赏
举报
回复
你的说法类似于在没有磁盘管理系统的情况下,进行文件操作,这种情况下C#基本不可能运行。
在我的理解是,你只是你的文件类型(扩展名)没有注册,不能被操作系统识别而已。
这时可以将它作为无类型文件进行低级的流操作,具体的行为是由你自己来理解和解释的。
就像我定义个.xlg文件(扩展日志文件),我的系统不能识别他,但我知道实际上他只是个text文件(文本文件)格式的文件,对他的操作也有我自己理解和解释。比如,我将它强制解释为text文件。
具体操作使用Windows API,如:OpenFile,CloseFile,WriteFile即可。
BIOS IO,尽量不要去考虑用他了。
睡神在睡觉
2010-01-06
打赏
举报
回复
to owlet_leo:
在无文件系统的状态下读写数据需要BIOS的IO操作。
对I/O总线么?C#能操作的了么?
也不是无类型文件,只不过类型是自定义的,不被FAT识别而已,我自己能识别的文件。
owlet_leo
2010-01-05
打赏
举报
回复
在无文件系统的状态下读写数据需要BIOS的IO操作。
文件系统是磁盘管理的基础,你说的是无类型文件或未被识别的文件类型吧?
睡神在睡觉
2010-01-05
打赏
举报
回复
看来只有自己顶了。。。。
睡神在睡觉
2010-01-05
打赏
举报
回复
To Linux7985:
调用系统底层写硬盘指令来读书数据
请教,硬盘指令是跟API有关还是类似AT指令似的东西?怎么向下发的?用的什么方式?
烈火蜓蜻
2010-01-05
打赏
举报
回复
[Quote=引用楼主 sleep0110 的回复:]
众所周知,现在主流的操作系统都带有文件系统,譬如常用的FAT16、FAT32,对存储器的读写用流之类的方法就可以,至于硬盘闪存的电磁转换之类不谈。
想问问,如果没有文件系统,对存储器该如何读写?譬如,如果我想对硬盘写入无文件系统认知的文件该如何写?或者给点思路和资料,小弟谢过了~
[/Quote]
如果没有文件系统,很难想像如何管理文件,
如果你想对硬盘写入无文件系统的盘
那就你自己定义一个文件系统出来,然后调用系统底层写硬盘指令来读书数据,
平生我自如
2010-01-05
打赏
举报
回复
我有空 但是我不会耶
基于X86平台的Linux系统裁剪(二)
1、Linux系统启动流程 启动流程 2、具体操作步骤 基于Linux内核定制X86平台的微操作系统(很完整详尽文章) Linux系统启动流程及系统裁剪 3、grub引导启动资料 grub启动流程 grub主要作用是找到内核(kernel)与部分核心模块的镜像(initrd,主要是sata硬盘驱动之类的模块),把它们导入内存中运行。 grub常用命令 GRUB——系统的引导程序简单介绍 Linux GRUB手动安装方法详解,Linux中安装GRUB的两种方式 linux启动流程——initrd和initra
Windows文件(名/夹)大小写敏感识别方法
在linux上做开发,linux万物皆文件,对大小写敏感,但是scp转到window上编写测试就麻烦了,文件缺失什么的就来了。 那么怎么让windows对文件大小写敏感 这下面一切的操作都有一个前提 item des OS windows10 OS version >=17110 Tool PowerShell,WSL(windows for subsystem Li...
Linux学习笔记
第一个被输入的数据绝对是命令或者是可执行文件 [Tab]接在一串命令的第一个命令后面------“命令补全” [Tab]接在一串命令的第二个命令后面------"文件补齐" [Crtl]-c 停下来 [Ctrl]-d 相当于exit 文本编辑器nano 关机方法:shutdown -h now shutdown会依据目前启动的服务逐次关闭关闭 powe
Linux基础笔记
已经有很长很长时间一段没有更新帖子了,一眨眼2023 已经过半,因为太多事情要做了,今年只更新了几篇,这几天刚好
有空
,浅浅更新一篇叭!示例: cat a.txt | grep itheima,将cat a.txt的结果,作为grep命令的输入, 用来过滤itheima关键字。参数,关键字,必填,表示过滤的关键字,带
有空
格或其它特殊符号,建议使 用””将关键字包围起来。~,表示用户的HOME目录,比如cd ~,即可切回用户HOME目录。参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口。
最近打算学习的若干东西
备忘: objective, clustered crawler,dfs,sharding mysql ,cluster cache. key value, dynamo : amazon's key value 结构 http://cenwenchu.iteye.com/blog/316675 总的目标是,~100 台的jboss ,~100 台的mysql ,~100 台的df...
C#
111,129
社区成员
642,532
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章