一、UNIX文件系统的基本原理    UNIX采用树型目录结构,每个目录表称为一个目录文件。
一个目录文件是由目录项组成的。
每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。
在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;
后14B为文件名,是该文件的外部标识。
所以,文件目录项记录了文件内、外部标识的对照关系。
根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。
UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。
本次课程设计是要实现一个简单的模拟UNIX文件系统。
我们在磁盘中申请一个二进制文件模拟UNIX内存,依次初始化建立位示图区,I节点区,数据块区。
二、基本要点思路     1、模拟磁盘块的实现:因为文件系统需要从磁盘中读取数据操作数据,在实现时是使用文件来模拟磁盘,一个文件是一块磁盘,在文件中以划分磁盘块那样划分不同的区域,主要有三个区域:位图区,inode索引节点区,磁盘块区。
位图区我是使用一个512byte的数组存放,inode区和磁盘块区我采用一种自认为比较巧妙的方法,就是存放对象列表,之前说过,在本次实验的所有的结构都使用对象进行存储,而inode节点和磁盘块就是两个重要的数据结构,在初始化时我实例化32个inode对象和512个block对象(至于这些类的具体定义下面会提到),然后将这些对象加入各自对应的对象列表中,在存储时,使用java的对象序列化技术将这个对象数组存到磁盘中。
当使用文件系统时,程序会先从磁盘文件中读取出位图数组,inode对象列表,block对象列表,之后的操作就是通过对这些列表进行修改来实现。
使用这种方法可以减小存储的空间(对象序列话技术)而且不需要在使用时进行无用的查找,只要第一次初始化中将这些对象都读取出来。
    2、界面的实现:在实现这个文件系统时使用了两种方案,一种是直接在java控制台来进行输入输出,因为原本想着UNIX文件系统原本也是使用的命令行语句,所以在控制台上实现也很接近。
后来在老师的建议下又将整个程序重新修改,改成在UI界面上进行输入输出,这样确实界面美观舒服了不少,只不过两者用的技术很不一样,前者主要使用的是系统的输入输出流,后者使用java监听器。
    3、权限的实现:在实现多用户的权限方面,我给文件和文件夹各定义了三级权限1、访问:在文件中是可以查看文件的内容,在文件夹中是可以进入该文件夹。
2、修改:文件中是可以对文件进行编辑,文件夹中是可以在该文件夹中创建新的文件或目录。
3、删除:顾名思义。
文件或文件夹的创建者拥有最高级别的权限,只有拥有最高级权限的用户才可以给其他用户针对该文件或文件夹进行授权和授权操作。
在每次对文件或文件夹进行访问修改删除操作时都会检查当前用户在该文件或文件夹所拥有的权限,只有拥有的权限大于想要实现的权限时才可以进行该操作。
2024/2/1 11:25:27 9KB java UNIX操作系统 课程设计
1
☆资料说明:☆专业级MFC界面控件套装,支持最近的VisualStudio2010和Windows7风格;
压缩包内包括安装程序和注册机;
☆软件简介:☆CodejockSoftware创建于1998年,专业开发MSVisualStudio开发环境下的组件,便于VC开发人员轻松开发出各种界面,如类似VC++6.0的开发界面、Outlook界面等,并支持XP风格。
由于功能的完善,ExtremeToolkit被许多大公司采用。
2003年Codejock公司加快开发,开发出一系列界面组件,包括ExtremeToolkit4.1,ExtremeToolkitPro,ExtremeSuite等组件包,支持开发环境也从VC++5/6升级到VC++.NET和VB,而且支持WindowsXP、OfficeXP/2003、Outlook2003、VisualStudio2005等风格主题。
目前是VC/VB和.NET开发环境下最好的界面开发组件之一。
Codejock软件公司的Xtreme套件(XtremeSuite)包含了三种流行的组件:Xtreme命令工具栏(XtremeCommandBars)——把需要创建的具有改进对接算法的所有组件提供给Windows的图形用户界面(GUI)工程师,这些组件用来创建具有MicrosoftOfficeXP风格的工具栏和菜单。
Xtreme浮动面板(XtremeDockingPane)——把所有组件提供给Windows的图形用户界面(GUI)工程师,这些组件用来创建具有改进VisualStudio.NET风格的浮动面板。
Xtreme属性网格(XtremePropertyGrid)——把完善的VisualStudio.NET风格的属性网格提供给Windows的图形用户界面(GUI)工程师。
2024/2/1 7:24:36 106.65MB Codejock C++
1
本人归纳的所有Linux基本命令操作,并有详细操作截图和思路。
适合初学者下载学习。
2024/1/31 14:31:31 247KB Linux 基本命令 实验报告
1
病人进入某医院急诊部的规律服从10分钟的指数分布。
假定病人被区分为三类:A、B、C。
急诊部通常为病人提供三个阶段的服务。
每一种病人通过这些服务的具体顺序和服务时间如下表。
所有的服务都以分钟计算。
假定病人从一个阶段转送到另一个阶段的时间是常数3分钟。
建立这个急诊部的模拟模型并模拟其操作4800分钟。
用“set”命令来采集每一种病人的平均服务周期以及每一阶段的资源负荷率。
2024/1/30 8:54:14 1015KB 医院急诊部系统模拟 arena
1
一些常用的画图实例、菜单命令调用以及数据的处理等!
2024/1/28 2:24:38 1.6MB MATLAB 程序
1
Mathematica画图函数命令大全
2024/1/27 13:15:20 29KB Mathematica
1
ApacheAirflowAnsible角色这个角色负责在Debian/Ubuntu环境中安装ApacheAirflow服务器。
入门这些说明将为您提供ansible剧本的角色副本。
一旦启动,它将在Debian或Ubuntu系统中安装服务器。
先决条件已安装Ansible2.8.8版本。
库存目的地应为Debian或Ubuntu环境。
出于测试目的,使用作为驱动程序的。
正在安装从GitHub创建或添加到您的角色依赖文件(例如requirements.yml):-src:http://github.com/idealista/airflow-role.gitscm:gitversion:1.7.3name:airflow或使用作为原点,如果您愿意:-src:idealista.airflow-roleversion:1.7.3name:airflow使用ansible-galaxy命令安装角色:ansible-galaxyinstall-proles-rrequirements.yml
2024/1/27 6:24:41 76KB ansible airflow debian ansible-role
1
CreateReactApp入门该项目是通过。
可用脚本在项目目录中,可以运行:npmstart在开发模式下运行应用程序。
打开在浏览器中查看。
如果进行编辑,页面将重新加载。
您还将在控制台中看到任何棉绒错误。
npmtest在交互式监视模式下启动测试运行程序。
有关更多信息,请参见关于的部分。
npmrunbuild构建生产到应用程序build文件夹。
它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。
最小化构建,文件名包含哈希。
您的应用已准备好进行部署!有关更多信息,请参见有关的部分。
npmruneject注意:这是单向操作。
eject,您将无法返回!如果您对构建工具和配置选择不满意,则可以随时eject。
此命令将从项目中删除单个构建依赖项。
相反,它将所有配置文件和传递依赖项(webpack,Babel
2024/1/27 3:55:07 28KB JavaScript
1
这是一个调试完成的Si4730收音机芯片的驱动程序。
程序中包含了HT1621LCD芯片驱动及NV065A系列语音芯片驱动。
Si4730函数模块包括:写命令、读状态、搜频、读频率、保存频率、播放已保存的频点。
2024/1/26 22:39:24 31KB Si4730 HT1621
1
MA5680T&MA5683T&MA5608TV800R016C00命令参考04.zip
2024/1/26 14:57:57 15.6MB olt
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡