이론적으로는 서버 구축에 많이 쓰이는 c++,java,파이썬도
결국 컴파일러를 통해 기계어로 번역되는건 아는데
이런 저급언어나 고급언어없이 가장 컴퓨터에 친숙한
기계어나 어셈블리만 써서 진짜 서버를 구축한 사례가 있나요?
서버 만들고픈 뉴비
이론적으로는 서버 구축에 많이 쓰이는 c++,java,파이썬도
결국 컴파일러를 통해 기계어로 번역되는건 아는데
이런 저급언어나 고급언어없이 가장 컴퓨터에 친숙한
기계어나 어셈블리만 써서 진짜 서버를 구축한 사례가 있나요?
https://www.clien.net/service/board/park/16569890
ÀÌ·± ºÐÀÌ ÇØ´ç ºÐ¾ß¿¡ ÀÖ´Ù¸é °¡´ÉÇÏ°ÚÁö¸¸ ±Û¿¡ ³ª¿Í ÀÖµíÀÌ À̺еµ ¸ðµç °É ÀßÇÏ´Â°Ô ¾Æ´Ï¶ó¼,,,,,,
°á±¹Àº ³ëÇÏ¿ì °øÀ¯¸¦ ÅëÇØ Áý´ÜÀû Áö¼ºÀ» ÀÌ¿ëÇì ¹ßÀüÇÏ´Â °ÍÀÌ ´õ È¿¿ëÀÌ Å©±â ¶§¹®¿¡
°¡Àå º¸ÆíÀûÀ¸·Î ³Î¸® ÆÛÁø ¾ð¾î ÅøÀ» ÀÌ¿ëÇÏ´Â°Ô ÁÁÀ»°Ì´Ï´Ù
¿äÁòÀº ÄÄÆÄÀÏ·¯°¡ ¸Å¿ì È¿À²ÀûÀ̶ó ´ëºÎºÐÀÇ Äڵ忡¼ »ç¶÷ÀÌ Á÷Á¢Çϴ §°Åº¸´Ù ´õ ¿ÉƼ¸¶ÀÌÁîµÈ °á°ú¹°À»
³»³õ´Ù´Â ±ÛÀ» º»ÀûÀÌ ÀÖ½À´Ï´Ù
ºôµùÀ» Áþ´Âµ¥ ±»ÀÌ Çö´ë½Ä °Ç¼³ Àåºñ¸¦ ³öµÎ°í »ðÀ¸·Î óÀ½ºÎÅÍ ³¡±îÁö ÁöÀ» ÇÊ¿ä´Â ¾ø´Ù¶ó´Â ¸»ÀÌ »ý°¢³ª´Â±º¿ä....¤¾
»ð°ú °î±ªÀÌ¶óµµ ÀÖ´Â°Ç ±×·¡µµ ÄÄÆÄÀÏ·¯ Á¤µµ´Â °®Ãç³õ°í ÄÚµùÇϴ°ÅÁÒ.
±×¸¸Å ±â°è¾î³ª ¾î¼Àºí¸®¾î¸¸ »ç¿ëÇؼ ±¸ÃàÇÒ ¼ö ÀÖ´Â »ç¶÷ÀÌ ÀÖÀ»Áö ¸ð¸£°Ú³×¿ä..
±â°è¾î³ª ¾î¼Àºí¸®¾î Àç´ë·Î ´Ù·ê¼ö ÀÖ´Â »ç¶÷ÀÌ »ó´çÈ÷ ±ÍÇÕ´Ï´Ù..
ÀÌÁ¦´Â ·Î¿ì·¹º§/Çϵå¿þ¾î ¼öÁØÀÇ °³¹ßµµ ¹«½ÄÇÏ°Ô ¾î¼Àºí¸®¸¸ °¡Áö°í ÇÏ´Â »ç¶÷Àº ¾ø¾î¿ä. Àúµµ ±â°è¾î ¸¸Áö´Â °ÍÀº ÁÁ¾ÆÇÏÁö¸¸ Çö½Ç¿¡¼ ¾²´Â ÀÏÀº ¸®¹ö½º ¿£Áö´Ï¾î¸µ ¾Æ´Ï¸é ÄÄÆÄÀÏ·¯°¡ Àß ¸ø È°¿ëÇÏ´Â ÀϺΠSIMD¸í·É¾î ´Ù·ï¾ß ÇÒ ¶§³ª ÇÕ´Ï´Ù.
°¨»çÇÕ´Ï´Ù
ºñ »ó½ÄÀûÀÎ °ÍÀÌ ±Ã±ÝÇÏ¿´´ø °ÍÀÔ´Ï´Ù.
±×·¡¼ µè´Â »ç¶÷µéÀÌ ...»ý°¢Çϱ⿡..
ºñ »ó½ÄÀûÀÌ°í.. ºñ ÇÕ¸®ÀûÀÌ°í... ½ß¶× ¸ÂÀº ±×·± ´À³¦ÀÔ´Ï´Ù.
¸ðµç ÀåºñÀÇ ±âÀú¿¡ ½ÃÀÛÀº ¾î¼Àºí¸® ÀÎ °ÍÀÌÁÒ..
±×°ÍÀ» ÀϹÝÀεéÀÌ È°¿ëÇÏ¿© °³¹ßÀÌ ½±°Ô ÆíÇϵµ·Ï ÇÏ´Â °ÍÀÌ
ÇÁ·Î±×·¥À× ·©±ÍÁö ÀÎ °Í ÀÌÁÒ.
¼¹ö¶ó°í °ÅâÇÑ°É »ý°¢ÇϽôÂÁö ¸ð¸£°ÙÁö¸¸
httpd µ¥¸ó¸¸ µ¹·Áµµ ¼¹ö ÀÔ´Ï´Ù
ÀÓº£µðµåÂÊ °¡¸é ¾øÁö´Â ¾Ê½À´Ï´Ù
³Ê¹« ºñ½Î°í.. ºñ È¿À²ÀÌ°í. ÇÑ°ÍÀÌÁÒ..
±×·±ÁþÇغÃÀÚ ¼º´É Çâ»óÀº Ä¿³ç ÀÎÅÍÇÁ¸®ÅÍ ¾²´Â ¾ð¾îº¸´Ù ºü¸£¸é ´ÙÇàÀÔ´Ï´Ù (½ÃÇ»ÀÇ ¸í·É¾î¼ÂÀ̶û ·¹Áö½ºÅÍÀÇ ¼ýÀÚµî ¸ðµç ½ºÆÑÀ» ´Ù ÆľÇÇÏ°í, ¸ðµç °¡¼Ó ¸í·ÉÀÇ ÀÛµ¿ ±¸Á¶µî ´Ù ºü»èÇÏ°Ô ÀÌÇØÇÑ »óÅ¿¡¼ ¾ÆÁÖ Á¤È®ÇÏ°Ô ÃÖÀûÈµÈ ±¸Á¶·Î ¼³°èÈÄ ±×°É ¾öû³ ³ë°¡´Ù·Î ´Ù ÀÏÀÏÈ÷ ÀÔ·ÂÇØ¾ß Á¦´ë·Î ¼º´ÉÀÌ ³ª¿É´Ï´Ù)
°Å±â´Ù ¹ö±× ¾È °É¸®±æ ±âµµÇϽðųª, ¾Ë¾Æ¼ µð¹ö±×µµ ´Ù ÇÏ¼Å¾ß ÇÕ´Ï´Ù (±â°è¾î¿ë Á¦´ë·ÎµÈ µð¹ö°Å´Â ¾ø´Ù½ÃÇÇÇÏ°í, ¾î¼À¸¸ µÇ¾îµµ ã±â Èûµì´Ï´Ù)
±×¸®°í ÇÏ±Þ ¾ð¾î·Î ¸¸µé¼ö·Ï ƯÁ¤ ¸Ó½Å ÀÇÁ¸ÀûÀ¸·Î µÇ´Ï ½Å°æ½á¾ßÇÒ°Ô ´Ã¾î³³´Ï´Ù
¿¾³¯ºÎÅÍ ±â°è¾î·Î Â¥´Â °æ¿ì´Â °ÅÀÇ ¾ø¾ú°í, 2~30³âÀüÁ¶Â÷ ¾î¼ÀÀ¸·Î ºÎºÐÀûÀ¸·Î ÄÚµùÇÏ´Â ¼öÁØÀ̾ú½À´Ï´Ù
8ºñÆ® ÄÄÇ»ÅͶó¸é ¾î´À Á¤µµ ¾î¼Àºí¸®·Î ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇÏÁö¸¸
16ºñÆ® ÀÌ»óµÇ¸é º¹ÀâÇØÁö±â¿¡ »ç¶÷ ¸Ó¸®·Î ÇÒ ¼ö ÀÖ´Â ÇѰ踦 ³Ñ¾î¼±´Ù°í µé¾ú½À´Ï´Ù..
ÇöÀç´Â 32ºñÆ®µµ ³Ñ¾î¼ 64ºñÆ® ÄÄÇ»ÅÍ ½Ã´ëÀÔ´Ï´Ù..
2^8 = 256°³
2^16 = ¾à 6¸¸5õ°³
2^32 = ¾à 43¾ï°³
2^64 = ¾à 1844°æ °³
õÀç±Þ µÎµÇ¸¦ °¡Á³´Ù¸é 6¸¸5õ°³ Á¶ÇÕ±îÁö´Â Æò»ýÀ» ¹ÙÄ¡¸é ¾î¼¸é °¡´ÉÇÒÁöµµ?
±×·¯³ª 32ºñÆ® ºÎÅÍ´Â ¾î¸²µµ ¾ø½À´Ï´Ù.
±¸±Û¿¡ "x86 assembly web server"·Î ã¾Æº¸´Ï ¸î°³ ³ª¿À³×¿ä. ±×Áß Çϳª´Â ¿©±â.
https://github.com/barrettotte/HTTP-ASM64
"The most basic HTTP Server written in 64-bit Assembly with NASM Assembler."¶ó°í ÇÕ´Ï´Ù.
µü ÇÑÆäÀÌÁö¸¸ º¸¿©ÁÖ´Â À¥¼¹ö.
±Ùµ¥ ¿äÁò ¿î¿µÃ¼Á¦¿¡¼´Â ¾îÂ÷ÇÇ ³×Æ®¿÷ ¿¬°áÀ» Ç϶ó¸é ¿î¿µÃ¼Á¦¿¡¼ Á¦°øÇÏ´Â ½Ã½ºÅÛÄÝÀ» È£ÃâÇÒ ¼ö ¹Û¿¡ ¾ø´Âµ¥¿ä,
±×·³ C·Î ÇÁ·Î±×·¥Â¥³ª assembly·Î ÇÁ·Î±×·¥Â¥³ª °Å±â¼ °Å±âÀÔ´Ï´Ù.
C´Â "°íµµÈµÈ ¾î¼Àºí¸®¾ð¾î"¶ó°í Ç¥ÇöÇصµ µÉ°Í °°½À´Ï´Ù.
¾ÆÁ÷±îÁö ¸ÞÀÎÇÁ·¹ÀÓ¿¡ ÄÚº¼ÀÌ »ì¾ÆÀÖ´Â °É º»ÀûÀº ÀÖ½À´Ï´Ù.
Áö±ÝÀº ¾Æ¸¶µµ Â÷¼¼´ë·Î ¹Ù²î¸é¼ À¥ÀÎÅÍÆäÀ̽º·Î ¹Ù²îÁö ¾Ê¾ÒÀ»±î ½Í±ä ÇÕ´Ï´Ù¸¸,...
¸¸µç´Ù°í ³¡ÀÌ ¾Æ´Ï°í ¸¸µç °ÍÀ» »ç¿ëÇÏ´Ù º¸¸é ½Ã°£ ³»¿¡ ¼öÁ¤ÇØ¾ß ÇÏ´Â ºÎºÐµé °è¼Ó ³ª¿ÃÅÙµ¥ ¾î¼Àºí¸®·Î ¸¸µé¸é ±×°Å Çϱ⵵ ¹ö°Ì½À´Ï´Ù.
°æÇè»ó °°Àº ±â´ÉÀ» ÇÏ´Â ÇÁ·Î±×·¥À» ¾î¼Àºí¸®¿Í C·Î © °æ¿ì ¾î¼Àºí¸® ÄÚµå ¶óÀμö´Â CÀÇ 10¹è Á¤µµ µË´Ï´Ù.
javaµµ ½Ã½ºÅÛ ÀÚ¿ø ³¶ºñÇÏ´Â ºñÈ¿À²ÀûÀÎ ¾ð¾î¶ó°í ¿åÀ» ¸Ô°í ÀÖÁö¸¸ »¡¸® ¸¸µé ¼ö ÀÖÀ¸´Ï ³Î¸® ¾²À̴°̴ϴÙ.
Áö±ÝÀº ½Ã½ºÅÛ ¼º´Éµµ ÁÁ¾ÆÁ®¼ ±Ô¸ð°¡ ¾ÆÁÖ Ä¿ÁöÁö ¾Ê´Â ÀÌ»ó ü°¨¼º´ÉÀº Â÷À̵µ ¾È³³´Ï´Ù.
Áú¹® ÇϽŠ³»¿ë º¸¸é
ÄÄÆÄÀÏ·¯ : ÀÎÅÍÇÁ¸®Å͵µ ±¸ºÐ ¸øÇϽðí,
Àú±Þ¾ð¾î : °í±Þ¾ð¾îµµ ±¸ºÐ ¸øÇϽðí,
¼¹ö¶õ ¿ë¾îµµ ¿©·ÅDzÀÌ ÀÌÇØÇÏ°í Àִ°ŷΠº¸ÀÔ´Ï´Ù.
Ä«´õ¶ó¼º Á¤º¸¿¡ ÀÇÁ¸Çؼ »ó»ó·ÂÀ» Å°¿ì´Â °Íµµ ÁÁÁö¸¸,
¼¹ö¿¡ °ü½É ÀÖÀ¸½Ã¸é, ÁøÁöÇÏ°Ô ¿î¿µÃ¼Á¦·Ð Ã¥ÀÌ¶óµµ º¸½Ã¸é¼ ±âÃʸ¦ ´ÙÁö½Ã¸é ÁÁÀ» °Í °°½À´Ï´Ù.
ÄÄÇ»Åͳª °è»ê±â ´ë½Å ÁÖÆÇÀ¸·Î ȸ°è ÀåºÎ¸¦ Á¤¸®ÇÏ´Â °Íµµ °¡´ÉÇÏ³Ä°í ¹¯´Â °Í°ú ¾î¶»°Ô ´Ù¸¥Áö¿ä ?
¾î¼Àºí¸®¾î·Î ¼ÒÄÏÅë½Å °¡´ÉÇÕ´Ï´Ù. ±¸Çö »ç·Êµµ ÀÖ½À´Ï´Ù.
´Ù¸¸ os¾øÀÌ »ýÂ¥·Î boot·¹º§ºÎÅÍ ¾î¼Àºí¸®¾î·Î °¡´ÉÇϳÄ?
°¡´ÉÀÌ¾ß ÇÏ°ÚÁö¸¸ ºñ Çö½ÇÀûÀÌ°ÚÁÒ. ³×Æ®¿öÅ© Ä«µå Çϳª¸¸ µÎ°í º¸´õ¶óµµ ¿¹Àü¿¡´Â Çϵå¿þ¾î Á¦¾î°¡ ´ëºÎºÐÀ̾ú´Ù¸é, Áö±ÝÀº ¼ÒÇÁÆ®¿þ¾î Á¦¾î°¡ ´ëºÎºÐÀÔ´Ï´Ù.
µå¶óÀ̹ö ¿ë·®ÀÌ Ä¿Áö´Â ÀÌÀ¯µµ ¿©±â ÀÖ±¸¿ä.
( µµ½ºÀÇ int 21h¿Í °°Àº ¿ªÇÒÀÌ°í, http://www.linuxassembly.org ¿¡¼ ¸ðµç functionÀ» ¼Ò°³ÇÏ°í ÀÖ½À´Ï´Ù.)
±Ùµ¥ ½áº¸¸é È£ÃâÇÏ´Â ¸ð¾çÀÌ POSIX¿Í´Â µ¿¶³¾îÁø ´À³¦ÀÌ µì´Ï´Ù. glibc °°Àº C ¶óÀ̺귯¸®¿¡¼ POSIX ºñ½ÁÇÏ°Ô Æ÷ÀåÇØÁÖ°í ÀÖ¾î¼ C·Î¸¸ Çß´Ù¸é ¾Èº¸ÀÌ´Â ºÎºÐ.
¸»¾¸ÇϽŠboot ·¹º§¿¡¼ »ýÂ¥·Î ÇÒ²¨¸é ¾î¼Àºí¸®´Â ÇʼöÀÔ´Ï´Ù.
cpu Ư¼ö ·¹Áö½ºÅ͸¦ ´Ù·ç´Â Ãʱâ ȯ°æ ¼Â¾÷, ¿ÜºÎÀåÄ¡ in/out, interrupt ó¸® ¹× °ü·Ã ¼Â¾÷µéÀº ÄÄÆÄÀÏ·¯ Ãâ·Â ¹ÙÀ̳ʸ® Æ÷¸Ë°ú ¸ÂÁö ¾Ê´Â´Ù°Å³ª ºÎÆÃÈÄ Çѵιø Á¤µµ¸¸ ¾²´Â Ư¼ö¸í·É¾îµµ »ç¿ëÇؼ C/C++·Îµµ ºÒ°¡´ÉÇÑ °÷µéÀÌ ¸¹½À´Ï´Ù. ±Ùµ¥ ·ÎÁ÷Àº ¸¸µé ½Ã°£µµ ¾ø°í ±×°Å ¸¸È¸ÇÒ·Á°í »ç¶÷ ¸¹ÀÌ ¾²¸é µ·ÀÌ °¨´ç¸øÇÒ Á¤µµ·Î ¸¹ÀÌ µé¾î°¡´Ï ¾î¼Àºí¸® ¾È¾¹´Ï´Ù. ¾´´Ù¸é »çÀÌÁî°¡ Áß¿äÇÑ °÷ Á¤µµ. ¿¹¸¦ µéÀÚ¸é x86 ±âÁØ ºÎÆ®·Î´õ 1Â÷ ·Îµå ºÎºÐÀº µð½ºÅ© 1sector Å©±â¿¡ ´Ù ¿ì°Ü³Ö¾î¾ß ÇÕ´Ï´Ù.
c ¾ð¾î¿¡¼¿ä.