写点什么

Linux内核

0 人感兴趣 · 89 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/47/47a3e5955bab43fec5520b313d27e7d9.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列 (12) —— 系统中断概述

中断是操作系统的核心机制,操作系统是通过中断来响应和处理各种事件和请求,包括硬件设备和软件请求,以响应系统事件、管理系统资源、实现多任务处理和处理异常情况等,并确保系统的稳定性和可靠性。

https://static001.geekbang.org/infoq/f5/f515e739cace20f584102b63442dad9e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列 (11) —— sysfs 文件系统

Sysfs(System Filesystem)是Linux内核提供的一种虚拟文件系统,用于向用户空间公开有关设备和驱动程序的信息。它类似于/proc文件系统,但是专注于设备和驱动程序信息,而非进程信息。

https://static001.geekbang.org/infoq/26/26af7b9c8b173f8f752016a25caae8ae.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列(十)——等待队列 Waitqueue

Waitqueue作为一种重要的同步机制,用于实现多个进程之间的协作。等待队列允许一个或多个进程等待某个条件成立,然后在条件满足时被唤醒。这种机制通常用于进程间的同步和通信,例如在设备驱动程序中等待设备状态的改变或在并发处理中进行同步操作。

https://static001.geekbang.org/infoq/f8/f8afade28edf86c8db5b873b347f41c3.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列(九)——procfs 文件系统

procfs是一种特殊的文件系统,用于提供关于正在运行的进程和系统内核的信息。在许多类Unix操作系统中,包括Linux,procfs被挂载在/proc目录下。通过查看/proc目录下的文件和子目录,可以获取有关系统中运行进程各种信息,例如进程ID、进程状态、内存使用等。

https://static001.geekbang.org/infoq/f1/f15b3dcfcea3bbcf50dd454704c43b6c.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列(六)——文件操作

当需要对设备执行打开/关闭和读写操作时,我们需要在设备驱动程序中注册一些结构,主要是struct cdev和文件操作struct file_operations。

https://static001.geekbang.org/infoq/a3/a3ea8c3128ea39145d909c72025ac53a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列(五)——字符驱动设备文件

设备文件不是普通的文件,它提供了一种便利的方式来访问系统资源,而不需要应用开发者了解底层设备的工作原理。与大多数Unix系统一样,设备驱动程序本身就是Linux内核的一部分。

Linux 设备驱动系列(四)——设备号

要创建特殊文件,我们需要了解设备驱动程序中的主设备号和次设备号(Major && Minor Number)。 Linux内核按照"<major>:<minor>"方式来表示一个字符设备或者块设备。

https://static001.geekbang.org/infoq/e2/e2a961e763da517e04aa1fa3ea8d9573.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列(三)——参数传递

在C语言应用程序中,可以通过在main函数定义中添加argc和argv参数来获取用户的输入。类似的,Linux设备驱动程序同样可以传递参数。本文将介绍Linux设备驱动程序中参数定义以及使用方法。

https://static001.geekbang.org/infoq/c6/c606675305ae649159d6b9995ec49871.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 设备驱动系列(一)——设备驱动介绍

设备驱动是一类特殊的系统软件,它用于使能与硬件设备的交互,如若缺少特定的设备驱动,相应的硬件设备也无法工作。 设备驱动通常是与特定操作系统绑定,并且具有硬件依赖性,它在硬件设备以及使用该硬件设备的程序或者操作系统之间扮演“翻译者”的角色。

https://static001.geekbang.org/infoq/d8/d89a4f092d85b54f1c245c6150c92b72.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从 Linux 内核角度探秘 JDK MappedByteBuffer

本文涉及到的内核源码版本为: 5.4 ,JVM 源码为:OpenJDK17,RocketMQ 源码版本为:5.1.1

https://static001.geekbang.org/infoq/3b/3b9b7393d20dd86e8a35e03cd7e54cf4.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一步一图带你构建 Linux 页表体系 —— 详解虚拟内存如何与物理内存进行映射

笔者之前在自己的专栏《聊聊 Linux 内核》 里通过大量的篇幅写了一个系列关于内存管理相关的文章,在这个系列文章中,笔者分别通过虚拟内存管理和物理内存管理两个角度算是把 Linux 内存管理子系统的全貌给大家呈现了出来。

https://static001.geekbang.org/infoq/d2/d2bcaf9c085bf83fad71113599b57178.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深度解读 Linux 内核级通用内存池 —— kmalloc 体系

本文是笔者 slab 系列的最后一篇文章,为了方便大家快速检索,先将相关的文章列举出来:

https://static001.geekbang.org/infoq/ef/ef1416a34583f2b4ab2d622b475cc93a.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

牛客网论坛最具争议的 Linux 内核成神笔记,GitHub 已下载量已过百万

Linux内核成神笔记:200+经典内核文章,100+内核论文,50+内核项目,500+内核面试题,80+内核视频

eBPF 的发展演进 --- 从石器时代到成为神(三)

用户头像
统信软件
2023-04-26

由以上简要的回顾和梳理可见,内核开发者们所不断寻找的是一种充分表达能力的动态机制,进而打破内核和用户态的壁垒(至少在逻辑层面),从而实现一种自由、直接的需求实现。技术成为内核开发者们锋利的工具,不断突破限制,揭示事物的本质。

5.10 版本 linux 内核的使用 slub 的 kmem_cache_init 函数解析

用户头像
linux大本营
2023-04-26

在5.10版本的内核中,如果使用SLUB内存分配器,kmem_cache_init函数会调用kmem_cache_init_late函数进行具体实现。

5.10 版本的 linux 内核 create_boot_cache 函数解析

用户头像
linux大本营
2023-04-26

create_boot_cache函数是Linux内核中用于初始化系统引导时的内存对象缓存(bootmem)的函数。

5.10 版本的 linux 内核 setup_kmalloc_cache_index_table 函数解析

用户头像
linux大本营
2023-04-26

setup_kmalloc_cache_index_table函数是Linux内核中用于初始化内存缓存和内存对象的索引表的函数。它主要是用于加速kmalloc和kfree的执行速度。

5.10 版本的 linux 内核 pgtable_init 函数解析

用户头像
linux大本营
2023-04-26

pgtable_init函数是一个用于初始化内核页表数据结构的函数。在Linux内核中,我们使用页表来管理物理内存与虚拟地址之间的映射关系。这个函数会根据系统的特性和配置来初始化页表,以确保内核可以正确地访问和管理物理内存。

eBPF 的发展演进 --- 从石器时代到成为神(二)

用户头像
统信软件
2023-04-26

回顾技术的发展过程,就像观看非洲大草原日出日落一样,宏大的过程让人感动,细节部分引人深思。每天循环不辍,却又每天不同。

eBPF 的发展演进 --- 从石器时代到成为神(一)

用户头像
统信软件
2023-04-23

技术的发展往往是积跬步而至千里的。Linux从92年诞生,发展至今已经覆盖大小各类的信息基础设施。是什么样的力量,让Linux能够始终保持发展活力,又如何看待Linux之上出现的新的技术趋势?

linux crash 怎么分析

用户头像
linux大本营
2023-04-22

查看系统日志: 使用命令dmesg或者/var/log/messages可以查看系统日志,主要寻找异常信息和错误提示。

/sbin/kexec 参数说明

用户头像
linux大本营
2023-04-22

/sbin/kexec是一个Linux内核工具,用于快速重启到另一个内核镜像而不需要通过BIOS进行完整的系统重新启动。它的常用参数说明如下:

https://static001.geekbang.org/infoq/bc/bcf0e56ec338e225ccce3be704996407.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux Radix Tree 详解

众所周知,Linux内核提供了许多不同的库和函数来实现不同的数据结构和算法,其中基数树(Radix Tree)作为一种常见的数据结构,由于其查找速度快、节省存储空间等特性,它在Linux内核中有着广泛的应用。

https://static001.geekbang.org/infoq/f5/f5bc43c7a259386c147f7d3202916be8.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

肝下 50 万字的《Linux 内核精通》笔记,你的底层原理水平将从入门到入魔【建议收藏】

大部分程序员可能永远没有机会开发Linux内核或者驱动Linux,那么我们为什么还需要学习Linux内核呢?Linux的源代码和架构都是开放的,我们可以学到很多操作系统的概念和实现原理。Linux的设计哲学体系继承了UNIX,现在整个设计体系相当稳定和简化,这是大部分

https://static001.geekbang.org/infoq/0f/0f5d7cc9155a136f83707584f6845056.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 内核详细笔记目录

5个专题组成:进程管理专题、内存管理专题、网络协议栈专题、设备驱动管理专题、文件系统及内核组件专题 20个实战操作模块,2w+代码,版本4.12 更新内容5.x 【代码都是大同小异的,都是能直接运用的】

https://static001.geekbang.org/infoq/d5/d58a6b7f8c9d4edf46ae696fe6c66275.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

精通高并发与内核 | Linux 内核协程解析

协程是轻量级的线程,拥有自己的执行代码块,但是却不需要系统调用来切换,只需要在用户空间切换

https://static001.geekbang.org/infoq/91/91b5d2a1fc0f0e133b8b270d011575f1.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

精通高并发与内核 | Linux 内核进程的切换方式

Linux中如何进行进程的切换?原理是什么,由于线程的表现形式也为进程,只不过共享了数据,所以我们研究进程即可,线程也是如此

Linux内核_Linux内核技术文章_InfoQ写作社区