
Linux源码剖析
uefi_artisan
这个作者很懒,什么都没留下…
展开
-
linux i210 网卡驱动解读
从最常见的修改mac address 说起:section 1: 读mac address /* Only the MAC addr is required to be present in the iNVM */ switch (offset) { case NVM_MAC_ADDR: ret_val = igb_read_invm_word_i210(hw, (u8)offse原创 2016-08-03 21:13:56 · 7860 阅读 · 0 评论 -
slab 分配器
伙伴系统用于分配内存时是以page 为单位的,在实际中有很多内存需求是以byte为单位的。那么如果我们需要分配以byte 为单位的小内存时,该如何分配呢? slab 分配器就是用来解决小内存分配问题的,也是内存中非常重要的角色之一...转载 2018-09-02 22:00:39 · 373 阅读 · 0 评论 -
内存管理概述
内存管理是一个很复杂的系统,涉及的内容很多。如果用分层来描述,内存空间可以分成3个层次,分别是用户空间层、内核空间层和硬件层。 用户空间层可理解为Linux 内核内存管理为用户空间暴露的系统调用接口,如brk, mmap 待系统调用。通常libc库会封装成大家常见的C语言函数。例如malloc() 和mmap() 等。 内核空间层包含的模块相当丰富。用户空间和内核空间的接...转载 2018-09-01 23:04:42 · 441 阅读 · 0 评论 -
网络文件系统
在分析sock_create() 过程之前,必须先了解一下网络的初始化入口,这有助于理解后面的分析过程。我们先介绍一个与文件有关的结构变量sock_fs_type, 它在2.6.26内核的net/socket.c中。static struct file_system_type sock_fs_type = { .name = "sockfs", .mount = sockfs_mou...转载 2018-04-07 12:05:44 · 720 阅读 · 0 评论 -
socket 的概念与意义
我们先了解socket数据结构的定义,它在include/linux/net.h 中./** * struct socket - general BSD socket * @state: socket state (%SS_CONNECTED, etc) * @flags: socket flags (%SOCK_ASYNC_NOSPACE, etc) * @ops: protoc...转载 2018-04-07 00:56:54 · 1201 阅读 · 0 评论 -
linux电源管理
当前流行的计算机系统都支持电源管理。特备是在笔记本电脑中电源管理有非常重要的作用。 目前比较流行的电源管理技术主要有两种: 高级电源管理(APM) , 高级配置与能源接口(ACPI).其中 ACPI 在两者中比较先进, 它将电源管理交由操作系统负责, 可以有更灵活的管理方式。 有实例表明采用ACPI 管理方式的计算机在能耗方面比采用APM 管理方式的计算机明显比较节能。原创 2017-05-08 23:05:50 · 992 阅读 · 0 评论 -
linux 文件系统管理
支持多种不同类型的文件系统是Linux操作系统的一大特色。目前支持的文件系统有ext, ext2, minix, umsdos, cnp, iso9660, hpfs, ntfs, xia, vfat, proc, romfs, nfs, smbfs, sysv, affs, efs, coda, hfs, adfs, qnx4, bfs 以及ufs等。 以后还会支持更多类型的文件系统。 这给系统转载 2017-05-13 08:27:20 · 504 阅读 · 0 评论 -
Linux 存储管理 缺页中断和页面换入
磁盘中的可执行可执行文件映像(image)一旦初映射到一个进程的虚拟空间,就可以开始执行。由于只有该映像区的开始部分调入内存。因此迟早会执行到那些尚未调入内存的代码。当一个进程访问了一个还没有有效页表项的虚拟地址时(即页表项的P位为0),处理器将产生缺页中断,通知通知操作系统。并将出现缺页的虚拟地址(在CR2寄存器中)和缺页时访问虚存的模式一并传递给Linux的缺页中断服务程序。转载 2017-05-10 22:37:37 · 1259 阅读 · 0 评论 -
Linux中断处理
设备管理过程中,中断号的申请是一个非常重要的操作。 当设备发出中断之后,硬件设备根据Intel CPU的通用处理过程,跳转到了该中断号对应的中断相应函数处。在Linux操作系统中,必定要跳到do_IRQ函数处。在do_IRQ()函数中,进行了一部分公共的中断响应处理之后,根据已经入栈了的中断号查找设备中断信息的注册结构数组irq_desc, 找到注册的响应函数之后,执行,最终原创 2017-01-15 18:31:51 · 525 阅读 · 0 评论 -
进程的诞生
进程是Linux 内核最基本的抽象之一,它是处于执行期的程序,或者说“进程=程序+运行”。 但是进程并不仅局限于一段可执行代码(代体段), 它还包括进程需要的其他资源,例如打开的文件,挂起信号量、内存管理、处理器状态、一个或者多个执行线和和数据段。Linux 内核通常把进程叫作是任务(task), 因此进程控制块(processing control block, PCB) 也被命名为 struc...转载 2018-09-03 21:14:11 · 296 阅读 · 0 评论