美文网首页程序员技术文
linux 内核引发的有关于代码思考

linux 内核引发的有关于代码思考

作者: 为为王 | 来源:发表于2018-06-23 02:27 被阅读165次

    发展与复杂性

    随着linux内核和linux应用程序茁壮发展,系统规模变得越来越大,复杂程度不断提高。有经验的内核开发者对内核特性还能了如指掌,但是这么庞大的系统让新人几乎无法理解,难以跟上linux内核的发展步伐。这种青黄不接的现象可能会造成内核质量上的极大隐患。

    解决上述问题的一个方法就是保持代码简洁,规范接口定义,变量合理命名,单一职责原则,合适的方法行数等等。最重要的还有注释,良好的注释应该写方法功能、明前置条件、参数含义、返回值条件以及异常信息。

    注释又被成为意图,识别意图和实现之间的差异的工作称为调试。如果一个方法意图不明确,不但调试工作难以进行,读者更无法理解。

    不过即便有良好的注释,也没有办法说清楚内核的各个子系统的细全景,说明他们到底做什么。这个时候最佳的选择就是编写一份说明文档,最好配上一些易于理解的图片。

    设计

    linux在设计上遵守简单至上的原则,将所有的东西都当做文件来对待。这种数据结构得以简化系统复杂性,对数据的才做和对设备的操作都使用同一套接口:open()、read()、write()、lseek()和close()。

    linux内核和相关系统工具都采用c语言编写,linux可以方便的创建新进程,且有一个非常独特的fork()系统调用。

    linux提供了一套非常简单、稳定的操作系统通信原语,快速简洁的进程创建过程使linux程序把目标放在 保证质量的完成任务 上。而简单稳定的进程间通信机制又可以保证这些单一目的的简单程序可以方便地组合在一起,去解决现实中复杂的问题。

    正是归功于这种策略和机制分离的概念,linux系统才具有清晰的层次化结构。

    基于UNIX,今天linux已经发展成为一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统。

    版权

    Linux Torvalds在大学期间本来是热衷于Minux(用于教学的廉价UNIX),不过由于版权限制他不能轻易修改或发布该系统的源代码,也不能对Minix开发者所做出的设计轻举妄动,这些事让Torvalds觉得心里很是不舒服。

    生机勃勃的大学生Torvalds决心开发自己的操作系统来改变这种让人不舒服的版权,经过一年的研发和不断改善,Torvalds就有了虽不成熟稳定但功能俱全的“UNIX”,并且将这个系统源码发布于社区中。

    linux成功的最重要的因素是开源系统吸引了很多开发者、黑客对其源码进行修改和完善。正是因为开源的版权许可,linux迅速成为了多人合作的项目。linux虽然借鉴了UNIX,但它并不是UNIX。linux虽然借鉴了UNIX的许多设计,并实现了UNIX的Oosix标准和Single UNIX Specification 定义的API,但linux并没有直接使用UNIX源码。

    linux是一个非商业化的自由软件产品,开源和自由助力linux迅速发展,茁壮成长。不过linux也不是完全自由的,它使用的协议规定:任何人都可以自由的获取并修改内核代码,但如果你想发布修改后的内核,同时需要向其它人公开你修改后的内核源代码。

    引用

    本文的写作和学习中参考了以下资料
    1.《Linux Kenel Development ~ Thrid Edition 》

    相关文章

      网友评论

        本文标题:linux 内核引发的有关于代码思考

        本文链接:https://www.haomeiwen.com/subject/jqxryftx.html