为什么要学Linux系统

为什么要学Linux系统

Linux系统已经被广泛应用在人们的日常用品中,如手机、智能家居、汽车电子、可穿戴设备等,只不过很多人并不知道其使用的电子产品里面运行的是Linux系统。我们来看一下Linux基金会在2017年发布的一组数据。

90%的公有云应用在使用Linux系统。

62%的嵌入式市场在使用Linux系统。

99%的超级计算机在使用Linux系统。

82%的手机操作系统在使用Linux系统。

可能读者还不知道,全球100万个顶级域名中超过90%都在使用Linux;全球大部分的股票交易市场都是基于Linux系统来部署的,包括纽交所、纳斯达克等;全球知名的淘宝网、亚马逊网、易趣网、沃尔玛等电子商务平台都在使用Linux。

这足以证明Linux系统是个人电脑操作系统之外的绝对霸主。参与Linux内核开发的开发人员和公司也是最多、最活跃的,截至2017年有超过1600个开发人员和200家公司参与Linux内核的开发。

02

如何学Linux内核

Linux内核采用C语言编写,因此熟悉C语言是学习Linux内核的基础。读者可以重温C语言课程,然后阅读一些经典的C语言著作,如《C专家编程》《C陷阱和缺陷》和《C与指针》等。

对于刚刚接触Linux的读者,可以尝试在自己的电脑中安装一个Linux发行版,如优麒麟Linux 18.04,并尝试使用Linux作为操作系统。另外,建议读者熟悉一些常用的命令,熟悉如何使用Vim和git等工具,尝试去编译和更换优麒麟Linux的内核核心。

然后,开始在Linux机器上做一些编程和调试的练习,如使用QEMU+GDB+Eclipse来单步调试内核,熟悉GDB的使用等。

接下来,从一个简单的设备驱动程序开始。选择一个简单的字符设备驱动,如触摸屏驱动等。从编写和调试设备驱动到深入Linux内核的一些核心API的实现。

对Linux驱动有深刻的理解之后,就可以研究Linux内核的一些核心API的实现,如malloc()和中断线程化等。

学习Linux内核的过程是枯燥的,但是又那么吸引人,它的魅力只有你深入后才能体会到。Linux内核是全球顶级的程序员编写的,你每看一行代码,就好像和全球顶级的高手交流和过招,这种体验是在大学和其他项目上无法得到的。

因此,对于Linux爱好者来说,不要仅停留在会安装Linux和配置服务的层面,还要深入学习Linux内核。

03

本书特色

循序渐进地讲述Linux内核入门知识。

Linux内核庞大而复杂,任何一本厚厚的Linux内核书都可能会让人看得昏昏欲睡。因此,对于初学者来说,Linux内核的入门需要循序渐进,一步一个脚印。初学者可以从如何编译Linux内核开始入门,学习如何调试Linux内核,动手编写一个简单的内核模块,逐步深入Linux内核的核心模块中。

为了降低读者的学习难度,本书不会分析Linux内核的源代码,要深入理解Linux内核源代码的实现,可以参考《奔跑吧 Linux内核》。

突出动手实验。

对于初学者,理解操作系统最好的办法之一就是动手实验。因此,本书在每章中都设置了几个经典的实验,读者可以在学习基础知识后通过实验来加深理解。本书所有的实验都可以在优麒麟Linux 18.04系统中完成。

反映Linux内核社区新发展。

除了介绍Linux内核的基本理论之外,本书还介绍了当前Linux社区中新的开发工具和社区运作方式,比如如何使用Vim 8阅读Linux内核代码、如何使用git工具进行社区开发、如何参与社区开发等。

结合QEMU调试环境讲述,并给出大量内核调试技巧。

在学习Linux内核时,大多数人都希望有一个功能全面且好用的图形化界面来单步调试内核。本书会介绍一种单步调试内核的方法,即Eclipse+QEMU+GDB。另外,本书提供首个采用“-O0”编译和调试Linux内核的实验,可以解决调试时出现的光标乱跳和等问题。本书也会介绍实际工程中很实用的内核调试技巧,例如ftrace、systemtap、内存检测、死锁检测、动态打印技术等,这些都可以在QEMU+ ARM Linux的模拟环境下做实验。

配备丰富的电子教案和视频资源。

本书会在出版之后陆续提供配套的电子教案,并录制相应的配套教学视频,请关注异步社区官网和微信公众号。

04

Linux内核实验入门

实验1:在虚拟机中安装优麒麟Linux 18.04系统

1.实验目的

通过本实验熟悉Linux系统的安装过程。首先,要在虚拟机上安装优麒麟18.04版本的Linux。掌握了安装方法之后,读者可以在真实的物理机器上安装Linux。

2.实验步骤

1)从优麒麟官方网站上下载优麒麟18.04的安装程序。

2)到VMware官网下载VMware Workstation Player。这个工具对于个人用户是免费的,对于商业用户是收费的,如图1.1所示。

图1.1 免费安装VMware Workstation Player

3)打开VMware Player。在软件的主界面中选择“Create a New Virtual Machine”。

4)在New Virutal Machine Wizard界面中,选择“Installer disc image file(iso)”单选按钮,单击Browse按钮,选择刚才下载的安装程序,如图1.2所示。然后,单击“Next” 按钮。

图1.2 选择下载的安装介质

5)在弹出的窗口中输入即将要安装的Linux的用户名和密码,如图1.3所示。

图1.3 输入用户名和密码

6)设置虚拟机的磁盘空间,尽可能设置得大一点。虚拟机的磁盘空间是动态分配的,如这里设置了200GB,但并不会马上在主机上分配200GB的磁盘空间,如图1.4所示。

图1.4 设置磁盘空间

7)可以在Customize Hardware选项里重新对一些硬件进行配置,如把内存设置得大一点。完成VMware Player的设置之后,就会马上进入虚拟机。

8)在虚拟机中会自动执行安装程序,如图1.5所示。安装完成之后,自动重启并显示新安装系统的登录界面,如图1.5和1.6所示。

图1.6 配置硬件

图1.7 Vmware Workstation 14 Player登录界面(1)

图1.8 Vmware Workstation 14 Player登录界面(2)

实验2:给优麒麟Linux系统更换“心脏”

1.实验目的

1)学会如何给Linux系统更换最新版本的Linux内核。

2)学习如何编译和安装Linux内核。

2.实验步骤

在编译Linux内核之前,需要安装如下软件包。

到Linux内核的官方网站中下载最新的版本,比如写作本书时最新并且稳定的内核版本是Linux 4.16.3,其界面如图1.9所示。Linux内核的版本号分成3部分,第一个数字表示主版本号,第二个数字表示次版本号,第三个数字表示修正版本号。

图1.9 Linux内核

可以通过如下命令对下载的xz压缩包进行解压:

点击此处添加图片说明文字

解压完成之后,可以通过make menuconfig来进行内核配置,如图1.10所示。

图1.10 内核配置

除了手工配置Linux内核的选项之外,还可以直接复制优麒麟Linux系统中自带的配置文件

开始编译内核,其中-jn中的“n”表示使用多少个CPU核心来并行编译内核。

为了查看系统中有多少个CPU核心,可以通过如下命令实现。

processor这一项等于7,说明系统有8个CPU核心,因为是从0开始计数的,所以刚才那个make -jn的命令就可以写成make -j8了。

编译内核是一个漫长的过程,可能需要几十分钟时间,这取决于电脑的运算速度和配置的内核选项。

通过make编译完成之后,下一步需要编译和安装内核的模块。

最后一步就是把编译好的内核镜像安装到优麒麟Linux系统中。

完成之后就可以重启电脑,登录最新的系统了。

猜你喜欢

转载自blog.csdn.net/Linuxhus/article/details/100558096