‘壹’ linux系统的源代码哪里可以下载
如果要下载指定版本的内核源代码,就去官网下载,地址:
http://www.kernel.org/
如果要查看本机(某个发行版的内核源代码),可以在目录
/usr/src/kernels下面找到。
如果要查看某些安装文件的源代码,可以使用命令查看该文件
的安装源,以查看cat源码为例,命令:rpm -qif `which cat`
之后会有相关信息打印出来,访问其源码路径,下载即可。
附本人博客“获取Linux命令源代码的方法”链接如下:
http://blog.csdn.net/shallowgrave/article/details/7854548
‘贰’ 如何编译linux源代码
首先uname -r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。
最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
‘叁’ linux源代码
直接打出来?????
您真有创意……
现在稳定版的Linux内核源码在600万行左右
即便是最初的那个可以稳定运行的v0.11版Linux内核的代码也有2万多行
还不要网址,还直接打出来……
你当Linux操作系统是你平时练手的小程序呢……
想学习源码建议不要直接看最新版的代码,
600万行的代码量相信你不会愿意一行一行的去看……那样能看到你八十岁生日去……
但有挑选的看的话对新手来说不现实,既不知道怎么挑,挑出来也未必能看懂
建议去看Linux v0.11版的源代码或者Minix的源代码
(Linux和Minix内核结构有所不同,如果是为了学习操作系统对硬件的操作原理,可以学Minix,因为这个系统写出来就是为了给学生们上课学习用的。而如果是为了学习Linux内核原理,那还是看Linux早期版本的源码吧,毕竟和Minix在构造上还是有区别的)
推荐去OldLinux网站看v0.11的源代码
还有一本书:同济大学的赵炯博士写的《Linux内核完全注释》
网上有电子版,也能买大出版的书籍。这本书就是对Linux v0.11内核代码的完全注释和解析,对于学习Linux内核非常有帮助
‘肆’ 如何查看linux下某一个程序的源代码
linux下不是所有的程序都有源代码,能再具体描述你的问题吗?
脚本类的软件有源代码,编译类的,类似c语言的一般经过编译连接,发布的不带源代码。
‘伍’ linux的源代码
www.kernel.org里有linux的内核源代码,人家编译内核都要去那里下载最新的内核代码。至于Linux下其他软件的源代码,你可以去相关的地址下载。最好使用google.com,英文的,不要用中文的网络或谷歌。还有很多人写了关于阅读linux源代码的书,比如赵炯写的一本分析早期内核1.01的。
ps文件是postscript语言格式的文件,在Linux下,可以用ps2pdf转换成pdf文件,也可以用GhostView、GSview或者RoPS直接打开。
学习linux有很多种方法,我以前看过一遍文章,不过上面的书我都没读过,你自己看吧。http://blog.chinaunix.net/u2/83205/showart.php?id=1918540
哦,赵炯博士的主页:http://www.oldlinux.org/homepage/
他那本完全注释linux源代码: http://oldlinux.org/download/clk011c-1.9.5.pdf
呵呵,我不知道你下载的是什么,我上面这个地址可是pdf文件,你看后缀就知道了。
‘陆’ Linux操作系统的源代码
Linux操作系统的源代码获得方式:
1)可以上http://www.kernel.org/下载;
2)如果你安装Linux,则在你Linux操作系统上也会有系统的源代码,具体路径有一些小差别。
‘柒’ 如何查看linux命令源代码和函数源代码
1. 以搜索ls命令源码为例,先搜索命令所在包,命令如下:
lpj@lpj-linux:~$ which ls
/bin/ls
2. 用命令搜索该软件所在包,代码如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
3. 从上一步中可以知道ls命令的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包的源代码然后解压,代码如下:
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本号
sudo tar zxvf coreutils-XXX.tar.gz
或者只下载源码,然后手动打补丁再解压,代码如下:
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #这一步会生成coreutils-XXX.diff文件
patch -p0 < coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码了
‘捌’ LINUX的源代码是什么
Linux 的源代码就是 Linux 的源代码……
Linux 的源代码 != Linux 的内核源代码。
一般所说的 Linux ,是指一整套 GNU/Linux 套件的。
‘玖’ Linux操作系统源代码有多少行
Linux现在内核版本2.6.34,其中共14002个c文件(9415676行),头文件14069个(2141641行代码),总代码量约1100w行