1617, 1/81 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   ÇØÅ·ÀßÇϰí½Í´Ù
   http://¾øÀ½
   ¸®´ª½º Ä¿³Î&¿î¿µÃ¼Á¦ °³·Ð (1)

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=8614 [º¹»ç]


¸®´ª½º Ä¿³ÎÀº Çɶõµå Çï½ÌŰ ´ëÇп¡¼­ Àü»êÇÐÀ» Àü°øÇÏ´ø ÇлýÀ̾ú´ø
¸®´©½º Åä¹ßÁî°¡ 1991³â 8¿ù 26ÀÏ ¸®´ª½º 0.0.1À» °³¹ßÇÑ °ÍÀ¸·Î ½ÃÀ۵ȴÙ.
¸®´ª½º Ä¿³ÎÀº ¸ð³î¸®½Ä Ä¿³ÎÀ̸ç Ä¿³ÎÀÇ ±â´ÉÀÌ ´ëºÎºÐ ´ÜÀÏ ¸Þ¸ð¸® °ø°£¿¡¼­ ÀÛ¾÷µÈ´Ù´Â ¶æÀÌ´Ù.
ÀÌ·¯ÇÑ Ä¿³Î ¸ðµâÀ» ÀÛ¼ºÇÏ´Â °ÍÀ» ¸ðµâ ÇÁ·Î±×·¡¹ÖÀ̶ó°í ÇÑ´Ù.


        [¼ÒÇÁÆ®¿þ¾î¿¡ °¡±î¿ò]
            ¾ÖÇø®ÄÉÀ̼Ç
  
             Ä¿³Î (¿î¿µÃ¼Á¦)

    CPU Memory Devices
        [Çϵå¿þ¾î¿¡ °¡±î¿ò]

¾ÖÇø®ÄÉÀ̼Ǵܿ¡¼­ Çϵå¿þ¾î¸¦ Á¦¾îÇϱâ À§Çؼ­´Â
¹«¾ð°¡ Åë½ÅÇϸç Á¦¾îÇÏ´Â ¸Åü°¡ ÀÖ¾î¾ß Çϴµ¥ À̰ÍÀÌ ¹Ù·Î Ä¿³ÎÀÌ´Ù.
Ä¿³ÎÀº ¿î¿µÃ¼Á¦, Operating SystemÀ̶ó°í ºÒ¸®¿ì¸ç
OS¶ó°í ºÎ¸£±âµµ ÇÑ´Ù.

º¸Åë ¿î¿µÃ¼Á¦¸¦ ¼³Ä¡ÇÒ ¶§ 32ºñÆ®¿Í 64ºñÆ®¸¦ ¾ð±ÞÇϴµ¥
ƯÈ÷ CPU¸¦ ±¸ÀÔÇÒ ¶§ 64ºñÆ®¶ó´Â °ÍÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æº¸ÀÚ.

x86? x64?

ª°Ô ¸»Çϸé, x86Àº ÀÎÅÚ CPU ¸ðµ¨¸í ³¡ÀÚ¸® ¡°86¡±¿¡¼­ ¿Â ¸»ÀÌ´Ù.
1978³â ÀÎÅÚÀÌ 8086(16ºñÆ®)À» ³»³ù°í,
µÚÀ̾î 80186 ¡æ 80286 ¡æ 80386 ¡æ 80486ó·³ ¼¼´ë°¡ À̾îÁ³´Ù.
»ç¶÷µé³¢¸® ÀÌ °è¿­À» ¹­¾î ¡°8¡¿86¡± ¡æ x86À̶ó ºÎ¸£±â ½ÃÀÛÇÑ °ÍÀÌ´Ù.
486 ´ÙÀ½ ¼¼´ë(»ç¶÷µéÀÌ ³ó´ãÀ¸·Î ¡°80586¡±À̶ó ºÎ¸£´ø °Í)´Â
ÀÎÅÚÀÌ ¼ýÀÚ ´ë½Å PentiumÀ̶õ »óÇ¥¸¦ ¾²¸é¼­µµ ¸íĪÀº °è¼Ó x86·Î ±»¾îÁ³´Ù.
¼ýÀÚ´Â ¹Ù²î¾úÁö¸¸ ¸í·É¾î ÁýÇÕ(ISA) ȣȯÀÌ À̾îÁ³±â ¶§¹®¿¡...
¿À´Ã³¯ ¿ë¾î¸¦ ¸ÊÇÎÇÏÀÚ¸é...

IA-32 = 32ºñÆ® x86
x86-64 / AMD64 = AMD°¡ È®ÀåÇÑ 64ºñÆ® x86(ÀÎÅÚÀº Intel 64¶ó°í ºÎ¸§)


Áï, ¸ðµ¨¸íÀÌ 86À¸·Î ³¡³ª´ø ÀÎÅÚ 8086 °è¿­ CPUÀÇ
ȣȯ ISA Àüü¸¦ °¡¸®Å°´Â °ü½ÀÀû À̸§ÀÌ x86ÀÌ´Ù.
ÇѸ¶µð·Î ¸»Çؼ­ x86Àº 86ºñÆ®°¡ ¾Æ´Ï´Ù.
32ºñÆ®Àε¥ 86ÀÌ ºÙ´Â °Ç ¿¹Àü¿¡ ÀÎÅÚ¿¡¼­ 32ºñÆ® CPU¸¦ Ãâ½ÃÇÒ ¶§
80586ÀÌ·± ½ÄÀ¸·Î ¸ðµ¨¸íÀ» ºÙ¿´±â ¶§¹®ÀÌ´Ù.



p.s. ¿¹Àü¿¡ ÇÐâ½ÃÀý °øºÎ¸¦ ²ÃÁöÇÏ´ø ¾Ö°¡ ÀÖ¾ú´Âµ¥
±×³ðÀÌ ¼ºÀÎÀÌ µÇ¾î¼­ ³» ¾Õ¿¡¼­ x86À» º¸°í 86ºñÆ®¶ó°í ¸»ÇÑ ÀûÀÌ ÀÖ¾ú´Ù.
64ºñÆ®º¸´Ù 86ºñÆ®°¡ ´õ ¼ýÀÚ°¡ ³ô¾Æ¼­ ¼º´ÉÀÌ ÁÁ´Ù¸ç 64ºñÆ® CPU¸¦ »ç¿ëÇÏ´Â
³» ÄÄÇ»ÅÍ¿¡ 32ºñÆ®(x86) À©µµ¿ì7À» ¼³Ä¡ÇÑ Àü¼³ÀÌ... -_-;;
¹é½ÅÀ» ±ò¾Æ³ù³Ä°í Çϴϱñ ³ª´Â ¾È ±ñ´Ù°í Çϴϱñ
³ªº¸°í ¹é½Åµµ ¾È ±ò¾Æ³ù³Ä¸ç ³Ê ¹ÙÀÌ·¯½º ¸ÔÀ¸¸é ¾î¼³Ä´À´Ï ¹¹¶ó ÇÏ´øµ¥...
¾Ë¾àÀÌ ¾î¼°í V3°¡ ¾î¼°í ÇØ¼­ ¿ì¸®Áý¿¡ ¹é½ÅÀ» ±ò¾Æ³õ°í °£ Àü¼³ÀÌ...
¿Ã¸®µð¹ö°Å·Î Å©·¢¹Ì °°Àº°Å ¹®Á¦Ç® ¶§ ¹é½ÅÀÌ ÀÚ²Ù °É·Á°¡Áö°í
¹é½ÅÀ» ¼³Ä¡ÇÏÁö ¾ÊÀº °Å¿´´Âµ¥...;;

¸®´ª½º¿¡¼­ Çѹø ÇÊÀÚÀÇ ÀÚ·áÇü Å©±â¸¦ È®ÀÎÇØº¸ÀÚ.


¦£¦¡[ka0r1@parrot]¦¡[~]
¦¦¦¡¦¡╼ $cat test.c
#include <stdio.h>
#include <inttypes.h>

int main(void)
{
    printf("sizeof(void*)=%zu\n", sizeof(void*));
    printf("sizeof(int)=%zu, long=%zu, size_t=%zu\n",
    sizeof(int), sizeof(long), sizeof(size_t));
    
    return 0;
}
¦£¦¡[ka0r1@parrot]¦¡[~]
¦¦¦¡¦¡╼ $./test
sizeof(void*)=8
sizeof(int)=4, long=8, size_t=8
¦£¦¡[ka0r1@parrot]¦¡[~]
¦¦¦¡¦¡╼ $





32ºñÆ®ÀÇ ¹°¸®/°¡»ó ÁÖ¼Ò...
32ºñÆ® Ä¿³Îµµ PAE·Î ¹°¸® ¸Þ¸ð¸® 4GB ³Ñ°Ô ´Ù·ê ¼ö ÀÖÁö¸¸
ÇÁ·Î¼¼½º °¡»ó ÁÖ¼Ò °ø°£Àº ¿©ÀüÈ÷ 4GB ÇѰ谡 ÀϹÝÀûÀÌ´Ù.
64ºñÆ®´Â ÈξÀ Å« °¡»ó ÁÖ¼Ò °ø°£(º¸Åë ¼ö½Ê Å×¶ó)À¸·Î ´ëÇü Èü/¸ÅÇÎÀÌ ½¬¿öÁü.

ÀÚ¼¼ÇÏ°Ô µûÁöÀÚ¸é
ÀÌÁø¼ö                                ½ÊÁø¼ö
0                                           0
1                                           1
10                                         2
11                                         3
100                                       4
101                                       5
110                                       6
111                                       7
1000                                     8



µðÁöÅÐÀÌ 0°ú 1·Î ÀÌ·ç¾îÁø´Ù°í ¸»Çϴµ¥ ÀÌ°Ô Á¤È®È÷ ¹«½¼ ¶æÀϱî?
À̰ÍÀº 0Àº °ÅÁþ(Á¸ÀçÇÏÁö ¾ÊÀ½), 1Àº Âü(Á¸Àç)¶ó´Â °ÍÀÌ´Ù.
ÀÌ Á¸Àç¶õ °ÍÀº?
ÀÌÁø¼ö 110Àº? ¸Þ¸ð¸®»ó¿¡¼­ Àü±â°¡ ÀÖ´Ù, Àü±â°¡ ÀÖ´Ù, Àü±â°¡ ¾ø´Ù
ÀÌ·±½ÄÀ¸·Î ÀúÀåÀÌ µÇ´Â °ÍÀÌ´Ù.


¦£¦¡[ka0r1@parrot]¦¡[~]
¦¦¦¡¦¡╼ $gcc -O0 -g -fno-pie -no-pie test.c -o test
¦£¦¡[ka0r1@parrot]¦¡[~]
¦¦¦¡¦¡╼ $objdump -D -M intel --show-raw-insn test
.
.
.
0000000000400358 <.note.gnu.build-id>:
  400358:        04 00                        add    al,0x0
  40035a:        00 00                        add    BYTE PTR [rax],al
  40035c:        14 00                        adc    al,0x0
  40035e:        00 00                        add    BYTE PTR [rax],al
  400360:        03 00                        add    eax,DWORD PTR [rax]
  400362:        00 00                        add    BYTE PTR [rax],al
  400364:        47                           rex.RXB
  400365:        4e 55                        rex.WRX push rbp
  400367:        00 20                        add    BYTE PTR [rax],ah
  400369:        64 94                        fs xchg esp,eax
  40036b:        70 2e                        jo     40039b <__abi_tag+0x1f>
  40036d:        03 aa 33 fa 94 3b            add    ebp,DWORD PTR [rdx+0x3b94fa33]
  400373:        c6                           (bad)
  400374:        be 1d 8c 21 ec               mov    esi,0xec218c1d
  400379:        5a                           pop    rdx
  40037a:        a2                           .byte 0xa2
  40037b:        c8                           .byte 0xc8
.
.
.

¸Ç À§¿¡...
04 00

04¸¦ 0100 0000À̸ç
Çϵåµð½ºÅ©¶ó´Â ÀúÀåÀåÄ¡¿¡ ÇÁ·Î±×·¥ÀÌ ½ÇÇàÇϸé ÁÖ±â¾ïÀåÄ¡ ¸Þ¸ð¸®¿¡
0100 0000(Àü±â°¡ ¾ø´Ù, Àü±â°¡ ÀÖ´Ù, Àü±â°¡ ¾ø´Ù, Àü±â°¡ ¾ø´Ù,
Àü±â°¡ ¾ø´Ù, Àü±â°¡ ¾ø´Ù, Àü±â°¡ ¾ø´Ù, Àü±â°¡ ¾ø´Ù)

ÀÌ·± ½ÄÀ¸·Î ¸Þ¸ð¸®¿¡ ÀúÀåµÇ¸ç ÇÁ·Î±×·¥ÀÌ ½ÃÀ۵Ǹé CPU°¡
¸Þ¸ð¸®ÀÇ µ¥ÀÌÅÍ(±Ùº»ÀûÀ¸·Î µðÁöÅÐ Àü±â½ÅÈ£)¸¦ ·¹Áö½ºÅÍ ¾È¿¡ ·ÎµåÇØ¼­
°á±¹ Áß¾Óó¸®ÀåÄ¡(CPU)°¡ ó¸®ÇÏ´Â °ÍÀÌ´Ù.

  Hit : 410     Date : 2025/11/02 06:00