cch02_TouchingLinuxKernel.ppt_第1页
cch02_TouchingLinuxKernel.ppt_第2页
cch02_TouchingLinuxKernel.ppt_第3页
cch02_TouchingLinuxKernel.ppt_第4页
cch02_TouchingLinuxKernel.ppt_第5页
已阅读5页,还剩33页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TouchingLinuxKernel,WangHongling,SoochowUniversityhlwang,TouchingLinuxKernel,安装Linux编译Linux内核安装Linux内核观察Linux源代码调试Linux内核,“Linux”通常包含些什么,KernelShellGlibcandotherlibsGUIengineDesktopManagerApplications,Thiscourseonlycovers,为什么要安装Linux,将上一张幻灯片提及的Linux发行盘上的内容安装到自己的机器上;认识本机的资源;为以后构建可启动的内容做好准备。,为什么安装Linu

2、x是一个挑战,安装Linux的过程实际上是被一个特殊的应用(Linuxrc)控制的。因此,安装过程将接触到许多Linux的概念。,安装过程中的一些概念,分区(IBMBIOS)IDE设备:/dev/hdxSCSI设备:/dev/sdx最多4个主分区hda1,2,3,4逻辑分区从hda5开始计算,分区规则,Linuxvs.Windows分区,hda2扩展分区,主分区,安装过程中的一些概念(cont.),启动引导程序Linux:lilo,grubWindows:boot.ini第三方:Redboot,U-Boot,安装过程中的一些概念(cont.),文件卷/boot存放启动是需要的映像文件swap物

3、理内存的2倍,但512MB/根,不可少!,安装过程中的一些概念(cont.),从用户角度看到的LinuxFS树状结构:/././每个结点都可以mount一个文件卷启动后,每个结点都可以重新mount一些常用的结点:/var,/boot,/usr,/opt,/home,安装过程中的一些概念(cont.),安装媒介除了从光盘安装以外,最令人兴奋的是Linux还可以从网络和硬盘安装ftp安装http安装nfs安装其他硬盘分区安装,安装过程中的一些概念(cont.),发行介质中包含些什么?第2张幻灯片提及的内容不仅是内核、shell、libs、GUI引擎(X11)、桌面管理器(KDE,GNOME),还

4、有应用软件包。总之,包含了一切你能想到的东西。因此,发行介质的不同只是对各种软件包的整合上的不同。也就是说,你可以安装RedHat/Debian/Bluepoint/Turbo/Redflag,安装过程中的一些概念(cont.),鼠标显卡应用程序包的选择全部的开发工具包少一些服务,硬件的支持问题,这不是Linux设计时的缺陷!这也不是MsWindows设计的成功所在!这只是因为一些硬件厂商的目光短浅!Linux设计的框架保证了Linux对驱动开发具有良好的支持。没有其他的OS能提供像Linux这样灵活的支持。,安装Linux时的一些建议,在安装Linux前做好分区的计划;可以使用安装程序的自动

5、分区工具,但要保证自动分区的结点不覆盖已有的分区;如果硬盘空间足够,装上所有的包;如果显卡配置有问题,停下来,找到帮助后再继续。,如何选择启动引导程序,在选择引导程序前,对常用的引导程序做一些研究。推荐使用grub,它的功能非常强大。请把它装在MBR中。查看/etc/grub.conf,了解grub的配置。当你另装其他的OS时,小心处理引导程序。,TouchingLinuxKernel,安装Linux编译Linux内核安装Linux内核观察Linux源代码调试Linux内核,编译Linux内核,内核源代码的结构可以去掉那些不需要的arch-depend代码配置内核编译内核,配置内核,配置前,了

6、解你的机器的硬件状况:显卡/显示器网络适配器声卡在选择/去掉某个选项时,一定要了解它是做什么的,否则不要去改变它的默认值。,配置内核(cont.),尽可能的去掉那些不用的选项。文件系统的支持硬件的支持,参见“配置内核”一文,编译内核,内核看起来像?bzImagevmlinuzvmlinux演示1(配置、编译内核),TouchingLinuxKernel,安装Linux编译Linux内核安装Linux内核观察Linux源代码调试Linux内核,安装Linux内核,跟你选择的引导程序有关,一般的,不要替换任何一个能成功运行的内核,仅仅是添加一个新的内核。启动新内核如果出现问题,重启老的那个。在/e

7、tc/grub.conf中添加一项演示2(修改/etc/grub.conf),TouchingLinuxKernel,安装Linux编译Linux内核安装Linux内核观察Linux源代码调试Linux内核,如何观察内核源代码,静态查看内核源代码源代码级的动态调试,静态查看内核源代码,内核代码被组织成树状结构用文本编辑器查看代码MSWindows:UltraEditSourceInsight:这是一个好工具Linux:emacs,用emacs查看内核源代码,去掉一些不用的arch-dependent结点在emacs里使用etags查找关键字M-.查找一个tag,比如函数定义类型定义等C-uM-

8、.查找下一个tag的位置M-*回到上一次运行M-.前的光标位置,TouchingLinuxKernel,安装Linux编译Linux内核安装Linux内核观察Linux源代码调试Linux内核,为内核打补丁,下载并解压Linux源代码;下载并解压kgdb内核补丁;为内核打上kgdb补丁:patch-p1./kgdb-2.1.0/core.patchpatch-p1KGDB:ThreadanalysisKGDB:ConsolemessagesthroughgdbDevicedrivers-Characterdevices-Serialdrivers-KGDB:Ongenericserialpor

9、t(8250),编译kgdb-kernel,MakebzImage,将内核拷贝到目标机器上,System.map/TargetMachine/boot/System.map-2.6.1-kgdbarch/i386/boot/bzImage/TargetMachine/boot/bzImage-2.6.1-kgdb-2.1.0,安装kgdb-kernel,添加一个grub选项:title2.6.0kgdbroot(hd0,0)kernel/boot/bzImage-2.6.1roroot=/dev/hda1rootfstype=ext3kgdbwaitkgdb8250=1,57600,准备好开发机,开发机:1.为串口设置合适的速率sttyispeed115200ospeed115200/dev/ttyS12.运行ddddddvmlinux,在目标机上运行kgdb-kernel,目标机:3.选择启动带调试信息的内核,内核将在短暂的运行后在创建init内核线程之前停下来,打印出以下信息,并等待开发机的连接:Waitingforconnectionfromremotegdb.,连接两台机器,开发机:4.用gdbtarget命令连接测试机(gdb)targetremote/dev/ttyS1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论