从1开始写操作系统

介绍

一个简单的类unix内核,目前准备支持x86和arm架构,其中arm目标支持平台是raspi2b。在本系列文章中主要用arm的代码作为例子,原因是x86架构有较重的历史负担导致编码异常困难,但是x86部分我也差不多写了个大概,两者代码会考虑的。主要参考已有的类unix内核,xv6/FreeNOS/linux,重写一个通用的类unix的内核,并且提供一个最小根目录文件系统,验证可行性。

选择x86和raspi2b的另一个重要原因是qemu支持模拟这两种硬件型号,降低对实际物理硬件的依赖和调试难度。

开源代码地址

借用sqlite作者的话:

May you do good and not evil.
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.

https://github.com/5dplay/tiny-kernel-v2.git

局限

  • 目前仅在qemu上开发, 需要格外支持 才能在硬件机器上正常工作。
  • 由于时间精力以及能力有限,目前的实现 仅支持32位,即使是arm也仅使用aarch32指令集。
  • 仅支持单核,多核与单核相比多的是一系列并发处理上的问题,不影响整体框架。后续若是有精力再单独讨论smp相关的实现。
  • 无论是内存管理还是其他的基本采用最简单的实现方式,但会提供接口以供他人编写出更酷的实现方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值