驱动程序里面的全局变量存储在什么地方??

ONIM 2015-09-21 02:26:34
如题,linux进程有4G的虚拟内存,其中1G内核空间,3G用户空间,所有进程相关的数据都在这4G里面。当进程结束时,这些变量都跟着释放掉,但是驱动程序的全局变量不会随着进程的结束而释放,那么驱动程序中的全局变量存储的位置是哪里呢?
...全文
1320 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hogan_pei 2019-09-23
  • 打赏
  • 举报
回复
牛逼啊,上面一句话,你就学到很多??
ONIM 2015-12-01
  • 打赏
  • 举报
回复
谢谢大家的回复,学到了很多
猪头三小队长 2015-11-17
  • 打赏
  • 举报
回复
内核驱动的所有内容都会在0xC0000000之上的地址(针对于32bit系统来说,64bit系统情况要复杂得多),如果编译进内核就会始终存在,如果是用可装卸模块编译的,就会随着你的insmod和rmmod而动态由操作系统在内核区域分配或者释放。
Eliot_shao 2015-11-17
  • 打赏
  • 举报
回复
内存里,,,
East0000000、 2015-10-22
  • 打赏
  • 举报
回复
全局变量,要看你初始化没有。你可以去网上查询各个分段的意义,BSS data text 堆栈等等
ONIM 2015-10-16
  • 打赏
  • 举报
回复
引用 5 楼 songweijie 的回复:
程序员的自我修养 里面有详细的介绍
有这本书,但一直没时间看,看来还是要好好去读点书。。。
图灵转世 2015-10-12
  • 打赏
  • 举报
回复
如果编译进内核,就一直存在的吧。
songweijie 2015-10-12
  • 打赏
  • 举报
回复
程序员的自我修养 里面有详细的介绍
niushitana 2015-09-25
  • 打赏
  • 举报
回复
关注一下,学习了。
nswcfd 2015-09-24
  • 打赏
  • 举报
回复
驱动如果作为module存在,模块的全局变量映射到3G~4G的特定区域的(在MODULES_VADDR, MODULES_END之内),可以通过cat /proc/modules查看每个模块占用的线性空间。
LouisScola 2015-09-22
  • 打赏
  • 举报
回复
初始化的时候每个进程都有自己的data, bss区
  • 打赏
  • 举报
回复
我只知道进程是资源分配的最小单位

1,324

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧