另外在github上我们也有项目存放
github
我们能力有限,无法自己创造一个属于我们的内核。因此为了后续的开发,我们直接借鉴了
Orange书后的代码,使用了它的简易内核。但在后续的编写中,我们的内核大小了超过了
作者所设置的128k,我们不得不将内核进行了扩容。
控制台的实现我们在通读Orange的tty部分之后,成功实现了一个和文件系统相关联的控制
台,通过在特殊文件中读写实现控制台的输入和输出。
Orange中的文件系统并没有文件夹之类的概念,是一个一级的文件系统。我们对文件系统进
行了修改,使得文件系统变成了二级的文件系统,每一位用户在登录之后只能看到自己的文件
从而实现了文件的隔离。
与此同时,我们实现了文件系统的记忆功能,在再次开机之后,我们通过读取特殊文件将用户
们之前的文件操作全部恢复,也就是说,我们的操作系统有文件记忆功能,这是Orange的源码
所没有实现的。
我们通过努力在控制台上实现了2048和扫雷,通过手动输入移动方向和位置来操作,同时支持
随时退出游戏,用户体验极佳。
键入welcome后将输出欢迎语句和小组成员列表
键入clear后将清屏并打印欢迎语句和小组成员列表
键入donghua后将执行开机动画打印蟠龙
键入ls后将输出当前用户下的文件列表
键入proc后将输出当前所有进程的状态
键入help后将输出当前所有可用命令
键入saolei后即可开始扫雷游戏
键入2048后即可开始2048游戏
键入caculator即可打开简易计算器
键入duihua和参数字符串就能通过消息传递的机制打印字符串
键入print和参数字符串之后将会在控制台打印该字符串
键入newfile和文件名之后将会在该用户目录下新建该文件,并初始化内容
如果执行新建文件命令之后该文件存在的情况下将会给出文件存在的提示
键入read和文件名之后将会在该用户目录下查找该文件,找到之后将其内容输出
如果未能查找到将会输出失败提示
键入delete和文件名之后将会在该用户目录下查找该文件,找到之后将其删除,我们可以
看到删除后再次读取文件已经找不到了
键入edit+和文件名及追加字符串之后将在原文件内容后追加内容
键入edit和文件名及覆盖字符串之后将以该字符串覆盖原内容
键入add和用户名及密码之后键入系统管理密码就可以新建用户,新建完毕之后就可以用用
户名和密码进行登录
键入move和用户名及密码之后键入管理员密码就可以删除相应用户,再次登录就失效了
键入login和用户名及密码就可以执行登录操作
键入loginout后就会执行登出操作,退后初始状态
一. 新建两个用户hjy和xia 密码分别为hjy和xia
二. 登录hjy之后新建文件test和test1,执行ls后将会看到目录下有test和test1
![file](/OsPic/file1.png) >一. 登录xia,新建一个文件test,然后关闭操作系统三. 登录xia之后新建和hjy的同名文件test,内容与hjy的test不同,在执行read之后不会混淆
|书名|作者|出版社| |:-:|:-:|:-:| | 《Orange S:一个操作系统的实现》 | 于渊 | 电子工业出版社 | | 《Linux内核源代码情景分析》 | 毛德操 / 胡希明 | 浙江大学出版社 | | 《Linux命令行大全》 | William E.Shotts | 人民邮电出版社 | **感谢助教和老师为这门课设所付出的辛勤和汗水!!**二. 再次打开操作系统,可以直接登录xia,用户的信息还在,直接读取test可以看到文件都还在