我和操作系统(二)

来源:互联网 发布:11.11淘宝销售额 编辑:程序博客网 时间:2024/04/30 09:12
由于大二的经验,我OS的bootloader很快就被拿到了gcc下面,运行正常,从中得出了个结论,中断的启用对发现你的boot code down机的情况是个绝佳的工具,它帮你扑捉出错的一瞬间。如果不启用,代码中的内存保护性错误,让你很难找到哪里的问题,这个思想已经被我运用到了现在从事的工作中。printk一定得有,我需要看kernel debug信息。我设计并实现了内核中内存的动态分配kmalloc(),它不是最好的,但对我的这是一个很好的学习,再次感受C语言指针的奥秘。进程空间的分配,执行,与分时轮转切换的进程环境的实现,这些代码需要一口气写完,才可以暂时看看“效果”,我采用了IA-32的分段机制,分页没有使用,因为自认为分段应用的更广泛,到了现在的公司接触的cpu才知道,几乎只有intel的cpu采用分段的机制,同时还自以为是以此写了毕业论文,看来都是错的。C语言和汇编的共同协作使我成功完成了多任务内核中最核心的代码。当然此时写代码根本谈不上什么软件工程,每天睡觉之前,不知道明天能不能继续下去,技术问题都没有解决,谈架构怎能容易,就这样走一步算一步吧!AT硬盘的操作的驱动接着设计并实现出来,里面还包括内存缓冲。文件系统也得自己写,干脆支持微软FAT,到网上得找找FAT的详细资料,还真有微软发布过一个白皮书,之后实现了一下,不过只能读文件,写操作要稍微麻烦一点。
一转眼就要毕业了,内核就停在现在的状态,其中还写了PCI bus的枚举驱动,也就是这个时候我才知道现代的PC中,PCI是整个系统的桥梁,它有很好的灵活性。 
原创粉丝点击