linux内核源码如何学习,linux内核源码剖析

kodinid 13 0

大家好,今天小编关注到一个比较意思的话题,就是关于linux内核源码如何学习问题,于是小编就整理了3个相关介绍Linux内核源码如何学习的解答,让我们一起看看吧。

  1. linux内核是代码吗?
  2. 跑在Linux上的程序必须开源吗?
  3. 鸿蒙剔除linux后内核用什么?

linux内核是代码吗?

是的,Linux内核是一系列由C语言编写的代码,用于管理计算机硬件***并提供系统调用接口,以实现操作系统的核心功能。这些代码包括处理器管理、内存管理、设备驱动程序和系统调度等模块。Linux内核的代码由全球各地的开发者共同维护和改进,是一个持续演化的开源项目,为各种设备和系统提供了稳定、高效的操作系统核心。

跑在Linux上的程序必须开源吗?

不是,只要能想办法绕过GPL就可以不开源。比如谷歌在安卓用中间层隔离内核,中间层开源,上面的驱动就不用开源了。应用层要自己写libc库,否则是绕不过,安卓、openwrt都用自己的libc,所以并不需要遵循GPL公开源码。

图片来源网络,侵删)

linux内核及众多软件***用的是gpl授权协议。gpl协议规定如果你在软件中包含了gpl授权的源代码或者调用了gpl协议的二进制文件时就强制继承了gpl协议。根据gpl协议必须承担开源义务(gpl2.0允许自用不公开可以不开源,3.0自用也要开源)。

在linux平台上编写软件是可以不继承gpl协议的。因为你可以不调用那些gpl协议的库文件,linux下有大量的lgpl协议的底层库文件。lgpl协议规定如果以动态链接的方式使用是可以不继承lgpl协议的,也就可以不开源。

依赖gpl协议的linux内核的库文件为什么可以不继承gpl协议呢?linux内核的原作者linus解释过,使用系统调用的方式调用内核功能不算包含源码,也不算调用库文件,只算是使用内核。使用gpl软件不用继承gpl协议。

linux内核源码如何学习,linux内核源码剖析-第2张图片-安济编程网
(图片来源网络,侵删)

话虽如此,但linux下大量的现成软件是gpl的,如果要在linux下编一个软件除非功能很简单,否则难免会调用到一些gpl软件,除非不用那些现成软件全部自己重新写过。那样会花费大量时间、精力。

GNU计划是提倡开源的,没有强制性,其实linux也是GNU***中的众多软件中的一个软件。开源有几种形势开源,二进制码开源,汇编语言开源等,源程序语言开源等,如果是二进制码开源的话,再通过某些手段加工,就算反编译也得不到源程序。如果想分享的话,一般会以源程序的形势来开源。

对于开源就不得不提一下GPL协议,GPL协议就是GNU***提出的开源协议。linux软件分为应用软件和系统软件,应用软件可能开源限制的不多,但是系统软件就要遵循GPL(开源)协议了,例如写linux驱动程序要加一句MODULE_LICENSE("GPL");--模块许可证声明为GPL。即此驱动程序是以GPL协议开源的。

linux内核源码如何学习,linux内核源码剖析-第3张图片-安济编程网
(图片来源网络,侵删)

鸿蒙剔除linux后内核用什么?

据官方称,鸿蒙操作系统剔除了Linux内核,而是***用了自主研发的鸿蒙微内核,并具有分布式能力。鸿蒙微内核以最小化的方式提供基本的内核功能,其他服务和功能运行用户空间。

微内核使用了一些新的技术,例如无锁IPC和分布式***调度等,这些技术可以提高系统的性能和稳定性,并促进鸿蒙的分布式能力。因此,鸿蒙微内核将成为鸿蒙操作系统的核心。

鸿蒙剔除了Linux内核后,***用了自主开发的Microkernel微内核架构。Microkernel架构的核心思想是将操作系统内核拆分成多个精简的功能模块,每个模块只包含最基本的操作,因此可以降低系统的复杂度和耦合性,提高系统的安全性和可靠性。

此外,鸿蒙还***用了分布式架构,将不同设备间的通信协议封装成一套统一的协议栈,从而实现不同设备之间的高效互通和协作。

到此,以上就是小编对于linux内核源码如何学习的问题就介绍到这了,希望介绍关于linux内核源码如何学习的3点解答对大家有用。

标签: 内核 开源 协议