KO
|
EN
gitlite — search
Search
#python
#java
#python3
#arduino
#golang
#machine-learning
#rust
#html
#flask
#javascript
#seismology
#nodejs
Orange_OS
★ 18
Open GitHub ↗
自制Orange操作系统
Download README (.md)
Explore Similar Repositories
ssm-news
:
牛客网实战(中级项目),头条
tensorflow-distillation-examples
:
Knowledge distillation implemented in TensorFlow
Clean-Sorting
:
Sorting files in a directory according to their extensions
Mosaic-Visual-Hash
:
A visual "hashing" algorithm written in JavaScript, mostly for client-side use.
spark-http-stream
:
spark structured streaming via HTTP communication
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
Orange_OS
?
Download (.md)
# Orange操作系统设计和功能说明文档 ## Orange操作系统设计说明 ### 开发目标 实现操作系统课程设计所要求的B、C、D三个难度。 难度B:对参考源码的文件系统和进程管理系统进行修改, 难度C:完善控制台的命令解释器,通过在shell上输入指令可以文件增删以及信息查看等功能。 难度D:实现5个应用程序,包括五子棋游戏、井字棋游戏、简易计算器、猜数字游戏、N皇后游戏。 ### 设计思路 首先我们学习了ORANGES提供的源码,分析了ORANGES中的一些缺陷,并根据这些缺陷来设计我们自己的操作系统。由于GUI设计与本次课设的学习目标不太相符,因此我们采用了控制台的形式 应用程序的设计受限于bochs版本问题,参考源码中的bochs版本为2.6,而我们组则都采用了bochs-2.6.9,所以导致用户级应用只能安装一个。但是我们已经了解了如何安装应用程序到文件系统中,因此我们将所有游戏打包为一个应用写入磁盘。 对于Shell的完善我们将控制台纳入文件系统,可以在控制台输入指令来实现对文件的管理操作。同时可以通过shell来查看操作系统的一些基本信息。 Orange的文件系统只实现了文件最基本的操作,是一个一级的文件系统。这不符合我们平时的使用习惯。所以我们在这个基础上实现了多级文件文件系统。 我们实现了进程的查看、添加和删除。通过遍历proc_table,按照一定的格式输出进程表中的信息,在屏幕上显示进程名、优先级、当前状态等信息。根据用户提供的进程id,使用系统调用,可以找到并删除当前进程表中对应的用户进程,并将该项置为空,可以用于容纳新建的进程。当接收到用户的新建进程指令时,系统将会调用内核的接口,folk一个新的进程,并使其开始像其他进程一样运行和切换。 ### 项目组成 >boot(引导) >kernel(内核) >command(应用) >fs(文件系统) >lib(可用代码库) >include(头文件) >mm(内存调度系统) ### 环境配置 `ubuntu-16.04.2:1G内存、20G硬盘 64位` `bochs-2.6.9` ### 项目功能分析 #### 文件系统 Orange中的文件系统并没有文件夹之类的概念,是一个一级的文件系统。我们对文件系统进行了修改,使得文件系统变成了多级的文件系统。该文件系统有文件和文件夹,文件夹文件里存的是该文件夹里的文件/文件夹的名称。我们通过cd操作可以很方便的进出文件夹,通过ls操作参看文件夹里的内容。 #### 进程管理 我们实现了进程的查看、添加和删除。通过遍历proc_table,按照一定的格式输出进程表中的信息,在屏幕上显示进程名、优先级、当前状态等信息。根据用户提供的进程id,使用系统调用,可以找到并删除当前进程表中对应的用户进程,并将该项置为空,可以用于容纳新建的进程。当接收到用户的新建进程指令时,系统将会调用内核的接口,folk一个新的进程,并使其开始像其他进程一样运行和切换。 #### 控制台 控制台纳入了文件系统、进程部分以及系统信息等部分,共有15条指令。 #### 应用 一共有5个应用程序:五子棋游戏、井字棋游戏、简易计算器、猜数字游戏、N皇后游戏。5个应用程序用户体验良好,可以随时退出回到控制台。安装应用程序到操作系统中分为以下几步: * 编写应用程序,并编译链接。 * 将链接好的应用程序打成一个tar包:inst.tar。 * 将inst.tar用工具dd写入磁盘(映像)的某段特定扇区(假设这一段的首扇区的扇区号为X)。 * 启动系统,这时mkfs( )会在文件系统中建立一个新文件cmd.tar,它的inode中的i_start_sect成员会被设为X。 * 在某个进程中——比如Init——将cmd.tar解包,将其中包含的文件存入文件系统。 而在本项目中,应用程序的设计受限于bochs版本问题,参考源码中的bochs版本为2.6,而我们组则都采用了bochs-2.6.9,所以导致用户级应用只能安装一个。但是我们已经了解了如何安装应用程序到文件系统中,因此我们将所有游戏打包为一个应用写入磁盘。 #### 进程管理 我们实现了进程的查看、添加和删除。通过遍历proc_table,按照一定的格式输出进程表中的信息,在屏幕上显示进程名、优先级、当前状态等信息。根据用户提供的进程id,使用系统调用,可以找到并删除当前进程表中对应的用户进程,并将该项置为空,可以用于容纳新建的进程。当接收到用户的新建进程指令时,系统将会调用内核的接口,folk一个新的进程,并使其开始像其他进程一样运行和切换。 ## Orange操作系统基本功能介绍 ### 开机动画 ### 欢迎界面 ### Welcome 在控制台输入welcome指令进入欢迎界面。 ### Clear 在控制台输入clear后清空控制台内容,展示欢迎界面。 ### Print 在控制台输入print后打印相应字符串 ### Information 在控制台输入information后得到相应内存等信息。 ### Game 在控制台输入game后进入应用程序界面,可以选择5种不同的小游戏。输入e退出程序界面,在任何小游戏内输入e退出游戏。 #### 五子棋:双人五子棋。两位玩家轮流下棋,分别为“!”和“&”。 #### 算器: #### 字棋:玩家与电脑对战,选择位置下棋,玩家下棋标志为“0”,电脑为“X”。 #### 数字小游戏:电脑随机数字由玩家来猜。 #### 皇后小游戏:输入N的值,得到N皇后问题的解。 ### 文件的增删查改 文件系统的增删查改共有9条指令。可以创建删除文件、文件夹,编辑文件,使用ls指令查看所有文件、文件夹,进入文件夹或返回根目录。 ### 进程管理 可以查看进程并结束进程。