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 | 与虚拟化相关的信息 |
相关推荐
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性...本文将以RedHat Linux 6.0(kernel 2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法。
介绍LINUX内核相关概念、如何编译内核、如何基于LINUX进行嵌入式相关的开发,等
linux内核编译详解 。。。。。 Linux 编译内核详解 内核简介 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和 网络系统,决定着系统的性能和稳定性。 Linux 的 一 个 重 要 的 特 点...
《工程师经验手记:构建嵌入式Linux核心软件系统实战》以实战的方式,讲解了构建嵌入式unux核心软件系统的五大组件:交叉编译工具链、BootLoacler、Linux Kernel、根文件系统、图形界面系统。其中包含了大量解决实际...
1.1 什麼是核心 (Kernel) 1.2 更新核心的目的 1.3 核心的版本 1.4 核心原始碼的取得方式:distributions 預設、最新、patch 1.5 核心原始碼的解壓縮/安裝/觀察 2. 核心編譯的前處理與核心功能選擇 2.1 ...
本文将以kernel 4.7.2版本为实验,操作平台为RedHat 7.2,将通过以下三个方面来说明内核及模块的编译。 源码编译Linux内核 使用Linux内核模块 实战:编译一个NTFS内核模块,实现Linux挂载NTFS文件系统并实现读写...
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。...本文将以RedHatLinux6.0(kernel2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法。
Java-CGI-HOWTO (8KB) 以及如何用 Java 来写 CGI 程式 Kernel-HOWTO (26KB) 如何配置、编译、升级核心以及排难解纷的详细指引?/TD> LinuxDoc+Emacs+Ispell (11KB) 一些有关使用Emacs 与 Ispell 工具的...
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/...
创建bdflush核心线程(bdflush()过程常驻核心空间,由核心唤醒来清理被写过的内存缓冲区,当bdflush()由kernel_thread()启动后,它将自己命名为kflushd) 创建kupdate核心线程(kupdate()过程常驻核心空间,由核心...
生成的ISO映像文件包含Linux内核,使用默认选项编译的GNU C库,使用默认选项编译的Busybox,非常简单的initramfs结构和一些“覆盖包”(默认构建过程提供了很少的覆盖包)。 您没有开箱即用的Windows支持,也没有任
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 网络设备数据结构 ...
目 录 第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...
(Torvalds@kruuna.helsinki.fi)写了 Linux核心程序的 0.02 版开始的,但其后的发展却几乎都 是由互联网上的 Linux社团(Linux Community)互通交流而完成的。Linux 不属于任何一 家公司或个人,任何人都可以免费取得...
本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的...
Linux爱好者 核心原理简介 1使用方法 用户态的用法 内核态的用法 2编译 发现模块是如何编译的(如果有的话) 3初始化 模块的初始化入口,以及初始化阶段做了什么 3.1 start_kernel初始化 3.2 initcall初始化 core_...
将硬件系统进行初始化,使系统处于就绪状态,bootloader最常见的就是uboot,这个启动程序有少许命令,可以在超级终端上使用命令从位于虚拟机上编译好的uImage内核,而kernel则是核心所在,包括所有的实现以及驱动,根...
libusb 设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以操作硬件,从libusb的源代码可以看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现的功能差不多,只是libusb...
Bootloader一般还具有以下的功能:通讯功能 、FLASH相关功能、用户接口功能、Linux内核配置和编译的流程、Linux内核配置、Lin ux内核的编译 Kernel: 操作系统内核,通常运行进程,并提供进程间的通信;与系统结构...