redhat内核源码(redhat开源)
本文目录一览:
- 1、redhat9.0安装好后默认是不带内核源码的吗?
- 2、我的/usr/src下怎么没有redhat源码文件夹
- 3、linux内核源码详解
- 4、RedHat linux操作系统的讷内核源码在哪?
- 5、Linux内核源码如何编译??Ubuntu源代码在哪里呢?
- 6、linux内核版本号命名的规则以及去哪下载内核源码
redhat9.0安装好后默认是不带内核源码的吗?
是的,不仅redhat,大多数发行版的linux安装好后都是不带内核源代码的,仅仅是导出了一些开发用的头文件什么的,并不完整。
要想得到源代码,需要自己去下载,链接请看参考资料,反正一份linux源码也并不太大,下载还是很快的。
有问题请追问啊!
我的/usr/src下怎么没有redhat源码文件夹
系统安装完成后是没有源代码的,源代码是需要下载内核相应的src包来安装才会有的
如,当前内核为,kernel-3.17.4-302.fc21.x86_64
那么就需要从网上下载kernel-3.17.4-302.fc21.src.rpm 源代码包来安装,然后才会有源代码。
linux内核源码详解
Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。
对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。对于linux内核源代码来讲,我认为,基本要求是:1、操作系统的基本知识; 2、对C语言比较熟悉,最好要有汇编语言的知识和GNU C对标准C的扩展的知识的了解。
另外在阅读之前,还应该知道Linux内核源代码的整体分布情况。我们知道现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。看一下Linux内核源代码就可看出,各个目录大致对应了这些方面。Linux内核源代码的组成如下(假设相对于linux目录):
arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是i386。
include 这个目录包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。
init 此目录包含核心启动代码。
mm 此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/-/mm目录下,如对应于X86的就是arch/i386/mm/fault.c 。
drivers 系统中所有的设备驱动都位于此目录中。它又进一步划分成几类设备驱动,每一种也有对应的子目录,如声卡的驱动对应于drivers/sound。
ipc 此目录包含了核心的进程间通讯代码。
modules 此目录包含已建好可动态加载的模块。
fs Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext2文件系统对应的就是ext2子目录。
kernel 主要核心代码。同时与处理器结构相关代码都放在arch/-/kernel目录下。
net 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。
lib 此目录包含了核心的库代码。与处理器结构相关库代码被放在arch/-/lib/目录下。
scripts 此目录包含用于配置核心的脚本文件。
Documentation 此目录是一些文档,起参考作用。
RedHat linux操作系统的讷内核源码在哪?
内核源代码默认是不安装的。要看内核源代码,除了使用RH9的源代码光盘以外,也可以去
下载一个kernel source安装包(页面下面的"Source Code"),然后安装即可。
编译内核比较烦,在这不可能说清楚,可以参看:
Linux内核源码如何编译??Ubuntu源代码在哪里呢?
编译linux内核步骤:
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核。如果没有安装盘,可以去各linux厂家站点或者下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig。在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6、编译模块
make modules
7、安装模块
make modules_install
8、使用新内核
把/usr/src/linux/arch/i386/boot/目录内新生成的内核文件bzImage/zImage拷贝到/boot目录,然后修改/etc/lilo.conf文件,加一个启动选项,使用新内核bzImage/zImage启动。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告诉lilo缺省使用新内核启动linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改生效。
9、重新生成ram磁盘
如果您的系统中的/etc/lilo.conf没有使用了ram磁盘选项initrd,略过。如果您的系统中的/etc/lilo.conf使用了ram磁盘选项initrd,使用mkinitrd initrd-内核版本号,内核版本号命令重新生成ram磁盘文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁盘能使系统性能尽可能的优化,具体参考/usr/src/linux/Documents/initrd.txt文件
10、重新启动,OK!
linux内核版本号命名的规则以及去哪下载内核源码
内核官方命名规则只有 例如 2.6.23 , 表明属于内核2.6 , 23rd release
然后对于各发行版 ,则存在一些针对发行版的优化 ,比如在这里的 2.6.23只有的 9-85 , 通常约定是 当前版本的第9版内核patch 而85则作为 这个当前版本的第85次微调patch , 而FC8很明显的就指出了当前内核是为FC8特别调校的
至于 2.6.23.9-85.fc8 的内核源码,fedora官方已经提供了编译好的源码rpm包 下载地址为
然后安装源码
$sudo rpm -ivh kernel-2.6.23.9-85.fc8.src.rpm
安装后还需要一步转换过程
转换源码:
在转换之前,请确保/usr/src/目录下有redhat目录(一般/usr/src/是空目录)。
$sudo rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec
这样会将源码放置在/usr/src/redhat/BUILD/kernel-2.6.23/。
这里有两个有用的文件夹:.
A、linux-2.6.23.ARCH——这个是kernel.org 提供的包经过Fedora 补丁和升级得到的。也就是 2.6.23.9-85.fc8 这个打过补丁的内核
ARCH 与uname-m 的输出结果一致,通常为i686。如果你想得到不同的输出,你可以使用
“--target=”这个选项来进行指定。
B、vanilla——这个是标准的、由kernel.org 提供的没有经过补丁和升级的源码。
---------------------------------------------------------
至于i686之类的,就不必解释了吧 呵呵
另外反驳楼上的这个说法
"在网上下载内核源码的话,可以直接到官网:
至于rpm包就不用考虑了,因为内核源码,你总要编译安装的。 "
这对于任何内核做过特殊优化调校的发行版都是不合适的,尤其是fedora ubuntu 这一类的,毕竟他们在内核中打了大量的补丁,做了很多优化,如果直接使用官方源码 ,你就无法享受到这些东西 , 内核不是越新越好的 越合适越好