简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文仅限在i386平台下讨论一般情况。1、用户线性地址空间范围0-3G,内核线性空间范围3G-4G。2、内核总是立即满足内核空间的物理内存分配,并且分配结果对所有进程可见;而对于用户空间的内存分配请求,linux总是先保留用户线性地址空间的一段区域,然后修改页表项使这段线性区域都指向一页内容全为0的全局只读物理页。当进程写入这段线性区域时,将会产生一个缺页异常,这时系统才会为对应的线性地址分配物理
以下源代码来源于linux2.6.26.5的arch/x86/boot/header.S/* * header.S * * Copyright (C) 1991, 1992 Linus Torvalds * * Based on bootsect.S and setup.S * modified by more people than can be co
本文代码是从互联网收集而来,我记录下来主要为学习方便,版权归原作者所有。以下代码实现了在linux内核空间打开、读、写文件等相关函数,有兴趣的可以研究一下并在此基础上扩展。 #include #include #include #include #include #include #include /* file I/O in kernel module*/
Linux虚拟内存组织结构浅析(二)在前一篇文章中我们介绍了Linux虚拟内存在逻辑上的组织结构,现在就让我们从源代码入手,从程序级仔细看看各个数据结构体的内部组成如何,源代码来自于最新的kernel2.6.26.5,分析过程中主要参考了《Understanding the linux virtual memory》这本书,有兴趣的朋友可以去阅读一下。 一、节点的数据表示在内核中,