《Linux内核分析和应用技术.ppt》由会员分享,可在线阅读,更多相关《Linux内核分析和应用技术.ppt(44页珍藏版)》请在三一办公上搜索。
1、Linux内核分析和应用技术,http:/,ToC,推荐讨论主题推荐小题目题目:fork和signal题目:shell编程关键函数题目:关于线程题目:Hello内核模块题目:使用汇编或特权指令题目:试验一个timer题目:gcc和glibc题目:键盘支持题目:扩充一个系统调用题目:截获一个系统调用题目:审计或识别某种动作题目:Linux主要发行版介绍题目:Linux in VMWare题目:Gentoo安装题目:试用报告knoppix等,了解RTOS试用wine等题目:诸许可比较题目:Computing和Linux题目:VPN in Linux题目:Samba试验题目:使用/proc题目:配置
2、LXR题目:xinetd题目:wrapperEMACSTeX读书报告综合设计User-mode linuxuClinuxFaQ,推荐讨论主题,Linux编程概论makemake,cvs,autoconf/automake,C/C+gcc特性,调试gdbAssemblyas gcc nasmJava,-,硬件IA32:体系、内存管理、特权级、中断机制、指令手册IA64:新的体系和区别Linux on IA64http:/www.linuxia64.org/,-,Linux网络程序设计socket后台守护进程daemon“Linux 守护进程的编程方法”fork、inittab被xinetd调用的
3、进程的编程方法packet capture(promiscuous mode)libpcap/winpcap,tcpdump/windump/etherealLinux模块内核增强设备驱动,-,内核变量调控/proc/proc/sys/kernelsysctl-a系统调用窜改/监视增强调度一般原理多CPU支持,文件系统分区加密网络实现IPv4/IPv6ipchain,iptablehttp:/filter.org/内核新方向新进展汉化问题见解内核之争,-,其他有意义主题Linux公司的经营模式Free/Open软件的再应用积极参与题目,可以作业报告形式提交,也可在课堂大家讨论。,推荐小题目,从
4、小处着手,由浅入深出访问内核变量和函数比如访问jiffies,题目:fork和signal,体会fork和signal函数使用设计一个程序,fork出一个子进程子进程可以睡眠或死循环子进程接收到USR1信号则退出打印提示信息先父进程用wait等待子进程退出或者waitpidfork和singal在服务器程序设计方面的应用结合socket的ClientServer体制,题目:shell编程关键函数,写一个简单的shellfork()exec*()wait/waitpid()signal()pipe()够了吗?还需要耐心若要看bash的源代码,在http:/www.gnu.org/software
5、/bash/bash.html,题目:关于线程,写示例程序演示在windows/linux/unix中关于线程的编程接口beginthread()/CreateThread()pthread_create()/请看#man pthread_create分析和讨论linux中是如何支持线程的和fork的实现比较Links见备注行,题目:Hello内核模块,做一个HelloWorld内核模块类似printf(“hello,world!”);用两个函数即可init_module()printk()cleanup_module()这个例子是后续很多小题目的基础,作业上也有实现,题目:使用汇编或特权指令
6、,使用rdtsc指令获取CPU主频计数器unsigned long low,high;asm(rdtsc:=a(low),=d(high);printf(rdtsc=%lu,%lun,high,low);使用IO指令在用户空间不能执行in/out指令,在内核里可以“segmentation fault”尝试在模块里用in/out指令读取开机CMOS信息(如果有的说)也可以破坏CMOS校验和,从而绕过开机口令asm(“inb$0 x70”),题目:试验一个timer,./include/linux/timer.h23 extern void add_timer(struct timer_list
7、*timer);24 extern int del_timer(struct timer_list*timer);添加计时器,在动作函数中打印hello信息如果不删除计时器,或者还没到时间就卸载模块会怎样?注意可能会死机,要注意文件存盘先,题目:gcc和glibc,glibcgcc,-,C Run-Time Libraries in Windowsprintf(),memcpy(),fopen(),.hstdio.h,stdlib.h,string.h,.lib.dllStandard C+Library,题目:键盘支持,键盘是最基本的输入支持设备分析内核中是如何管理键盘设备的键盘是字符设备.
8、/drivers/char/keyboard.chandle_scancode()ctrl_alt_del是怎样实现的?,题目:扩充一个系统调用,找一个空闲的调用号k查看你的内核源代码的源程序得针对你正所用的内核版本把syscall表中的k位置指向你的调用函数不必编译完整的内核在模块初始化中做即可在用户程序发起一个对k的调用使用int80h,调用号放在?中如果模块卸载了,用户还调用会怎样?,题目:截获一个系统调用,截获谁有意思呢?openread写一个自己的sys_myopen()函数把syscall表中的OPEN项指向自己可以在该函数中隐藏某种后门在该函数中,做了额外的相关处理之后,不要忘了
9、还得调用旧的sys_open函数记得卸载模块时恢复旧的调用,题目:审计或识别某种动作,用户正在访问哪些文件是否存在某个进程是个病毒进程(类似等等)用户正在访问哪些站点网络接口正在接收或处理哪些异常的包?有网络入侵的尝试在发生吗?尝试做一个方面就行或仅仅是设想或论述一下也可,题目:Linux主要发行版介绍,RedhatDebianSuSEMandrake,题目:Linux in VMWare,两个题目:Linux in VMWareSolaris in VMWare另:推荐Virtual PC,题目:Gentoo安装,Gentoo的安装真原始,倒是挺锻炼基本功的。,题目:试用报告knoppix等
10、,(1)Knoppix(2)Lindows(3)BeOS下载安装试用报告比较、评价,了解RTOS,Realtime LinuxQNXVxWorksDOSWindows CE.NETWindows XP embed试用报告,试用wine等,WINECrossOverWineX?试用报告,题目:诸许可比较,GPLBSD商业模式,题目:Computing和Linux,Computing Super ComputingParallel ComputingCluster ComputingDistributed ComputingGrid ComputingNUMA vs.SMP vs.othersLi
11、nux在Computing中的地位和关系PVM/MPI,Linux集群技术Beowulf Legion Giganet cLAN Cplant MOSIX,题目:VPN in Linux,OpenVPNFree S/WANOpenVPN较好操作,建议以OpenVPN为主,并和swan简单比较以OpenVPN为工具组件虚拟私有网,题目:Samba试验,配置samba in Linux从linux中访问windows的共享目录从windows中访问linux的共享目录报告,题目:使用/proc,使用/proc调整内核运行参数,题目:配置LXR,用LXR建立一个Linux内核源代码阅读站点,题目:xinetd,xindet的原理和机制xindet中服务程序设计规范举例,题目:wrapper,TCP Wrapperhosts.deny hosts.allow,EMACS,TeX,读书报告,选择某本相关书籍系统阅读读书笔记关键内容、实例运行、问题解决章节选讲就某个较典型的问题及其相关内容报告,综合设计,例子,User-mode linux,主站http:/user-mode-http:/mode linux”,uClinux,ARM+uClinux,开发工具,GCCSun ONE StudioNetBeansKylixEclipseGoogle(“年度最受用户喜欢开发的工具”),FaQ,