核心(kernel):/boot/vmlinuz-version version 带发行包版本,本地版本
内核模块(kernel object): /lib/modules/version/

内核设计:
    单内核
        模块化设计--内核小,功能做成模块
    微内核
装载模块:
    insmod
    modprobe

内核下载:www.kernel.org

2(主).6(次).17(修正)-->2.6.17.1修复bug
2.6.18.rc1(候补版) 新增功能

用户空间访问,监控内核的方式
通过这两个伪文件/proc,/sys修改

/proc/sys:此目录中的文件很多是可读写的
/sys

设定内核参数的方法:
echo VALUE > /proc/sys/TO/SOMEFILE
echo 1 > /proc/sys/vm/drop_caches | free -m
echo www > /proc/sys/kernel/hostname

sysctl -w(设定值)
sysctl -w kernel.hostname="mylab.mageedu.com"
sysctl -w vm.drop_caches=1

以上立即生效,不能永久有效

永久有效
vim /etc/sysctl.conf
编辑后,立时生效:sysctl -p 让内核重新加载配置文件
sysctl -a :显示所有的内核参数及其值

内核模块管理
当前系统的模块:lsmod
mod size usetimes

modprobe MOD_NAME 加载模块
modprobe -r MOD_NAME 卸载模块
modprobe -r floppy
modprobe floppy

modinfo:查看模块的具体信息
modinfo MOD_NAME
modinfo floppy

insmod /PATH/TO/MODULE_FILE:装载模块
rmmod MOD_NAME 移除模块

depmod /PATH/TO/MODILES_DIR

装驱动:下载源码,编译成ko,加载模块

内核与内核模块必须完全一致
2.6.32-1的内核不能使用在2.6.32-2上编辑的模块(ko)

内核中的功能除了核心功能之外,在编译时,大多数功能有三种选择
1.不使用此功能
2.编译成内核模块 需要modprobe装载
3.编译进内核 内核的一部分,内核装载,他就装载

如何手动编译内核
需要装
Development Libraries
Development Tools

挂在本地光驱进行安装:
挂在镜像
cd /etc/yum.repos.d/
vim local.repo

[base]
name=Server
baseurl=file:///media/cdrom/Server
enabled=1
gpgcheck=0

mkdir /media/cdrom
mount /dev/cdrom /media/cdrom

yum groupinstall "Development Tools" "Development Libraries" -y

#ls
linux-2.6.28.10.tar.gz
#tar xf linux-2.6.28.10.tar.gz -C /usr/src
#cd /usr/src
#ls -sv linux-2.6.28.10 linux
#cd linux
#ls arch
#ls fs

手动编译内核:
make gconfig Gnome 桌面环境  GNOME Software Development
make kconfig KDE 桌面环境    KDE Software Development
还需要装图形开发库【二者不同的库】

可以修改系统的配置:ls /boot/config-2.6.18-308.el5
[root@linux]cp /boot/config-2.6.1-308.el5 /usr/src/linux/.config
[root@linux]# make menuconfig
[root@linux]# make
[root@linux]# make modules_install
[root@linux]# make install

会自动更改grub.menu
重启

为防止中断,可以使用screen

已经编译了,但是不能用
二次编译:
make clean
make mrproper  .config 也会清理
二者都会清理.config等文件。
然后再进行编译

高级:只编译内核中的一个模块,只编译内核的某一个目录
grub->kernel->initrd->ROOTFS(/sbin/init,/bin/bash)

linux内核编译,内核参数修改的更多相关文章

  1. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  2. Linux下编译内核配置选项简介

    Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...

  3. Linux自制编译内核

    今天我们来自己学习编译内核并使用它.自制内核是个人定制版,定制自己专属的内核环境. 我们先看看编译步骤有哪些: 步骤: 1.# tar xf linux-3.10.37.tar.xz -C /usr/ ...

  4. linux重新编译内核

    一.linux内核 1.查看linux内核版本 uname -r 2.下载对应的linux内核 https://www.kernel.org/pub/linux/kernel/ 将内核文件夹解压到/u ...

  5. linux中touch命令参数修改文件的时间戳(转)

    linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件,以下是linux中touch命令参数的使用方法: touch [-acm][-r ...

  6. linux中touch命令参数修改文件的时间戳(转载)

    转自:http://os.51cto.com/art/200908/144237.htm linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存 ...

  7. 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程

    实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell 阿里云现在提供的云服务器很好用的,用来编译内核性能也不错.本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行. ...

  8. kernel笔记——内核编译与进程管理

    内核与操作系统 由于一些商业操作系统设计上的缺陷以及日益庞杂,“操作系统”的概念对很多人而言变得含糊不清.在进一步讨论Linux内核的话题前,我们先区分“内核”与“操作系统”这两个概念. 操作系统:指 ...

  9. Debian下的内核编译

    如果你装了一台linux的机器,自己没有重新编译内核,那这台机器的效率就大打折扣了,因为默认安装的机器会生成许多不需要的东西,在启动的时候也会比较慢,而你要用的有些东西可能不能工作,比如,现在都把IP ...

随机推荐

  1. 嵌入式系统 Boot Loader 技术内幕

    转载:http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html   1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统 ...

  2. 超级强大的vim配置(vimplus)

    vimplus vimplus是vim的超级配置安装程序 github地址:https://github.com/chxuan/vimplus.git,欢迎star和fork. 接触vim到现在也有几 ...

  3. 学习SDAutoLayout第三方库的用法总结

    ---恢复内容开始--- 在做图文混排计算高度我觉得SDAutoLayout布局是最好用的第三方库了,这里学习SDAutoLayout用法总结一下 用法介绍: ) 方法名中带有“SpaceToView ...

  4. SQLServer-镜像配置

    实验环境:三台服务器分别为主服务器,镜像服务器,见证服务器,都加入域sql.com 1. 分别在三台服务器上安装SQL 2008 R2,安装数据库引擎和管理工具两个组件即可. 2. 镜像前准备工作. ...

  5. [转]Oracle SQL性能优化

    本文转自:http://www.cnblogs.com/rootq/archive/2008/11/17/1334727.html (1)      选择最有效率的表名顺序(只在基于规则的优化器中有效 ...

  6. Mysql打开日志信息

    还可参考博客:http://pangge.blog.51cto.com/6013757/1319304 1)怎么查看mysql是否启用了日志 mysql>show variables like ...

  7. 关于修改Eclipse工作空间对应的文件夹名称之后的处理.

    把文件夹名字从"xhkong"变成"xhkong(maintenance5.6)"之后打开这个工作空间. 导入git仓库我发现了一个之前没有发现的小技巧. 导入 ...

  8. poj 1987 树的分治

    思路:1741的A1送 1. #include<iostream> #include<cstring> #include<algorithm> #include&l ...

  9. poj 3159 差分约束

    思路:班长的糖果要比snoopy的多.并且要用手写堆栈,且堆栈的大小要开到20000000. #include<iostream> #include<cstdio> #incl ...

  10. 不可小觑的“alt”

    定义和用法 alt 属性是一个必需的属性,它规定在图像无法显示时的替代文本. 假设由于下列原因用户无法查看图像,alt 属性可以为图像提供替代的信息: 网速太慢 src 属性中的错误 浏览器禁用图像 ...