江西医疗网站建设企业全网推广公司

张小明 2026/1/2 3:10:15
江西医疗网站建设,企业全网推广公司,网站验证码插件,页面模板只能选择已发表的内容1. xv6 文件系统的整体结构#xff1a;目录是一棵树xv6 的文件系统中#xff1a;文件 字节数组#xff08;例如普通文件#xff09;目录 一种特殊的文件#xff0c;里面存的不是内容#xff0c;而是#xff1a;文件名 → inode 号#xff08;指向文件的引用#xff…1. xv6 文件系统的整体结构目录是一棵树xv6 的文件系统中文件 字节数组例如普通文件目录 一种特殊的文件里面存的不是内容而是文件名 → inode 号指向文件的引用子目录的引用所以整个系统形成一棵树/ ├── a │ └── b │ └── c路径/a/b/c解析方式从根目录/开始找名字a→ 得到 inode_A在 inode_A 代表的目录里找名字b→ 得到 inode_B在 inode_B 里找c→ 得到 inode_C文件2. 绝对路径 vs 相对路径 chdir绝对路径以/开头从根开始解析如/a/b/c相对路径不以/开头从“当前工作目录”开始解析当前工作目录属于每个进程自己的属性系统调用chdir(path)会改变调用进程的当前目录。举例chdir(/a); chdir(b); open(c, O_RDONLY);执行效果当前目录变为/a然后变为/a/bopen(c)打开的就是/a/b/c所以它等价于open(/a/b/c, O_RDONLY);3. 创建文件 / 目录 / 设备文件的方法xv6 提供几种系统调用系统调用作用mkdir(path)创建目录open(path, O_CREATE...)mknod(path, major, minor)创建设备文件示例mkdir(/dir); // 创建目录 fd open(/dir/file, O_CREATE|O_WRONLY); // 创建文件 close(fd); mknod(/console, 1, 1); // 创建设备文件关键点设备文件不包含数据它的 inode 会标记为类型T_DEV记录设备号 major/minor当进程 open 这个设备文件时内核不会从磁盘读取这个“文件”而是把read/write调用转发给对应的内核设备驱动。4. fstat()查看文件的信息struct stat { short type; // 文件类型目录 / 普通文件 / 设备文件 int dev; // 所在磁盘设备号 uint ino; // inode 编号关键 short nlink; // 有多少名字指向这个 inode uint size; // 文件大小字节 };最关键字段ino唯一标识一个文件实体nlink有多少文件名指向它链接数量5. 一个 inode 可以有多个名字link()文件名只是指向 inode 的“标签”。一个 inode真实文件可以有多个文件名指向它这叫硬链接hard link。示例open(a, O_CREATE|O_WRONLY); // 创建 inode 10名字 a → inode 10 link(a, b); // 添加名字 b → inode 10结果a指向 inode 10b也指向 inode 10inode 10 的 nlink 2任何对 a 的读写 对 b 的读写因为它们操作的是同一个 inode。fstat()会告诉你a 与 b 的 inode 号一样nlink 26. unlink删除的是“名字”不是文件本体unlink(path)做两件事删除该目录项“名字”把那个 inode 的 nlink 减 1如果 nlink 0还有别的名字指着它inode 不会删除如果 nlink 0没有任何名字再引用这个 inode如果没有进程打开它→ 文件内容和 inode 会被回收示例open(a, ...); link(a, b); unlink(a);此时a删除b仍然指向 inode 10nlink 从 2 降到 1文件仍然存在。7. 利用 unlink 创建临时文件Unix 经典技巧代码fd open(/tmp/xyz, O_CREATE|O_RDWR); unlink(/tmp/xyz);含义/tmp/xyz被创建inode 20 的 nlink1unlink 删除名字xyz→ nlink0但进程仍然持有 fd 指向 inode 20所以 inode 不会删除结果文件没有名字 → 外部不可见进程仍可通过fd读写它当进程退出 / 关闭 fd → inode 自动删除这是 Unix 最推荐的“安全临时文件”方式。8. 为什么 xv6 的 mkdir / ln / rm 都是用户程序因为它们只需要执行系统调用mkdir、link、unlink 等系统调用操作真正的文件系统不依赖进程的内部状态所以用单独的进程执行完全没问题这符合 Unix 的“用户态工具 小内核”哲学。9. 唯一例外cd 必须在 shell 内部实现为什么因为shell 每次执行命令前都会 fork 一个子进程来执行外部命令如果 cd 是外部命令它会运行在子进程中那么$ cd /a/b会发生shell fork 出子进程子进程执行 cd → 改变子进程的当前目录子进程退出回到父进程 shell当前目录没变也就是说子进程 chdir() 没法改变父进程shell的当前目录。所以cd 必须直接在 shell 进程里执行shell 不能 fork它必须自己调用chdir()这就是为什么mkdir, rm, ln 等可以自成程序但 cd 必须写死在 shell 代码里built-in 命令总结文件名只是 inode 的引用目录是一棵树结构。路径解析由当前目录决定chdir 改变当前进程目录。mkdir/open/mknod 分别创建目录、普通文件、设备文件。inode 是文件本体有唯一编号和链接数nlink。link 为同一 inode 创建第二个名字。unlink 删除“名字”只有 nlink0 且无 fd 才删除文件本体。open unlink 可创建“无名字的临时文件”。xv6 文件操作命令都是用户程序唯独 cd 必须在 shell 内运行因为子进程不能改变父进程目录。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站图片装修的热切图怎么做简易网站建设

目录 已开发项目效果实现截图开发技术介绍系统开发工具: 核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式…

张小明 2025/12/21 2:23:00 网站建设

北京网站建设公司电扬网页制作颜色的代码大全

企业为了保障内部的核心数据,都会采用网络隔离的方式将内部数据保护起来,隔离网闸也就成为了首选方式。那么,隔离网闸的作用是什么?它如何工作?新一代的网闸技术又如何为企业带来更智能、更坚固的防护?本文…

张小明 2025/12/21 2:20:59 网站建设

微网站怎么制作怎么在wordpress编辑进入二级页面

Kotaemon如何优化冷启动问题?预加载策略揭秘 在企业级智能对话系统部署中,一个看似不起眼却影响深远的问题正在悄然发生:当用户第一次向客服机器人提问时,响应时间长达数秒——而后续的交互却快如闪电。这种“首问慢、后问快”的现…

张小明 2025/12/21 2:18:57 网站建设

制作网站的成本常州网站排名推广

pk3DS:解锁3DS宝可梦游戏无限可能的终极编辑神器 【免费下载链接】pk3DS Pokmon (3DS) ROM Editor & Randomizer 项目地址: https://gitcode.com/gh_mirrors/pk/pk3DS 想要重新定义你的3DS宝可梦游戏体验吗?pk3DS这款强大的ROM编辑器和随机化…

张小明 2025/12/25 14:08:20 网站建设

建设网站详细流程猫咪网页链接

智能家居系统:用户、设备与通信的综合管理 1. 用户账户体系 在智能家居系统中,不同的用户有着不同的账户类型,以满足多样化的使用需求。 - Minerva 账户 :居住在家中的成员或家庭成员都拥有 Minerva 账户。这个账户赋予了他们查看家庭照片、了解正在播放的音乐等权限,…

张小明 2025/12/25 14:08:18 网站建设

北京网站建设兴田德润官网多少营销印刷网站

网络安全是一个庞大而不断发展的领域,它包含多个专业领域,如网络防御、网络攻击、数据加密等。介绍网络安全的基本概念、技术和工具,逐步深入,帮助您成为一名合格的网络安全从业人员。 一、网络安全基础知识 1.计算机基础知识 …

张小明 2025/12/25 14:08:15 网站建设