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

linux中ELF加载过程分析

sys_execve
   | - do_execve
|
| - search_binary_handler         
           |- linux_binfmt= elf_format
       |- elf_format-> load_elf_binary
| - elf_entry = load_elf_interp()
          |-   
| if  (BAD_ADDR(elf_entry))
                |     force_sig(SIGSEGV, current);
|     retval =-EINVAL;
 
  
binfmt_elf.c: line 1024
              elf_entry = loc->elf_ex.e_entry;
              if (BAD_ADDR(elf_entry)) {
                     force_sig(SIGSEGV, current);
                     retval = -EINVAL;
                     goto out_free_dentry;
              }
 
ELF可行档的载入:
 
内核中实际执行
execv()

execve()
系统调用的程序是
do_execve()
,这个函数先打开目标映像文件,并从目标文件的头部
(
从第一个字节开始
)
读入若干
(128)
字节,然后调用另一个函数
search_binary_handler()
,在那里面让各种可执行程序的处理程序前来认领和处理。内核所支持的每种可执行程序都有个
struct linux_binfmt
数据结构,通过向内核登记挂入一个队列。而
search_binary_handler()
,则扫描这个队列,让各个数据结构所提供的处理程序、即各种映像格式、逐一前来认领。如果某个格式的处理程序发现特征相符而,便执行该格式映像的装入和启动。
我们从
ELF
格式映像的


相关文档:

linux内核中最常见的锁是自旋锁

 linux内核中最常见的锁是自旋锁(spin lock)。自旋锁最多只能被一个可执行线程持有。如果一个执行线程试图获得一个被争用的自旋锁,那么该线程就会一直进行忙循环等待锁重新可用。要是锁未被争用,请求锁的执行线程便能立刻得到它,继续执行。在任意时间,自旋锁都可以防止多于一个的执行线程同时进入临界区。
  ......

Linux编码问题研究

对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少 ......

Linux控制台,中文显示,中文输入

 一、前言
       
Linux最初的开发完全是围绕ASCII编码体系进行的,没有考虑非英语用户面临的问题,因此导致其使用门槛较高,尤其对于亚洲用户而言,由于采用象形
文字的特殊性(包括中文、韩文、日文,简称为CJK),使得对Linux进行本地化更为困难。在这样的背景下,ejoy等人发起 ......

Linux查看和剔除当前登录用户

如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户?
看了网络中的一些例子.在这里总结一下.主要用到的命令有,w,who,ps,kill,pkill
查看当前登录用户:
node8:/home # who
root     :0           2009-11-04 16:26
root     pts/0       &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号