/XSU

XSU is an acronym for XSU is Simple Unix

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

XSU

XSU is an acronym for XSU is Simple Unix.

实验初步方案

1. 操作系统设计内容及时间安排

  1. 启动、中断/异常、设备管理—— 2 周之内, 10 月底完成

    包括:

    • 加载内核
    • 进行硬件调试和调用
    • 中断和异常(参考 ZJUNIX 所提供代码)
    • VGA、PS2、SD 卡设备驱动及管理
  2. 文件系统—— 3 周,11 月 1 日~~11 月 20 日

    实现基本的 FAT32 文件系统及虚拟文件系统

    包括:

    • 文件控制块
    • 文件缓存块
    • 打开、关闭、存储文件
    • FAT表
    • 索引节点、超级块及目录项等
  3. 内存管理—— 3 周, 11 月 21 日~~ 12 月 10 日

    主要实现内存和硬盘的交互

    包括:

    • 虚拟内存映射
    • 物理内存管理
    • 内存/CPU分配及分配函数选择
    • 写回策略实现
  4. 进程管理—— 3 周, 12 月 10 日~~ 12 月 31 日

    包括:

    • 时间片轮转
    • 父子进程
    • 进程调度算法与优先级
    • 进程地址空间
  5. 系统调用用户态程序—— 2 周, 1 月 1 日~~ 1 月 15 日

    包括:

    • 系统调用的添加
    • 简单的shell实现
      • lspstoprmmkdircd 等指令

文件系统初步计划

  • 虚拟文件系统 VFS
    • 起码要让文件名不要都是大写,这样太丑陋了
      • 然后 ls -a\ls -l 之类的情况下会有相应的内容显示
    • *想法是也许可以实现 umount/mount xxx 来实现对外设的卸载/挂载(不太清楚单纯依靠软件能否实现)
  • 在命令提示符中包含当前路径
    • 通过拼接路径的方式来支持相对路径(目前绝对路径的方式太丑陋了)
      • ./xxxx 直接在当前路径后拼接 xxxx 字符串
      • ../xxxx 在当前路径中删除最后一个/后的内容,然后进行拼接
      • /xxxx 绝对路径,可能需要与当前路径做个比较(maybe?),判断其是否包含当前路径
      • ~ home 目录相关
  • 带参数的命令解析
    • 目前的都是单个命令,肥肠不优雅
      • 看了一下发现目前是支持一个参数的(orz),但是目前的参数可以理解为文件名,即ls dirname 中的 dirname,但是像-a-l 这些还是不支持的
      • 可以增加多参数的扩展
    • 目前想法是将 ps_buffer 中的内容按照空格作为定界符进行切分,将切分后的各字符串串入一个链表中
    • 链表第一个结点的字符串为 cmd,其后的为 argument,在进行命令比较时比较 cmd
      • 也许还需要 --help 这样的参数来进行一些帮助内容的提示