首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )

文章目录 一、查看 .config 编译配置文件 二、正式编译内核 一、查看 .config 编译配置文件 ---- 在上一篇博客 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux...内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 ) 中 , 已经将编译配置保存到了 .config 文件中 ; 查看 .config 编译配置文件 , linux...内核源码根目录中 , 执行 gedit .config 命令 , 查看 .config 编译配置文件 : ( 也可以使用 vi , vim 等文本编辑器查看 ) .config 配置中 , #...代表注释 , CONFIG_IRQ_WORK=y 等号右侧的 y 表示同意该操作 ; .config 文件内容示例 : 配置文件很多 , 这里只贴出一部分 ; # # Automatically generated...---- Linux 内核源码根目录 , 执行 sudo make j4 开始编译 Linux 内核 ;

11.8K40
您找到你想要的搜索结果了吗?
是的
没有找到

精致全景图 | linux内核输出的日志去哪里

熟悉linux内核,或者看过linux内核源码的同学就会知道,在内核中,有一个类似于c语言的输出函数,叫做printk,使用它,我们可以打印各种我们想要的信息,比如内核当前的运行状态,又或者是我们自己的调试日志等...那当我们调用printk函数后,这些输出的信息到哪里去了呢?我们又如何在linux下的用户态,查看这些信息呢?...dmesg命令,默认情况下,是通过读取/dev/kmsg文件,来实现查看内核日志的。...对于linux内核来说,它会选择一个使用内存最多的进程,然后将其kill掉,以此来释放内存,保证后续的内存分配操作能够成功,这个我之前文章 为什么我的进程被kill掉了 有详细讲过。...比如,linux内核kill掉进程时,会用pr_err记录一行日志: 如果我们发现一个进程跑着跑着就没有了,就可以通过dmesg命令,查看是否有这个日志,如果有,说明该进程因为系统内存不足,被操作系统

2.7K30

Linux内核编程--文件描述符

Linux操作系统中,一切皆是文件—— "Everything is a file"。 如果要在Linux系统中编写操作文件的代码,需要借助文件描述符。...文件的索引——文件描述符(file descriptor): 文件描述符是一个非负整数,当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。...文件描述符就是内核为了高效管理已被打开的文件所创建的索引值。 文件描述符指向内核为每一个进程维护的打开文件记录表。当要处理文件时,将文件对应的文件描述符作为参数传给函数。...文件描述符在用户进程和内核之间的映射关系: Linux中查看文件描述符的指令:lsof(list open files) lsof可以打开的文件: 普通文件 目录 网络文件系统的文件 字符或设备文件...,非负整数是成功,-1是失败 whence文件中的位置如图所示: 当文件不再被使用时,可以调用 close(int fd) 函数来关闭被打开的文件

2.7K10

linux内核源码生成tags文件

一般来说,如果我们想要研究一个c/c++项目的源码,我们首先要做的是为该项目生成tags文件linux内核是c写的,所以它也不例外。.../Comparison-with-Similar-Tools 根据我的测试,gtags是最好用的,其官方地址是: https://www.gnu.org/software/global/ 由于linux...内核的项目结构非常庞大,如果我们项目的根目录直接为所有文件生成tags的话,会包含很多不必要的文件,比如我们只想要x86平台的相关实现,但结果却包含了各种其他平台的逻辑。...那怎么办呢,其实linux的Makefile里已经帮我们写好了如何生成各种tags,看下面的命令: $ make help # 省略其他 tags/TAGS - Generate tags...在生成tags文件后,我们就可以各种编辑器里使用了,下面是emacs编辑器使用gtags的效果图: ? 还不错吧。

4.3K20

Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的.../pub/linux/kernel/v5.x/linux-5.6.18.tar.gz 下载完 Linux 源码后 , 如果在 Windows 系统中解压 , 需要使用管理员权限 命令行终端 中解压 ,...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用...Code ) 博客 , 安装 VSCode 软件 ; 打开 VSCode , 选择 ” 菜单栏 / 文件 / 打开文件夹 ” 选项 , 选择 Linux 内核源码目录 , 点击 ” 选择文件夹 ”...按钮 , 此时就可以 VSCode 中阅读 Linux 内核源码 ; 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163620.html原文链接:https

23.2K32

Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的.../pub/linux/kernel/v5.x/linux-5.6.18.tar.gz 下载完 Linux 源码后 , 如果在 Windows 系统中解压 , 需要使用管理员权限 命令行终端 中解压 ,...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用...Code ) 博客 , 安装 VSCode 软件 ; 打开 VSCode , 选择 " 菜单栏 / 文件 / 打开文件夹 " 选项 , 选择 Linux 内核源码目录 , 点击 " 选择文件夹 "...按钮 , 此时就可以 VSCode 中阅读 Linux 内核源码 ;

21.2K30

linux内核编程_linux内核是什么

内核——操作系统的内在核心 设备驱动程序 启动引导程序 命令行shell 其他种类的用户界面—-操作系统的外在表象 基本的文件管理工具和系统工具 Linux内核的组成 Linux内核源代码目录结构是什么...fs:支持的各种文件系统,如EXT、FAT、NTFS、JFFS2 等。 include:头文件,与系统相关的头文件被放置include/linux 子目录下。 init:内核初始化代码。...Linux内核的有哪些组成部分? 进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC) Linux内核的的组成部分之间有什么关系?...Makefile:分布Linux 内核源代码中的Makefile,定义Linux 内核的编译规则。 配置文件(Kconfig):给用户提供配置选择的功能。...Linux 内核中增加程序需要完成哪些工作? 将编写的源代码复制到Linux 内核源代码的相应目录。 目录的Kconfig文件中增加新源代码对应项目的编译配置选项。

18.8K30

Linux如何添加自启动文件(添加在哪里

本文说的启动文件指的是内核启动之后,启动根文件系统系统过程中添加自启动文件。...那我们在哪里增加自己的程序呢,可以/etc/init.d/rcS这里增加,也可以 /etc/rcS.d文件夹里增加。...添加文件 有rc.local这个文件 经常可以看到有些介绍让把自启动应用程序放入rc.local这个文件的,这个文件通常是最后启动的,一般/etc/rcS.d这个文件里(链接文件)。...S999rc.local,S是指start,999是循环的时候最后执行。放入这几个文件夹是是因为不用考虑程序执行的是哪个文件夹(执行哪个文件夹是runlevel决定的),比较方便。...这样之后rc.local就会自动最后执行,以后想加文件只改动rc.local这个文件就可以了。

14.7K40

LINUX内核

一、Linux内核2.6特点: 1.新的调度器 2.内核抢占 3.改进线程模型 4.虚拟内存 5.文件系统 6.音频:音频体系结构ALSA.支持USB音频和MIDI设备,并支持全双工重放功能。...二、LINUX内核的组成 1.LINUX内核源代码目录结构 1)arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。如i386,arm,powerpc,mips等。...:头文件,与系统相关的头文件放在include/Linux下。...模块 16)sound:ALSA,OSS音频中设备的核心代码和常用设备驱动 17)usr:实现了用于打包和压缩的CPIO等 2.LINUX内核组成部分 2.1 LINUX主要用进程调度,虚拟文件系统,...3.Linux内核空间与用户空间 Linux只能通过系统调用和硬件中断来完成用户空间到内核空间的控制转移

13.9K30

Linux 内核】编译 Linux 内核 ② ( 解压内核源码 | 查询当前 Linux 内核版本号 | 进入并查看 linux 内核源码目录 )

文章目录 一、解压内核源码 二、查询当前 Linux 内核版本号 三、进入并查看 linux 内核源码目录 一、解压内核源码 ---- 将 下载的 Linux 内核源码 linux-5.6.14.tar.gz...拷贝到 Ubuntu 虚拟机中 , 执行 tar xvf linux-5.6.14.tar.gz 命令 , 解压 Linux 内核源码 ; 解压完毕后 , linux-5.6.14 目录中就是解压后的...Linux 内核源码 ; 二、查询当前 Linux 内核版本号 ---- 执行 uname -a 命令 , 查询当前 Ubuntu 系统的 Linux 内核版本号 , 执行过程如下 : root@ubuntu...x86_64 x86_64 x86_64 GNU/Linux root@ubuntu:~/kernel# root@ubuntu:~/kernel# 当前的内核版本号是 4.13.0 ; 三...、进入并查看 linux 内核源码目录 ---- 进入之前解压的 linux-5.6.14 内核源码目录 ; root@ubuntu:~/kernel# ls linux-5.6.14 linux-5.6.14

86.7K60

Linux 内核监控 Android 攻防中的应用

tracefs),即读写文件的方式去与内核交互实现 uprobe 监控。...上述跟踪点实际上是 drivers/char/random.c 文件中进行了调用: static ssize_t urandom_read_nowarn(struct file *file, char...值得一提的是,最近几年 Linux 内核出过很多 eBPF 的漏洞,大多是 verifier 的验证逻辑错误,其中不少还上了 Pwn2Own,但是由于权限的限制 Android 中普通应用无法执行 bpf...Android 移植 上面说了那么多,终究只是 Linux 发行版上的热闹,那么这些 trace 方法 Android 上行得通吗?...,需要自行修改配置,烧写和编译内核Linux 旧版本对于 eBPF 的支持不完善,许多新功能都是 5.x 后才引进,而 Android 的 Linux 内核都比较旧,需要进行 cherry-pick

3K30

比原生更快: Linux 内核中运行 WebAssembly

这篇文章将介绍我们 Linux 内核中实现的 WebAssembly 安全运行环境。...我们 Linux 内核中成功运行了一个 TCP Echo 服务端程序,并取得了相对原生代码 10% 的性能提升。...这两个例子使用了 WASI (文件抽象、控制台输出)和我们的异步网络扩展(通过 kernel-net 库)。...编译、运行 加载内核模块前,请确保: 你的内核版本大于等于 4.15 你的内核启用了抢占执行(preemption)。尝试未启用抢占的内核上执行 WASM 用户代码会锁死你的系统。...内核文件和构建环境已安装 首先,clone 仓库:https://github.com/wasmerio/kernel-wasm 然后仓库的根目录和 networking 、 wasi 目录下执行

4.2K20

Linux 内核 vs Windows 内核

内核程序执行在内核态,用户程序执行在用户态。当应用程序使用系统调用时,会产生一个中断。发生中断后, CPU 会中断当前执行的用户程序,转而跳转到中断处理程序,也就是开始执行内核程序。...---- Linux 的设计 Linux 的开山始祖是来自一位名叫 Linus Torvalds 的芬兰小伙子,他 1991 年用 C 语言写出了第一版的 Linux 操作系统,那年他 22 岁。...ELF ELF 的意思是可执行文件链接格式,它是 Linux 操作系统中可执行文件的存储格式,你可以从下图看到它的结构: ?...Windows 的可执行文件的格式与 Linux 也不同,所以这两个系统的可执行文件是不可以在对方上运行的。...这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。

16.3K30

Linux内核编程--文件流与缓冲区

Linux系统下,通过编程对文件进行操作的方式有两种机制:文件描述符和文件流 1.文件描述符和文件流的区别: 文件描述符的类型为int,文件流的类型为FILE*(文件指针)。...内核操作文件会使用高速缓冲区。...比如write操作, 进程把数据写到缓冲区, 然后内核把数据从缓冲区写到磁盘文件。 当进程不断写入数据时,内核可以等缓冲区满了再一次性往磁盘写入,这样可以提高性能。...流程图如下: 缓冲分三种模式: (1)全缓冲,写满标准I/O缓冲区后才进行I/O操作, 例如磁盘文件(非交互式设备)的I/O操作 (2)行缓冲,输入/输出中遇到换行符时才进行I/O操作,例如在终端进行...常用的open函数--fopen()/freopen()/fdopen() fopen():打开路径名为pathname的指定文件 freopen():一个指定的流上打开文件

2.8K10

Linux内核开发_1_编译LInux内核

linux-4.10.15.tar”,解压完xz后还有一重tar,使用tar命令解压一次就可以得到原内核文件,这里建议解压到/usr/src目录下,这里没有别的意思,是Linux内核开发者们给我的建议...,copy到我们的linux内核根目录下,copy的新名字要在前面加个“.”...,Linux内核加载根文件系统之前,VFS会去使用临时的文件系统做相关的初始化工作,当一切就绪后才会去调用实际的根文件系统。...建议 这一段话是我经历许多天的编译Linux内核过程中习得的总结,可以跳过。...,而gnu的软件体系不断的升级进化,每次的升级,都会被用在正在开发中最新的Linux内核,而除了原始版的Linux内核不是Linux上编译出来的以外,其余的Linux内核版本都是Linux内核上开发而来的

19.3K20
领券