00 铺垫:
从标题看,这个还是我的学习笔记,不权威也不负责任。主要是希望把自己的理解写出来,万一是有道理和循循善诱的,也算没白折腾。
就像以前的learn algorithm with arden 一样,学习到递归有事卡住了,这次还不知道能坚持几天呢。总要完成,对自己严格的要求,成为专业技术人才的道路在我这个已经25岁的人看来仍然是遥遥无期么?非也,我明明看到自己的进步,还是对自己有信心的。
这半年来一直泡在UN*X中,连msn都该了名字叫“死磕UN*X”,可见吾决心之坚决非常人可比。(好像现在改成其它的了,想要验证者将无从下手)。
最近终于基本上完成了从I/O到进程,从socket到通信(中间跳过了关于图形化的主题),从Driver到kernel的闭关(最后这句只是为了配合文章的文采效果,其实我在学习driver和kernel中间遇到了很大挫折,现在正在一边补充硬件知识一边补充操作系统知识,准备再战中...写文章时为休战期,没什么攸关之事,万一被编辑发现此人文采不错,拉去当soho,我就不准备“再战”了)。
所谓小试牛刀,决定找东西练练手,可是,平时工作中对linux也没需求,如何找课题呢?苦思冥想数夜,终于想明白:还是找现成的吧。于是,打开linux的源码盘一顿寻找。我寻找的依据是:
1、 此程序不大,一个人还看得过来。
2、 知道此程序做什么工作,并且觉得有意义。
3、 以我的水平(大概)能看懂。
今天是第一天,所以还需要做些铺垫,铺垫完成后我们明天对一个叫dos2unix的命令做详细的解剖式分析。
铺垫的内容为:
1、我去那里得到linux的程序源代码?
2、使用rpm来安装源代码或者程序。
第一个问题比较好回答,源代码如果你安装linux时没装,它就在你安装linux系统时的光盘里。我使用的5张盘的Red Hat Linux Advanced Server 2.1。在3、4、5中都有源代码文件它们以.src.rpm后缀的文件形式存在于SRPMS文件夹里。其中src说明了它们是源码不是二进制。
不会用RPM,不知道RPM是什么?去鸟哥的网页上看看,或者其它Linux网站上找找看:http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php
大家看到的上面图片是我使用windows打开linux安装盘中的显示(我没有安装X windows),在linux中我们需要访问 /mnt/cdrom 。现在已经说清楚从哪里得到源代码了吧?你没有安装盘?去买或者去网上下载吧。Faint~
在linux中我们可能需要下面的步骤:
第一步:把光驱打开
第二步:把光盘放进光驱里 ( :)像不像宋丹丹?)
第三步:在linux中挂载光驱,使用命令: mount /dev/cdrom /mnt/cdrom
第四步:访问光驱,使用命令:cd /mnt/cdrom ;进入光驱,到SRPMS子目录(注意区分大小写)cd SRPMS ;可以查看下文件,不过这里面文件比较多,由于知道源代码包的名称了就直接 ls dos2unix-3.1-7.src.rpm ,看看有没有,有的话进入第五步。
第五步: 拷贝到本地,使用命令:cp dos2unix-3.1-7.src.rpm /home/arden/applearn 。这里的/home/arden/applearn是我建的一个目录,你可以选择自己的目录。
第六步:安装(好不容易到正题了),使用命令:rpm –ivh dos2unix-3.1-7.src.rpm 。
第七步:寻找源代码安装到哪里了:我当时是蒙的,就随意的一找就找到了,唉,还得归功于我多年浸淫linux得到的条件反射啊。原来它在 /usr/src/redhat/SOURCES里面,这是一个包:dos2unix-3.1.tar.bz2
基本上,我们已经得到源代码。铺垫就此结束吧,后面可能需要你看懂C代码才能继续了。