首页 > 其他分享 >哈工大-操作系统L32

哈工大-操作系统L32

时间:2024-09-03 13:50:14浏览次数:10  
标签:num 操作系统 哈工大 L32 编号 根目录 inode 目录 block

目录解析代码

open_namei(filename,flag,&inode),解析路径

filename,根据文件名把inode弄进来写到&inde上

pathname路径名

if((c=get_fs_byte(pathname))=='/'),如果是'/'就从根目录开始,不是就从当前目录开始

current->root是根目录的inode

由于每次访问都是从根目录开始,父进程也是从根目录开始,子进程是拷贝了父进程所以也是冲根目录开始

根据目录的inode找到根目录里的数据内容,数据内容是一堆目录项,每个目录项是一个文件名字符串加一个文件对应的inode所对应的数组编号

find_entry,从目录中读取目录项

inr=de->inode这一项文件对应的inode编号

iget(idev,inr)把下一层的编号发进来就可以把下一层的inode读进来在循环

init(void)挂载硬盘

mount_root()挂载根目录

iget(ROOR_DEV,ROOT_INO)根据根目录所对应的inode编号找到就可把根目录读进来,ROOT_INO=1.

current->root=mi将根目录的inode读进来

get_supe(inode->dev)获得超级块

block=2+sb->s_imap_blocks+sb->zmap_block+(inodee->i_num-1)/INODES_PER_BLOCK

2,从0开始引导块和超级块各占一块,所以是从2开始

sb->s_imap_blocks,inode位图

sb->s_zmap_block 盘块位图

(inode->i_num-1),要读的 inode编号

(inode->i_num-1)/INODES_PER_BLOCK(一个块有多少个inode) 

break(inode->i_dev,block)去磁盘上读块

hb->data[(inode->i_num-1)%INODES_PER_BLOCK],通过解析把需要的inode从盘上拿出来

find_entry找到目录所对应的编号

int block=(*dir)->i_zone[0]找直接索引块

bread((*dir)->i_dev,block)把块读出来

dir_entry*de=bh->b_date;将数据读进内存缓冲区

if(match(namelen,name,de))然后挨个匹配,能匹配直接返回,不能就继续循环

读取所有目录然后进行比较

标签:num,操作系统,哈工大,L32,编号,根目录,inode,目录,block
From: https://blog.csdn.net/wwwwwgery/article/details/141859103

相关文章

  • Vmware 上安装部署免费开源NAS系统FreeNAS11.3操作系统(支持CIFS (samba), FTP, NFS,
    说明FreeNAS®于2005年首次跃上互联网,在过去的十年里,它已成为一个家喻户晓的名字,在全球拥有超过1000万次下载和100万次部署。FreeNAS是一套免费的NAS(网络附加存储)服务器解决方案,它基于FreeBSD和Python开发,能够将一台普通的PC转变为功能强大的网络存储服务器。概述类型:NA......
  • 关于Window操作系统中对Oracle的性能监控
    目的本文是为了测试数据仓库的实时数据抽取功能对源数据库和操作系统的性能的影响。由于Windows操作系统未提供类似于UNIX下的Top、ps、vmstat等CPU、内存、I/O监控工具,同时Oracle作为操作系统下的一个唯一进程而存在,这就导致windows操作系统在监控Oracle方......
  • [oeasy]python0032_ 火星文字幕_os_操作系统的作用_time_sleep_延迟
     032导入_import_os_time_延迟字幕效果_道德经文化_非主流火星文154播放·0赞同视频​ show:stepversion:1.0enable_checker:trueHelloWorld!回忆上次内容这次我们了解了unix系统在multics项目失败后汤普森和里奇为了玩游戏自制了u......
  • 怎么在Windows操作系统部署阿里开源版通义千问(Qwen2)
    怎么在Windows操作系统部署阿里开源版通义千问(Qwen2) | 原创作者/编辑:凯哥Java              | 分类:人工智能学习系列教程GitHub上qwen2截图随着人工智能技术的不断进步,阿里巴巴通义千问团队近期发布了Qwen2系列开源模型,这一系列模型在多个领......
  • 怎么在Windows操作系统部署阿里开源版通义千问(Qwen2)
    怎么在Windows操作系统部署阿里开源版通义千问(Qwen2) | 原创作者/编辑:凯哥Java              | 分类:人工智能学习系列教程GitHub上qwen2截图随着人工智能技术的不断进步,阿里巴巴通义千问团队近期发布了Qwen2系列开源模型,这一系列模型在多个领域展......
  • 基于元神操作系统编程写USB扇区
    1.背景本文介绍了“调用元神操作系统API向U盘扇区写数据”的程序实现及测试结果。2.方法(1)调用元神操作系统API读U盘扇区本部分内容已在前面的文章中进行介绍,详细内容请参考“编写程序调用元神操作系统的API”。(2)调用元神操作系统API写U盘扇区本例通过调用系统API来向U......
  • OpenGL32.dll找不到入口点?快速修复指南及常见故障排除技巧
    在使用某些基于OpenGL的应用程序或游戏时,用户可能会遇到“OpenGL32.dll找不到入口点”的错误消息。这类问题通常会阻止应用程序正常运行,给用户带来不便。本文将详细介绍这一问题的原因以及如何有效地解决它。OpenGL32.dll找不到入口点的原因文件损坏或丢失:OpenGL32.dll文件......
  • OpenGL32.dll错误:无法找到入口点的速效修复秘籍及故障全面排查策略
    遇到OpenGL32.dll错误,通常意味着系统中的OpenGL库文件可能损坏或不兼容,这里提供一些解决方案来帮助您修复这个问题:1.更新图形驱动程序:•访问您的显卡制造商官网(例如NVIDIA、AMD或Intel),下载并安装最新的图形驱动程序。正确的驱动程序能够确保OpenGL组件正常工作。2.系统文件......
  • 基于Java Swing 的操作系统课程设计- 模拟文件管理项目(可视化
    一、需求分析......
  • 一个操作系统的设计与实现——第26章 多处理器(下):应用处理器引导
    26.1应用处理器当计算机启动时,不管其中有多少个CPU,都只有一个CPU会真正启动,这个CPU就称为引导处理器(BootstrapProcessor,BSP);而其他CPU会等待被BSP唤醒,这些CPU就称为应用处理器(ApplicationProcessor,AP)。BSP可以在任意时刻向所有AP广播唤醒信号,当AP接受到信号后,就会启动BIOS,随......