zoukankan      html  css  js  c++  java
  • 必须用C模拟OS?

    ASM基本必要,至于高级语言就很难说了。去osdev wiki上一翻一堆各种语言实现的玩意。

    一个模拟OS其实不太容易完整搭出来,反倒是直接构造内核的后顾之忧少(如果还有真的想在SIGALRM里耍什么异常控制流的还是算了吧,挺悲催的)。不过如果是子系统模拟还是可以的:

    1. 进程的模拟一般强调调度算法多于基本抽象,所以可以考虑用原生的线程搭配k个互斥量模拟忽略超线程的SMP调度。实时调度的发生频率用一个timer就可以解决。
    2. 地址空间和MM是比较不容易模拟的东西,但国内老湿们往往喜欢啃buddy heap或者一般向header/footer-based heap而不是基础MM本身所以其实反倒好做。直接按算法模拟就行。
    3. 单纯针对硬盘的FS直接在一坨当作disk image的文件上搭几个模拟驱动,然后就开始算法向了。没什么特别要说的。
    4. I/O子系统模拟起来其实没什么趣味:失去了真实性的机制看起来也怪囧的,随机应变吧。

    即使是内核也不一定选择c/c++作为开发主要部分的高级语言,何况一个模拟实验。

    reference:
    http://forum.osdev.org/

  • 相关阅读:
    简易的观察者模式
    SSM项目实战 之 权限管理系统
    SSM项目实战 之 Shiro
    SSM项目实战 之 Maven
    SSM项目实战 之 EasyUI
    Oracle复习思路
    Oracle存储过程 函数 计算使用资源
    Mybatis笔记(二)
    Mybatis笔记(一)
    Oracle表空间 与 分页
  • 原文地址:https://www.cnblogs.com/foohack/p/3582215.html
Copyright © 2011-2022 走看看