(1) 设置某参数
sysctl -w parameter=VALUE
sysctl -w
path.to.parameter=VALUE
sysctl -w kernel.hostname=
(2) 通过读取配置文件设置参数
sysctl -p [/path/to/conf_file]
sysctl -p
重新读取这个文件sysctl.conf
(3) 查看所有生效参数
sysctl -a
常用的几个参数:
net.ipv4.ip_forward= 启用路由功能为1
net.ipv4.icmp_echo_ignore_all= 禁ping改为1
vm.drop_caches 缓存释放 3
内存共享的最大内存段以字节问单位
释放缓存echo 3 > /proc/sys/vm/drop_caches
=================================================================================
sysfs:为用户使用的伪文件系统,输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息;有些参数是可以修改的,用于调整硬件
工作特性
udev通过此路径下输出的信息动态为各设备创建所需要设备文件,udev是
运行用户空间程序
专用工具:udevadmin, hotplug
udev为设备创建设备文件时,会读取其事先定义好的规则文件,一般在
/etc/udev/rules.d及/usr/lib/udev/rules.d目录下
===========================================================================
单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制
kernel:内核核心,一般为bzImage,通常在/boot目录下
名称为 vmlinuz-VERSION-RELEASE
在/boot中这个文件记录了开始编译内核启用了那些功能
/boot/config-版本
集成为内核文件的就是y
集成为模组文件的就是m
kernel object:内核对象,一般放置于
/lib/modules/VERSION-RELEASE/
[ ]: N 不启用
[M]: M以模块方式
[*]: Y内核里
辅助文件:ramdisk
initrd
initramfs
运行中的内核:
uname命令:
uname - print system information
uname [OPTION]…
-n: 显示节点名称
-r: 显示VERSION-RELEASE
-a:显示所有信息
lsmod命令:
显示由核心已经装载的内核模块
显示的内容来自于: /proc/modules文件
modinfo命令:
显示模块的详细描述信息
modinfo [ -k kernel ] [ modulename|filename… ]
-n:只显示模块文件路径
-p:显示模块参数
-a:作者
-d:描述
modprobe命令:
装载或卸载内核模块
modprobe [ -C config-file ] [ modulename ] [ module parame-ters… ]
卸载模块 相当于rmmod
modprobe [ -r ] modulename…
配置文件:/etc/modprobe.conf, /etc/modprobe.d/*.conf
depmod命令:
内核模块依赖关系文件及系统信息映射文件的生成工具
insmod命令:装载模块文件,不自动解决依赖模块
insmod [ filename ] [ module options… ]
insmod modinfo –n exportfs
lnsmod modinfo –n xfs
rmmod命令:卸载模块
rmmod [ modulename ]
rmmod xfs
rmmod exportfs
前提:
(1) 准备好开发环境
(2) 获取目标主机上硬件设备的相关信息
(3) 获取目标主机系统功能的相关信息
例如:需要启用相应的文件系统
(4) 获取内核源代码包
www.kernel.org
开发环境准备
包组
Development Tools
目标主机硬件设备相关信息
CPU:
cat /proc/cpuinfo
x86info -a
lscpu
硬件设备
PCU设备:
lspcu
-v
-vv
lsusb
-v-vv
lsblk 块设备
了解全部硬件设备信息
hal-device:CentOS 6
内核编译安装系统
安装开发包组Development Tools
下载源码文件 www.kernel.org
安装bzImage为/boot/vmlinuz-VERSION-RELEASE
生成initramfs文件
编辑grub的配置文件
例如:
编译安装内核
tar xf linux-4.20.2.tar.xz -C /usr/src
cd /usr/src
ln -sv linux-4.20.2 linux
cd /usr/src/linux
cp /boot/config-$(uname -r) ./.config
make menuconfig一以菜单方式配置内核
make -j 2
先装模块make modules_install(到/lib/modules)
后装内核make install生成/boot/vmlinuz和initramfs文件
reboot
进入内核文件,清理文件make clear
1.配置内核选项
支持“更新”模式进行配置:make help
(a) make config:基于命令行以遍历的方式配置内核中可配置的每个选项
(b) make menuconfig:基于curses的文本窗口界面
© make gconfig:基于GTK (GNOME)环境窗口界面
(d) make xconfig:基于QT(KDE)环境的窗口界面
支持“全新配置”模式进行配置
(a) make defconfig:基于内核为目标平台提供的“默认”配置进行配置
(b) make allyesconfig: 所有选项均回答为“yes“
© make allnoconfig: 所有选项均回答为“no“
2.编译
全编译:make [-j #]
编译内核的一部分功能:
(a) 只编译某子目录中的相关代码
cd /usr/src/linux
make dir/
(b) 只编译一个特定的模块
cd /usr/src/linux
make dir/file.ko
示例:只为e1000编译驱动:
make drivers/net/ethernet/intel/e1000/e1000.ko
如何交叉编译内核:
编译的目标平台与当前平台不相同
make ARCH=arch_name
要获取特定目标平台的使用帮助
make ARCH=arch_name help
make ARCH=arm help
清理
在已经执行过编译操作的内核源码树做重新编译
需要事先清理操作:
make clean:清理大多数编译生成的文件,但会保留config文件等
make mrproper: 清理所有编译生成的文件、config及某些备份文件
make distclean
:mrproper、清理patches以及编辑器备份文件
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

面试准备+复习分享:
为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

面试准备+复习分享:
为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦
[外链图片转存中…(img-qJtTYgp9-1712506811017)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!