
Linux内核分析
结合linux内核代码分析linux操作系统
dwp1147170607
这个作者很懒,什么都没留下…
展开
-
Linux编译源码树外的内核模块
Documentation/kbuild/modules.txtBuilding External ModulesThis document describes how to build an out-of-tree kernel module.=== Table of Contents === 1 Introduction === 2 How to Build External Modules --- 2.1 Command Syntax --- 2.2 Options.原创 2020-08-21 15:28:30 · 1215 阅读 · 0 评论 -
kgdb原理
1 kgdb原理kgdb提供了一种使用gdb调试Linux内核的机制,是一种源码级调试。我们可以在本机上调试生成的linux内核镜像,还可以调试内核模块.ko。我们需要使用两台Linux,一台目标机,或称target、服务器,运行kgdb,另一台开发机,或称host、客户端,运行gdb,两台机器使用串口相连,也可以使用网络相连。被调试的内核运行在目标机上。需要调试时,目标机将启动kgdb,就...原创 2020-04-06 23:21:15 · 1687 阅读 · 0 评论 -
ubuntu卸载自己安装的linux内核
当我们编译好内核并将其安装后,如果想要卸载,我们可以执行下面操作。使用查看自己现在使用的内核版本:uname -r查看自己安装过的内核版本:dpkg --get-selections | grep 'linux',在里面我们可以找到对应的headers与image。先卸载headers:apt-get purge linux-headers-4.14.0接着卸载image:apt-get ...转载 2020-04-06 17:09:30 · 1066 阅读 · 0 评论 -
内核探秘之指针存储之谜
题注:本文以电子科技大学计算机学院李林老师授课内容为依据,记录本人学习的思路。1 指针变量里存储的到底是什么int test;int* ptr = &test;指针变量ptr 里存储的是什么?这不是废话吗,是地址。ptr中存储了test的地址,指针类型指明存放在该地址处的数据类型。在汇编语言中,我们使用逻辑地址(段基址:偏移量)。在8086CPU中,有20位地址总线,但C...原创 2020-04-04 13:18:10 · 698 阅读 · 0 评论 -
Linux内核源码的编译及安装
1 内核源码的编译先查看当前内核版本在内核ftp下载点下载与当前版本相近的内核源码,我选择了5.3.1的版本。在编译内核前,要根据目标内核的运行硬件环境对内核的编译选项进行配置,如make menuconfig等,为了简便,我这里在当前系统的config文件基础上进行编译。该config文件是在安装ubuntu是自动生成的,适配于本机硬件环境。本机的config文件在目录/boot/下...原创 2020-03-30 11:30:38 · 2218 阅读 · 0 评论 -
Linux /proc文件系统
/proc文件系统Linux将一切事物都看作文件,所以硬件设备在文件系统中也有相应的文件对应,我们可以通过前文讲到的linux文件系统调用这种方式通过/dev目录中的文件来访问具体的设备。Linux具有一个特殊的文件系统procfs,procfs是进程文件系统 (process file system) 的缩写,包含一个伪文件系统(启动时动态生成的文件系统),用于通过内核访问进程信息。这个文件...原创 2020-03-30 09:22:42 · 194 阅读 · 0 评论 -
Linux ELF二进制格式
1.ELF二进制格式ELF代表Executable and Linkable Format,它是用于可执行文件、目标文件和库文件的格式,内核本身也是elf格式。elf的文件格式可用于linux内核支持的几乎所有体系结构上,但这并不代表不同系统间存在二进制兼容性,只是程序本身的相关信息以及程序的各个部分在二进制文件中的编码方式是相同的。1.1布局ELF格式在此我们区分链接对象和可执行文件两种。...原创 2020-03-28 11:41:54 · 854 阅读 · 0 评论