下载此文档

java考题.docx


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
电子与信息工程学院

题目 LINUX操作系统内核编译


姓名孟长庚
学号 20111309031
专业信息工程11级1班
指导老师杜景林
二O一四年一月一日
目录
1课程设计简介 3
课程设计的目的 3
相关原理介绍 3
3
3
2 设计实现 4
…………………………………………………………………………4
4
Makefile文件的编写 5
3测试总结 6
6
7
4 总结 9
一课程设计简介
课程设计目的
实现内核编译相关操作
相关原理介绍
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux的一个重要的特点就是其源代码的公开性, Linux修补漏洞速度快以及对最新软件技术的利用方便,而Linux的内核则是这些特点的最直接的代表。拥有了内核的源程序我们可以了解系统是如何工作的,通过通读源代码,我们就可以了解系统的工作原理。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,当然这样就需要重新编译内核。在不需要对内核进行重新编译的情况下,内核模块可以动态的载入内核或从内核移出改变内核,极大缩短了驱动编写和内核开发的时间。
Linux内核模块程序结构
一个Linux内核模块主要由如下几个部分组成:
模块加载函数
通过insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块的相关初始化工作。
模块卸载函数
当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模块加载函数相反的功能。
模块许可证声明
许可证(LICENSE)声明描述内核模块的许可权限,这一部分是必须声明的,如果不声明LICENSE,模块被加载时,将收到内核被污染(module license ‘unspecified’ taints kernel)的警告。在Linux ,可接受的LICENSE有“GPL”、“GPL v2”、“GPL and additional rights”、“Dual BSD/GPL”、“Dual MPL/GPL”和“Proprietary”。大多数情况下,内核模块应遵循GPL兼容许可权。其中最常用的许可是GPL和Dual BSD/GPL。
其他可选部分
模块参数,模块参数是模块被加载的时候可以被传递给它的值,它本身对应模块内部的全局变量;模块导出符号,内核模块可以导出符号(symbol,对应于函数或变量),这样其它模块可以使用本模块中的变量或函数;模块作者等信息声明。
内核模块的编译
在Linux ,模块的编译需要配置过的内核源代码;编译过程首先回到内核目录下读取顶层的Makefile文件,然后返回模块源码所在目录,经过编译、。故内核模块的编译需要自己写Makefile文件,当在命令行中执行make命令时,将调用Makefile文件。
二设计实现
内核线程查看
设计一个模块,该模块功能是列出系统中所有内核线程的程序名、PID号和进程状态。
该内核模块的功能类似于命令ps,只不过该模块专查看内核线程信息。首先在文件开始声明一下模块的许可证,即在文件中加入:
MODULE_LICENSE("GPL");
根据内核模块编程的模式,一个内核模块应该至少包含两个函数。一个初始化函数,还有一个退出(干一些收尾清理的工作)的函数,当内核模块被rmmod卸载时被执行。,可以为初始化和结束函数起任意的名字。在该模块内。两个函数分别命名为:static int kernel_thread_init(void)和static void kernel_thread_exit(void)。调用宏module_init()和module_exit()去注册初始化和退出这两个函数,即:
module_init(kernel_thread_init);
module_exit(kernel_thread_exit);
到此内核模块基本框架基本完成。
为了获取到所有的内核线程,可以使用宏for_each_process()。在内核中有内核线程组长链表,每个线程组长通过task_struc结构的tasks成员加入该链表中。利用for_each_process()可以访问到链表中的每一个进程。具体实现如下:
struct task_s

java考题 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人plm860108
  • 文件大小1.15 MB
  • 时间2018-05-21