Chinaunix首页 | 论坛 | 博客
  • 博客访问: 60183
  • 博文数量: 35
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 13:36
文章分类

全部博文(35)

文章存档

2011年(1)

2010年(1)

2009年(33)

我的朋友
最近访客

分类: LINUX

2009-04-27 11:22:46

直接阅读源代码特别是比较大的程序应该遵循一定的步骤进行
第一了解程序的功能框架
第二使用源代码阅读器source insight 按照程序执行流程,入口点,实参,形参逐次阅读、
linux内核的源码结构:
arch    ---
            不同的处理器类型
                    arm
                         boot    
                                    linux/arch/arm/boot/compressed/head.S   
                                    head.s 自引导的代码 解压内核
                         kernel   head.s       Kernel startup code
                         lib
                         match-不同的板子  针对不同类型的板子进行的初始化代码
                              match-3sc2410
                                          gpio.c
                                          irq.c  clock.c cpu.c devs.c
block
crypto
documents                  文档
drivers                    驱动代码
fs                         文件系统
include                    内核头文件
init          main.c  内核初始化 包含start-kernel(),restinit(),init()等初始化函数




ipc                             进程通信的程序
kernle                          内核
lib                             库函数   
mm                              关于内存处理
net                             关于网络
scripts                         脚本用来编译内核的
security                        安全 
sound                           声音
usr                             用户

这样可以按照从arch/arm/boot head.s ->   arch/arm/kernle/head.s -> init/main.c startkernel() 这样的顺寻读
第三可以从功能模块读起,单独的模块很多驱动模块,文件模块,网络模块。
最好先阅读一些中文的资料对内核的工作有所了解以后再读内核,比如要阅读驱动模块,最好是先把驱动的有关知识学一下,linux内核是怎么管理设备的,怎么写驱动,怎么注册设备,有了大概的了解以后,找一个简单驱动程序入手。
阅读(995) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~