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

解惑—Linux中的地址空间(一)转载

有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核编译后地址空间在什么范围内?要对外设进行访问,I/O的地址空间又是什么样的?
先回答第一个问题。Linux最常见的可执行文件格式为elf(Executable and Linkable Format)。在elf格式的可执行代码中,ld总是从0x8000000开始安排程序的“代码段”,对每个程序都是这样。至于程序执行时在物理内存中的实际地址,则由内核为其建立内存映射时临时分配,具体地址取决于当时所分配的物理内存页面。
我们可以用Linux的实用程序objdump对你的程序进行反汇编,从而知晓其地址范围。
例如:假定我们有一个简单的C程序Hello.c
  # include <stdio.h>
  greeting ( )
  {
              printf(“Hello,world!\n”);
  }
  main()
   {
         greeting();
   }
之所以把这样简单的程序写成两个函数,是为了说明指令的转移过程。我们用gcc和ld对其进行编译和连接,得到可执行代码hello。然后,用Linux的实用程序objdump对其进行反汇编:
$objdump –d hello
得到的主要片段为:
08048568 <greeting>:
   8048568:     pushl  %ebp
   8048569:     movl  %esp, %ebp
   804856b:     pushl  $0x809404
   8048570:     call    8048474  <_init+0x84>
   8048575:     addl   $0x4, %esp
   8048578:     leave
   8048579:     ret
   804857a:     movl  %esi, %esi
   0804857c <main>:
   804857c:     pushl  %ebp
   804857d:     movl  %esp, %ebp
   804857f:     call    8048568  <greeting>
   8048584:   


相关文档:

用Linux下Perl脚本连接SQLServer

准备工作:
  用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
  
  程序实现:
  使用
  use
Win32::ODBC;
  
  语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
  
  $DSN = "DSN =
My DSN ......

LINUX进程等信息查看

查看发行版信息:
lsb_release -a 这个最详细
查看内核和操作系统位数:
uname -a
64位操作系统有类似信息:.... x86_64 x86_64 x86_64...
32位操作系统有类似信息:.... i686 i686 i386...
查看cpu信息:
more /proc/cpuinfo
查看和控制系统服务(如 iptables防火墙的开和关):
chkconfig 查看和设定服务在不同 ......

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磁盘IO查看

hiphop_linux
linux磁盘IO查看(iostat)
##############
#
#    操作
#
##############
# iostat -x 1 10
Linux 2.6.18-92.el5xen    02/03/2009
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          ......

Linux 内核编译步骤 (转)

下载新内核以后,先把Linux-2.6.18.2.tar.bz2 复制到/usr/src/ 的下面
tar –jxvf  Linux-2.6.18.2.tar.bz2 cd Linux-2.6.18.2 make mrproper 把原来编译产生的垃圾删除
配置内核可以根据需要与爱好使用下面命令中的一个:
#make config (基于文本的最为传统的配置界面)
#make menuconfig (基于文本 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号