一、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
一、VB控件集,控件集内含ListView、漂亮按钮、下拉列表、TAB窗体选项卡、树形菜单控件、窗体滑动菜单、分组菜单,可折叠展开的菜单等。
以前就更新过,现在修正了不少控件中的小错误,更接近完善了,相信这些控件对于从事vb6编程的朋友来说,是相当实用的。
二、1,clistbar.zip超级的列表框,你一定不会失望(137KB)2,axtree.zip用惯了treeview控件的朋友可以试一试这款axtree控件,它增添了更多的控制(129KB)3,richedit利用RichText实现的编辑器,提供了修改字体,打印,查询等功能(4KB)4,exptrocx.zip实现explorer风格的树型目录的activex控件(1191KB)5,txtsrch在Text中实现快速增量查询(5KB)6,exproplist.zip建立一个如同vb里属性栏一样的东东,不仅形似,神也似(137KB)7,combosrc.zip在COMBO中的增量查询(2KB)8,escombo.zip为COomBo控件加强版,有近似关键字搜索功能(27KB)9,sblist20.zip它允许你用各自颜色(162KB)10,wordwrap.zip在TextBox中自动换行(2KB)11,chklst.zipCheckBox和List的结合体(101KB)12,aresbuttonpro.ziparesbutton是一个显示图形按钮的activex控件,主页地址http://const.ricor.ru/~art/aresbutton(320KB)13,kenjLV1.zipListView的API效果演示(11KB)14,cbuttonr.zip扩充的按钮控件(24KB)15,csplitba.zip在窗体里随意建立分隔条(11KB)16,gbarocx.zip进度条(171KB)17,ccrpprg.zip一个进度条的控件,可以有多种形态供你选择(142KB)18,chklsb25.zip它提供了类似word和excel中的内含检查框(checkbox)的列表框(listbox)。
在这个控制中,每一个条目的字体、颜色、使能状态和选中状态都可以被单独设置。
这个控制也支持3d外观、图片条目和定制的检查框符号(167KB)19,as97ppup.zip一种可以弹出的按钮,具有多种形态和功能(32KB)20,slidrc.zip形状类似于收音机音量控制的滚动条(296KB)21,TracBar.zip滚动条模块,与VB的滚动条比较,该模块支持动态生成,支持触发消息(7KB)22,srchlist.zip在list控件里进行增量查询(3KB)23,devfltbt.zip可爱的按钮(141KB)24,treedrag.zipTreeView中节点拖动、增加、删除等功能演示(8KB)25,dirview.zip装入整个C盘目录到TreeView(5KB)26,msghook.exe专门用来截取Windows消息的控件(114KB)27,led.ZIP象电子表一样显示数字的控件(17KB)28,splitbardemo.ZIP无须任何代码,即可随意拖动该控件,有水平和垂直两种样式。
支持MouseOver事件(拖动结束)(11KB)29,hotkeydemo.ZIP该控件可以为你的应用程序添加一个系统级的热键,通过HotkeyPressed事件来处理热键的按下后的工作。
(15KB)30,pwdboxdemo.ZIP每当用键盘输入一个字符时,将显示出随机个数的密码字符(31KB)31,c5.zip防火墙控件(39KB)32,c6.zip列出Windows运行的所有程序,并终止其运行的控件(18KB)33,taskbar.zip一个日期控件(有源代码)(6KB)34,encrypt.zip加密/解密字符串的控件(46KB)35,activelock.zip
2023/12/7 23:28:38 10.22MB vb控件
1
C#.net中树型目录编写的点菜零碎,可以实现点菜,计算价格,重新点菜等。
2021/3/19 16:13:22 48KB C#.net 树型目录 点菜
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡