当前课程知识点:互联网体系结构 >  第三周:TCP协议与Linux内核 >  Linux系统的编译、构建和调试 >  Video

返回《互联网体系结构》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《互联网体系结构》慕课在线视频列表

Video课程教案、知识点、字幕

接下来

让我们需要看构建一个linux系统

因为我们需要构建一个linux系统

我们才能对这个linux系统里面的代码进行跟踪分析

对吧

跟踪分析

这样那我们只是读代码的话

就是纸上得来终觉浅对吧

我们可以代码读代码

可以一边的跟踪代码的执行过程

我觉得这样了

我们相互映照

这样对代码的理解更加深入

对吧也可以带着问题去阅读代码去追踪代码

这样学习效率会更高一些

所以那我们会建立起来

一个就是会自己构建一个

linux系统

然后呢

便于我们对就是linux内核的代码进行跟踪分析

那么构建linux系统的过程的大概是这样子的

我们首先你需要下载一个内核源代码的吧

我们就可能之前就是我们下载内核源代码

某一个版本的内核源代码

这样呢

我们根据这个源代码也是构建的内核

那么我们在读内核源代码的时候

这两者要匹配起来

对吧匹配起来

否则的话你跟踪的时候呢

他具体的代码行号可能版本号有细微的差异

他那个代码有变化

所以那你的代码的具体位置呢

你就是阅读的和跟踪的客户有差异就不太好了

所以呢

大家就是下载的时候呢

可以下载一个就是某一个版本

那么你在构建的时候阅读的时候也要就是使用相同的版本

只要两版本一致就好

我这样的事以5.0.1比较新的一个为例

这样

我们下载了我们使用这两个指令

把它解压哦

在linux里面可以解压

解压完之后呢

我们就是编译内核呢

他需要一些工具对吧

但是他需要的就是编译内核的工具

这里面那就是必要的

就是基础的

在linux基础的C开发环境

都有了就是打包安装那就可以了

但是linux内核还需要一些其他的一些

比如说

SSL对吧还有

还有这个,用到的这个图形图形界面的啊

对不对,是吧

你说

我们就是在18.04的ubuntu版本下

你只要一个指令安装一下

就可以把编译内核所需的所有的工具都可以安装好

我们再来看看这个配置内核

配置内核配置的命令挺多的

我们根据不同的用途哈

比如说

他是按照默认生成的

默认的就是你当前的linux系统编译产生系统是什么版本,是x86 64位还是32位

他的配置文件是不一样

但是我们可以指明哈

如果我们指明我们希望编译

32位的就是

如果是希望编译64位的

但是那我们也可以用命令行方式

自行的配置对吧也可以allyes就把所有的编译大内核把所有的allyes所有的选项都变成yes

也可以编一个很全小很小的内核

就是,把所有的选项都为否

对吧

然后呢

我们还可以

就是只用通过图形化界面的方式

就是编译

编译的时候

那我们可以直接在就是内核根目录前

恩也可以

make -j加个数字对吧这个呢

你若是多核CPU的话

比如说卖四核CPU的话

make -j4

你不是说那他就有就是多个CPU核心一起执行

这样编译的速度会快一些

恩我们也可以

就是有兴趣的小伙伴

也可以对你的内核进行升级

我可以体验一下最新版的内核

当然新的东西呢

有它的好处也有它的坏处

对吧

好处就是他的有很多新的特性

坏处呢就是他还可能还不稳定

对吧还还可能有有问题有问题所以呢

我们如果有兴趣升级内核的话

我们编译好之后

我想升级我把当前操作系统的内核给他升级一下升级他那你最好做一下这个备份

做下去恢复系统恢复的工作系统备份的工作

那我如果我们是使用虚拟机的话

比如说虚拟机的话

你可以通过系统快照备份一下哦

不要以防一升级

整个系统坏了

对吧

虽然我们升级的时候也很简单

就是

你要升级的话

你要访问一些特权的目录

所以那叫make

新装模块

然后再装make install加载内核

修改这个

这个我们都是在18.04下测试过的

然后再重新写系统重启系统之后

就可以看一下当前系统偶变成了5.0.1

对吧

所以这个升级系统有兴趣的可以尝试一下哦

然后呢

我们是编译内核

那跟踪内核呢

还是要通过就是

虚拟机的方式会更方便一些

然后拿我们通过虚拟机加载内核

就是你你编译的内核是I386的还是64位的对吧

32位的还是64位的

如果这次正常的我们是用64位的对吧

因为当前系统是64位的我们64位的

用这个可执行程序加一个选项

然后指名我编译好的那个

我就可以把它加载了

加载起来呢

这只是内核被初始化了一遍

但是呢

他没法

这个

但这只是内核被初始化了一遍

但是他没有办法

就是没有跟文件系统

没有我们的就是用程序对吧

所以那他就是会有

我们到这儿

我们被用这个命令就是把kernel加载起来

但是加载起来

他初始化

最后加载这个文件系统的时候

发现

对吧

他没法挂载一个文件系统没法挂在一个文件系统

这是一个很常见的错误啊

感觉很常见的

但是这次这说明了我们把内核给跑起来了

对吧

如果你只是跟踪这个内核初始化的部分

那么就是在这个这样就可以跟踪了对吧

如果你要跟踪哦

比如说socket网络编程

比如说其他的一些功能需要系统调用来触发的功能

那么你还需要再创建一个根文件系统

我们在这让他创建根文件系统的方法

我们在这儿就是提供了一些指令

可以创建根文件系统

比如说这个dd对吧

这是输入的

这就是我们创建一个这个四兆大小的BS4096

哎就是创建了这么一个镜像

然后那我们对这个镜像进行格式化

把它格式化成文件系统

然后呢

我们再创建一个目录

给它挂载到这个目录

下面挂载这个目录下面之后呢

我们就可以

我们就可以给他增加一些文件

对吧就是增加一些

就是我跟文件系统我们那我们这个实验里面呢

我们在就是这个实验里面

我们lab3里边的提供了一些代码

我可以把它放进去放进去

这个就是一个menu的程序

然后呢

我们把这个文件系统给卸载掉

我们就可以把它挂载起来

就是把他执行起来

我们可以试一下啊

OK那我们可以看到

这时侯那我们就呃

不只是把内核加载起来了

而且他还把我们创建了一个根文件系统

给加载起来了更新系统

里面有一个我们的程序

就是一号进程

那menu程序呢

里边他提供了几个命令

对吧提供了几个命令

这几个命令

那就是我们可以看到他有一个TCP的服务

我们给大家内建的TCP的服务

我们可以在这儿可以跟踪TCP的服务

他服务是什么呢

这是一个server

那么客户端的是

实际上是哈喽客户端的程序呢

给服务端发送这个嗨,服务端回送回来一个哈喽对吧

这回终于好了

那就用这个服务端的他是我们创建的一个后台进程

所以我可以多次给他发送

互联网体系结构课程列表:

第一周:互联网概述

-课程内容简介

--Video

-网络协议基础

--Video

--Video

--Video

--Video

-上网浏览网页背后的网络通信过程

--Video

--Video

-实验环境安装配置

--Video

-网络相关命令

--Video

--Video

-本周作业

--外部链接

第二周:Socket网络编程

-编译、构建和调试

--Video

--Video

--Video

-Socket接口

--Video

--Video

-UDP范例代码

--Video

-TCP范例代码

--Video

-本周作业

--外部链接

第三周:TCP协议与Linux内核

-TCP协议概述

--Video

--Video

-Linux网络协议栈源代码简介

--Video

-Linux系统的编译、构建和调试

--Video

--Video

-TCP协议源代码分析

--Video

-本周作业

--外部链接

第四周:IP协议及路由表

-IP协议基础

--Video

-路由表

--Video

-路由转发举例

--Video

-IP协议栈源代码解析

--Video

-路由协议简介

--Video

-网络层数据传输路径解析

--Video

-本周作业

--外部链接

第五周:ARP协议及ARP缓存

-ARP协议基础

--Video

-ARP解析的过程

--Video

-ARP解析在网络传输过程中的作用

--Video

-ARP协议栈源代码解析

--Video

-本周作业

--外部链接

第六周:二层交换网络及转发过滤数据库

-以太网基础

--Video

--Video

-交换机的学习、转发和过滤数据库

--Video

-常见二层协议

--Video

-数据链路层在Linux网络协议栈中的一些关键代码分析

--Video

-本周作业

--外部链接

第七周:DNS协议及域名存储与解析

-DNS协议基础

--Video

-DNS域名的存储

--Video

-DNS域名解析过程分析

--Video

-本周作业

--外部链接

第八周:互联网架构设计背后的渊源

-互联网架构设计的最初动机与核心目标

--Video

-互联网架构设计的具体目标及背后重要权衡

--Video

--Video

--Video

-课程考核

--外部链接

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。