XSU
XSU is an acronym for XSU is Simple Unix.
实验初步方案
1. 操作系统设计内容及时间安排
-
启动、中断/异常、设备管理—— 2 周之内, 10 月底完成
包括:
- 加载内核
- 进行硬件调试和调用
- 中断和异常(参考 ZJUNIX 所提供代码)
- VGA、PS2、SD 卡设备驱动及管理
-
文件系统—— 3 周,11 月 1 日~~11 月 20 日
实现基本的 FAT32 文件系统及虚拟文件系统
包括:
- 文件控制块
- 文件缓存块
- 打开、关闭、存储文件
- FAT表
- 索引节点、超级块及目录项等
-
内存管理—— 3 周, 11 月 21 日~~ 12 月 10 日
主要实现内存和硬盘的交互
包括:
- 虚拟内存映射
- 物理内存管理
- 内存/CPU分配及分配函数选择
- 写回策略实现
-
进程管理—— 3 周, 12 月 10 日~~ 12 月 31 日
包括:
- 时间片轮转
- 父子进程
- 进程调度算法与优先级
- 进程地址空间
-
系统调用用户态程序—— 2 周, 1 月 1 日~~ 1 月 15 日
包括:
- 系统调用的添加
- 简单的shell实现
ls
、ps
、top
、rm
、mkdir
、cd
等指令
文件系统初步计划
- 虚拟文件系统 VFS
- 起码要让文件名不要都是大写,这样太丑陋了
- 然后
ls -a\ls -l
之类的情况下会有相应的内容显示
- 然后
- *想法是也许可以实现
umount/mount xxx
来实现对外设的卸载/挂载(不太清楚单纯依靠软件能否实现)
- 起码要让文件名不要都是大写,这样太丑陋了
- 在命令提示符中包含当前路径
- 通过拼接路径的方式来支持相对路径(目前绝对路径的方式太丑陋了)
./xxxx
直接在当前路径后拼接xxxx
字符串../xxxx
在当前路径中删除最后一个/
后的内容,然后进行拼接/xxxx
绝对路径,可能需要与当前路径做个比较(maybe?),判断其是否包含当前路径~
home 目录相关
- 通过拼接路径的方式来支持相对路径(目前绝对路径的方式太丑陋了)
- 带参数的命令解析
目前的都是单个命令,肥肠不优雅- 看了一下发现目前是支持一个参数的(orz),但是目前的参数可以理解为文件名,即
ls dirname
中的dirname
,但是像-a
、-l
这些还是不支持的 - 可以增加多参数的扩展
- 看了一下发现目前是支持一个参数的(orz),但是目前的参数可以理解为文件名,即
- 目前想法是将
ps_buffer
中的内容按照空格作为定界符进行切分,将切分后的各字符串串入一个链表中 - 链表第一个结点的字符串为
cmd
,其后的为argument
,在进行命令比较时比较cmd
- 也许还需要
--help
这样的参数来进行一些帮助内容的提示
- 也许还需要