From:
当Linus最初把Linux带到这个无法预测的大千世界的时候,它只能在i386上运行。尽管这个操作系统通用性很强,代码也写得不错,可是可移植性在那时算不上是一个关注焦点。实际上,Linus一度还建议让Linux只在i386体系结构上驰骋。不过,人们还是在1993年开始把Linux向Digital Alpha体系结构上移植了。Digital Alpha是一种高性能现代计算机体系结构,它支持RISC和64位寻址。这与Linus最初选的i386无疑是天壤之别。虽然如此,最初的这次移植工作最终花了将近一年终于完成了,Alpha机成为了i386后第一个被官方支持的体系结构。万事开头难,这次移植的挑战性是最大的,为了提高可移植性,内核中不少代码都被重写了。尽管这给整个移植带来了不小的工作量,可是效果是显著的,自此以后,移植变得简单轻松多了。
尽管第一个发行版只支持Intel x86,但1.2版的内核就可以支持Digital Alpha、Intel x86、MIPS和SPARC—虽然支持的不是很完善,带些试验性质。
在2.0版内核中,加入了对Motorola 68k和PowerPC的官方支持,而原1.2版支持的体系结构也纳入了官方支持的范畴,并且稳定下来了。
2.2版内核加入了对更多体系结构的支持,新增了对ARMS、IBM S390和UltraSPARC的支持。没过几年,2.4版内核支持的体系结构就达到了15个,像CRIS、IA_64、64位MIPS、HP PA_RISC、64位IBM S390和Hitachi SH都被加进来了。
当前的2.6内核把这个数字进一步提高到了20,有不含MMU的Motorola 68k、M32xxx、H8/300、IBM POWR、v850、x86-64,甚至还提供了用户模式(Usermode) Linux—一个在Linux虚拟机上运行的内核版本。对64位S390的支持和32位S390的支持放在了一起,移去了重复之处。
值得注意的是,每一种体系结构本身就可以支持不同的芯片和机型。像被支持的ARM和PowerPC等体系结构,它们就可以支持很多不同的芯片和机型。所以说,尽管Linux移植到了20种基本体系结构上,但实际上可以运行它的机器的数目要大得多。
在内核开发中这很普遍。如果打算做一件事,那么就要把它做好。为了追求完美,内核开发者们是决不会介意重写大段代码的。
阅读(222) | 评论(0) | 转发(0) |