将系统自检(BIOS)需要用到的指令,映射进CPU可以查找的线性地址空间(ROM),用来检查硬件是否正常。 内核空间 用户空间 POST >BIOS(启动顺序) >MBR(BootLoader,446B)找到启动分区 >Kernel(探测硬件,装载驱动) >init进程(进程)/sbin/init ...
分类:
其他好文 时间:
2017-08-09 22:11:56
阅读次数:
152
1.虚拟地址到物理地址 X86芯片访问内存,需要使用MMU功能,实现虚拟地址到线性地址,再到物理地址的访问。 X86的分段机制是强制的,分页机制是可选的。 2.分段机制 X86的虚拟地址,由选择符:偏移值决定。段选择符由CS,SS,DS等组成。CS为代码段选择符,SS为堆栈段选择符, DS为数据段选 ...
分类:
系统相关 时间:
2017-08-06 20:45:05
阅读次数:
192
http://blog.csdn.net/mrbuffoon/article/details/48947267 Note:本文是基于80×86微处理器进行原理总结。 在内存地址上,我们要区分逻辑地址、线性地址以及物理地址这三个概念。逻辑地址:包含在机器语言指令中用来指定一个操作数或者一条指令的地址。 ...
分类:
其他好文 时间:
2017-08-04 01:14:08
阅读次数:
245
http://blog.csdn.net/prike/article/details/52722934 物理内存:数据寻址用;mmu联系; 虚拟地址:cpu传给mmu的;给程序员使用; 逻辑地址:cpu指令使用;符合可执行文件的格式。 二、物理地址、虚拟地址(线性地址)、逻辑地址 任何时候,计算机上 ...
分类:
其他好文 时间:
2017-08-04 01:08:48
阅读次数:
220
1.内核调试手段 1.printk打印内核状态 2.产生opps时使用GDB查看调用栈 2.内核空间和用户空间区别,通信方式有哪些? Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从 ...
分类:
系统相关 时间:
2017-07-30 00:16:21
阅读次数:
227
nginx进程间的通信 进程间消息传递 共享内存 共享内存还是Linux下提供的最主要的进程间通信方式,它通过mmap和shmget系统调用在内存中创建了一块连续的线性地址空间,而通过munmap或者shmdt系统调用可以释放这块内存。使用共享内存的优点是当多个进程使用同一块共享内存时,在不论什么一 ...
分类:
系统相关 时间:
2017-07-26 19:30:46
阅读次数:
208
虚拟内存 为了有效的管理内存,linux提出了虚拟内存的概念。虚拟内存是硬件异常、主存、硬件地址翻译、磁盘、和内核软件的完美交互。 虚拟内存提供了三个重要的能力: 1、将内存看作是磁盘的告诉缓存 2、使得进程具一致的地址空间(线性地址) 3、使得进程的地址空间相互独立 虚拟内存的实现机制 内核会为每 ...
分类:
系统相关 时间:
2017-07-17 18:33:49
阅读次数:
206
一、Linux上地址映射: 1、逻辑地址:由程序产生的和段相关的偏移地址部分 线性地址:是逻辑地址到物理地址变换的中间层,程序代码会产生逻辑地址,段中的偏移地址加上相应段的基地址就生成了一个线性地址。在Intel 80836的线性地址空间从0x00 00 00 00 0xff ff ff ff,为2 ...
分类:
其他好文 时间:
2017-07-05 00:23:08
阅读次数:
237
5. IPC几种通信方式 IPC即进程间通信(Inter-Process Communication),由于进程的用户空间是相互独立的,一般而言不能随便访问,因此我们需要一些IPC方式来进行进程间信息传递。常见的IPC方式有以下几种: 管道:管道主要分为普通管道(单工,父子进程)、流管道(半双工)和 ...
分类:
其他好文 时间:
2017-06-11 10:29:32
阅读次数:
221
在kern/pmap.c 里面会又以下这段代码,要知道boot_alloc只会分配线性地址,真正建立虚拟页和物理页映射关系的在后面的page_alloc. ////////////////////////////////////////////////////////////////////// / ...
分类:
其他好文 时间:
2017-06-08 14:02:51
阅读次数:
225