linux内核编译,内核参数修改
核心(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内核编译,内核参数修改的更多相关文章
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- Linux下编译内核配置选项简介
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...
- Linux自制编译内核
今天我们来自己学习编译内核并使用它.自制内核是个人定制版,定制自己专属的内核环境. 我们先看看编译步骤有哪些: 步骤: 1.# tar xf linux-3.10.37.tar.xz -C /usr/ ...
- linux重新编译内核
一.linux内核 1.查看linux内核版本 uname -r 2.下载对应的linux内核 https://www.kernel.org/pub/linux/kernel/ 将内核文件夹解压到/u ...
- linux中touch命令参数修改文件的时间戳(转)
linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件,以下是linux中touch命令参数的使用方法: touch [-acm][-r ...
- linux中touch命令参数修改文件的时间戳(转载)
转自:http://os.51cto.com/art/200908/144237.htm linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存 ...
- 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程
实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell 阿里云现在提供的云服务器很好用的,用来编译内核性能也不错.本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行. ...
- kernel笔记——内核编译与进程管理
内核与操作系统 由于一些商业操作系统设计上的缺陷以及日益庞杂,“操作系统”的概念对很多人而言变得含糊不清.在进一步讨论Linux内核的话题前,我们先区分“内核”与“操作系统”这两个概念. 操作系统:指 ...
- Debian下的内核编译
如果你装了一台linux的机器,自己没有重新编译内核,那这台机器的效率就大打折扣了,因为默认安装的机器会生成许多不需要的东西,在启动的时候也会比较慢,而你要用的有些东西可能不能工作,比如,现在都把IP ...
随机推荐
- LXNetwork – 基于AF3.0封装的iOS网络请求库
本框架实现思路与YTKNetwork和RTNetworking类似,相当于一个简单版,把每一个网络请求封装成对象.使用LXNetwork,你的每一个请求都需要继承LXBaseRequest类,通过覆盖 ...
- SQLServer 之 常用函数及查看
一.查看 (1)应用程序名称 SELECT APP_NAME() (2)获取登录者名字 SELECT SUSER_NAME() (3)获取字段定义的长度 ...
- SQL Server2008附加数据库失败
今天旁晚时分,我准备把老师在上课时候发给我们的一个数据库附加到我的SQL Server2008上面去,本来在学校机房用的SQL Server2000是很顺利地就成功了,但是把*.mdf文件附加到我的0 ...
- 手把手教你使用Size Class
在 iOS8 中,我们不用再像以前那样,一个页面新建多个 xib 文件来适配不同类型的屏幕,现在我们可以把各种尺寸屏幕的适配工作放在一个文件中完成,然后可以通过不同类别的 Size 来定制各种尺寸的界 ...
- Codeforces Round 190 div.2 322C 321A Ciel and Robot
唔...这题是数学题. 比赛时做出来,但题意理解错了,以为只要判断那点是不是在线上就行了,发现过不了样例就没提交. 思路:记录每一步的偏移,假设那点是在路径上的某步,然后回推出那一个周期的第一步,判断 ...
- (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
floyd解法 今天初看dijkstra,先拿这两题练手,其他变形题还是不是很懂. 模版题,纯练打字... HDU 1874: #include <cstdio> #define MAXN ...
- 给jdk写注释系列之jdk1.6容器(1)-ArrayList源码解析
工作中经常听到别人讲“容器”,各种各样的容器,话说到底什么是容器,通俗的讲“容器就是用来装东西的器皿,比如:水桶就是用来盛水的,水桶就是一个容器.” ok,在我们写程序的时候常常要对大量的对象进行管理 ...
- 转:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 .
近期在做淘宝客的项目,大家都知道,淘宝的商品详细描述字符长度很大,所以就导致了今天出现了一个问题 VS的报错是这样子的 ” 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确“ 还说某 ...
- Myeclipse中tomcat所应用的JDK设置
Preferences------ > MyElipse ---------- >Servers ----------- > Tomcat-------- >Tomcat 6. ...
- ActiveMQ(5.10.0) - hello world
Sending a JMS message public class MyMessageProducer { ... // 创建连接工厂实例 ConnectionFactory connFactory ...