`

Linux的核心编译,kernel

阅读更多

Linux的核心(kernel)

1 Linux就是指kernel

2 kernel负责整个硬件的驱动,和提供各种核心功能

3 kernel是一个文件,一般放置在/boot/vmlinuz-$(uname -r)

   此文件包含各项硬件侦测程序和驱动模块

4 核心模块(kernel module),有些功能没有集成在核心中,编译成模块以便核心随时加载

   放置路径/lib/modules/$(uname -r)/kernel/

5 核心的版本,主版本.次版本.发布版本-修改版本

6 最新稳定版核心源代码下载地址,http://www.kernel.org/

7 建议将核心源代码放置在/usr/src/kernels/下

 

核心源代码编译步骤 

1 清除环境,第一次编译用make mrproper,以后可以用make clean

2 选择核心功能,make XXconfig,生成.config文件,此步最复杂且重要

3 编译核心,make bzImage

4 编译模块,make modules

5 安装模块,make modules_install

6 安装核心,将核心文件bzImage和核心功能列表文件.config,移动并改名到/boot/路径下

7 新建相应的initrd文件,mkinitrd

8 编辑开机菜单,设置grub

 

核心源代码编译命令

make mrproper

删除以前的目标文件,也删除以前的核心功能选择文档

只有第一此执行编译前使用此命令

make clean 删除以前编译生成的目标文件
make XXconfig

挑选核心功能,生成.config文件,核心功能列表文件

/boot/config-$(uname -r)就是已经设置完成的文件

make vmlinux 生成未经压缩的核心
make modules 生成仅核心模块
make bzImage 生成经过压缩的核心(预设)
make all 进行make mlinux,make modules,make bzImage
make modules_install 将模块放置到/lib/modules/$(uname r)路径下

mkinitrd

新建initrd文件

 

make XXconfig挑选核心功能多种方法

make menuconfig 文本模式下显示类似图形接口,来选择列表
make oldconfig

通过已存在的./.config,使用该文件内的设定值为默认值

只将新版本核心内的新功能选项让用户选择

make xconfig 通过Qt图形接口的图形化显示,需要X window支持
make gconfig 通过Gtk图形接口的图形化显示,需要X window支持
make config

每个项目一条一条的列出供用户选择

如果设定错误,只能再次从头选择,不常用

 

make XXconfig具体选项

General setup 一般性设置,可以设置核心的新版本
Enable loadable module  支持动态模块
Enable the block layer 支持block设备的功能
Processor type and features cpu类型与功能选择
Power management and ACPI options 电源管理功能
Bus options(PCI etc.) 总线相关选项,支持PCI和PCI-E
Executable file formats/Emulations 编译后执行文件格式
Networking support 核心网络功能,包括防火墙
Device Drivers 硬件设备驱动
Firmware Drivers 固件驱动
File system 文件系统支持
Kernel hacking 核心黑客,与核心开发者相关
Security options 信息安全方面设定
Cryptographic API 加密API的设定
Virtualization 虚拟化设置
Library routines 函数库设置

 

核心源代码目录

arch

与硬件平台相关,主要指cpu类别

block 与存储媒介相关,主要指磁盘分区等
crypto 核心支持的加密技术
Documentation 核心说明文档
drivers  硬件驱动 
firmware  固件数据 
fs  核心所支持的文件系统
include  头文件 
init  核心初始化的定义功能 
ipc  定义系统内各程序的沟通 
kernel  定义核心的程序,核心状态,线程,程序排程,程序信号等
lib  函数库 
mm 与内存单元相关的各项数据,包括swap与虚拟内存
net 与网络相关的各项协议数据,防火墙模块等
security 与安全方面相关的设定
sound 与音效相关的各项模块
virt 与虚拟化相关的信息

 

分享到:
评论

相关推荐

    compile_Linux_kernel.rar_compile linux kernel_linux 2.2.5_编译内核_进

    内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性...本文将以RedHat Linux 6.0(kernel 2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法。

    Linux Kernel核心中文手册

    介绍LINUX内核相关概念、如何编译内核、如何基于LINUX进行嵌入式相关的开发,等

    linux内核编译详解.pdf

    linux内核编译详解 。。。。。 Linux 编译内核详解 内核简介 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和 网络系统,决定着系统的性能和稳定性。 Linux 的 一 个 重 要 的 特 点...

    构建嵌入式Linux核心软件系统实战-杨铸著

    《工程师经验手记:构建嵌入式Linux核心软件系统实战》以实战的方式,讲解了构建嵌入式unux核心软件系统的五大组件:交叉编译工具链、BootLoacler、Linux Kernel、根文件系统、图形界面系统。其中包含了大量解决实际...

    鳥哥的 Linux 私房菜 -- Linux 核心編譯

     1.1 什麼是核心 (Kernel)  1.2 更新核心的目的  1.3 核心的版本  1.4 核心原始碼的取得方式:distributions 預設、最新、patch  1.5 核心原始碼的解壓縮/安裝/觀察 2. 核心編譯的前處理與核心功能選擇  2.1 ...

    linux如何编译安装新内核支持NTFS文件系统(以redhat7.2×64为例)

    本文将以kernel 4.7.2版本为实验,操作平台为RedHat 7.2,将通过以下三个方面来说明内核及模块的编译。 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写...

    如何才能编译Linux的内核

    内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。...本文将以RedHatLinux6.0(kernel2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法。

    Linux Howto 中文文档

    Java-CGI-HOWTO (8KB) 以及如何用 Java 来写 CGI 程式 Kernel-HOWTO (26KB) 如何配置、编译、升级核心以及排难解纷的详细指引?/TD> LinuxDoc+Emacs+Ispell (11KB) 一些有关使用Emacs 与 Ispell 工具的...

    《精通Linux 设备驱动程序开发》.(Sreekrishnan).pdf

    1.7 编译内核7 1.8 可加载的模块8 1.9 整装待发9 第2章 内核11 2.1 启动过程11 2.1.1 bios-provided physical ram map12 2.1.2 758mb lowmem available14 2.1.3 kernel command line: ro root=/dev/...

    ARM_Linux启动分析.pdf

    创建bdflush核心线程(bdflush()过程常驻核心空间,由核心唤醒来清理被写过的内存缓冲区,当bdflush()由kernel_thread()启动后,它将自己命名为kflushd) 创建kupdate核心线程(kupdate()过程常驻核心空间,由核心...

    最小:最小Linux Live(MLL)是一个小型的教育性Linux发行版,旨在通过使用一系列自动Shell脚本从头开始构建。 最低限度Linux Live通过Linux内核,GNU C库和Busybox用户态实用程序提供了一个核心环境。

    生成的ISO映像文件包含Linux内核,使用默认选项编译的GNU C库,使用默认选项编译的Busybox,非常简单的initramfs结构和一些“覆盖包”(默认构建过程提供了很少的覆盖包)。 您没有开箱即用的Windows支持,也没有任

    深入分析Linux内核源码

    12.4.3 sk_buff数据结构的核心内容 12.4.4 套接字缓冲区提供的函数 12.4.5 套接字缓冲区的上层支持例程 12.5 网络设备接口 12.5.1 基本结构 12.5.2 命名规则 12.5.3 设备注册 12.5.4 网络设备数据结构 ...

    精通LINUX设备驱动程序开发

    目 录 第1章 引言 1 1.1 演进 1 1.2 gnu copyleft 2 1.3 kernel.org 2 1.4 邮件列表和论坛 3 1.5 linux发行版 3 1.6 查看源代码 4 1.7 编译内核 7 1.8 可加载的模块 8 1.9 整装待发 9 第2章 内核 11 2.1...

    Linux操作系统基础教程

    (Torvalds@kruuna.helsinki.fi)写了 Linux核心程序的 0.02 版开始的,但其后的发展却几乎都 是由互联网上的 Linux社团(Linux Community)互通交流而完成的。Linux 不属于任何一 家公司或个人,任何人都可以免费取得...

    linux内核调试分析指南

    本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的...

    Linux-Insight:Linux内核源码认知层,承上启下的分析

    Linux爱好者 核心原理简介 1使用方法 用户态的用法 内核态的用法 2编译 发现模块是如何编译的(如果有的话) 3初始化 模块的初始化入口,以及初始化阶段做了什么 3.1 start_kernel初始化 3.2 initcall初始化 core_...

    linux学习总结

    将硬件系统进行初始化,使系统处于就绪状态,bootloader最常见的就是uboot,这个启动程序有少许命令,可以在超级终端上使用命令从位于虚拟机上编译好的uImage内核,而kernel则是核心所在,包括所有的实现以及驱动,根...

    libusb 源码(win32 & linux USB开发)

     libusb 设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以操作硬件,从libusb的源代码可以看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现的功能差不多,只是libusb...

    嵌入式实验报告四.doc

    Bootloader一般还具有以下的功能:通讯功能 、FLASH相关功能、用户接口功能、Linux内核配置和编译的流程、Linux内核配置、Lin ux内核的编译 Kernel: 操作系统内核,通常运行进程,并提供进程间的通信;与系统结构...

Global site tag (gtag.js) - Google Analytics