1.首先确定CPU,在这里为了简单,就选用嵌入式的CPU,比如ARM系列,之所以用RISC(简单指令集) 类型的CPU,其方便之处是没有实模式与保护模式之分,采用线性的统一寻址,也就是不需要进行段 页式内存管理,还有就是芯片内部集成了一些常用外设控制器,比如以太网卡,串口等等,不需要像 在PC机的主板上那么多外设芯片 2.确定要实现的模块和功能,为了简单,只实现多任务调度(但有限制,比如最多不超过10),实 现中断处理(不支持中断优先级),不进行动态SHELL交互,不实现动态模块加载,不实现fork之类 的动态进程派生和加载(也就是说要想在你的操作系统上加入用户程序,只能静态编译进内核中;不 支持文件系统,不支持网络,不支持PCI,USB,磁盘等外设(除了支持串口,呵呵,串口最简单嘛), 不支持虚拟内存管理(也就是说多任务中的每个进程都可以访问到任何地址,这样做的话,一个程序 死了,那么这个操作系统也就玩完了) 3.确定要使用的编译器,这里采用GCC,文件采用ELF格式,当然,最终的文件就是BIN格式,GCC和 LINUX有着紧密的联系,自己的操作系统,需要C库支持和系统调用支持,所以需要自己去裁剪C库, 自己去实现系统调用 4.实现步骤:首先是CPU选型,交叉编译环境的建立,然后就是写BOOTLOADER,写操作系统
|