发布时间:2012-12-27 14:49:23
linux 的启动过程便十分重要,先用dmesg命令察看一下linux启动时打出的消息,内核的启动最后是到 start_kernel ( in /init/main.c )也就是说启动的过程是从 head.S ( arch/i386/boot/ ) 一直运行到 main.c(start_kernel) .它的作用是完成开机后的设置与内核的初始化,然后,系统究竟入一个无限的循环中等待用户的输入,调用fork来产生子进程.从而达到交互式操作系统的设计要求.第一部分 : 内核初始化以及启动..启动系统.当PC机加电开始启动时,80X86的处理器(CPU)在实模式下自检,开始执行物理地址0xFFFF0......【阅读全文】
发布时间:2012-12-12 10:27:25
内核调试可以通过printk, proc, strace及kgdb等调试方法调试,下面介绍内核源码级的调试工具kgdb的使用。kgdb 调试需要两台机器进行远程调试,一台开发机,一台目标机,通过串口通信,开发机使用gdb控制目标机的kgdb进行内核源码级调试。先从源安装systemtapsudo apg-get install systemta;. 由于ubuntu 桌面版默认没有安装kernel-debug-info,所以安装了systemtap后仍然不能够追踪内核信息,因此需要手动安装kernel-debug-info包。 (1)查看当前内核版本 $ uname -ar......【阅读全文】