易截截图软件、单文件、免安装、纯绿色、仅160KB

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的区域可缓存*/
 


相关文档:

Linux/MIPS核心剖析

转自:弯曲评论:tektalk.cn homepage 第一部分 MIPS CPU 体系结构概述 1. MIPS概述 本文介绍MIPS体系结构,着重于其寄存器约定,MMU及存储管理,异常和中断处理等等。 通过本文,希望能提供一个基本的轮廓概念给对MIPS CPU及之上操作系统有兴趣的读者,并能开始阅读更详细的归约(SPECIFICATION)资料。 (在线PDF文件下 ......

Linux dmesg中关于TCP: Treason uncloaked!信息

在debian Linux服务器的日志中,dmesg出现类似的信息:
TCP: Treason uncloaked! Peer 202.106.38.7:57824/80 shrinks window 3573023813:3573023814. Repaired.
TCP: Treason uncloaked! Peer 202.106.38.7:57824/80 shrinks window 3573023813:3573023814. Repaired.
TCP: Treason uncloaked! Peer 202.99.99.211:3760 ......

Linux 0.12内核

Linux使用从1970年1月1日0时0分0秒起到开机时经过的秒数作为开机时间, 是在main.c和mktime.c中进行初始化的.
1. linux/init/main.c
/*
 * read current time from CMOS.
 * 访问CMOS需要通过端口0x70, 0x71进行.
 * 读数据时,先用OUT指令向0x70发送要读取字节的偏移位置值, 然后用IN指令从0x71读数据. ......

Linux下文件格式的压缩、解压小结

转自http://hi.baidu.com/ln5336993/blog/item/9de4963e3dbad3e455e723c0.html
      .tar
  解包: tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName
  (注:tar是打包,不是压缩!)
  ---------------------------------------------
  .gz
  解压1:gunzip Fi ......

linux ssh 常用命令

ssh常用命令
目录:
1. Basic Instructions /基本指令
2. wget /下载工具
3. Crontab /定时任务
4. tar/tar.gz /压缩文件
5. vi /编辑器
1. Basic Instructions基本操作命令
通常来说,使用"$[Instructions] --help"可以获得以下各个命令[instructions]的帮助,包含其参数列表的定义。
-ls 列出当前文件夹 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号