Linux的12个问题

文章目录
  1. 1. 问题1
  2. 2. 问题2
  3. 3. 问题3
  4. 4. 问题4
  5. 5. 问题5
  6. 6. 问题6
  7. 7. 问题7
  8. 8. 问题8
  9. 9. 问题9
  10. 10. 问题10
  11. 11. 问题11
  12. 12. 问题12

问题1

1.下载linux2.6.18的内核
2.安装阅读内核的软件soure insight
3.编译内核
4.写总结讲讲下载编译过程的问题和解决方式。

问题2

从内核中寻找各种数据结构的应用,每个找一个例子。
从内核中寻找同步机制的应用,每个找一个例子。
学习dead line调度算法(deadline-iosched.c)中红黑树的应用,重点deadline_add_request
从dead line调度算法学习双向链表、hash链表的应用。

问题3

1.从内核中寻找kmalloc的例子并分析
2.从内核中寻找wait_event和工作队列的例子并分析

问题4

文件系统超级块的创建过程
文件系统内创建一个文件的过程

问题5

阅读文件打开的过程,重点关注dentry,inode的处理过程。

问题6

分析pci总线提供的设备属性如何应用到sys文件系统?(pci_bus_type.pci_dev_attrs)
写个小程序,在sysfs文件系统中创建一个目录和文件

问题7

1.如果文件起点位于硬盘物理扇区10000,那么从文件位置4096+1000字节处读7000个字节,对应的页缓存分别是那几个页面?对应块的物理块号是多少?
2.如果一个进程读文件,读的数据是文件内第一个页面的内容,读尚未完成有另一个进程同时准备写第一个页面的内容, 那么内核如何保证前一个进程读到正确的内容?

问题8

1.简要描述io从中断中返回,经过通用块层返回到用户态进程的函数调用关系。需要包括io的软中断处理,scsi命令的返回函数,bio的返回函数和页面的解锁。
2.块设备的队列request-queu提供了一系列的调用函数,简要描述它们各自的作用。

问题9

1.利用dumpe2fs把linux一个ext2(ext3也可)分区的信息dump出来,解释dump出来的信息。
2.结合课程的知识和ext2的目录结构,解析文件打开的过程

问题10

1.设备dma地址来自哪里?
2如何读取pci设备配置空间的信息?
3描述pci总线扫描设备的过程,包括桥的处理以及设备信息的获取.

问题11

1.分析kobj_lookup函数如何找到字符设备的对象cdev?
2.分析内核的ext2文件系统打开字符设备文件的整个过程?(假定根目录下有个字符设备文件chdev,文件系统如何读到inode信息,对设备文件赋值的过程,打开字符设备open函数的过程,打开input_handler提供的open函数)

问题12

描述物理键盘加入系统的过程分析。分为platform总线的设备和驱动匹配的过程,serio总线设备和驱动匹配的过程,input框架设备和驱动匹配的过程。