
Linux内核
文章平均质量分 77
内核相关的知识
巭犇
做一件事,感动自己...
展开
-
LInux内核文件 VS 二进制文件
如下图所示命令显示文件的类型,从输出可以看出,文件是一个。原创 2024-12-01 08:30:00 · 998 阅读 · 0 评论 -
ext2_new_inode()函数详解
是ext2文件系统中用于分配新的 inode 的函数。定义在中,它完成了从 inode 位图中查找空闲 inode、初始化相关结构并将其返回的操作。指向目标目录的 inode,表示新 inode 将被分配到的目录。指定新 inode 的模式(文件类型和权限)。与目录条目相关的名字字符串,用于安全性初始化等。当前文件系统的超级块指针。指向 inode 位图的缓冲区头,用于跟踪 inode 分配。表示块组描述符,用于获取块组相关的元数据。扩展超级块信息,包含了文件系统的全局信息。原创 2024-11-28 16:04:59 · 419 阅读 · 0 评论 -
创建EXT2下inode的函数
这个函数体现了 EXT2 文件系统的核心设计,包括 inode 分配的高效性、错误恢复能力,以及针对目录和文件的不同策略。它结合了并发控制、位图操作和元数据管理等技术,是学习文件系统设计的重要范例。原创 2024-11-27 09:46:48 · 602 阅读 · 0 评论 -
通过Linux源码,解读文件创建的详细过程
touch命令通过系统调用触发了VFS与ext2文件系统的交互,最终通过和分配并初始化了一个结构体。整个过程涉及用户态与内核态的协作、VFS的抽象接口以及ext2特定实现逻辑。原创 2024-11-26 17:40:52 · 692 阅读 · 0 评论 -
什么是虚拟文件系统(VFS)
在Linux中,虚拟文件系统(Virtual File System, VFS)是一个抽象层,它提供了一种统一的接口来访问各种不同的文件系统。VFS的作用是隐藏底层具体文件系统的差异,让操作系统和用户能够通过统一的方式访问不同类型的文件系统,无论是本地文件系统、网络文件系统,还是其他特殊类型的文件系统。原创 2024-10-18 10:53:02 · 348 阅读 · 0 评论 -
什么是中断
在Linux中,中断(Interrupt)是一种硬件或软件信号,用来打断当前正在执行的任务,以便处理更紧急或高优先级的任务。中断机制的主要目的是让CPU能够及时响应外部设备的请求,从而提高系统的响应速度和资源利用效率。:由外部硬件设备(如键盘、鼠标、网络接口卡等)发出。当外部设备需要与CPU通信时,它会发送一个硬件中断信号,通知CPU处理它的请求。例如,当键盘按下时,键盘控制器会向CPU发送一个中断信号,告诉CPU有新的键盘输入需要处理。:由软件发出,通常通过特定的指令(如x86架构中的int。原创 2024-10-18 10:42:42 · 374 阅读 · 0 评论 -
什么是系统调用
在Linux中,是用户空间程序与操作系统内核之间进行交互的一种机制。用户程序无法直接访问硬件或执行一些敏感操作(如读写文件、访问网络等),这些操作需要操作系统内核的帮助。系统调用提供了一组接口,允许用户空间程序请求内核执行特定的任务。原创 2024-10-18 10:40:25 · 383 阅读 · 0 评论 -
快速升级CentOS/RHEL内核
快速升级CentOS/RHEL内核原创 2022-07-04 22:13:33 · 657 阅读 · 0 评论 -
内核模块Makefile文件详解
其中包括modules.order, .mod.c, .o, Module.symvers, .mod.o, ..o.cmd, ..ko.cmd,一个名为.tmpversions/的文件夹,当然还有内核模块二进制对象本身.ko,这是构建练习的全部要点。您会注意到,我们倾向于遵循一个内核模块一个目录的排序规则。为了构建它,我们只需cd到它的文件夹中,输入make,然后(祈祷!因此,有趣的是,这是一个递归构建:构建过程(非常重要)解析了内核顶级Makefile,现在切换回内核模块的目录并在其中构建模块。原创 2022-10-17 10:03:20 · 1189 阅读 · 0 评论 -
编写一个内核模块
编写MakefileMakefile中的内容详情请参考。原创 2022-10-17 14:25:59 · 1356 阅读 · 0 评论 -
CentOS下快速升级gcc版本
前言很多时候由于gcc版本过低问题,导致我们举步维艰,从gcc官网下载源码编译又比较费时费力,今天我就给大家分享一个快速升级gcc的方法升级到gcc 6.3:devtoolset-6已经结束支持,请安装devtoolset-7yum -y install centos-release-sclyum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutilsscl enable devtoolset-6 b..原创 2022-03-23 16:59:33 · 4227 阅读 · 0 评论 -
CentOS下编译Linux内核
前言编译内核是一项很简单的事情,但却是进入Linux内核世界的第一步,想要开发内核代码,想要了解内核的运行机制,第一步就是编译Linux内核,以下是在centos7.5环境下编译内核的具体流程。1、下载内核内核的源码的官方网站为The Linux Kernel Archives,在此网站下载最新内核源码。2、解压内核源码[root@rt7_node03 src]# tar xvf linux-5.16.14.tar.xz -C /usr/src/[root@rt7_node03 sr原创 2022-03-23 16:46:39 · 7224 阅读 · 0 评论 -
initramfs详解-----初识initramfs
在Linux内核被加载到内存并运行后,内核进程最终需要切换到用户太的进程来使用计算机,而用户进程又存在于外存储设备上,比如systemd进程,通常systemd进程所在的存储设备也是Linux真正的根文件系统所在的位置,我们知道内核源码是没有包含驱动程序的,驱动程序在外存储设备上,那么问题来了,要切换到systemd进程,就需要外存储的驱动,但是没有驱动又没办法访问外存储,这就进入先有鸡还是先有蛋的问题了(那到底是先有鸡还是先有蛋呢:)),这个时候initramfs就闪亮登场了。...原创 2022-08-02 19:02:10 · 11587 阅读 · 0 评论 -
initramfs详解----添加硬盘驱动并访问磁盘
在前面的两篇文章大致的讲解了initramfs,和设备文件文件系统,这篇文章就继续前两篇的文章继续讲解initramfs是如何实现让内核访问磁盘的。 设备的驱动程序都是以内核模块的形式存放的,本人用的是kvm的环境,机器挂载磁盘文件需要用到virtio相关的驱动,将相关的驱动复制到initramfs文件中。 安装驱动需要用到相关的程序,例如insmod,modprobe,lsmod等,其实这些程序都指向kmod,将相关程序也在initramfs中创建好。加载virtio_pci与原创 2022-08-03 19:56:50 · 1659 阅读 · 0 评论 -
initramfs详解----设备文件系统
既然提到设备,而且Linux将设备也抽象为文件,这里就不得不讨论一下设备文件或者说设备节点。通常情况下,某些需要从用户空间访问的设备都会在文件系统中建立一个设备文件,作为用户空间访问设备的接口。得益于Linux中虚拟文件系统的设计,用户空间的程序可以像访问普通文件一样,使用标准的文件访问接口实现与设备的交互。根据FHS的规定,设备文件存放在/dev目录下。在Linux系统的早期,设备文件是静态创建的,所有的设备节点是手动、事先创建的。笔者还记得在早期制作Linux发行版时,安装系统时,需要静态。...原创 2022-08-02 20:15:34 · 2228 阅读 · 0 评论 -
通过Linux内核源码制作操作系统
Linux源码只有运行起来才能成为操作系统,否则她只能静静的躺在存储介质上沉睡,本文就讲解如何将这个睡美人唤醒,唤醒后给他穿上旗袍她就成为RedHat,给她换上包臀裙她就成为SUSE,再或者给她换上超短裙,她就成为Ubuntu,总之就是你可以按照自己的想象,随意打扮这个小姑娘,当然我们也可让她裸奔。没有编译过内核的朋友,可以查看我之前写过的一篇文章,本文在此基础之上,将唤醒这个沉睡的美人。..................原创 2022-07-26 20:40:57 · 3394 阅读 · 0 评论