代码目录结构 在阅读源码之前,还应知道linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于linux-2.4.23目录): arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。 inclu...
by zhang51592792 - 系统管理 - 2006-12-05 12:35:54 阅读(883) 回复(1)
一,系统初启 首先很惭愧的坦白大部分是抄袭他人(XIAOMAN)的因为系统的初起一直是一个麻烦而头疼的问题,不同的体系结构会有较大的不同。X86从硬件启动,读入引导扇区,执行引导程序从实模式开始再转换到保护模式这个复杂的过程其实与操作系统本身的运行机制关系并不大,但忽略过去又无法给linux内核一个完整的 过程,所以我大动剪刀浆糊,但会把精力主要集中在linux内核本身,希望得到大家的谅解。 (以核心2.0.36为主)...
我最近想写linux下的驱动,在网上找了一个想关的例子看了看,之后我就有个问题: 那里面的代码很的函数都是内核里面的,对于我一个刚开始写代码的新手来说感觉很陌生. 我主要想问问:linux内核怎么学才能在自己写代码的时候知道要用到内核里面的api和一些宏? 我在看代码的时候:我始终不知道那些api和宏是从哪里来的? 为什么要用那些东东? 如果我自己写代码,我从什么地方才能找到那些宏? 希望高手能够给我指点一下!!! 谢...
通过printk打你希望追踪的消息。从它的名字可以看出,这个东西有点类似与gnu c中的printf。不过用于内核的东西总该有些特色,printk添加了一些日志级别(loglevel),具体日志级别定义的宏在。 (printk的格式:printk(KERN_ALERT"The process is \"%s\"(pid %i)\n",current->comm,current->pid)) 。 这些宏定义的注释已经很详细了。 #define KERN_EMERG "" /* system is unusable */ #define KERN_ALERT "" /* action must...
我是从2.4.21升级到2.4.32 前面的内核编译过程都没有问题 只是到了需要修改grub.conf文件时候 我增加了下面的部分 title Red Hat Enterprise linux AS (2.4.32-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21.ELsmp ro root=LABEL=/ initrd /initrd-2.4.32.ELsmp.img 但是bzImage.img根本不存在,并且我使用mkinitrd initrd-2.4.32.img 2.4.32命令也无法生成这个img文件,请问各位大侠,这个问题如何解决.