Linux内核
文章平均质量分 88
IT笔记
这个作者很懒,什么都没留下…
展开
-
Linux内核获取当前任务current
X86架构:arch/x86/include/asm/current.h一:定义当前任务的全局变量current_taskpercpu基本原理:静态的percpu变量使用DEFINE_PER_CPU()宏来定义,目的就是把这种类型的变量都放到section(".data..percpu")#define DECLARE_PER_CPU(type, name) \ DECLARE_PER_CPU_SECTION(type, name, "")#defi...原创 2022-05-15 17:51:15 · 1044 阅读 · 0 评论 -
【Linux】编译内核模块和EXPORT_SYMBOL
在export_symbol_server.c模块导出函数export_symbol_server和变量export_global_variable,在export_symbol_client.c引用。一:导出函数和全局变量符号// export_symbol_server.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>// 导出全局变量符号export_原创 2022-05-04 10:33:47 · 554 阅读 · 0 评论 -
【Linux】内核编程中的EXPORT_SYMBOL()
查看符号导出结果命令:以EXPORT_SYMBOL(export_symbol_server)为例:$ cat /proc/kallsyms | grep export_symbol_server一:EXPORT_SYMBOL()宏定义相关定义如下#define ___PASTE(a, b) a##b#define __PASTE(a, b) ___PASTE(a, b)#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, p原创 2022-05-03 11:18:55 · 1746 阅读 · 0 评论 -
【Linux】VMware虚拟机Ubuntu18.04编译升级内核笔记
背景:想深入了解内核经典管理,但是又不想在开发板上花钱,于是想到借助虚拟机,在虚拟机上编译,安装学习内核,运行起来之后通过log的形式了解一些经典的用法。在环境搭建时的简单步骤,简单记下来,方便后续遇到问题后查找。VMware,ubuntu18.04,运行内核版本:linux-5.4.0.tar.gz 升级内核版本:linux-5.15.7.tar.xz环境准备:编译依赖sudo apt-get install libncurses5-dev openssl libssl-devsudo ap原创 2022-03-12 21:07:46 · 2764 阅读 · 0 评论 -
linux设备驱动模型之/sys/目录注册
sys$ ls -F ./block/ bus/ class/ dev/ devices/ firmware/ fs/ hypervisor/ kernel/ module/ power/static void __init do_basic_setup(void){cpuset_init_smp();driver_init();init_irq_proc();do_ctors();do...原创 2021-12-18 19:29:42 · 1051 阅读 · 0 评论