Chinaunix首页 | 论坛 | 博客
  • 博客访问: 985118
  • 博文数量: 327
  • 博客积分: 9995
  • 博客等级: 中将
  • 技术积分: 4319
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 11:21
文章存档

2011年(31)

2010年(139)

2009年(157)

我的朋友

分类: LINUX

2009-06-17 20:30:38

如果你能正确回答以下问题并深刻理解相关知识点原理,那么你可以算得上基本合格的Linux内核开发工程师,试试看!
1)Linux中主要有哪几种内核锁?
2)Linux中的用户模式和内核模式是什么含意?
3)怎样申请大块内核内存?
4)用户进程间通信主要哪几种方式?
5)通过伙伴系统申请内核内存的函数有哪些?
 
6)通过slab分配器申请内核内存的函数有?
7)Linux的内核空间和用户空间是如何划分的(以32位系统为例)?
8)vmalloc()申请的内存有什么特点?
9)用户程序使用malloc()申请到的内存空间在什么范围?
10)在支持并使能MMU的系统中,Linux内核和用户程序分别运行在物理地址模式还是虚拟地址模式?
 
11)ARM处理器是通过几级也表进行存储空间映射的?
12)Linux是通过什么组件来实现支持多种文件系通的?
13)Linux虚拟文件系统的关键数据结构有哪些?(至少写出四个)
14)对文件或设备的操作函数保存在那个数据结构中?
15)Linux中的文件包括哪些?
 
16)创建进程的系统调用有那些?
17)调用schedule()进行进程切换的方式有几种?
18)Linux调度程序是根据进程的动态优先级还是静态优先级来调度进程的?
19)进程调度的核心数据结构是哪个?
20)如何加载、卸载一个模块?
 
21)模块和应用程序分别运行在什么空间?
22)Linux中的浮点运算由应用程序实现还是内核实现?
23)模块程序能否使用可链接的库函数?
24)TLB中缓存的是什么内容?
25)Linux中有哪几种设备?
 
26)字符设备驱动程序的关键数据结构是哪个?
27)设备驱动程序包括哪些功能函数?
28)如何唯一标识一个设备?
29)Linux通过什么方式实现系统调用?
30)Linux软中断和工作队列的作用是什么?
阅读(1102) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2009-11-07 14:09:52

个人看法,kernel这个东西入门难,进步快.何为入门?mm和vfs,这两块懂了就算入门. kernel的其他部分,都或多或少的依托于这两个东西而存在.不懂这俩,只能在具体细节上去考虑问题,而不是站在全局的立场上. 一般的学习方法无非两种,抽象至具体,或者具体至抽象. 我们上学的教科书上一般最开始都会给你一个全局的概括,然后逐步细化. 读kernel相反,是读了大量具体的代码之后,才可以占在全局的角度去分析.是量变引起质变,由具体至抽象的过程. 如果通过阅读代码,而不是通过一些假大空的书籍,能明确的回答出mm和vfs的设计需求,那么恭喜,你已经站在了全局的角度,迈出了葵花宝典中最艰难的"必先自宫"这第一步,以后都好办.脑子里有了kernel的基本框架后,再遇到kernel中未曾读过的子系统时,就可以先google下这个子系统的基本原理是什么,要实现些什么.然后自己考虑一下自己会怎样实现这个功能,然后再对照着看代码,看人家怎么实现的,到底孰优孰劣. 这么搞的话,我估计根本不会遇到看完一遍又忘了的情况.退一万步,即使忘了又怎么样,老子写不出好的来,次的还写不出来吗?不就是这个功能