|
|
发表于 2006-11-5 18:31:00
|
显示全部楼层
Re:可能是第一个用VB.net写的国产商业游戏
S.C. Operating System 说明
Version 0.02
沈 驰
创作目的及意义
我一直梦想能够加入精英的开发团队,开发出完全由中国人设计并编写的比Windows跟强大的操作系统,并且能够支持国产的龙芯CPU。
S.C. Operating System (以下简称SCOS) ,是我为了学习操作系统原理、实践开发而写的一个简单的操作系统,这是我为实现梦想走出的第一步。并且我希望在将来的版本中赶上并超过Windows、Linux。通过写这个操作系统,我了解了一些计算机和操作系统工作的原理,并获得了一点开发经验。
实现的功能
在受到Linux源代码和DOS命令行界面方式的启发下,我设计并编写了32位的多任务并行的系统结构,采用命令行式的界面。我还设计为每一个系统任务(进程)分配一个“显示缓冲区”,让每个任务都可以有自己独立的“屏幕”,并可以在运行时通过快捷键和命令切换到其他任务的“屏幕”。另外每个任务还分配有自己的“按键缓冲区”,避免任务间的互相影响。软盘驱动程序使用“对同一个文件进行一次性缓冲读写”的方法,使软盘驱动效率提高。
SCOS的内核方面实现了进入保护模式(Protect Mode),并对内存进行了分页(Paging),实现了对内存的简单管理(Memory Management)。通过基于任务状态段的任务切换(TSS-based task switching)和轮换时间片实现了多任务(Multitasking)并行。
SCOS还包括键盘及软盘驱动,实现了键盘输入和磁盘的读写。并在软盘驱动的基础上实现了对FAT12文件系统的支持。
为展示一些系统功能,我还编写了简单的命令行处理程序(shell.bin)和文本编辑程序(edit.bin)。
使用方法
(光盘中附有虚拟机的安装、配置,及SCOS的演示录像)
进入系统:将磁盘插入软驱,打开(或重新启动)电脑。
(如果在启动时没有反应或黑屏重新启动,则可能是软驱或软盘问题,请重新冷启动)
也可用虚拟机运行(Virtual PC,VMWare,Bochs)
命令行:(shell.bin,系统初始化后自动运行)
显示 如 “\>” 后开始输入命令(当前目录后跟一个“>”,“\”这里代表根目录)
在任何任务下,都可通过[shift]+[tab]键切换回命令行!
命令(命令请全部使用小写,以回车结束):
ver 显示系统名和当前版本
cls 清理屏幕
run 运行应用程序,后接一个空格再输入程序文件名
如 run edit.bin
tl 列出任务列表
switch 切换到其他任务,后接一个空格再输入任务号 如 switch 2
任务号可用tl命令获得,任务0为系统空任务,
任务1为命令行任务。
[在切换到别的任务后 可通过[shift]+[tab]键切换回命令行]
kill 强行终止任务,后接一个空格再输入任务号
如 kill 2
dir 列出当前目录下的所有文件和目录
cd 改变当前目录路径(与DOS系统的cd命令相似)
如 cd bins cd ..
md 在当前目录下建立子目录,后接一个空格再输入子目录名
如 md subdir
rd 在当前目录下删除子目录,后接一个空格再输入子目录名
如 md subdir
type 显示文件内容,后接一个空格再输入文件名
如 type help.txt
cp 复制文件,后接一空格,再加源文件目录及文件名,再接一空格再加目标文件目录及文件名(均使用完整目录路径)
如 cp \help.txt \bins\help.txt
del 删除文件,后接一个空格再输入文件名
如 del demo.bin
help 显示帮助
以下是SCOS盘上原始的目录结构
\ bins\ demo.bin
edit.bin
kernel.bin
shell.bin
help.txt
磁盘同样可以在支持FAT12的操作系统上打开(如DOS、Windows)
文本编辑:(edit.bin在bins\下)
在根目录下进行以下操作即可进入
cd bins run edit.bin
进入后直接输入,开始编辑。
按[Esc]键 进入命令模式(底部出现 “command:”)
exit 退出文本编辑
save 保存文件,如文件已存在会自动覆盖
后接一个空格再输入文件名
如 save a.txt
open 打开文件,后接一个空格再输入文件名
如 open a.txt
命令执行后或再按[Esc]键回到编辑模式
注意! 打开和保存文件时,将视为在命令行的当前目录路径下,如果要保存的别的地方,可用[shift]+[tab]键切换回命令行,改变目录或新建子目录
参考资源
《IA-32 Intel® Architecture Software Developer’s Manual》 Volume 1,2,3
by Intel Corporation
Linux 0.11源代码 by Linus Torvalds
《Linux内核完全注释》 by 赵炯
《DMA Programming》 by Justin Deltener
《82077AA Floppy Controller Datasheet》 by Intel Corporation
《软盘控制器的编程方法》 by 赵炯
《FAT: General Overview of On-Disk Format》 by Microsoft
《操作系统中任务调度的实现》 by 谢煜波
及来自以下站点的文章
http://www.xemean.net/
http://www.osdev.org/
http://www.osdever.net/ |
|