易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux的oops内核调试信息

      Oops可以看成是内核级的Segmentation Fault。应用程序如果进行了非法内存访问或执行了非法指令,会得到Segfault信号,一般的行为是coredump,应用程序也可以自己截获Segfault信号,自行处理。如果内核自己犯了这样的错误,则会打出Oops信息。处理器使用的所有地址几乎都是通过一个复杂的页表结构对物理地址映射而得到的虚拟地址(除了内存管理子系统自己所使用的物理地址)。当一个非法的指针被废弃时,内存分页机制将不能为指针映射一个物理地址,处理器就会向操作系统发出一个页故障信号。如果地址不合法,那么内核将不能在该地址“布页”;这时如果处理器处于超级用户模式,内核就会生成一条oops消息。
      解释一下它所产生的过程:
1,do_page_fault()(arch/i386/mm/fault.c)。如果是内核进行了非法访问,do_page_fault()会先打出EIP, PDE等信息,例如:
Unable to handle kernel paging request at virtual address f899b670
printing eip:
c01de48c
*pde = 00737067
然后调用 die("Oops", regs, error_code);这之后,如果系统还活着(至少要满足两个条件:1. 在进程上下文 2. 没有设置panic_on_oops),会杀死当前进程,导致死机。
2,die()(arch/i386/kernel/traps.c)。die() 首先打出一行:
Oops: 0002 [#1]
其中0002代表错误码,#1代表Oops发生次数。error_code:
 *      bit 0 == 0 means no page found, 1 means protection fault
 *      bit 1 == 0 means read, 1 means write
 *      bit 2 == 0 means kernel, 1 means user-mode
然后,调用 show_registers(regs) 输出寄存器、当前进程、堆栈、指令代码等信息,以供判断。


相关文档:

Linux多线程编程

Linux
多线程编程:【
http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html

    
Linux
多线程支持
POSIX
线程接口,称为
pthread,
    
pthread_create
用来创建线程,
pthread_join
等待线程结束,函数的原型分别如下:
 
  &nbs ......

调整linux虚拟机硬盘大小

安装时硬盘空间不足
    挂载一个新硬盘
    先将虚拟机Power Off,在Virtual Machine Setting对话框里点击左下角的“Add”,选择“Hard Disk”,之后选择“Create a new virtual disk”,分配容量,其他默认配置。
    启动虚拟机系统,用 ......

Socket编程:由Linux向Windows移植问题


转自:http://www.cic.tsinghua.edu.cn/jdx/book1/CHAPTER3.htm
 
在源文件开始增加#include <winsock.h>语句。
调用WSAStartup()函数初始化Windows Sockets DLL,并在结束时调用WSACleanup()函数通知Windows Sockets DLL释放资源。
将套接字的类型为int改为SOCKET。
获取、设置错误码不要使用全局变量er ......

学习linux programming(1)


【1. linux applications 有两种形式】
  i)可执行的文件: 可由计算机直接运行,相当于windows的.exe文件
  ii)Script: collections of instructions for another program. 相当于windows的.bat .cmd文件
 
【2. PATH】
在Linux中,当输入程序名(如Firefox)时,系统会在名为PATH的Shell变量所给 ......

Veritas Linux Cluster

Get Redhat Enterprise 3.0 from:
Your local RedHat rep�
Get Veritas’ VCS and VM products from:
ftp://ftp.veritas.com/pub/products/fst_ha.lxrt2.2.redhatlinux.tar.gz
ftp://ftp.veritas.com/pub/products/fst_ha.lxrt2.2MP1.redhatlinux.tar.gz
You will need a temporary key to complete this ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号