logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux内核阅读总结

接着上篇CFS学习总结,下面对很久前看的一些Linux内核的主要模块写了个简单的总结,本总结个人针对某个模块的回忆,并不针对源码,主要目的是一方面加强自己的记忆,另一方面提炼出一些东西与大家分享(有时候代码看多了,对某个模块反而没有了一个整体的概念)。一、Linux 启动过程分析Linux的启动过程可以分为四个阶段:系统上电阶段, BIOS阶段,引导程序阶段,Linux内核

#linux#数据结构
Linux内核中ioremap映射的透彻理解

<br /><br />几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:<br /><br />  (1)I/O映射方式(I/O-mapped)<br /><br />  典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"

#linux
Linux内核网络系统结构图(TCP/IP)和源代码的布局

<br /><br />上面的代码在内核中经常使用到,其中“__attribute__”、“__section__”等就是GCC编译器的关键字。 上面这段程序提供了一种初始化模块的方法:<br />1、如果一个内核模块需要在系统启动的时候初始化,只需在模块的源程序中调用“module_init( function)”这样的代码,GCC编译器在编译代码时,就会将这个函数的指针放到一个特定的代码段中(

#网络#linux
linux内核中常用的汇编

 AT&T汇编语言的相关知识   在Linux源代码中,以.S为扩展名的文件是“纯”汇编语言的文件。这里,我们结合具体的例子再介绍一些AT&T汇编语言的相关知识。   1.GNU汇编程序GAS(GNU Assembly和连接程序当你编写了一个程序后,就需要对其进行汇编(assembly)和连接。在

#linux
Linux内核中Kprobes调试技术的实现

内核开发者一直在试图寻找一种快捷高效的内核调试手段,用于内核开发之中。高效的调试技术有利于提高内核开发效率,缩短内核开发周期。    本文研究了一种新型的内核调试技术―Kprobes, Kprobes是一个轻量级的内核调试工具,利用Kprobes技术可以在运行的内核中动态的插入探测点,在探测点处执行用户预定义的操作。本文首先根据Kprobes在Linux内核中的源码实现,针对L

#数据结构
从linux内核中学到的编程技巧

1构建泛型宏 (./linux/include/linux/kernel.h)#define min(x, y) ({/typeof(x) _min1 = (x);/typeof(y) _min2 = (y);/(void) (&_min1 == &_min2);/_min1 大家看了就明白是什么意思了。但是我还有几点疑问:(1)(void) (&_min1 =

linux内核模块管理命令

1. lsmod 列出已经加载的内核模块lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块。 2.modinfo 查看模块信息modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途。 3.modprobe 挂载新模块以及新模块相依赖的模块 

#linux#ide
linux内核----- swtich_to 详细分析

linux内核进程切换最重要的一个部分就是宏定义switch_to,下面从几个方面来详细讲解一下:(1)内嵌汇编(2)memory 破坏描述符(编译器优化)(3)进程切换的标志是什么?(4)堆栈切换的标志是什么?(5)为什么switch_to 提供了三个参数?(6)汇编参数的传递? 带着这几个问题,先来大体浏览一下代码 #define switch_to(p

linux内核同步

同步是linux内核中一种很重要的操作.它为内核提供了一种临界区和SMP系统中的数据保护机制.今天就来分析一下在linux内核是怎么样实现这些操作的.一:原子操作(摘自《understanding the linux kernel 2.4》)原子操作是指在执行过程中不能被打断的操作.它包括以下几种类型:进行一次或者零次对齐内存的访问操作都是原子操作.因为这些指令一般都是单指令.不可

#list
    共 39 条
  • 1
  • 2
  • 3
  • 4
  • 请选择