Linux
是一种开源电脑操作系统内核。它是一个用C
语言写成,符合POSIX
标准的类Unix
操作系统。操作系统
是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘
和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统
,在Linux的术语中被称为“内核”
,也可以称为“核心”
。Linux内核
的主要模块(或组件)分以下几个部分:存储管理
、CPU和进程管理
、文件系统
、设备管理和驱动
、网络通信
,以及系统的初始化(引导)
、系统调用
等。
-
管理进程
-
管理内存
-
文件系统
-
设备控制
-
网络管理
具体可以参考这篇文章:https://www.jianshu.com/p/d14b85853051
三、什么是linux发行版?和linux内核有什么关系?-
Linux内核
的发展过程中,我们还不得不提一下各种Linux发行版
的作用,因为正是它们推动了Linux
的应用,从而也让更多的人开始关注Linux
。 -
一些组织或厂家,将
Linux系统
的内核与外围实用程序(Utilities
)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理工具,就构成了一种发行版本(distribution
),Linux
的发行版本其实就是Linux核心
再加上外围的实用程序
组成的一个大软件包
而已。 -
相对于
Linux操作系统内核
版本,发行版本的版本号随发布者的不同而不同,与Linux系统内核
的版本号是相对独立的。因此把SUSE、RedHat、Ubuntu、Slackware
等直接说成是Linux
是不确切的,它们是Linux
的发行版本,更确切地说,应该叫做“以Linux为核心的操作系统软件包”
。 -
根据
GPL准则
,这些发行版本虽然都源自一个内核,并且都有自己各自的贡献,但都没有自己的版权。Linux
的各个发行版本(distribution
),都是使用Linus
主导开发并发布的同一个Linux内核
,因此在内核层不存在什么兼容性问题。每个版本都不一样的感觉,只是在发行版本的最外层才有所体现,而绝不是Linux
本身特别是内核不统一或是不兼容。
-
新的内核
修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。 通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux
使用者的必要操作内容。 -
或者是出于某种需求,比如对
内核大小
有要求,去掉内核中某些用不到的部分,这种场景往往出现在嵌入式系统中。 -
或者自己
修改了某部分内核代码
或者新写了一个设备驱动
,需要编译后验证功能。
-
linux内核
编译完成之后,会生成一个.zimage
文件和一个.dtb
文件,它们分别是镜像
和设备树
。 -
我们在进行系统移植的时候,其实移植了四个文件,除了已经说到的这两个之外,还有就是
uboot
和rootfs
,分别是用于启动内核的引导程序
和根文件系统
。 -
因此,也就是说
引导程序
、镜像
、设备树
以及根文件系统
这四部分组成了一个系统。
以上内容只是为了提前对一些名词有个整体的概念,至于uboot
、linux内核的编译
以及根文件系统
的详细知识等后面学习到的时候我们再说,以上如果有什么错误还望指正,谢谢!!!