设为首页 收藏本站
查看: 874|回复: 0

[经验分享] linux内核移植(一)——linux内核简介

[复制链接]

尚未签到

发表于 2018-5-19 13:27:27 | 显示全部楼层 |阅读模式
  一:linux的起源
      Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统,Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
  

  二:linux内核版本

  (1)linux0.01。初版,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。
  (2)linux0.11。很多讲linux内核源代码解析的书都是以这个版本为原
  本来讲。《图解linux内核设计的艺术》

  (3)linux2.4。比较接近现代的版本,很多经典的书都是以2.4版本内
  核为参照的,譬如《LDD3》。linux2.4的晚期内核在前几年还会经常
  碰到有用的。

  (4)linux2.6早期。2.6的早期和2.4晚期内核挺像的。

  (5)linux2.6晚期。2.6的晚期内核较早期内核有一些改变,尤其是驱
  动相关的部分和一些头文件的位置。2.6的晚期内核目前还算是比较主
  流。

  (6)linux3.x 4.x,现在的最新版本为linux4.7.1

  

  三:内核和发行版区别
    区别:内核是操作系统内核的简称,内核负责实现操作系统的核心
  功能(资源管理模块,譬如内存管理、调度系统······),内核不包括
  应用程序。所以说只有内核人是没法用的,因为人做任何事情都是通
  过相应的应用程序来完成的。所以卖操作系统的人把内核和一些常用
  的应用程序打包在一起提供给普通用户,这就是操作系统的发行版
  (也就是普通意义上的操作系统)。

  (1)内核只有一个。www.kernel.org

  (2)发行版有很多。譬如ubuntu、redhat、suse、centos······
  

  

  四:linux内核的模块化设计
  1:什么是模块化设计
  (1)因为linux内核很庞大,代码量很大、东西很多,如果设计时完全
  设计成一体(各个文件、各个函数之间紧耦合),复杂度超出了人所
  能理解的范围。所以模块化设计也是一种必要。

  (2)模块化设计就是内核中各个功能模块在代码上是彼此独立的,譬如
  说调度系统和内存管理系统之间并没有全局变量的互相引用,甚至函
  数互相调用也很少,就算有也是遵循一个接口规范的。模块化设计的
  目的就是实现功能模块的松耦合。

  2:模块化设计的体现
  (1)配置时可裁剪。linux内核在编译之前可以进行配置,配置时可以选择将组成内核的成千上万个模块每一个要或者不要。要了之后还有更多的一些细节的配置。

  (2)模块化编译和安装。为了操作方便,逐渐从静态的升级变成了动态的升级(不需要重启系统,更不需要重新烧录系统)。这种动态的升级也是由模块化来支持的。

  (3)源码中使用条件编译。这种在uboot中已经见过了


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-462037-1-1.html 上篇帖子: linux的/etc/fstab文件 下篇帖子: Linux 命令date
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表