Linux内存空间访问札记(转)
http://blog.chinaunix.net/u/25764/showart_1882931.html
引:本来打算将这部分内容并入到《The Linux Kernel Module Programming Guide笔记》中去,但是想下内存空间管理访问相当基础重要而且内容量较大,所以就单独记录。在过去一年里,由于成功开发过几个颇为复杂的设备驱动,就自以为掌握了驱动开发的方法和技巧,事实上在基础上,我却有着致命的盲点。这个盲点就是Linux的内存管理,其实很久之前,就一直就搞不懂MMU、Page、Section、页表等概念,那时以为这些并不重要。现在看来终于尝到苦果了,在开发Virtual Framebuffer的时候,就在mmap这个接口实现上卡住了。俗话所说的书到用时方很少,是至理名言啊。
注:在x86架构上,会分为内存空间和I/O空间,但是在大多数嵌入式控制器如ARM、PowerPC并不提供I/O空间。我面向的主要是嵌入式方面的驱动开发,所以这里并不讨论I/O空间的内容。本文的内容大多数是摘录《Linux设备驱动开发详解》的第十一章,并结合我在开发过程的一些心得体会。
一、内存管理单元MMU
MMU辅助操作系统进行内存管理、提供虚拟地址和物理地址的映射、内存访问权限保护和Cache缓存控制等硬件支持,可见,这将使得Linux操作系统能单独为系统的每个用户分配独立的内存空间并保证用户空间不能访问内核空间的地址,为操作系统的虚拟内存管理模块提供了硬件基础。
在s3c2410的vivi这个bootloader中,建立了一个4GB物理地址与虚拟地址一一映射的一级页表,我们可以通过函数mem_mapping_linear()来探寻一下其创建过程
static inline void mem_mapping_linear(void)
{
unsigned long pageoffset, sectionNumber;
/*4GB虚拟地址映射到相应的物理地址上,均不能缓存*/
for (sectionNumber = 0; sectionNumber < 4096; sectionNumber++)
{
pageoffset = (sectionNumber << 20);
*(mmu_tlb_base + (pageoffset >> 20)) = pageoffset | MMU_SECDESC;
//mmu_tlb_base为存放页表的首地址,tlb是转换旁路缓存,是转换表的Cache
}
/*使能DRAM的区域可缓存*/
 
相关文档:
(AIX命令)iostat命令主要通过观察物理磁盘的活跃时间以及他们的平均传输速度,监控系统输入/输出设备负载.
iostat [间隔时间] [打印次数]
exp: iostat 5 2
ps命令是UNIX系统中最常见的命令,它主要显示系统中关于进程的统计和状态信息,如进程ID,I/O行为以及CPU利用率等.
显示10个消耗CPU最多的进程:
ps aux |sort ......
显示当前系统内存容量:
free -m
uname显示系统信息:
-a :所有系统相关信息
-s :系统核心名称
-r :核心版本
-p :cpu类型
-r :硬件平台
将当前所有联机和监听数据列出来:
netstat -a
列出所有进程打开的套接字文件:
lsof -u db2inst1 -a -U 或 lsof -u db2inst1 ......
今天读了本书的第一章.这一章初步介绍了Linux内核的总体布局,也就是总体上来看有哪些模块组成.从上到下主要是:glidc->系统调用->(VFS,Schedular,Soft ISR,ISR,FILE Sytem,Task Manager,Memory Manager,IP Stack)括号里面的各个模块都是并列存在的.目前对于这其中的许多名词我还不熟悉,不禁感到惭愧,要学 ......
转自http://hi.baidu.com/ln5336993/blog/item/9de4963e3dbad3e455e723c0.html
.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
---------------------------------------------
.gz
解压1:gunzip Fi ......
ssh常用命令
目录:
1. Basic Instructions /基本指令
2. wget /下载工具
3. Crontab /定时任务
4. tar/tar.gz /压缩文件
5. vi /编辑器
1. Basic Instructions基本操作命令
通常来说,使用"$[Instructions] --help"可以获得以下各个命令[instructions]的帮助,包含其参数列表的定义。
-ls 列出当前文件夹 ......