第1章:开发环境搭建,在 Windows 中安装 VS 2019

专栏导航

上一篇:第1章:下载 Linux 0.12 内核

回到目录

下一篇:无

本节前言

对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。

我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。

另外呢,本专栏是一个整体,是用来系统化地讲解 Linux 0.12 内核的一套教程。所以呢,也需要你在学习本节课程的时候,注意专栏的体系完整性。

比如软件安装,我们需要在整个专栏中,安装一套软件,那你如果是为了学习 Linux 0.12 内核,那么,你就需要跟随着本教程,安装好一整套软件,而不可以孤立地看着某个课节。

比如说,我们的专栏中,会讲解 Bochs 模拟器 的安装。这个软件的安装,就需要在我们专栏中所指定的乌班图 26.04.1 版本里面进行。脱离了这个系统版本,你在其它的版本的乌班图里面,或者是在其它的 Linux 发行版里面来安装,那么,你可能会安装不上。

所以,请大家在学习本专栏的课节的时候,务必要注意本专栏的体系完整性,注意查看本专栏的目录。

本专栏为 Linux 0.12 内核专栏,为啥还会涉及 Windows 里面的 IDE,VS 2019 呢?

在正文内容中,我们将揭晓。

一. 下载和安装 VS2019

VS2019,它是微软公司开发的 IDE,Visual Studio 软件的 2019 版。

这个 IDE,是一个功能非常强大的 IDE 。

在 Windows 的世界里,想要开发 C/C++ 程序和 C# 程序,它可以说是一个王牌 IDE 了。

关于为啥要来安装这个软件,我们在下一分节来说明。

本分节,我们给出几个链接,跟着这个课节链接,大家可以学习到如何安装 Visual Studio 2019 软件,以及基本的使用方法。

下面,我们来给出这几个链接。

参考课节:下载与安装 VS2019

参考课节:用 VS2019 编写C语言程序

参考课节:在 VS2019 里面,打开一个解决方案

参考课节:在 VS2019 里面,显示行号

参考课节:在VS2019里面,调整代码字体大小

参考课节:编程技能:多文件编译

参考课节:编程技能:将现有的代码文件导入项目

参考课节:Visual Studio 技能:调整软件界面布局

通过这些个课节的内容,你能够下载和安装好 VS2019,并能够达到对 VS2019 的基本使用。

预计,这些个课节,大家学习起来,应该会花费一些个时间的。慢慢学。

希望大家能够学好其中的内容。

二. 为何要安装 VS2019 ?

本专栏,我们主要的任务,是去讲解 Linux 0.12 内核。那么,为何要在 Linux 内核专栏里,让大家安装和使用 VS2019 ?

这是因为,VS2019,有一个很好用的功能,是我们可以去使用的。

我们在阅读一个内核源代码时,时不时地,需要去查找某一个变量、函数和宏定义的声明位置与使用位置。内核源代码,通常,代码行数都会很多,如果我们单纯地靠个人记忆,我们是记不住它们都在哪里定义,以及在哪里使用的。

而很多时候,我们在读到某些个代码的时候,我们可能又需要知道变量、函数或者宏定义的定义位置与使用位置,这个时候,若是有一个东西,能够帮助我们快速定位,那就好多了。

在 Windows 的世界里,Visual Studio 软件,就可以实现这样的功能。

其中,VS2019,它不单是可以跟踪定位 Windows 程序的变量、函数与宏定义的声明与使用位置,也可以用来跟踪 Linux 内核代码的变量、函数和宏定义的声明与使用位置。

为了阅读 Linux 0.12 内核的方便,为了很方便地查找和定位变量、函数和宏定义的声明与使用位置,我们可以采用 Visual Studio 2019 软件,来帮我们完成这一任务。

三. 案例演示

(1)在 VS2019 中,打开 Linux 0.12 内核文件夹

在之前的一个课节中,我们已经教给大家,如何来下载 Linux 0.12 内核了。这个课节的链接,就在下面。

参考课节:第1章:下载 Linux 0.12 内核

接下来呢,请大家自行将 Linux 0.12 内核的源码压缩包给解压缩,使用 2345 好压软件就可以解压缩的。

然后呢,我们打开 VS2019 软件,结果如下图所示。

图1

在图1 所示的界面中,我们点击红色框线所示的【打开本地文件夹】按钮,结果如下图所示。

图2

接下来呢,请大家在图2 所示的【浏览】对话框里面,浏览到你解压缩好了的 Linux 0.12 内核的顶层文件夹。

在我这里,我是将 Linux 0.12 内核源码压缩包,在下图所示的路径中解压缩的。

图3

在图3 中,下方的红色框线为 0.12 源码压缩包,上方的红色框线是我解压缩的路径。

接下来呢,我们在图2 所示的【浏览】对话框里面,浏览到图3 所示的【linux-0.12】文件夹里面,结果如下图所示。

图4

然后呢,在图4 里面,我们来点击右下方的【选择文件夹】按钮。结果如下图所示。

图5

在图5 里面的【解决方案资源管理器】选项卡里面,大家可以看到,我们已经是打开了 Linux 0.12 内核的顶层文件夹了。

在你那里,有可能,【解决方案资源管理器】文件夹并不是在左边,而是在右边。位置在哪儿没有关系,只要有就行。我们打开的 0.12 内核的顶层文件夹,就会在【解决方案资源管理器】里面进行显示。

如果,你不小心将【解决方案资源管理器】选项卡的叉号给单击了,将这个选项卡给关闭了,那么,我们也可以通过依次执行【视图】->【解决方案资源管理器】菜单命令,来将其显示出来。如下图所示。

图6

内核文件夹已经打开了。接下来,请大家随我一起执行一些个任务。

(2)【转到定义】与【速览定义】

我们在【解决方案资源管理器】中找到下述位置。

图7

我们来展开图7 中,红色框线所示的【init】文件夹图标左边的向右三角号,然后双击打开【main.c】,结果如下图所示。

图8

然后呢,我们在右边的代码显示区域,将界面往下拉,找到下面的位置。

图9

对于图9 的红色框线所示的 160 行代码,我们可能会想要知道,这个【buffer_init】函数的定义代码是怎样的。

接下来,我们将鼠标指针移动到【buffer_init】字样的区域中,然后点击鼠标右键,结果如下图所示。

图10

在图10 里面,我们来点击【转到定义】选项,结果如下图所示。

图11

看吧,图11 所示,就是 buffer_init 函数的定义代码了。在窗口的右上角,还有一个黄色的选项卡,它代表了 buffer_init 函数所在的代码文件 buffer.c 的选项卡。

这个选项卡,之所以与【main.c】选项卡不同,没有位于左边而位于右边,是因为,它只是一个临时创建的选项卡。

如果我们点击这个黄色选项卡的叉号,就会关闭这个选项卡,回到 main.c 选项卡及其代码显示窗口之中。

我们也可能想要了解,这个 buffer_init 函数,及其选项卡所示的 buffer.c 在哪个文件夹里面。我们可以将鼠标指针移动到【buffer.c】选项卡上面,结果如下图所示。

图12

大家请看,在弹出的提示框中,我们了解到了【buffer.c】代码文件的位置。

接下来,请大家点击【buffer.c】选项卡的叉号,关闭这一选项卡,回到 main.c 选项卡及其代码显示窗口里面。

【转到定义】功能,可以用来查找某一函数的定义代码的位置。

【转到定义】功能,也可以用来查找某一个宏的定义位置。方法和查找某一函数的定义代码位置的方法一样。将鼠标指针,移动到宏名称所在的区域,然后点击鼠标右键,选择【转到定义】菜单项,就可以定位到宏定义的位置了。

【转到定义】功能,还可以用来查找某一个变量的定义位置。方法与查找函数定义与宏定义的方法类似。将鼠标指针,移动到变量名所在的区域,然后点击鼠标右键,选择【转到定义】菜单项,就可以定位到变量定义的位置了。这个变量,可以单纯的全局变量,也可以是结构体中的成员变量。

是不是很方便?

在图10 里面,在【转到定义】选项的上方,还有一个速览定义,我们看看这个选项有何功能。

接下来,我们还是将鼠标指针移动到 main.c 的 160 行的【buffer_init】函数名的区域,然后点击鼠标右键,弹出跟图10 一样的右键菜单,然后我们点击【速览定义】菜单项,结果如下图所示。

图13

根据图13 的内容, Visual Studio 软件,它是临时地开辟了一个淡黄色显示区域,用来显示 buffer_init 定义代码。这个新开辟的淡黄色显示区域,位于原本显示 main.c 代码的显示区域里面,而不是位于临时单独新建的【buffer.c】选项卡之中。

我们同样可以将鼠标指针移动到图13 里面,【buffer.c】选项卡的位置,结果如下图所示。

图14

如图14 所示,buffer.c 代码文件的位置,依旧是被显示在提示框里面了。

接下来,我们点击图14 中,buffer.c 选项卡里面的叉号,结束【速览定义】功能的使用。

(3)【转到声明】功能

转到声明,可以用来查看,某一个函数的声明情况。

接下来呢,我们在【解决方案资源管理器】界面中,点击【kernel】文件夹图标左侧的向右三角号,结果如下图所示。

图15

在图15 里面,我们双击【sched.c】选项,打开【sched.c】代码文件,如下图所示。

图16

在图16 的上方,出现了黄色显示的【sched.c】选项卡,它右边有【main.c】选项卡。如果你点击一下【main.c】选项卡,则下方的窗口,会转而显示【main.c】的代码内容,并且【main.c】选项卡会变为黄色显示。

所以,某一个选项卡呈现为黄色显示,则代码显示窗口中,显示的就是这个选项卡所对应的代码文件的内容。

我们保持【sched.c】选项卡的选中状态不动。

然后呢,我们将界面往下拉,找到下述位置。

图17

图17 所示,为 schedule 函数的定义代码。

接下来,我们就来看一看,它的函数声明情况。

我们将鼠标指针移动到【schedule】函数名的区域,然后点击鼠标右键,结果如下图所示。

图18

在图18 所示的右键菜单中,我们点击红色框线所示的【转到声明】选项,结果如下图所示。

图19

在图19 里面,蓝色选中区域所在行,60 行,即为 schedule 函数的声明情况。根据右上角的黄色选项卡的显示,此声明代码,位于 sched.h 头文件中。

我们来看一看 sched.h 头文件位于哪个位置。

我们将鼠标指针移动到黄色显示的【sched.h】选项卡的区域中悬停,结果如下图所示。

图20

在图20 中,弹出了提示框,用以显示 sched.h 头文件所在的位置。

**特别提醒,对于变量和宏,我们也可以使用【转到声明】功能。**而对于变量和宏,【转到声明】与【转到定义】的功能效果是一样的,都是会定位到它们的声明或定义代码。只有函数,才会区分声明与定义。

接下来,我们关闭右上角的黄色显示的【sched.h】选项卡,点击其叉号即可实现关闭选项卡的功能。

(4)使用查找功能

有时,我们会希望查找某个变量、函数、宏的情况,既可能是想要了解它们的声明与定义情况,也可能是想要了解使用它们的情况,或者二者兼而有之。

我们来看一看,如何来使用这种搜索功能。

图21

当前的 VS2019,界面如图21 所示,我们打开了 sched.c 和 main.c 两个选项卡。

在这两个选项卡里面,sched.c 选项卡又是当前选项卡,又是定位到 schedule 函数的附近。而这个 schedule 函数,算是一个明星了。在 Linux 0.12 内核里面,调用它的地方可是不少。

我们就来看一看,都有哪些个地方声明、定义或者调用了它。

我们在 VS2019 里面,依次点选【编辑】->【查找和替换】->【在文件中查找】菜单命令,过程如下图所示。

图22

图23

在图23 里面,红色框线所示的文本框里面,可以输入我们想要查找的内容。

我们本次想要查找的,是【schedule】函数的声明、定义和使用情况。我这里,在弹出图23 的时候,红色框线所示的文本框里面,直接出现了【schedule】函数名。如果不是这个函数名,我们也可以手动输入它。

接下来呢,我们点几次【查找下一个】按钮,过程如下图所示。

图24

图25

图26

图27

图28

图29

图30

图31

图32

图33

图34

图35

图36

图37

图38

图39

在我所展示的这些个搜索结果里面,它包含了许多的带吗行,也涉及了诸多的代妈文件。好多的 schedule 函数名,它是位于 sched.c 里面。其余的,还有 exit.c、ll_rw_blk.c 和 sched.h 文件。

(5)小结

到了这里,Visual Studio 软件,大家可以关闭了。

以上的诸多查找内容,如果让大家自行记忆和查找,我认为会很难。人很难记住这么多的琐细的东西。

如果你很擅长 Linux 命令,其实,用 Linux 命令,就可以找到这些个东西。不过呢,我不擅长 Linux 命令,我目前比较熟悉的,还是 Visual Studio 软件。

借助于 Visual Studio 软件,我们可以很方便地去查找很多东西。

至于说,如何用 Linux 命令来查找到这些东西,还得请大家自行学习好 Linux 命令。这玩意儿,想要学好,我觉得,凭个人造化吧。这会儿,我也在学习 Linux 。

最后,我们来对本节内容做一个简单的回顾。

本节主要完成了两件事:一是下载并安装了 VS2019,并了解了它的基本使用方法;二是通过具体的案例演示,掌握了在 VS2019 中阅读 Linux 0.12 内核源代码的几种常用手段,包括【转到定义】、【速览定义】、【转到声明】以及【在文件中查找】功能。

借助这些功能,我们在阅读内核源码时,可以快速定位变量、函数和宏定义的声明位置与使用位置,从而大大提升阅读效率。对于不擅长 Linux 命令的读者来说,VS2019 提供了一条非常友好的代码阅读路径。

当然,如果你熟悉 Linux 命令,也可以使用 grep 等命令行工具来达到类似的目的。两种方式各有优劣,大家可以根据自己的习惯来选择。在后续的课节中,我们会继续使用 VS2019 来阅读 Linux 0.12 内核的更多源码,敬请期待。

结束语

关于 Visual Studio 软件,我个人是很喜欢这个软件的。界面美观,功能强大,还能够用来阅读 Linux 内核源代码。

在我写作的时刻,我也在正在写 Windows 编程专栏。在本篇文章的第一分节里面,我们展示的几个参考课节,都是出自我正在写的 Windows 编程专栏。

你若是喜欢的话,你也可以关注我的 Windows 编程专栏,学习 Windows API 与 MFC 知识。

本节结束。

专栏导航

上一篇:第1章:下载 Linux 0.12 内核

回到目录

下一篇:无

相关推荐
supabc1231 小时前
Celium:连接 Windows、Mac、Linux 与 Android,让远程访问和设备管理更简单
android·linux·windows·macos·远程访问·网络管理·celium
ebiobiz1 小时前
Zig 嵌入式底层库选择与 build.zig 组织指南
c语言·c++·嵌入式硬件·mcu
ShineWinsu2 小时前
对于Redis:RDB持久化的解析
linux·数据库·redis·缓存·面试·持久化·rdb
Ruiery10 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包10 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
wjkjpcba12 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭12 小时前
达梦事物特性及MVCC
linux·运维·数据库
羔羊++14 小时前
18_实验十七_其他命令与自定义启动变量
linux
DYWorker00116 小时前
Linux驱动:RK3568 GMAC + YT8531C 千兆以太网全流程解剖
linux