当前位置:首页 » 编程软件 » 内核的编译

内核的编译

发布时间: 2022-01-27 18:19:57

A. 什么叫做内核编译,为什么要进行内核编译呢

对开源操作系统(主要是指linux)的内核源代码在本机进行有针对性的编译,就叫做内核编译。
编译内核的目的主要是改变内核的默认选项,比如内核原来不支持某硬件,原因是内核的相应选项默认状态是disactivated,需要改变。
当然,也有人把新版的linux装在旧机子上。这样,许多在内核里activated的硬件,他没有,将来也不需要。那么,就可以在内核里去掉。以及一些服务、特殊的功能等等,如果用不着,比如机子是服务器的话,最好在内核里关掉,"精兵简政"。这是以系统安全和提高效率为目的。
有专门的工具对其进行编译。这个问题不是几句话能说明白的。看你的提问就知道你是刚刚学习这些内容,建议不要好高骛远,先把c语言学好,然后再研究这些东西。

欢迎访问我的论坛:)
http://www.chinesebloger.com
期待您的支持:)

B. 如何编译一个内核

每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不是发行版的内核

C. 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厂家站点或者www.kernel.org下载。

2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper

3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig
在内核配置菜单中正确设置个内核选项,保存退出

4、正确设置关联文件
make dep

5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage

D. linux内核编译

内核正常加载了,不过initrd中的init文件有问题,不能正常加载根分区,所以进不了linux,需要重新制作initrd文件

E. 编译Linux内核的具体步骤

1. 下载内核源代码,并解压家目录
2. 设置好编译环境
3. 修改好Makefile和.config
4. 执行make -j4
等一下,编译就会结束了。

F. 如何编译Linux内核

内核配置完成,输入make命令即可开始编译内核。如果没有修改Makefile文件并指定ARCH和CROSS_COMPILE参数,则须在命令行中指定:
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
目前大多数主机都是多核处理器,为了加快编译进度,可以开启多线程编译,在make的时候加上“-jN”即可,N的值为处理器核心数目的2倍。例如对于I7 4核处理器,可将N设置为8:
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j8
采用多线程编译的优点是能加快编译进度,。具体可以参照ZLG《嵌入式Linux开发教程(下册)》第1章。

G. 如何确定某个linux内核该用何种版本的编译器编译呢

编译内核和 gcc 版本一点关系都没有。
GCC 又不是微软出的 Visual C 系列,动不动的就改接口玩。

C 语言是有标准的,使用符合 GCC 要求的源代码就可以了。

不过 gcc 从 3.4 和 4.0 开始,加强了语法检查,以前一些不注意语法的源代码可能不能通过编译。

除了特殊要求,建议还是选择最新版本的 gcc 进行编译。

H. 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内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。

I. Linux的内核编译是什么意思

所有的软件现在基本都是用高级语言编写的,Linux 内核也不例外。Linux 内核是用 C 语言写的。
但高级语言编写的程序有个问题就是,源代码是不能直接运行的。要么用解释语言解释运行(功能限制很大,应用环境限制也很大),要么就是通过编译器经解释编译链接后成为计算机可以直接运行的计算机语言,也就是一般成为的二进制程序。

Linux的内核编译就是用编译器把 Linux 的内核源代码编译成可以被计算机运行的二进制代码的行为。

当然 Linux 内核并不完全都是 C 语言写的,还有一部分汇编语言,但汇编语言也需要编译的。

热点内容
java开发人员 发布:2024-12-30 02:26:17 浏览:537
存储技术参数 发布:2024-12-30 02:20:39 浏览:116
安卓系统车机如何不卡 发布:2024-12-30 02:16:29 浏览:896
原始版安卓怎么下载 发布:2024-12-30 02:11:26 浏览:66
linux网卡命令行 发布:2024-12-30 02:11:18 浏览:182
编程语言网名 发布:2024-12-30 02:09:46 浏览:337
蠏子的存储 发布:2024-12-30 02:06:26 浏览:240
什么配置让人感觉高深莫测 发布:2024-12-30 02:06:26 浏览:848
密码口是什么样的 发布:2024-12-30 02:05:08 浏览:566
丰田xrv哪个配置舒适 发布:2024-12-30 02:05:07 浏览:105