易截截图软件、单文件、免安装、纯绿色、仅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学习笔记05

显示当前系统内存容量:
free -m
uname显示系统信息:
-a :所有系统相关信息
-s :系统核心名称
-r :核心版本
-p :cpu类型
-r :硬件平台
将当前所有联机和监听数据列出来:
netstat -a
列出所有进程打开的套接字文件:
lsof -u db2inst1 -a -U 或 lsof -u db2inst1 ......

Linux 录制桌面的简单工具

It's actually an application named <em><strong>recordmydesktop</strong></em>, which can be installed by <strong>sudo apt-get install recordmydesktop</strong>.
There are various kinds of purpose to use, but for me, I would like to present or show some mock-up to o ......

linux crontab 计划任务

Crontab:linux计划任务。非常有用的一个命令,可以在周期性的定义一个任务的执行时间。最短的周期为1分钟。因为crontab是守护进程,每过1分钟会检查一次。
Crontab –l: 列出当前的任务列表。
Crontab –e:编辑当前的任务列表。可以通过vi编辑器来编辑任务列表。
格式如下:
分 时 日 月 周 命令
看几个例子 ......

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下文件格式的压缩、解压小结

转自http://hi.baidu.com/ln5336993/blog/item/9de4963e3dbad3e455e723c0.html
      .tar
  解包: tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName
  (注:tar是打包,不是压缩!)
  ---------------------------------------------
  .gz
  解压1:gunzip Fi ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号