AT&T学习笔记汇编之内核

内核组成:

内存管理

设备管理

文件系统管理

进程管理

内存管理:

虚拟内存

交换空间

页面(块)

cat    /proc/meminfo

ipcs    -m

设备管理:

硬件管理  内核模块(kernel module)

unix文件:字符,块,网络

设备文件被创建为节点,内核唯一数字标识。(主次设备号)。相似设备的

主设备号相同,次设备号用于标识主设备号相同的设备。

文件系统

进程管理

init第一个进程。

系统调用  /usr/include/asm/unistd.h

ebx    第一个参数

ecx

edx

esi

edi

内联汇编

asm("nop");

时间: 2024-11-05 06:09:10

AT&T学习笔记汇编之内核的相关文章

iptables学习笔记之编译内核和iptables及安装l7proto

            编译内核和iptables及安装l7proto 一.环境介绍 操作系统:Redhat5.8_64bit 需要软件包: linux-2.6.28.10.tar.gz netfilter-layer7-v2.22.tar.gz l7-protocols-2009-05-28.tar.gz iptables-1.4.6.tar.bz2 安装步骤: 1).给内核打补丁,并重新编译内核 2).给iptables源码打补丁,并重新编译iptables 3).安装l7proto 1.给

学习笔记-汇编-双层循环

汇编中 循环的语法是 C语言中的循环 mov cs,N   //循环最大次数    <-----> int i=N; blockName: //循环开始 <----->  for(;i>0;i++){ //xxx...   //循环中的语句      <-----> //XXXX loop blockName //循环结束  <-----> } 另附上汇编示例代码 1 assume cs:code 2 code segment 3 start: 4 m

学习笔记-汇编-两个16位数字相加获得32位数字

使用的是MASM编译 在XP环境下 command内 debug 调试的 啥也不说 上代码!! assume cs:code,ds:data data segment dw 0fa12h,0fdffh data ends code segment start: mov ax,data mov ds,ax ;设置数据段 mov ax,0h ;清零 mov bx,0h ;清零 mov al,ds:[0] ;fa12低位 mov bl,ds:[2] ;fdff低位 add ax,bx ;两个8位数字相

Linux学习笔记&lt;十八&gt;——内核编译

内核由核心和内核模块两部分组成 核心:/boot/vmlinuz-version 内核模块(ko):/lib/modules/version/ 查看内核版本 uname -r 主版本号.次版本号(偶数表示稳定版本,奇数表示测试版本).修订版本号(修订的次数) 用户空间访问.监控内核是通过访问修改/proc,/sys目录下的文件(即设定内核的参数值)实现的 /proc/sys:此目录中的文件很多是可读写的 /sys:某些文件可写 设定内核参数值的方法: 1.echo VALUE > /proc/s

AT&amp;T学习笔记汇编之控制指令

跳转 jmp label call addresss 调用函数先将eip入栈,eip指向函数的地址 esp直接使用栈中的数据 push pop引用堆栈中的数据 程序通常把esp复制到ebp在使用ebp获取call指令之前传递给栈的信息. function_label: pushl %ebp movl %esp , %ebp <...normal code...> movl %ebp , %esp popl %ebp ret eflags 0 carry  借位 错位 11 overflow 溢

AT&amp;T学习笔记汇编之高级特性

高级特性: SIMD    single instruction multiple  data 单指令多数据 SIMD扩展  Streaming SIMD Extension    (SSE) 流化扩展第二实现  SSE2 第三    SSE3 MMX   对整数执行SIMD操作 64位打包字节,字,双字整数, MMx  0-7    映射到FPU寄存器R0-7 使用FSAVE,FXSAVE指令将FPU寄存器保存到内存中,防止和浮点指令混淆. SSE主要对浮点数执行SIMD操作.128位打包的单

AT&amp;T学习笔记汇编之内联c语言

asm("assembly code"); ansi c将asm用于其它用途,用__asm__替换 在asm后面加上 volatile可以禁止编译器优化 asm volatile ("pusha \n\tpopa"); __asm__ __volatile__ ("pushl $1\n\t"); 扩展asm asm ("asm code" : output locate : input operands : changed r

AT&amp;T学习笔记汇编之函数

步骤 1定义需要的输入值 2定义对输入值执行的操作 3定义如何生成输出值以及如何把输出值传递给发出调用的程序. 定义输入值 使用寄存器 使用全局变量 使用堆栈 .type    func1,    @function func1: 返回主程序 把结果放在一个或者多个寄存器 把结果放在全局变量内存位置. .type area    , @function area: fldpi imull    %ebx    ,    %ebx movl    %ebx    ,    value filds 

AT&amp;T汇编学习笔记

AT&T汇编和intel汇编的区别 (1)在Intel格式中大多使用大写字母,而在AT&T格式中都是用小写字母. (2)在AT&T格式中,寄存器名要加上"%"作为前缀,而在intel格式中则不带前缀. (3)在AT&T的386汇编语言中,指令的源操作数与目标操作数的顺序与在intel的386汇编语言中正好相反.在intel格式中是目标在前,源在后:而在AT&T格式中则是源在前,目标在后.例如,将寄存器eax的内容送入ebx,在intel格式中为&