目录1. rest_init2. init 进程(kernel_init)2.1 kernel_init_freeable2.1.1 do_basic_setup2.1.2 prepare_namespace(挂载根文件系统)2.2 run_init_process      start_kernel 里面调用了大量的函数,每一
在内存trace中经常遇到线程uninterruptable sleep,而打出来的trace可以看到是如下:wait_on_page_bit_killable+0xb0/0xcc __lock_page_or_retry+0xb8/0xf4 filemap_fault+0x4cc/0x630 ext4_filemap_fault+0x34/0x48 __do_fault+0x88/0x110 h
转载 2024-08-14 13:47:50
676阅读
所谓动名词,就是可以当名词用,可以当主、宾、表、定。My hobby is swimming. 我的爱好是游泳。(这里 swimming 当名词“游泳”) 所谓分词,就是动词。你要想表示这个动作是正在发生的或者主动进行的,那么就是-ing.你要想表示这个动作时已经结束的或者被动进行的,那么就是-ed. He is swimming. 他在游泳。 这里的 swimming 就是现
转载 10月前
49阅读
eBPF学习笔记(一)—— eBPF介绍&内核编译eBPF介绍eBPF基础代码验证即时编译eBPF开发工具BCCbpftracelibbpf C/C++库eBPF Go库内核编译查看内核版本下载内核源码安装依赖项安装最新版llvm和clang配置内核编译内核BPF示例程序常见问题问题一:libbpf: map 'rx_cnt': unexpected def kind var.问题二:/
转载 2024-07-30 13:44:35
200阅读
02.查看或配置网卡信息序号命令对应英文作用01ifconfigconfigure a network interface查看/配置计算机当前的网卡配置信息02ping ip地址ping检测到目标ip地址的连接是否正常2.1网卡和IP地址网卡网卡是一个专门负责网络通讯的硬件设备IP地址是设置在网卡上的地址信息我们可以吧电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码IP地址每台联网的电脑上
随着 Snowpack、Vite 等利用提倡 no-bundle 的构建工具逐渐兴起,同时现代浏览器对原生 ESM 的普遍支持,Bundle-less 的概念席卷前端圈,那么我们如何理解 Bundle-less?究竟是炒概念还是能够真正地给业界带来收益?下面就来分享一下我对于 Bundle-less 的理解以及在这个方向上做过的一些探索。如何理解 Bundle-less?Bundle-less,也
SWIOTLB概述IOMMU的核心功能就是,实现在low buffer和high buffer之间的sync,也就是内存内容的复制操作。读者可能会想,内存的复制,在内核中,不就是调用memcpy()函数来实现的吗?没错,这就是本文要介绍的IOMMU的软件实现方式——SWIOTLB。之所以说是软件实现,是因为sync操作在底层正是调用memcpy()函数,这完全是软件实现的。SWIOTLB的作用在于
转载 2024-06-06 11:12:12
348阅读
何为内核:         1、内核是操作系统最基本的部分。         2、内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础, 它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
转载 2024-03-27 23:35:58
163阅读
11.1 应用与硬件硬件的控制由Windows全权负责,实际上Windows提供了通过应用来间接控制硬件的方法,利用操作系统提供的系统调用功能就可以实现对硬件的控制,在Windows中,系统调用称为API,各API就是应用调用的函数,这些函数的实体被存储在DLL文件中 假如要在窗口中显示字符串,就可以使用Windows API中的Text Out函数 ‘设备描述的句柄’中的参数hdc,是用来指定字
本文介绍了Linux内核中几种关键的内存管理机制:DMA内存通过dma_alloc_coherent实现外设直接访问内存,无需CPU干预;IOMMU提供硬件地址转换与隔离功能;一致性内存确保CPU与设备访问同步;伙伴系统管理物理页帧;CMA用于分配大块连续内存;SWIOTLB则作为无IOMMU时的软件中转方案。每种机制各有特点,适用于不同场景,如DMA适用于高性能I/O,CMA适合大块内存需求设备。文中还提供了各机制的核心API和对应的设备树配置方法。
转载 22天前
445阅读
全系列文章链接Linux x86-64 IOMMU详解(一)——IOMMU简介Linux x86-64 IOMMU详解(二)——SWIOTLB(软件IOMMU)Linux x86-64 IOMMU详解(三)——Intel IOMMU(硬件IOMMU)的功能与基本原理Linux x86-64 IOMMU详解(四)——启用Intel IOMMU的配置Linux x86-64 IOMMU详解(五)——I
前言本系列的第一篇文章已经提到,IOMMU分别有软件和硬件实现方式。软件IOMMU就是SWIOTLB,上一篇文章已经进行过详尽的介绍。而对于硬件IOMMU,有多个厂商都设计了自己的IOMMU。由于我的开发机器为Intel x86平台,因此接触的是Intel IOMMU。 刚开始,我也找过网上很多资料,但是它们要么是基于较旧的Linux内核版本,要么理解不够深入。因此,即使我并没有深入地掌握Inte
转载 2024-01-14 20:29:32
1013阅读
物理内存:真实的内存芯片颗粒,在物理总线上占据一段或几段连续的地址范围。虚拟内存:用户程序使用虚拟内存地址访问内存单元,虚拟内存地址总是要翻译成物理总线上的地址。这样一来,物理总线上不连续的内存范围,在虚拟内存地址上也可能是连续的,这满足了用户程序对大块连续内存的使用需求。在已经运行过一段时间的系统中,分配一个物理地址上连续的、大内存是比较困难的;Linux操作系统的swiotlb会在系统启动早期