linux驱动开发学习笔记一:关于linux内核的一些基本概念

一、什么是linux内核?

  • Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。
  • 操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”
  • Linux内核的主要模块(或组件)分以下几个部分:存储管理CPU和进程管理文件系统设备管理和驱动网络通信,以及系统的初始化(引导)系统调用等。

二、linux内核的具体功能

  • 管理进程

  • 管理内存

  • 文件系统

  • 设备控制

  • 网络管理

具体可以参考这篇文章: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本身特别是内核不统一或是不兼容。

四、我们为什么有时要重新编译linux内核?

  • 新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。 通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

  • 或者是出于某种需求,比如对内核大小有要求,去掉内核中某些用不到的部分,这种场景往往出现在嵌入式系统中。

  • 或者自己修改了某部分内核代码或者新写了一个设备驱动,需要编译后验证功能。

五、系统移植用到了哪些文件?

  • linux内核编译完成之后,会生成一个.zimage文件和一个.dtb文件,它们分别是镜像设备树

  • 我们在进行系统移植的时候,其实移植了四个文件,除了已经说到的这两个之外,还有就是ubootrootfs,分别是用于启动内核的引导程序根文件系统

  • 因此,也就是说引导程序镜像设备树以及根文件系统这四部分组成了一个系统。

六、结语

以上内容只是为了提前对一些名词有个整体的概念,至于ubootlinux内核的编译以及根文件系统的详细知识等后面学习到的时候我们再说,以上如果有什么错误还望指正,谢谢!!!

你可能感兴趣的:(#,Linux驱动开发学习笔记,linux,操作系统,内核)