Skip to content

Anjiansan/AJSOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AJSOS -- 一个简单的操作系统

<<30天自制操作系统>> linux版

运行环境

  • qemu(用于模拟运行)
  • wine(用于运行编译工具)

过程记录

第1天

  略(初步入门)

第2天

  制作启动区,使用Makefile

第3天

  读取扇区(10柱面共180K),从启动区执行操作系统,32位模式的前期准备,导入C语言,并实行HLT

第4天

  C语言实现内存写入,实现显示条纹图案,设定色号,绘制矩形,最终实现一个简易桌面图案

第5天

  显示字符,增加字体,显示字符串,显示鼠标指针,也同时实现了GDT与IDT的初始化

第6天

  初始化PIC,制作中断处理程序

第7天

  使用FIFO缓冲区,加速键盘中断处理,接受鼠标数据

第8天

  解读鼠标数据,实现移动鼠标,切换32位模式

第9天

  实现内存检查,以及内存管理

第10天

  实现叠加处理

第11天

  实现画面外的支持,以及实现显示窗口

第12天

  使用定时器,实现计量时间,以及超时功能

第13天

  简化字符串显示,重新调整FIFO缓冲区,使用"哨兵"简化程序

第14天

  提高分辨率,实现键盘输入,以及追记内容(字符串输入)

第15天

  实现多任务切换

第16天

  增加了任务管理自动化以及任务休眠,同时为系统加入了任务调度算法.此调度算法是非抢占式优先级调度算法,采用10个不同的优先级队列,队列优先级越高,越早执行.只有当优先级高的队列中的任务全部执行完后,才执行较低队列中的任务.当执行低优先级队列中的任务时,一旦有优先级高的队列中的任务到达时,下一次任务切换时转去执行那个任务.此外,同队列中的任务也可设置优先级大小,优先级越大执行时间越长.

第17天

  创建了命令行窗口,同时实现了切换输入窗口,也加入了大小写字母与符号的输入,对各种锁定键的支持.

第18天

  控制光标闪烁,支持回车,实现窗口滚动支持,同时实现了free,cls和ls命令

第19天

  实现cat命令,支持FAT文件格式,同时实现了第一个应用程序hlt.ajs

About

A Simple OS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages