
linux kernel
SprintfWater
My English name is SpringWater
展开
-
i386 寄存器整理
i386的寄存器 80386作为80X86系列中的一员,必须保证向后兼容,也就是说,既要支持16位的处理器,也要支持32位的处理器。在8086中,所有的寄存器都是16位的,下面我们来看一下80386中寄存器有何变化:· 把16位的通用寄存器、标志寄存器以及指令指针寄存器扩充为32位的寄存器· 段寄存器仍然为16位。· 增加4个32位转载 2013-11-17 13:21:28 · 2016 阅读 · 0 评论 -
文件系统:文件句柄 inode vnode (多进程 dup 硬链接 软链接原理)
文件描述符(进程级别): 1)、在每个进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视察为一个矢量(数组),每个描述符占用一项。与每个文件描述符相关联的是: (a)、文件描述符标志。 (b)、指向一个文件表项的指针。(不同的文件描述符可以指向同一个文件表项,例如用dup函数复制文件描述符,得到一个新的文件描述符,但是它转载 2015-03-12 11:17:26 · 1817 阅读 · 0 评论 -
多队列网卡特性
多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析转载 2015-01-23 10:44:52 · 1874 阅读 · 0 评论 -
gdb栈布局
http://blog.chinaunix.net/uid-16459552-id-3328601.html谈x86的栈帧之前,补充一下堆和栈的认识。1. 堆和栈的关系 我们平时说的堆栈其实是指栈,而实际上堆和栈是两种不同的内存分配。简单罗列一下各方面的异同点。 1).堆需要用户在程序中显式申请,栈不用,由系统自动完成。申请/释放堆内存的API,在C中是ma转载 2014-11-03 21:31:44 · 1655 阅读 · 0 评论 -
gdb coredump 问号
程序发生Crash时,一般会coredump出转储文件core file。Crash调查的最直接目标是根据core file进行栈回溯或还原栈帧, 即find call trace。同时根据寄存器和出错处汇编代码,分析Crash的深层次原因,并提出解决方法。 1. coredump设置 要使coredump时产生合适的core file,需正确设置corefile format转载 2014-11-03 21:32:33 · 12025 阅读 · 0 评论 -
Centos 升级内核 为 kernel 3.14
make mrpropermake cleancp /boot/config-'uname -r' .configmake oldconfigsh -c 'yes "" | make oldconfig'make bzImagemake modulesmake modules_installmake install原创 2014-04-15 18:02:44 · 1703 阅读 · 0 评论 -
CentOS RHEL 5.3 编译内核
http://www.opsers.org/base/centos-rhel-5-3-kernel.html下载linux-2.6.29.4.tar.bz2到/usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2 # tar -jxvf linux-2.6.27.tar转载 2014-04-15 17:59:43 · 863 阅读 · 0 评论 -
Hello World——Linux汇编
采用AT&T语法。32位: 1 .section .text 2 .global _start 3 4 msg: 5 .ascii "Hello World!/n" 6 msg_end: 7 .equ len, msg_end - msg 8 .equ SYS_write, 4 9 .equ SYS_exit, 1转载 2013-11-17 16:42:22 · 1111 阅读 · 0 评论 -
i386 32位 GCC内嵌汇编
内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 简单的内嵌汇编很容易理解 例如:__asm____volatile__("hlt");“__asm__”表示后面的代码为内嵌汇编,“asm”是“__asm__”的转载 2013-11-17 00:45:04 · 1586 阅读 · 0 评论 -
Linux系统环境下关于多进程并发写同一个文件的讨论
转载链接:http://blog.chinaunix.net/uid-11452714-id-3771084.html讨论关于并发环境下,多个进程对同一文件写入的问题,我们会涉及到文件共享的知识。在开始之前,我们先讨论一些有关文件共享的知识。1. 文件共享 Unix系统支持在不同进程间共享打开的文件。为此,我们先介绍一下内核用于所有I/O的数据结构。注意,下面的说明是概念转载 2015-04-28 15:41:43 · 1941 阅读 · 0 评论