写一个操作系统
来源:互联网 发布:派派软件下载 编辑:程序博客网 时间:2024/05/13 02:19
十一完成MIT的OS课程LABS,对OS整体有了更加清晰的认识,所以狠下心删掉从去年4月
开始写到现在的OS(结构不清晰,参考太多Linux),开始闭门造车重写一个小OS,现在看来基础功能已经实现了,并且在用户态也跑起了一个简单的shell,简单记下编写的历程:
1.写一个bootloader,磁盘启动,获取内存的(e820)映射表,加载内核,进入保护模式
2.初始化gdt/分页表,伙伴内存分配算法,slab分配器
3.磁盘驱动(PIO模式),块缓冲层,minix文件系统文件读写接口
4.视频输出,滚屏的实现,printk的实现
5.trap/fault/中断处理,初始化idt
6.简单的进程调度器,进程相关函数:fork/execute/exit/wait
7.提供系统调用接口
8.8259A驱动,外设中断的处理,打开键盘中断
9.用户态程序的编写:shell, C库,基本工具(cat/ls/mkdir/rmdir/cp/rm/sync)
10.8253驱动,打开时钟中断,将主动让出CPU的调度方式改为时钟中断驱动的方式(仍在调试中)
项目放在github上:这里
有待完善的:
1. 信号/进程同步/锁
2. TCP/IP栈(准备把自己写的 在用户态模拟TCP/IP栈 移植进来)
3. 将磁盘驱动改成中断驱动模式
4. 完善用户环境,添加更多常用程序
上张在KVM里面模拟的图
---update 2013.7
我在知乎上回答的答案:如何写一个操作系统
- 写一个操作系统
- 写一个国产的操作系统?
- 10分钟写一个操作系统
- 写一个操作系统视屏
- 写一个简单的操作系统
- 为啥要写一个操作系统
- 2010.01.23【自己动手写操作系统】写一个最小的操作系统
- Linus谈如何写一个操作系统
- Linux操作系统下如何写一个Module
- 怎样写一个简单的操作系统
- 怎样自己写一个简单的操作系统
- 关于新写一个操作系统的讨论
- 如何写一个最简单的操作系统
- 如何写一个最简单的操作系统
- 大学生能否写一个简单的操作系统?
- 怎么写一个简单的操作系统
- 《自己动手写一个操作系统》个人实践1
- Linux操作系统下如何写一个Module
- 在VC6里把偏特化后的模板类(或者整个模板类族)声明为另一个类的友元的方法
- Ubuntu MYSQL 主服务器配置文件及配置流程
- Android之TextView
- 小米步童鞋店在这次交易中到底损失了多少钱 ?
- ipc$入侵非常好的文章
- 写一个操作系统
- Makefile常用函数总结
- IN4007和IN4148的用途
- Struts2输入校验以及错误信息处理(1)——用Action中定义的validate()方法进行校验
- 一道C++考试题目
- QQ输入法 for iPhone2.3
- qemu源码分析之Makefile
- nodejs安装过程
- JavaWeb 开发-国际化-DateFormat类(国际化日期)