linux内核
99-107
这个作者很懒,什么都没留下…
展开
-
Linux驱动虚拟地址和物理地址的映射
一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间都是完全独立、互不相干的,用户进程各自有不同的页表。而内核空间是由内核负责映射,它并不会跟着进程改变,是固定的。内核空间地址有自己对应的页表,内核的转载 2016-04-20 09:26:39 · 820 阅读 · 0 评论 -
言简意赅:中断中为何不能使用信号量,中断上下文为何不能睡眠
不论是书上还是网上,对这块的解释,总是很凌乱, 让人不好理清。 大部分开发者可能也只知其然,不知所以然。在网上找到一篇对此解释言简意赅,一看就懂的文章,故分享过来。1、中断中为何不能使用信号量?答: 信号量会导致睡眠。2、中断上下为何不能睡眠?以下为转载: http://blog.chinaunix.NET/uid-7332782-id-3213376.h转载 2017-02-20 15:59:13 · 8354 阅读 · 0 评论 -
linux内核 信号
本文简单介绍下Linux信号处理机制,为介绍二进制翻译下信号处理机制做一个铺垫。本文主要参考书目《Linux内核源代码情景分析》《独辟蹊径品内核:Linux内核源代码导读》首先,先说一下什么是信号。信号本质上是在软件层次上对中断机制的一种模拟,其主要有以下几种来源:程序错误:除零,非法内存访问… 外部信号:终端Ctrl-C产生SGINT信号,定时器到期产生SIGALRM…转载 2017-03-01 15:53:59 · 371 阅读 · 0 评论 -
linux内核地址空间和高端内存
摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。 Linux内核地址空间划分通常32位Linux内核虚转载 2017-03-02 16:59:58 · 776 阅读 · 0 评论 -
linux内核分析——简单代码反汇编为汇编代码分析
main.c内容如下:int g(int x){ return x + 3;}int f(int x){ return g(x);}int main(void){ return f(8) + 1;}然后反汇编:gcc –S –o main.s main.c -m32生成main.s汇编文件,打开去掉前面有点“.”的行(这些行在汇编中没什么用起辅助作用原创 2017-03-01 23:53:32 · 1326 阅读 · 0 评论