|
http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&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 : 408 Date : 2025/11/02 06:00
|