黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

32bit / 64bit co-exist Linux, ld-linux.so, l

系統(tǒng) 2825 0

before this, confirm that you don't have 32bit libs notably 32bit libc, e.g. you have?

/lib64/ld-linux-x86-64.so.2? but not? /lib32/ld-linux.so.2

https://wiki.debian.org/Multiarch?

?

run following on Debian 64bit to add basic support for 32bit programs (anyway you need ld-linux at least...)

      dpkg --add-
      
        architecture i386;

aptitude 
      
      
        install
      
       libc6-i386 libc6-dev-i386  (note that don't use libc6:i386 otherwise apt thinks you'd use libc-i386 as the main libc)
    

?

write a simple "hello world", and compile with different flags

      
        gcc
      
       -m32 hello.c -
      
        o hello32

ldd hello32

        linux
      
      -gate.so.
      
        1
      
       (
      
        0xf7765000
      
      
        )

        libc.so.
      
      
        6
      
       => /lib32/libc.so.
      
        6
      
       (
      
        0xf75a2000
      
      
        )

        
      
      /lib/
      
        ld
      
      -linux.so.
      
        2
      
       (
      
        0xf7766000
      
      
        )






      
      
        gcc
      
       -m64 hello.c -
      
        o hello64

ldd hello64

        linux
      
      -vdso.so.
      
        1
      
       (
      
        0x00007fff1cfa4000
      
      
        )

        libc.so.
      
      
        6
      
       => /lib/x86_64-linux-gnu/libc.so.
      
        6
      
       (
      
        0x00007fe71d001000
      
      
        )

        
      
      /lib64/
      
        ld
      
      -linux-x86-
      
        64
      
      .so.
      
        2
      
       (
      
        0x00007fe71d3c1000
      
      )
    

What is ld-linux.so.2?

This program is defined as part of the structure of the ELF file, in the? INTERP ?section of the program header. For 32bit linux binaries, this is the typical name of the 32bit interpreter. For 64bit binaries, you'll find it is typically called? ld-linux-x86_64.so.2 ?(for 64bit x86 platforms).

You can determine this information yourself using? readelf -l , and the INTERP section:

    
      INTERP         0x0000000000000238 0x0000000000400238 0x0000000000400238

               0x000000000000001c 0x000000000000001c  R      1

    [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
    
  

?

What is linux-gate.so.1? very good article on this:? http://www.trilithium.com/johan/2005/08/linux-gate/

there's not supposed to be a linux-gate.so.1 file present anywhere on the file system ; it's a virtual? DSO (dynamic shared object) , a shared object exposed by the kernel at a fixed address in every process' memory:
http://en.wikipedia.org/wiki/VDSO

for example, run "cat /proc/self/maps" and it'll give the memory layout of cat process

      
        cat
      
       /proc/self/
      
        maps


      
      
        00400000
      
      -0040b000 r-xp 
      
        00000000
      
      
        08
      
      :
      
        01
      
      
        403141
      
                                   /bin/
      
        cat
      
      
        

0060a000
      
      -0060b000 r--p 0000a000 
      
        08
      
      :
      
        01
      
      
        403141
      
                                   /bin/
      
        cat
      
      
        

0060b000
      
      -0060c000 rw-p 0000b000 
      
        08
      
      :
      
        01
      
      
        403141
      
                                   /bin/
      
        cat
      
      
        02376000
      
      -
      
        02397000
      
       rw-p 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
                                          [heap]

7fb1eabf3000
      
      -7fb1ead93000 r-xp 
      
        00000000
      
      
        08
      
      :
      
        01
      
      
        391959
      
                           /lib/x86_64-linux-gnu/libc-
      
        2.18
      
      
        .so

7fb1ead93000
      
      -7fb1eaf92000 ---p 001a0000 
      
        08
      
      :
      
        01
      
      
        391959
      
                           /lib/x86_64-linux-gnu/libc-
      
        2.18
      
      
        .so

7fb1eaf92000
      
      -7fb1eaf96000 r--p 0019f000 
      
        08
      
      :
      
        01
      
      
        391959
      
                           /lib/x86_64-linux-gnu/libc-
      
        2.18
      
      
        .so

7fb1eaf96000
      
      -7fb1eaf98000 rw-p 001a3000 
      
        08
      
      :
      
        01
      
      
        391959
      
                           /lib/x86_64-linux-gnu/libc-
      
        2.18
      
      
        .so

7fb1eaf98000
      
      -7fb1eaf9c000 rw-p 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
        

7fb1eaf9c000
      
      -7fb1eafbc000 r-xp 
      
        00000000
      
      
        08
      
      :
      
        01
      
      
        391749
      
                           /lib/x86_64-linux-gnu/
      
        ld
      
      -
      
        2.18
      
      
        .so

7fb1eb018000
      
      -7fb1eb1a1000 r--p 
      
        00000000
      
      
        08
      
      :
      
        01
      
      
        1052029
      
                          /usr/lib/locale/locale-
      
        archive

7fb1eb1a1000
      
      -7fb1eb1a4000 rw-p 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
        

7fb1eb1b9000
      
      -7fb1eb1bb000 rw-p 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
        

7fb1eb1bb000
      
      -7fb1eb1bc000 r--p 0001f000 
      
        08
      
      :
      
        01
      
      
        391749
      
                           /lib/x86_64-linux-gnu/
      
        ld
      
      -
      
        2.18
      
      
        .so

7fb1eb1bc000
      
      -7fb1eb1bd000 rw-p 
      
        00020000
      
      
        08
      
      :
      
        01
      
      
        391749
      
                           /lib/x86_64-linux-gnu/
      
        ld
      
      -
      
        2.18
      
      
        .so

7fb1eb1bd000
      
      -7fb1eb1be000 rw-p 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
        

7fff48a06000
      
      -7fff48a27000 rw-p 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
                                  [stack]

7fff48a49000
      
      -7fff48a4b000 r-xp 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
      
                                  [vdso]

ffffffffff600000
      
      -ffffffffff601000 r-xp 
      
        00000000
      
      
        00
      
      :
      
        00
      
      
        0
      
                        [vsyscall]
    

?

32bit / 64bit co-exist Linux, ld-linux.so, linux-gate.so.1 etc


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論