logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核参数配置与验证指南:从理论到实践

关键参数的作用临时与永久配置方法容器环境下的特殊处理验证方法常见问题排查通过合理调整内核参数,可以显著提升服务器性能,但必须谨慎操作,避免引发不稳定问题。建议在修改前充分测试,并做好备份。

#linux#运维#服务器
【Linux内核模块】使用模块绕开“GPL“

GPL(GNU 通用公共许可证)的核心原则是「Copyleft」(著佐权):基于 GPL 作品衍生的作品,必须以相同许可证发布。这是最合规的闭源方式 —— 仅调用EXPORT_SYMBOL导出的符号,不碰EXPORT_SYMBOL_GPL的符号。具体到 Linux 内核(采用 GPLv2),如果你的模块满足以下任一条件,就必须遵循 GPLv2:​。Linux 内核通过两种方式导出符号,直接影响模块

#linux#运维#服务器
【Linux内核模块】模块声明与描述

格式:MODULE_INFO(键, "值")​作用:添加自定义元信息,比如:代码语言:javascriptAI代码解释这些信息会被modinfo识别并显示,适合添加版本日期、测试状态等自定义内容。​。

#linux#java#服务器
【Linux内核及内核编程】Linux内核的组成

例子:同时开 10 个网页,CFS 让每个网页标签轮流获得 CPU 时间,避免某个标签卡死整个浏览器

#linux#服务器#java
【Linux内核及内核编程】Linux下的C编程特点

GNU C 作为 GCC 编译器支持的超集,为 Linux 编程提供了大量 ANSI C 不具备的特性,这些扩展让代码更灵活高效。

#linux#服务器#运维
Linux内核中container_of宏深度刨析

在 Linux 内核源码的 include/linux/kernel.h文件中,宏的定义如下:代码语言:javascriptAI代码解释})或者在某些内核版本中,它可能被定义为:代码语言:javascriptAI代码解释!})ptr:指向结构体成员的指针。type:包含该成员的结构体类型。member:结构体中的成员名称。宏是 Linux 内核编程的关键工具,能依据结构体成员地址算出结构体起始地址

#linux#java#jvm
【Linux内核模块】模块参数详解

模块参数本质上是可以在加载模块时传递给模块的变量,就像你给电器插电时,可以通过遥控器先设置好亮度、模式再开机。比如:​调试开关:加载时指定debug=1打开详细日志​缓冲区大小:通过buf_size=4096设置内存分配大小​用dev_name="mydevice"自定义设备节点名称​没有模块参数的话,要改这些配置就得重新编译模块,效率极低。有了它,一行命令就能搞定配置,这也是内核模块灵活性的重要

#linux#服务器#java
【Linux内核模块】模块卸载函数详解

代码语言:javascriptAI代码解释static void __exit 函数名(void) {// 释放资源的操作module_exit(函数名);// 告诉内核这是卸载函数static:和加载函数一样,限制函数仅在当前模块可见__exit:内核会把带这个标记的函数存放在.exit.text段,只有模块支持卸载时才保留:注册卸载函数,让内核知道模块卸载时该调用谁。

#linux#java#服务器
【Linux内核模块】Linux内核模块简介

如果把 Linux 内核比作一台电脑主机,那么内核模块就是可以随时插拔的外设:​像预装了主板、CPU、基础外设的主机,提供最核心的运行环境​内核模块:相当于 U 盘、显卡、声卡这些外设,需要时插上去(加载模块),不用时拔下来(卸载模块)​这些 "外设" 运行在和主机(内核)相同的 "主板"(内核地址空间)上,拥有最高权限​内核模块是可以在内核运行时动态加载 / 卸载的独立代码单元,具备以下特点:​

#linux#arm开发#运维
Linux内核中offsetof宏深度刨析

offsetof宏是 Linux 内核中用于计算结构体成员偏移量的关键工具。通过将地址 0 转换为结构体指针,访问成员并取地址,得到偏移量。在链表管理、内存优化、调试检查等场景广泛应用,能提升代码灵活性与效率,理解其原理对内核编程至关重要。

#linux#运维#服务器
    共 364 条
  • 1
  • 2
  • 3
  • 37
  • 请选择