Linux内核
lw_yang
喜欢学习,努力工作,也享受生活,崇尚简单的快乐和幸福 ,为理想而奋斗
展开
-
Linux SKB基本结构剖析
 基于内核版本2.6.37本文主要剖析:sk_buff结构体、sk_buff操作函数、各协议层对其处理 主要源文件:linux-2.6.37/ include/ linux/ skbuff.h        &a转载 2018-09-12 14:05:55 · 2905 阅读 · 0 评论 -
Linux内核组成部分(一)
内核的任务在纯技术层面上,内核是硬件与软件之间的一个中间层。其作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址从应用程序的视角来看,内核可以被认为是一台增强的计算机,将计算机抽象到一个高层次上。例如,在内核寻址硬盘时,它必须确定使用哪个路径来从磁盘向内存复制数据,数据的位置,经由哪个路径向磁盘发送哪一条命令,等等。另一方面,应用程序只需发出传输数据的命令。...原创 2019-01-11 10:31:38 · 7739 阅读 · 1 评论 -
Linux系统的启动过程
Linux系统的启动过程:BIOS自检 —> grub引导程序 —> 加载内核 —> 执行init —> 启动shell —> login登陆系统系统启动各个阶段的详细介绍:一.BIOS自检计算机在接通电源之后首先由BIOS进行POST自检,然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入引导块。Linux系统是人BIOS中的地址0xFFFF0处...转载 2018-12-17 09:10:28 · 410 阅读 · 0 评论 -
linux内核源码解压
以linux 4.18.9为例到https://www.kernel.org/下载内核源码压缩包linux-4.18.9.tar.xz不要在windows环境下解压,windows环境下不区分大小写,因为同名(大小写)会丢失一些code可以使用winscp工具将linux源码压缩包传到linux环境下xz -d linux-4.18.9.tar.xz 解压为linux-4.18.9.t...原创 2018-09-21 09:25:07 · 4110 阅读 · 0 评论 -
Netfilter概述及其hook点
Netfilter概述 Netfilter/IPTables是Linux2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables从用户态的iptable...转载 2018-09-14 14:58:03 · 14992 阅读 · 0 评论 -
Linux桥mac地址表(Hash表)结构
struct net_bridge struct hlist_head hash[BR_HASH_SIZE]; …struct net_bridge_fdb_entry struct hlist_node hlist; struct net_bridge_port *dst; mac_addr addr; …进行地址学习时调用 br_fdb_updat...原创 2018-09-14 10:39:30 · 3074 阅读 · 0 评论 -
RCU锁机制
一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问内存的速度差距越来越大,而这种锁使用了原子操作指令,它需要原子地访问内存,...转载 2018-09-17 15:12:44 · 2307 阅读 · 0 评论 -
网卡驱动收发包过程
网卡网卡工作在物理层和数据链路层,主要由PHY/MAC芯片、Tx/Rx FIFO、DMA等组成,其中网线通过变压器接PHY芯片、PHY芯片通过MII接MAC芯片、MAC芯片接PCI总线PHY芯片主要负责:CSMA/CD、模数转换、编解码、串并转换MAC芯片主要负责:比特流和帧的转换:7字节的前导码Preamble和1字节的帧首定界符SFD CRC校验 Packet Filter...原创 2018-09-12 15:48:02 · 997 阅读 · 0 评论 -
硬中断和软中断
中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我...原创 2018-09-12 14:21:11 · 291 阅读 · 0 评论 -
Linux内核组成部分(二)
设备驱动程序、块设备和字符设备设备驱动程序用于与系统连接的输入/输出装置通信,如硬盘、软驱、各种接口、声卡等。按照经典的UNIX箴言“万物皆文件”(everything is a file),对外设的访问可利用/dev目录下的设备文件来完成,程序对设备的处理完全类似于常规的文件字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例...原创 2019-01-11 10:50:58 · 1214 阅读 · 0 评论