发布时间:2015-11-17 16:19:08
如果你运气不太好,那么第一次启动kernel,最多看见uncompressing linux...ok, booting the kernel从串口ttyS0出来,然后你什么都没了。这总情况遇见的机会还是很多的。多数原因是内核卡住了。你可能会问,内核卡住了不要紧呀,至少没卡住的代码中的printk应该可以出来。你这样想,那就是你还没有读过printk的代.........【阅读全文】
发布时间:2015-11-17 16:19:03
通过发送信号和gdb强制产生进程的coredump,用于检测死锁或者获取进程的快照。......【阅读全文】
发布时间:2015-11-17 16:18:48
遇到内核panic,我们很无奈,我们总是以为内核自动的检查出了错误,然后panic了,可事实上,panic是一个函数,需要显式调用的,panic机制固然是一种检查内核正常的好机制,可是其背后隐藏了大量内核开发者的心血,内核开发者必须知道什么情况下内核属于不正常状态,然后显式调用panic,如果此时不调用panic的话,说实话,系.........【阅读全文】
发布时间:2015-11-17 15:28:20
1. 等待队列数据结构等待队列由双向链表实现,其元素包括指向进程描述符的指针。每个等待队列都有一个等待队列头(wait queue head),等待队列头是一个类型为wait_queque_head_t的数据结构:struct __wait_queue_head { .........【阅读全文】
发布时间:2015-11-17 15:28:02
1: //节电,给多个设备重用时钟。一般情况下,固件启动的过程会输出一个描述板子上所有存在设备的表。如果没有这个表,系统启动代码建立正确的设备的唯一方法就是为一个特定的板子编译一个kernel。这种board-specific kernel广泛用在嵌入式和一般系统的开发上。//即,通用的启动过程时,由固件引导初始.........【阅读全文】