麻省理工大学XV6操作系统赏析(序言)

来源:互联网 发布:淘宝店铺常用推广方式 编辑:程序博客网 时间:2024/04/30 13:51

        标题可能取为“XV6操作系统源代码分析”可能更简洁些,但可能吸睛度不高,毕竟XV6这几个字的名头远不如Linux响亮。贴上麻省理工大学这块金字招牌大概能“骗取”一次点击率,更重要的是原产美利坚的XV6源代码百分之二百对得出MIT这杆大旗,若因Xv6本身的江湖名气不够而被忽略,实乃憾事。扯上大旗或傍上大款的坏处是若败絮其中则必招板砖无数,且会让诸位看官误以为笔者出自MIT这等名门,实际情况是笔者一介草莽,只是神州大地上普遍存在的“高富帅”的反物质之一。“源代码分析”这几个字道明了要做的事情,却了无诗意。窃以为读源代码,需要如品茶品诗般,观其大概后,要细细品味,偶尔画蛇添足地改上几笔,才能回甘无穷。综上得标题“麻省理工大学XV6操作系统赏析”。

        实际上,麻省理工大学也正是用XV6来进行操作系统相关课程的教学和研究的。有HTTP链接为证”http://pdos.csail.mit.edu/6.828/2012/xv6.html”。上世纪80年代到90年代的欧美程序员很多是读着Unix  V6的源代码茁壮成长的,而那时我们很多人还以为学电脑就是学五笔打字。有china-pub上号称“旷世奇书”的《莱昂氏UNIX源代码分析》为证。在2006年前,MIT的OS教学仍然是延用伟大的 Ken Thompson and Dennis Ritchie 开创的UNIX操作系统第6版的源代码。但毕竟这份代码是用远古时代的C语言,且面向的是似已在地球上绝迹的PDP-11的硬件平台。在IT这一行,考古属于冷门。于是,MIT的教授们就让Unix V6在多核时代的X86平台上重生,起名为“XV6”。

        在这个信息极大丰富的互联网时代,学习操作系统其实有很多的选择。有些勇敢的人直接投入最新的Linux内核中,有些人从Linux驱动玩起,有些人选类Windows的开源操作系统ReactOS,有些人读大牛Andrew S. Tanenbaum的Minix。同济大学的赵炯老师著的《linux内核完全剖析》走的是考古路线,看似回头路,其实有时后退是为了更好的前进。毛德操和胡希明老师的《Linux源代码情景分析》也是精品中的精品。无论哪种,“用它,读它,写它”才是搞清操作系统的不二法门。在这分工越来越细的时代,是不是每个程序员都有必要去读操作系统源代码则是一个见仁见智的问题了。如果你有兴趣了解一个操作系统是如何工作的,那XV6绝对是上佳的选择,内核再加应用层的所有代码都不到1万行,实现了mkfs, cat, grep, sh,ls 等应用层程序,内核有完整的文件系统、多进程,常见设备(键盘、显示器,IDE硬盘)的驱动,甚至支持多核平台。你没看错,统统这些,应用层的shell,创建文件系统的mkfs,内核代码,支持多核等等总共只有8000多行C代码(包括少许汇编)。只要你有耐心和信心,你绝对可以把它吃透,而XV6也会给你带来无比的快感。美中不足的是内存管理相对简单,仅停留在静态分页,尚未引入请求分页。但8000多行的代码能做这么多事情,已经是够牛了,且MIT的大师们对之的定位也是用于教学(Xv6 is a teaching operating system)。

原创粉丝点击