JavaOS 񃬣
JavaOS Technology
¡¡
ÃÖ¿µ¹è (Young Bae Choi) ³×Æ®¿öÅ©¼ÒÇÁÆ®¿þ¾î¿¬±¸½Ç ¼±ÀÓ¿¬±¸¿ø

¡¡

º» ³í¹®¿¡¼­´Â JavaSoft»ç¿¡¼­ ¹ßÇ¥ 91996. 5. 29.)ÇÑ ¼ÒÇüÀÇ È¿À²ÀûÀÎ ¿î¿µ ȯ°æ (operating environment)À̶ó°í ÇÒ ¼ö ÀÖ´Â JavaOS¿¡ ´ëÇÏ¿© ±â¼úÇϰíÀÚ ÇÑ´Ù. JavaOS¿¡´Â ³×Æ®¿öÅ© ÄÄÇ»ÅͷκÎÅÍ ¹«¼± È£Ãâ±â¿¡ À̸£±â±îÁö ³»ºÎ¿¡ ÀåÂøµÈ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­ »ó¿¡¼­ Á÷Á¢ Java ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÈ °íµµ·Î ÁýÀûµÈ ¿î¿µÃ¼Á¦ÀÌ´Ù. µû¶ó¼­ JavaOS´Â È£½ºÆ®ÀÇ ¿î¿µÃ¼Á¦ ¾øÀÌ Çϵå¿þ¾î Ç÷§Æû »ó¿¡¼­ Á÷Á¢ Java ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼öÇàÇÒ ¼ö ÀÖµµ·Ï Ưº°È÷ Á¶À²µÈ runtimeÀ» Á¦°øÇÑ´Ù. º» °í¿¡¼­´Â ¼­·Ð¿¡ Java¶õ ¹«¾ùÀΰ¡¿¡ ´ëÇØ ¸ÕÀú ¼³¸íÇϰí ÀÌ¾î ³»ºÎ ±¸Á¶ ¹× Æ÷ÆÃ ¹æ¹ý, ±×¸®°í Ư¼º ¹× ¹ßÀü Àü¸Á¿¡ ´ëÇÏ¿© ±â¼úÇÑ´Ù.

¡¡

¡¡

I. ¼­·Ð

¡¡

JavaOS™´Â JavaSoft¿¡ ÀÇÇØ °³¹ßµÈ ¼ÒÇüÀÇ È¿À²ÀûÀÎ ¿î¿µ ȯ°æ (operating environment)À̶ó°í ÇÒ ¼ö ÀÖÀ¸¸ç È£½ºÆ® ¿î¿µÃ¼Á¦ ¾øÀ̵µ Çϵå¿þ¾î Ç÷§Æû À§¿¡¼­ Java¢â ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» Á÷Á¢ ¼öÇàÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. Java Ç÷§ÆûÀº À̱âÁ¾ ºÐ»ê ³×Æ®¿öÅ© ȯ°æÀÇ ¿©·¯ Ç÷§Æû¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ´Â °í¼º´ÉÀÇ ¾ÈÁ¤¼º ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» °³¹ßÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. Áï, JavaOSÀÇ ¸ñÀûÀº À̱âÁ¾ÀÇ ºÐ»ê ³×Æ®¿öÅ© ȯ°æ¿¡¼­ JavaÇ÷§ÆûÀÌ °£´ÜÇϰí, Á¤º¸Ã³¸® ´É·ÂÀ» °¡Áø µ¿ÀûÀÎ ³×Æ®¿öÅ© Àåºñµé·Î ÀÛµ¿ÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇØ ÁÖ´Â µ¥ ÀÖ´Ù. ¿©±â¼­ Á¤º¸Ã³¸® ´É·ÂÀ» °¡Áø ³×Æ®¿öÅ© Àåºñ¶ó°í ÇÏ´Â °ÍÀº º»·¡ ÀåºñµéÀÌ ³×Æ®¿öÅ©·Î ¿¬°áµÇ¾î ÀÖ´Ù ÇÏ´õ¶óµµ ÇÁ·Î±×·¥À» ·ÎÄ®¿¡¼­ ¼öÇàÇÒ ¼ö ÀÖÀ½À» ¶æÇϸç, µ¿ÀûÀ̶ó´Â ¸»Àº ·ÎÄà ½ºÅ丮Áö ³»¿¡ Æ÷ÇÔµÈ ÀÏ·ÃÀÇ Á¤ÀûÀÎ ÇÁ·Î±×·¥¸¸ Á¦ÇÑÇÏÁö ¾Ê°í ³×Æ®¿öÅ©¸¦ ÅëÇØ ÀÚµ¿ÀûÀ¸·Î »õ·Î¿î ÇÁ·Î±×·¥À» ·ÎµåÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖÀ½À» ¶æÇÑ´Ù. ÀÌ·¯ÇÑ ³×Æ®¿öÅ© ÀåºñµéÀº ¶ÇÇÑ ¼³Ä¡, °ü¸®, ¹× »ç¿ëÀÌ ½¬¿ö¾ß ÇÑ´Ù.

°£´ÜÇϰí, Á¤º¸Ã³¸® ´É·ÂÀÌ ÀÖÀ¸¸ç, µ¿ÀûÀÎ ³×Æ®¿öÅ© ÀåºñµéÀ» ¸¸µé ¼ö ÀÖ´Â Java Ç÷§ÆûÀÇ ÀåÁ¡ ¶§¹®¿¡, Á¦ÇÑµÈ Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î ÀÚ¿øµéÀ» °¡Áø ÀåºñµéÀ» À§ÇÏ¿© Java Ç÷§ÆûÀ» »ý°¢ÇÏ°Ô µÇ¾úÀ¸¸ç, ÀÌ·¯ÇÑ Java Ç÷§ÆûÀ» Áö¿øÇϱ⿡ ÃæºÐÇÑ ¿î¿µÃ¼Á¦¸¦ Á¦°øÇϱâ À§Çؼ­ JavaOS°¡ °³¹ßµÇ¾ú´Ù. Çϵå¿þ¾î ÀÚ¿øÀ» Á¦ÇÑÇÏ´Â ÀÌÀ¯´Â Çϵå¿þ¾î ¿ä±¸»çÇ×ÀÌ ÀûÀ¸¸é ÀûÀ» ¼ö·Ï ´õ¿í ¸¹Àº ÇüÅÂÀÇ Àåºñ¸¦ Á¦ÀÛ, ÆÇ¸ÅÇÒ ¼ö Àֱ⠶§¹®À̸ç, Çϵå¿þ¾î ¿ä±¸»çÇ×À» ÁÙÀÌ´Â ÃÖ»óÀÇ ¹æ¹ý ÁßÀÇ Çϳª´Â È£½ºÆ® ¿î¿µÃ¼Á¦¿¡ ÀÇÇØ ¾ß±âµÇ´Â ¿À¹öÇìµå¸¦ ¾ø¾Ö´Â ¹æ¹ýÀÌ´Ù.

º» °í¿¡¼­´Â JavaOS ¹öÀü 1.0À» Áß½ÉÀ¸·Î IIÀå¿¡¼­ JavaOS¶õ ¹«¾ùÀΰ¡¿¡ ´ëÇØ ¼³¸íÇϰí, JavaOSÀÇ ¼º´É ¹× ÀåÁ¡, ¸ñÇ¥ ½Ã½ºÅÛ µîÀ» ±â¼úÇϸç, IIIÀå¿¡¼­´Â JavaOSÀÇ ³»ºÎ ±¸Á¶ ¹× Æ÷ÆÃ ¹æ¹ý, IVÀå¿¡¼­´Â JavaOSÀÇ Æ¯¼º ¹× ¾ÕÀ¸·Î Âø¼ö ¿¹Á¤ÀÎ JavaOS Luna project¸¦ Áß½ÉÀ¸·Î JavaOSÀÇ ¹Ì·¡¸¦ ¾Ë¾Æº¸°í, ¸¶Áö¸·À¸·Î VÀå¿¡¼­´Â °á·ÐÀ» ±â¼úÇÑ´Ù.

¡¡

¡¡

  1. JavaOS¶õ ¹«¾ùÀΰ¡?
¡¡

JavaOS´Â ³×Æ®¿öÅ© ÄÄÇ»ÅÍ (Network Computer: NC)¸¦ À§ÇÑ ÇϳªÀÇ ¿ÏÀüÇÑ È¯°æÀ» Á¦°øÇϱâ À§ÇÏ¿© ¼³°èµÈ Ư¼ºµé°ú ±¸Á¶¸¦ °®´Â Java Áß½ÉÀÇ ¿î¿µÃ¼Á¦ÀÌ´Ù. ³×Æ®¿öÅ© ÄÄÇ»ÅÍ´Â ´Ü¼øÇÑ Å¬¶óÀÌ¾ðÆ® ½Ã½ºÅÛ °ü¸® ±â´ÉÀ» °®´Â Àú°¡ÀÇ ÄÄÇ»ÆÃ Ç÷§ÆûÀ» Á¦°øÇÑ´Ù. ´Ù¸¥ Java ȯ°æµéÀº ±âÁ¸ ¿î¿µÃ¼Á¦ »ó¿¡¼­ ¼öÇàµÇ´Â ¹Ý¸é¿¡ JavaOS´Â ³×Æ®¿öÅ© ÄÄÇ»ÅͰ¡ ÀÚ½ÅÀÇ ÀÚ¿øÀ» °ü¸®Çϰí Java ȯ°æÀ» Áö¿øÇϱâ À§ÇØ ÇÊ¿äÇÑ ¿î¿µÃ¼Á¦ ¼­ºñ½ºµé¸¸À» Á¦°øÇÑ´Ù. JavaOS Ç÷§ÆûÀº 100% Pure Java ¾ÖÇø´µéÀ» ¼öÇàÇϱâ À§ÇÏ¿© ÃÖÀûÈ­µÇ¾úÀ¸¸ç, À¥ ºê¶ó¿ìÀú¿¡¼­ ¼öÇàµÇ´Â ¶È °°Àº Java ¾ÖÇø´µéÀº ³×Æ®¿öÅ© ÄÄÇ»ÅÍÀÇ JavaOS »ó¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ´Ù [6]

¡¡

JavaOS´Â ¾Æ·¡ÀÇ ±×¸² 1°ú °°Àº Ŭ¶óÀ̾ðÆ®-¼­¹ö ÄÄÇ»ÆÃ ¸ðµ¨À» Áö¿øÇÑ´Ù.

¡¡

¡¡
±×¸² 1 JavaOS Ŭ¶óÀ̾ðÆ®-¼­¹ö ÄÄÇ»ÆÃ ¸ðµ¨

¡¡

JavaOS´Â Java runtimeÀÇ ¿ä±¸»çÇ×µé°ú ÇϺÎÀÇ NC Çϵå¿þ¾îÀÇ ±â´ÉÀ» Àß Á¶È­½ÃÄÑÁÖ¸ç, ÀÌ·¯ÇÑ ÀÛ¾÷À» ´ë±Ô¸ð ¿î¿µÃ¼Á¦¸¦ ÀÌ¿ëÇÏÁö ¾Ê°íµµ ¼öÇàÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ±âÁ¸ÀÇ ¿î¿µÃ¼Á¦µéÀº ½Ã½ºÅÛ °³¹ßÀ» º¹ÀâÇÏ°Ô ÇÏ´Â ºÒÇÊ¿äÇÑ Æ¯¼º°ú ¼­ºñ½ºµéÀ» °¡Áö°í ÀÖ¾î Á¦Ç° °¡°ÝÀÌ ºñ½ÕÁö¸¸, JavaOS´Â NC°¡ ÇÊ¿ä·Î ÇÏ´Â ¿ä±¸ »çÇ×µéÀ» ÃæºÐÈ÷ ¸¸Á·ÇÒ ¼ö ÀÖµµ·Ï Á¦À۵Ǿú´Ù. JavaOSÀÇ °³·«Àû ±¸Á¶´Â ¾Æ·¡ÀÇ ±×¸² 2¿Í °°´Ù [6].

±×¸² 2 JavaOSÀÇ ±¸Á¶

¡¡

JavaOS°¡ ¸ñÇ¥·Î ÇÏ´Â °Íµé Áß ´ëºÎºÐÀº NCÀÇ ¿ä±¸ »çÇ×µé°ú ¿£ÅÍÇÁ¶óÀÌÁî ÄÄÇ»ÆÃÀÇ °æÇâÀ» ±â¹ÝÀ¸·Î »ï°í ÀÖ´Ù. JavaOS°¡ ¸ñÇ¥·Î ÇÏ´Â »çÇ×µéÀ» ¿­°ÅÇÏ¸é ´ÙÀ½°ú °°´Ù [6].

- Java Áß½É

- JDK Áö¿ø

- 100% Pure Java

- ÃÖÀûÈ­µÈ Virtual Machine

- Ŭ¶óÀ̾ðÆ®-¼­¹ö ¸ðµ¨

- I18N/L10N Áö¿ø

- Àμâ Áö¿ø

- °³¼±µÈ ³×Æ®¿öÅ· ±â´É Áö¿ø

- Æí¸®ÇÑ Å¬¶óÀÌ¾ðÆ® ½Ã½ºÅÛ °ü¸®

- ´ÜÀÏ »ç¿ëÀÚ

- Àú·ÅÇÑ ºñ¿ë

- À̽ļº

- È®À强

- À¶Å뼺 ÀÖ´Â ºÎÆÃ ¹æ½Ä Áö¿ø

¡¡

ÀÌ·¯ÇÑ ¸ñÀûµéÀ» ´Þ¼ºÇϱâ À§ÇÏ¿© Á¦ÀÛµÈ JavaOS´Â ÀûÀçµÇ´Â ½Ã½ºÅÛ È¯°æ¿¡ µû¶ó Å©°Ô ±âÁ¸ È£½ºÆ® ¿î¿µÃ¼Á¦¿Í ÇÔ²² »ç¿ëµÇ´Â JavaOS¿Í È£½ºÆ® ¿î¿µÃ¼Á¦ ¾øÀÌ JavaOS¸¸À» »ç¿ëÇÏ´Â µÎ °¡Áö·Î Å©°Ô ³ª´­ ¼ö ÀÖ´Ù [1].

¡¡

1. È£½ºÆ® OS¿Í ÇÔ²² »ç¿ëµÇ´Â JavaOS

Java Ç÷§ÆûÀº Java Virtual Machine (JVM)°ú ±â¹Ý Ŭ·¡½º (Foundation Class)µéÀ» À¥ ºê¶ó¿ìÀú¿Í °°Àº ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ³»ÀåÇϰųª, ¿î¿µÃ¼Á¦ ¾È¿¡ ³»ÀåÇÔÀ¸·Î½á ¿©·¯ °¡Áö ´Ù¸¥ ȯ°æ¿¡ Á¦°øµÉ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ µÎ °¡Áö ¹æ¹ý ¸ðµÎ È£½ºÆ® ¿î¿µÃ¼Á¦ÀÇ Áö¿øÀ» ÇÊ¿ä·Î ÇÑ´Ù.

±×¸² 3Àº Java ÇÁ·Î±×·¥µéÀ» ±âÁ¸ÀÇ ¿î¿µÃ¼Á¦ »ó¿¡¼­ ¼öÇàÇÒ ¶§ »ç¿ëµÇ´Â ¼ÒÇÁÆ®¿þ¾î ±¸Á¶¸¦ ³ªÅ¸³½´Ù.

±×¸² 3 È£½ºÆ® ¿î¿µÃ¼Á¦ À§ÀÇ JavaOS
¡¡

±×¸² 3¿¡¼­ Java API À§ÀÇ ¸ðµç ÇÁ·Î±×·¥µéÀº Ç÷§Æû µ¶¸³ÀûÀ̸ç, ±â¹ÝÀÌ µÇ´Â ¿î¿µÃ¼Á¦³ª Çϵå¿þ¾î¿¡ °ü°è ¾øÀÌ Java API´Â ¸ðµç Ç÷§Æûµé¿¡ ´ëÇØ¼­ µ¿ÀÏÇÏ°Ô ÀÛµ¿ÇÑ´Ù. API´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î Â¥¿©Áø Ŭ·¡½ºµé·Î ±¸¼ºµÈ ¿©·¯ °³ÀÇ ÆÐŰÁöµé·Î ±¸ÇöµÇ¸ç, Ŭ·¡½ºµéÀÇ Á¾·ù¿¡´Â language ¹× utility Ŭ·¡½º, Abstract Window Toolkit, network ¹× IO Ŭ·¡½º µîÀÌ ÀÖ´Ù. ÀÎÅÍÇÁ¸®ÅÍ (interpreter)¿Í °¡ºñÁö ÄÝ·ºÅÍ (garbage collector)¸¦ Æ÷ÇÔÇϰí ÀÖ´Â Java run-timeÀº ´ë°³ Ç÷§Æû¿¡ ´ëÇØ µ¶¸³ÀûÀÎ C ÄÚµå·Î ´ëºÎºÐÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù. ±×·¯³ª, runtimeÀ» »õ·Î¿î Ç÷§ÆûÀ¸·Î Æ÷ÆÃÇϱâ À§Çؼ­´Â Ç÷§Æû Á¾¼ÓÀûÀÎ Äڵ尡 ÀϺΠÆ÷ÆÃµÇ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ, Java Ŭ·¡½ºµéÀ» ¿î¿µÃ¼Á¦ Ư¡ÀûÀÎ ¶óÀ̺귯¸®³ª ½Ã½ºÅÛ Äݵé·Î ¸ÅÇÎÇÏ´Â ¿©·¯ °¡ÁöÀÇ ¶óÀ̺귯¸®°¡ ÀÖ´Ù.

Java Ç÷§Æû¿¡ Á¦°øµÇ´Â ÁÖ¿äÇÑ Æ¯Â¡µéÀº Á÷°£Á¢À¸·Î È£½ºÆ® ¿î¿µÃ¼Á¦¿¡ ¿ä±¸»çÇ×µéÀ» ºÎ°úÇÏ°Ô µÈ´Ù. ±×¸®°í, ´ëºÎºÐÀÇ language ³ª utility Ŭ·¡½ºµéÀº ¿î¿µÃ¼Á¦ ¼­ºñ½ºµéÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â °¡Á¤À» Çϰí ÀÖ´Ù. Java runtimeÀÇ ´ÙÁß¾²·¹µå ±â´É (multi-threading)À» Áö¿øÇϱâ À§Çؼ­´Â È£½ºÆ® ½Ã½ºÅÛÀº Àû¾îµµ context-switchingÀ» À§ÇØ ¾î¶°ÇÑ ÇüÅÂ·Î¶óµµ Áö¿øÀ» ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¸¸¾à, ½Ã½ºÅÛÀÌ ¾²·¹µåµé¿¡ ´ëÇÑ Áö¿øÀ» Àß ÇÒ ¼ö ÀÖ´Ù¸é ´ÙÁß¾²·¹µå ±â´ÉÀ» Áö¿øÇÏ°Ô µÈ´Ù. Abstract Window Toolkit Àº abstract graphical user interface¸¦ Á¦°øÇÏÁö¸¸, windowing ¹× graphics primitive ±â´É µîÀ» ±¸ÇöÇϱâ À§Çؼ­´Â ƯÁ¤ÇÑ È£½ºÆ® ¿î¿µÃ¼Á¦ÀÇ ±â´ÉÀ» ÀÌ¿ëÇØ¾ß ÇÑ´Ù. Networking Ŭ·¡½º´Â ÀÎÅͳÝÀ̳ª ÀÎÆ®¶ó³Ý¿¡¼­ ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ Æí¸®ÇÑ abstraction ±â´ÉÀ» Á¦°øÇÏÁö¸¸ ÀÌ ¶ÇÇÑ Ç¥ÁØÈ­µÈ ³×Æ®¿öÅ© ÇÁ·ÎÅäÄݵéÀ» ±¸ÇöÇϱâ À§Çؼ­´Â È£½ºÆ® ½Ã½ºÅÛÀÇ ±â´ÉÀ» ±Ã±ØÀûÀ¸·Î ÀÌ¿ëÇØ¾ß ÇÑ´Ù. ÆÄÀÏ¿¡ °ü·ÃµÈ IO Ŭ·¡½ºµéÀº ±â¹ÝÀÌ µÇ´Â ÇϳªÀÇ ÆÄÀÏ ½Ã½ºÅÛÀÌ ÀÖ´Ù°í °¡Á¤Çϰí, °£Á¢ÀûÀ¸·Î Java ¾ÖÇø´µéÀº ÄÄÇ»ÅͰ¡ Űº¸µå, ¸¶¿ì½º, ±×¸®°í µð½ºÇ÷¹ÀÌ µî°ú °°Àº ÀåºñµéÀ» À§ÇÑ µå¶óÀ̹öµéÀ» °¡Áö°í ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. Java runtime ¹× Ŭ·¡½ºµéÀ» ƯÁ¤ÇÑ ¿î¿µÃ¼Á¦ »ó¿¡¼­ ¼öÇà½Ã۱â À§Çؼ­´Â ´ÙÀ½°ú °°Àº ¿©·¯ °¡ÁöÀÇ Å½ºÅ©¸¦ ó¸®ÇØ¾ß ÇÑ´Ù:

¡¡

¡¡

2. È£½ºÆ® OS ¾øÀÌ »ç¿ëµÇ´ÂJavaOS

È£½ºÆ® ¿î¿µÃ¼Á¦ ¾øÀÌ Java Ç÷§ÆûÀ» Á¦°øÇϱâ À§Çؼ­´Â ¿ì¼± ´ÙÀ½ÀÇ Å½ºÅ©µéÀ» ¼öÇàÇÏ´Â °ÍÀÌ ÇÊ¿äÇϸç, ±×¸² 4´Â JavaOS ±¸Á¶ÀÇ »óÀ§ °üÁ¡À» ³ªÅ¸³½´Ù. (±×¸² 3 ÂüÁ¶)

¡¡

¡¡
±×¸² 4 È£½ºÆ® OS ¾øÀÌ »ç¿ëµÇ´Â JavaOS
¡¡

±×¸² 3¿¡¼­Ã³·³, Java API¸¦ ±âÁØÀ¸·Î ±× À§ÀÇ ¸ðµç Java ÇÁ·Î±×·¥°ú ¾ÖÇø´Àº Ç÷§Æû µ¶¸³ÀûÀÌ´Ù. ±â¹ÝÀÌ µÇ´Â ¿î¿µÃ¼Á¦³ª Çϵå¿þ¾î°¡ ¹«¾ùÀÌµç °£¿¡ API´Â ¸ðµç Ç÷§Æû¿¡¼­ µ¿ÀÏÇÏ°Ô ÀÛµ¿ÇÑ´Ù. JavaOS¿¡ ÀÇÇØ Áö¿øµÇ´Â API´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ Ŭ·¡½ºµé·Î ±¸¼ºµÈ ¶È °°Àº ÆÐŰÁöµé¿¡ ÀÇÇØ ±¸¼ºÇÒ ¼ö ÀÖ´Ù.

¡¡

°¡. Java Kernel

JavaOS ³»¿¡¼­ Java runtimeÀº »ç¿ëÀÚµéÀÇ ÀÀ¿ë ÇÁ·Î±×·¥µé »Ó¸¸ ¾Æ´Ï¶ó ½Ã½ºÅÛ ¼öÁØÀÇ À©µµ¿ìÁî, ±×·¡ÇȽº, ³×Æ®¿öÅ·, ±×¸®°í µå¶óÀ̹ö Äڵ带 ¼öÇàÇÑ´Ù. ÄÚµåÀÇ ÃÖÇÏÀ§ °èÃþÀº ¸¶ÀÌÅ©·Î³ª ³ª³ë Ä¿³ÎÀÇ Å½ºÅ©µéÀ» ¼öÇàÇÏÁö¸¸, JavaOSÀÇ ÀüüÀûÀÎ ±¸Á¶´Â Java ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» Áö¿øÇÑ´Ù´Â ¸ñÀû ¶§¹®¿¡ ÇϺΠ°èÃþÀº Java Ä¿³Î·Î ºÒ¸®°í ÀÖ´Ù. Java Ä¿³ÎÀº JVMÀÌ ÇÊ¿ä·Î ÇÏ´Â ÇÏÀ§ ¼öÁØÀÇ ±â´ÉµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.

ºÎÆ®½ºÆ®·¦ ÄÚµå´Â Java heap¿¡ Çϳª, ±×¸®°í ¿©·¯ °³ÀÇ IO ÀåÄ¡ ·¹Áö½ºÅÍ¿Í DMA¸¦ À§ÇØ ¿©·¯ °³ÀÇ ¸Þ¸ð¸® ¿µ¿ªÀ» ÇÒ´çÇÑ´Ù. ºÎÆ®½ºÆ®·¦ ÄÚµå´Â ¶ÇÇÑ ÀÚ½ÅÀÌ °¨ÁöÇÑ Çϵå¿þ¾î Àåºñ¸¦ ´ëÀÀµÇ´Â µð¹ÙÀ̽º µå¶óÀ̹ö·Î ¸ÅÇνÃŲ´Ù.

Æ®·¦ ¹× ÀÎÅÍ·´Æ® ó¸® ÄÚµå´Â Æ®·¦°ú ÀÎÅÍ·´Æ®¸¦ ¼­ºñ½ºÇϰí, ÀûÀýÇÑ Java µð¹ÙÀ̽º µå¶óÀ̹ö¿¡¼­ ÇÊ¿äÇÑ Á¤º¸¸¦ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù.

¾²·¹µå Áö¿ø ÄÚµå´Â JVMÀÌ ½Ã½ºÅÛ ³»¿¡¼­ ¼öÇàµÇ´Â ¿©·¯ °³ÀÇ ¾²·¹µå »çÀÌ¿¡¼­ context switchingÀ» ÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÑ´Ù. Java ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ Á¦°øÇÏ´Â º¸È£ ±â´É ¶§¹®¿¡ JavaOS¿Í ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥µéÀº ÇϳªÀÇ ÁÖ¼Ò °ø°£¿¡¼­ ¼öÇàµÈ´Ù. À̰ÍÀº JavaOS ³»¿¡¼­ context-switching Äڵ带 ´Ü¼øÈ­Çϰí ÃÖÀûÈ­ÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù.

JavaOS´Â Memory Management Unit (MMU)À» ÇÊ¿ä·Î ÇÏÁö ¾ÊÁö¸¸, ¿©·¯ °³ÀÇ ¼­·Î ¶³¾îÁø ¹°¸®Àû ±â¾ïÀåÄ¡ÀÇ ¹üÀ§µéÀ» ¿¬¼ÓÀûÀ¸·Î º¸ÀÌ°Ô Çϱâ À§ÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì ¸Þ¸ð¸® ÇÒ´çÀ» ´Ü¼øÈ­ ÇÑ´Ù. ¾î´À °æ¿ì¿¡³ª JavaOS´Â ºÎÆ® ŸÀÓ ÈÄ¿¡ MMU¸¦ ¼öÁ¤ÇÏÁö ¾Ê´Â´Ù.

JVMÀº º¸ÅëÀÇ ½Ã½ºÅÛµé º¸´Ù ¾ÈÀüÇÑ ÇÁ·Î±×·¡¹Ö ȯ°æÀ» Á¦°øÇϱ⠶§¹®¿¡ ´Ù¿î·ÎµåµÈ ¾ÖÇø´µéÀ» Æ÷ÇÔÇÑ Àüü ½Ã½ºÅÛÀÌ CPUÀÇ ¼öÆÛ¹ÙÀÌÀú ¸ðµå¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ´Ù. ¼öÆÛ¹ÙÀÌÀú ¸ðµå ¸¸À¸·Îµµ ¼öÇà °¡´ÉÇÏ´Ù´Â Á¡°ú MMU¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù´Â Á¡ ¸ðµÎ JavaOS¸¦ ÀϹÝÀûÀÎ ¿î¿µÃ¼Á¦µéº¸´Ù ´õ¿í ´Ü¼øÇϰí È¿À²ÀûÀ¸·Î ¸¸µå´Â ¿äÀεéÀ̶ó°í ¸»ÇÒ ¼ö ÀÖ´Ù.

¡¡

³ª. Java Virtual Machine (JVM)

JavaOS¿Í °°Àº Java ȣȯ¼ºÀÌ ÀÖ´Â ½Ã½ºÅÛ¿¡¼­ JVMÀº Java bytecode¸¦ ÇØ¼®ÇÏ´Â µ¥µµ ÀÌ¿ëµÇÁö¸¸, JavaOSÀÇ ³ª¸ÓÁö ´ëºÎºÐ¿¡ ´ëÇÑ ±â¹Ý±¸Á¶·Îµµ ÀÌ¿ëµÈ´Ù. JVMÀº ½Ã½ºÅÛ ³»¿¡ ÀÖ´Â ¸ðµç Ŭ·¡½ºµé ³»ÀÇ bytecodeµéÀ» ¼öÇàÇϸç, ¿¹¿ÜÀûÀÎ °æ¿ì°¡ ¹ß»ýÇßÀ» ¶§ÀÇ Ã³¸®, ÄÄÇ»ÅÍ ³» ´ëºÎºÐÀÇ RAM °ü¸®, ¿©·¯ ¾²·¹µåÀÇ µ¿½Ã ¼öÇàµî°ú °°Àº ÀϵéÀ» ó¸®ÇÑ´Ù.

¡¡

´Ù. Device Drivers

JavaOS ³»ÀÇ ¸ðµç µð¹ÙÀ̽º µå¶óÀ̹öµéÀº Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î Á¦À۵Ǿî ÀÖÀ¸¸ç, pure Java ÄÚµå·Î ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì¿¡¸¸ ¸ð¾Æ¼­ 2°³ÀÇ Áö¿ø Ŭ·¡½º¸¦ C·Î ±¸ÇöÇÏ¿´´Ù. MemoryObject Ŭ·¡½º´Â ½ºÅ丮ÁöÀÇ Æ¯Á¤ÇÑ ¹ÙÀÌÆ®³ª ¿öµåµéÀ» µå¶óÀ̹ö°¡ Á¢±ÙÇϰųª ¼öÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ´Ù¸¥ Ŭ·¡½º´Â ÀÎÅÍ·´Æ® 󸮸¦ ´ã´çÇϸç, ÀÌ·¯ÇÑ Å¬·¡½ºÀÇ ¸Þ½îµåµéÀº ¾î´À Java ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­³ª ÀÌ¿ë °¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù.

ÇöÀç, ´Ù¾çÇÑ µå¶óÀ̹öµéÀÌ °³¹ßµÇ¾î ÀÖÀ¸¸ç, third party ¾÷ü°¡ ¾î¶² µð¹ÙÀ̽º¿¡µµ ÀûÀç°¡ °¡´ÉÇÑ µå¶óÀ̹öµéÀ» ±¸ÃàÇÒ ¼ö ÀÖµµ·Ï Java Device Driver Interface¸¦ Á¤ÀÇÇϰí ÀÖ´Â °úÁ¤¿¡ ÀÖ´Ù.

¡¡

¶ó. Network Protocol Suite

JavaOS´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ ¿©·¯ °¡ÁöÀÇ ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ÀÌ·¯ÇÑ ÇÁ·ÎÅäÄݵéÀº TCP, UDP, IP ¹× ICMP Ç¥Áص鿡 ÀÇÇØ ÁöÁ¤µÈ ±âº»ÀûÀÎ Àü¼Û ¹× ¶ó¿ìÆÃ ¸ÞÄ¿´ÏÁòµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. JavaOS´Â È£½ºÆ® À̸§µéÀ» ã°í ·Î±ä °úÁ¤¿¡¼­ »ç¿ëµÇ´Â »ç¿ëÀÚ À̸§°ú ÆÐ½º¿öµåµéÀ» Á¦°øÇϱâ À§ÇÏ¿© DNS¿Í NIS¸¦ ÀÌ¿ëÇÑ´Ù.

JavaOS´Â ÀåÄ¡ÀÇ ³×Æ®¿öÅ© ÁÖ¼Ò¸¦ ¾Ë¾Æ³»±â À§ÇÏ¿© Reverse ARDP¿Í DHCP¸¦ Áö¿øÇÑ´Ù. JavaOS¸¦ ¼öÇàÇÏ´Â ½Ã½ºÅÛÀº Network File System ¼­¹öÀÇ Å¬¶óÀÌ¾ðÆ®·Î¼­ ÆÄÀϵéÀ» ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç, Simple Network Management Protocol (SNMP)¸¦ ÀÌ¿ëÇÏ¿© ³×Æ®¿öÅ© °ü¸®°¡ °¡´ÉÇÏ´Ù. ¶ÇÇÑ, ³×Æ®¿öÅ© ¼­¹ö·ÎºÎÅÍ ½Ã°£¿¡ °üÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö À־ ½Ã½ºÅÛÀÇ ¼³Ä¡ ¹× °ü¸®°¡ ½±´Ù.

¡¡

¸¶. Windows and Graphics

³×Æ®¿öÅ© ÇÁ·ÎÅäÄݵé À̿ܿ¡ JavaOS¿¡ ÀÇÇØ Á¦°øµÇ´Â ¿î¿µÃ¼Á¦ ±â´ÉÀÇ °¡Àå Å« ºÎºÐÀ» Â÷ÁöÇÏ´Â °ÍÀº À©µµ¿ì ¹× ±×·¡ÇȽº ½Ã½ºÅÛÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. JavaOS´Â ¹öư, ¸Þ´º, ±×¸®°í ½ºÅ©·Ñ¹Ù µî°ú °°Àº widgetµéÀ» Java ±â¹ÝÀ¸·Î ±¸ÇöÇϱâ À§ÇÏ¿© ¼ÒÀ§ ¡°Tiny AWT¡± ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÑ´Ù. Tiny AWT´Â AWT º¸´Ù À۾Ƽ­ ¡°Tiny¡±¶ó°í ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ±â¹ÝÀÌ µÇ´Â À©µµ¿ì ½Ã½ºÅÛ¿¡ ´ëÇÏ¿© AWT°¡ º¸´Ù ÀûÀº ¿ä±¸»çÇ×µéÀ» ºÎ°úÇÒ ¼ö ÀÖ°Ô ÇØÁشٴ ¶æÀ» ³ªÅ¸³»°í ÀÖ´Ù. À©µµ¿ì ½Ã½ºÅÛÀº Java·Î ±¸ÇöµÇ¾î ´Ü¼øÇϰí È¿À²ÀûÀÎ ¸Þ¸ð¸® »ç¿ëÀ» Áö¿øÇϸç, ¿À¹ö·¡ÇÎ À©µµ¿ì µð½ºÇ÷¹ÀÌÀÇ °ü¸® ±â´É »Ó ¸¸ ¾Æ´Ï¶ó, ¼± ±×¸®±â ¹× ä¿ì±â, È£, ´Ù°¢Çü, ºñÆ®¸Ê ÆùÆ®ÀÇ ·»´õ¸µÀ» ÇÒ ¼ö ÀÖ´Â ÆÐŰÁöµµ Áö¿øÇÑ´Ù. ±×·¡ÇȽº ÄÚµåÀÇ ÃÖÇÏÀ§ ±â´ÉµéÀº frame buffer memory locationµéÀ» Á÷Á¢ ¾×¼¼½ºÇÏ´Â °ÍÀÌ ÇÊ¿äÇϱ⠶§¹®¿¡ native methodµé·Î ±¸ÇöµÇ¾ú´Ù.

¡¡

¹Ù. JavaOS API

JavaOSÀÇ Application Programming Interface (API)´Â Java API¸¦ ´Ù¸¥ Ç÷§Æû¿¡ ±¸ÇöÇÒ ¶§ ÀÌ¿ëÇÏ´Â ¶È °°Àº Java Ŭ·¡½º ÆÐŰÁö¿¡ ÀÇÇØ ±¸ÇöµÈ´Ù. ±×·¯¹Ç·Î, JavaOS »ó¿¡¼­ ¼öÇàÇϵµ·Ï ÀÛ¼ºÇÑ ÀÀ¿ë ÇÁ·Î±×·¥µéÀº Java¿Í ȣȯ¼ºÀÌ ÀÖ´Â Ç÷§Æû »ó¿¡¼­ ¼öÇà °¡´ÉÇϸç, ¿ªÀ¸·Î Java¿Í ȣȯ¼ºÀÌ ÀÖ´Â Ç÷§Æû »ó¿¡¼­ ¼öÇàÇϵµ·Ï ÀÛ¼ºÇÑ ÀÀ¿ë ÇÁ·Î±×·¥µéÀº JavaOS »ó¿¡¼­ ¼öÇà °¡´ÉÇÏ´Ù.

¡¡

»ç. JavaOS Desktop Environment·Î¼­ÀÇ HotJava

HotJava´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÇ±â ¶§¹®¿¡ JavaOS »ó¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ´Ù. HotJava¿Í °áÇÕÇϸé JavaOS´Â ÇϳªÀÇ ¿ÏÀüÇÑ ¸ÖƼŽºÅ·, ±×·¢ÇÈ ¿î¿µ ȯ°æÀ¸·Î¼­ ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù. HotJava´Â ¿©·¯ °³ÀÇ À©µµ¿ì¸¦ Áö¿øÇÏ¸ç °¢ À©µµ¿ì´Â HTML ÆäÀÌÁöµéÀ» ºê¶ó¿ì¡ÇÒ ¼ö ÀÖ°í ¿©·¯ °³ÀÇ ¾ÖÇø´µéÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â µ¥½ºÅ©Å¾ ȯ°æÀÇ °ü¸®ÀÚ ±â´ÉÀ» °®°í ÀÖ´Ù. JavaOS´Â HotJava À̿ܿ¡µµ ´Ù¸¥ ¸ÞÀÎ ÇÁ·Î±×·¥µéÀ» ¼öÇàÇÒ ¼ö ÀÖÀ¸¸ç, HotJavaÀÇ À¯¿¬¼º°ú È®À强Àº JavaOS ÀÀ¿ë ÇÁ·Î±×·¥µé¿¡ ´ëÇÑ ÀÌ»óÀûÀÎ ÇÁ·¹ÀÓ¿÷À» Á¦°øÇÑ´Ù.

¡¡

3. JavaOS´Â OSÀΰ¡?

JavaOS´Â Á¤¸» ¿î¿µÃ¼Á¦Àΰ¡? ÀÌ´Â °¢ÀÚÀÇ °üÁ¡¿¡ µû¶ó ´Ù¸¥µ¥, JavaOS´Â ´ÙÀ½°ú °°ÀÌ ¿©·¯ °¡Áö ¸é¿¡¼­ ¿î¿µÃ¼Á¦¿Í À¯»çÇÑ Á¡ÀÌ ¸¹´Ù.

¡¡

¡¡

±×·¯³ª, JavaOS´Â ´ÙÀ½°ú °°ÀÌ ÀϹÝÀûÀÎ ¿î¿µÃ¼Á¦µé°ú´Â ¿©·¯ °¡Áö ¸é¿¡¼­ ´Ù¸£´Ù.

¡¡

¡¡

4. JavaOSÀÇ ¼º´É

°¡. Speed

ÇöÀç JavaOS´Â ¼º´É Á¶Á¤ (performance tuning)À» ÇÏÁö ¾ÊÀº »óÅÂÀ̰í, bytecode¸¦ machine code·Î º¯È¯Çϱâ À§ÇØ ¡°Just-In-Time (JIT)¡± ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏÁö ¾Ê°í ÀÖÀ¸¸ç, native methodµéÀ» ÃÖ¼Ò·Î »ç¿ëÇϰí ÀÖ´Ù. ±×·¡¼­ JavaOSÀÇ ¼º´ÉÀÌ ¾ÆÁÖ ³·À» °ÍÀ̶ó´Â »ý°¢ÀÌ µéÁö¸¸, º¥Ä¡¸¶Å© Å×½ºÆ® °á°ú ¿¹»óº¸´Ù´Â ¼º´ÉÀÌ ÁÁ´Ù´Â °ÍÀÌ ¹àÇôÁ³À¸¸ç ÀϺΠC³ª C++·Î ÀÛ¼ºµÈ ½Ã½ºÅÛµé º¸´Ù ¾î´À ¸é¿¡¼­´Â ´õ ³´´Ù°í ÆÇ¸íµÇ¾ú´Ù.

ÇÑ ¿¹·Î, ¿öÅ©½ºÅ×À̼ǰú °í¼º´É °³Àοë ÄÄÇ»ÅÍ¿¡¼­ °£´ÜÇÑ Java ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» ÃøÁ¤ÇßÀ» ¶§, »õ·Î¿î °³Ã¼¸¦ ÀÛ¼ºÇÏ´Â µ¥´Â ¾à 8.4ms°¡ ¼Ò¿äµÇ¸ç, ´Ù¼öÀÇ ±â¹ýÀ» Æ÷ÇÔÇÏ´Â »õ·Î¿î Ŭ·¡½º¸¦ ÀÛ¼ºÇϱâ À§Çؼ­´Â ¾à 11ms°¡ ¼Ò¿äµÇ°í, ¾î¶² °´Ã¼¿¡¼­ ±â¹ýÀ» ½ÇÇàÇϱâ À§Çؼ­´Â 1.7ms°¡ ¼Ò¿äµÈ´Ù´Â °ÍÀÌ ¹àÇôÁ³´Ù.

´Ù¸¥ ¿¹·Î´Â, Java ÇÁ·Î±×·¥ÀÌ stand-alone ¹æ½ÄÀ¸·Î ¼öÇàµÉ ¶§´Â C++¿Í °°Àº ±âÁ¸ ¾ð¾î·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥º¸´Ù ÈξÀ ´À¸° °ÍÀº »ç½ÇÀ̳ª (º¸Åë 10 - 20¹è), ÀÎÅͳݰú °°Àº ºÐ»ê ȯ°æ¿¡¼­ ¼öÇàµÉ ¶§´Â ¾ÖÇø´ÀÇ Å©±â°¡ À۾Ƽ­ ½Å¼ÓÇÏ°Ô À̵¿ÇÒ ¼ö Àֱ⠶§¹®¿¡ C++³ª CGI·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥ º¸´Ù´Â ¿ÀÈ÷·Á ºü¸£´Ù´Â °ÍÀÌ ¾Ë·ÁÁ® ÀÖ´Ù´Â °ÍÀ» µé ¼ö ÀÖ´Ù.

JavaOSÀÇ ¼Óµµ¿¡ °üÇÑ º¸´Ù °´°üÀûÀÎ Æò°¡¸¦ ³»¸®±â À§Çؼ­´Â À̻󿡼­ ¾ð±ÞÇÑ °á°úµé º¸´Ù ´õ¿í °´°üÀûÀÎ ºÐ¼® °á°ú°¡ ¾ÕÀ¸·Î ´õ¿í ¸¹ÀÌ ³ª¿Í¾ß ÇÒ °ÍÀ¸·Î »ý°¢ÇÑ´Ù.

¡¡

³ª. Space

JavaOS¸¦ Áö¿øÇϱâ À§Çؼ­´Â 4MBÀÇ ROM°ú 4MBÀÇ RAMÀÌ ÇÊ¿äÇÏ´Ù. ROM¿¡´Â Ä¿³Î ÄÚµå, µå¶óÀ̹ö, JVM ¹× Ç¥ÁØ Å¬·¡½ºµé, JavaOS À©µµ¿ìÁî, ±×·¡ÇȽº, ³×Æ®¿öÅ· ¿ä¼Òµé, ±×¸®°í HotJava ÄÚµåµéÀ» Æ÷ÇÔÇÏ¿© JavaOS¸¦ À§ÇÑ Äڵ尡 ÀúÀåµÇ°í, ¶ÇÇÑ ¾à 1MB ºñÆ®¸ÊÀ¸·Î ¿©·¯ °¡Áö ÆùÆ®µéÀ» ÀúÀåÇÑ´Ù. ÀÌ·¯ÇÑ ROM ±¸¼º ÇÏ¿¡¼­ ½Ã½ºÅÛÀº 2.5MBÀÇ RAMÀ» JavaOS¿Í HotJava ÀÇ µ¿ÀûÀÎ ¿ä±¸»çÇ×µéÀ» ¼ö¿ëÇϱâ À§ÇÏ¿© ÀÌ¿ëÇϰí, 1.5MBÀÇ RAMÀº ´Ù¿î·ÎµåµÈ HTML ÆäÀÌÁöµéÀ̳ª ¾ÖÇø´µé, ±×¸®°í À̹ÌÁöµéÀ» ÀúÀåÇÏ´Â µ¥ ÀÌ¿ëÇÑ´Ù.

À©µµ¿ì ±â´É°ú HotJava Äڵ带 ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â JavaOS¸¦ ÀÌ¿ëÇÏ¿© ¸¸µç ½Ã½ºÅÛÀº À§¿¡¼­ ¾ð±ÞÇÑ °ø°£ÀÇ 1/2 ÀÌÇϷεµ ÀÛµ¿ °¡´ÉÇÏ´Ù.

¡¡

5. JavaOSÀÇ ÀåÁ¡

Çϵå¿þ¾î¿¡ Java Ç÷§ÆûÀ» Á÷Á¢ Á¦°øÇϱâ À§ÇÏ¿© JavaOS¸¦ ÀÌ¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ÀåÁ¡µéÀÌ ÀÖ´Ù:

¡¡

6. JavaOSÀÇ ¸ñÇ¥ ½Ã½ºÅÛ

JavaOS´Â ÀÎÆ®¶ó³Ý ÄÄÇ»ÅÍ, ÀÎÅÍ³Ý ÄÄÇ»ÅÍ, ±×¸®°í ³»ÀåÇü ÀåÄ¡µé°ú °°Àº ¿©·¯ °¡Áö ÇüÅÂÀÇ Àåºñµé¿¡°Ô ÀÌ»óÀûÀÎ ¿î¿µÃ¼Á¦¶ó°í ÇÒ ¼ö ÀÖ´Ù. JavaOS¸¦ °³¹ßÇÑ JavaSoft »ç´Â Áö´ÉÀûÀÌ°í µ¿ÀûÀÎ Çϵå¿þ¾î Àåºñ¸¦ ¸¸µé ¼ö ÀÖµµ·Ï Çϱâ À§ÇÏ¿© Çϵå¿þ¾î ¾÷üµé¿¡°Ô JavaOS¸¦ Á¦°øÇØ ÁÖ°í ÀÖ´Ù.

¡¡

°¡. Intranet Computers

ÀÎÆ®¶ó³Ý ÄÄÇ»ÅÍ´Â ¿£ÅÍÇÁ¶óÀÌÁî ³×Æ®¿öÅ©¿¡ ¿¬°áµÈ ÄÄÇ»ÅÍ·Î, ´ëºÎºÐÀÇ È¸»çµéÀº ÀÌ´õ³ÝÀ» °¢ µ¥½ºÅ©Å¾¿¡ ¿¬°áÇÏ¿© Java Ŭ·¡½º ¹× ´Ù¸¥ µ¥ÀÌÅ͵éÀ» Àü¼ÛÇÏ´Â È¿À²À» ³ôÀ̰ųª, °í¼ÓÀÇ ¹éº» ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇϱ⵵ ÇÑ´Ù. ¿£ÅÍÇÁ¶óÀÌÁî ³×Æ®¿öÅ©¿¡¼­ ¼­¹ö´Â ÀÎÆ®¶ó³Ý ÄÄÇ»Å͵éÀÇ Áß¾Ó ÁýÁßÀûÀÎ °ü¸®¸¦ Áö¿øÇÏ´Â ÇÙ½É ¿ä¼ÒÀÌ´Ù.

Java Ç÷§ÆûÀº ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» ³×Æ®¿öÅ©¸¦ ÅëÇÏ¿© ÀÚµ¿ÀûÀ¸·Î ´Ù¿î·ÎµåÇÒ ¼ö ÀÖ°í, Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ³×Æ®¿öÅ© ÀÀ¿ëÇÁ·Î±×·¥µéÀ» ÀÛ¼ºÇϱ⠽±±â ¶§¹®¿¡ MIS ÀÀ¿ëÇÁ·Î±×·¥µéÀ» °³¹ßÇÏ°í ¼öÇàÇÏ´Â µ¥ ÀûÇÕÇÏ´Ù.

¡¡

³ª. Internet Computers

Internet Service Provider (ISP)´Â ³×Æ®¿öÅ© ¼­¹ö¸¦ °®°í ÀÖÁö ¾Ê´Â ´ëºÎºÐÀÇ °¡Á¤¿¡¼­ ÀÎÆ®¶ó³Ý ÄÄÇ»Å͸¦ ÀÌ¿ëÇÏ´Â °ÍÀ» °¡ÀüÁ¦Ç°À» ÀÌ¿ëÇÏ´Â °Íó·³ ½±°Ô Çϱâ À§ÇÏ¿© ÇÊ¿äÇÑ ±â¹Ý ±¸Á¶¸¦ Á¦°øÇÒ °ÍÀ¸·Î ±â´ëµÈ´Ù. ¿¹¸¦ µé¸é, ÄÄÇ»ÅÍ¿¡ Àü¿øÀ» ¿¬°áÇϰí ÀüÈ­ À踸 ²ÈÀ¸¸é, ÀÚµ¿ÀûÀ¸·Î ÀÎÅÍ³Ý Á¢¼ÓÀÌ °¡´ÉÇϰí À¥À» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

¡¡

´Ù. Embedded Devices

¸¸¾à, ¾î¶² Àåºñ°¡ 1MB ¶Ç´Â 2MBÀÇ RAM, 1MB ¶Ç´Â 2MBÀÇ ROMÀ» °¡Áö°í ÀÖ°í ±×·¡ÇÈ µð½ºÇ÷¹À̰¡ ¾ø´Â °æ¿ì Java ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» ÀûÀçÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ´ÂÁö »ý°¢ÇØ º¸±â·Î ÇÏÀÚ. JavaOS´Â STB (Set-top box)³ª PDA (Personal Digital Assistant), ±×¸®°í ±×·¡ÇÈ µð½ºÇ÷¹À̰¡ ¾ø´Â ÀüÀÚ ÀåÄ¡¿Í °°Àº ƯÁ¤ÇÑ Àåºñµé¿¡ ¸Âµµ·Ï Á¶Á¤µÉ ¼ö ÀÖ´Ù. ÀÌ °ÍÀº Java ¾ð¾î ±× ÀÚüÀÇ ±â´ÉÀ» ÁÙÀ̰ųª Java ¾ð¾î³ª À¯Æ¿¸®Æ¼ Ŭ·¡½ºµéÀÇ ±â´ÉÀ» Á¦°ÅÇÏ´Â °ÍÀ» ÀǹÌÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª, ¿¹¸¦ µé¸é, µð½ºÇ÷¹À̰¡ ¾ø´Â °æ¿ì ±× ÀåÄ¡¸¦ À§ÇÑ AWT³ª À©µµ¿ì ¹× ±×·¡ÇȽº Äڵ带 JavaOS·ÎºÎÅÍ Á¦°ÅÇÒ ¼ö ÀÖ´Ù. ¸¶Âù°¡Áö·Î, ¾î¶² ÀåÄ¡°¡ ¾î¶² ³×Æ®¿öÅ© ÇÁ·ÎÅäÄݵéÀ» ÇÊ¿ä·Î ÇÏÁö ¾ÊÀ» ¶§, ¶ÇÇÑ ±× ÇÁ·ÎÅäÄݵéÀ» Á¦°ÅÇÒ ¼ö ÀÖ´Ù.

¸î¸î ³»ÀåÇü ½Ã½ºÅÛÀÇ ¿ä±¸ »çÇ×ÀÎ ¼ÒÇÁÆ® ½Ç½Ã°£ ±â´ÉÀÇ Áö¿øÀ» ¸¸Á·½Ã۱â À§Çؼ­´Â ¾ÆÁ÷µµ Virtual Machine°ú °¡ºñÁö ÄÝ·º¼ÇÀÇ ±â´É Á¶Á¤ÀÌ ÇÊ¿äÇÏ´Ù. ¾Æ¿ï·¯ ÇöÀç ¿ø°Ý µð¹ö±ë ±â´ÉÀ» Æ÷ÇÔÇÏ¿© JavaOS¸¦ À§ÇÑ Ç³ºÎÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ß ȯ°æÀ» ±¸ÃàÇϱâ À§ÇÑ ³ë·Âµµ ÁøÇà Áß¿¡ ÀÖ´Ù.

JavaOS¸¦ À§ÇÑ ÃÖ¼ÒÇÑÀÇ ¸Þ¸ð¸® ±¸¼ºÀº ¾à 128KBÀÇ RAM°ú 512KBÀÇ ROMÀ̸ç ÀÀ¿ëÇÁ·Î±×·¥¿¡ µû¶ó ¿©ºÐÀÇ ¸Þ¸ð¸®°¡ Ãß°¡ µÇ¾î¾ß ÇÑ´Ù.

¡¡

7. JavaOS°¡ ÀÌ¿ë °¡´ÉÇÑ Ç÷§Æû

JDK ¹öÀü 1.1¿¡ ±â¹ÝÀ» µÎ°í ÀÖ´Â JavOS´Â ÇöÀç 3 Á¾·ùÀÇ Ç÷§Æû¿¡¼­ ¼öÇàµÈ´Ù. ÇÑ Á¾·ù´Â SPARC ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­µéÀ» ±â¹ÝÀ¸·Î Çϰí ÀÖ´Ù. ³ª¸ÓÁö´Â IntelÀÇ x86 ¸í·É¾î ÁýÇÕ°ú ȣȯ¼ºÀÌÀÖ´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­µé¿¡ ±â¹ÝÀ» µÎ°í ÀÖ´Â °Í°ú, ARM processor¿¡¼­ µ¿ÀÛÇÏ´Â °ÍÀÌ ÀÖ´Ù. JavaOS´Â ¶ÇÇÑ ´Ù¸¥ ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­ ¸í·É¾î ÁýÇյ鿡 ±â¹ÝÀ» µÐ ½Ã½ºÅ۵鿡µµ Æ÷ÆÃÇÒ ¼ö ÀÖ´Ù. ¹Ì·¡ ¹öÀüÀÇ JavaOS¿¡ Æ÷Ç﵃ ÁÖ¿äÇÑ Æ¯¼ºµéÀº ´ÙÀ½°ú °°´Ù:

¡¡

¡¡

¡¡

III. JavaOSÀÇ ³»ºÎ ±¸Á¶ ¹× Æ÷ÆÃ ¹æ¹ý

¿©±â¿¡¼­´Â JavaOS¢âÀ» »õ·Î¿î Ç÷§Æû°ú »õ·Î¿î CPU¿¡ Æ÷ÆÃÇÏ´Â °Í¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. JavaOS´Â Ç÷§Æû°ú °ü·ÃµÈ Æ÷ÆÃ ¹®Á¦µéÀ» ó¸®Çϱâ À§ÇÏ¿© ´ÙÀ½°ú °°Àº ¿©·¯ ±×·ìÀÇ interface methodµéÀ» Á¦°øÇÑ´Ù [3, 7].

¡¡

- Memory

- Interrupts

- Standard Devices (Űº¸µå/¸¶¿ì½º/½Ã½ºÅÛ Å¬¶ô)

- Drivers

- Multimedia (¿Àµð¿À ¹× ºñµð¿À)

- Networking

- Installation and Booting

¡¡

ÀÌ·¯ÇÑ methodµéÀ» È¿À²ÀûÀ¸·Î »ç¿ëÇϱâ À§Çؼ­´Â JavaOS ¼Ò½º ÄÚµåÀÇ µð·ºÅ丮 ±¸Á¶¸¦ ÀÌÇØÇÏ´Â °ÍÀº ÇʼöÀûÀÌ´Ù. JavaOS 1.0ÀÇ Æ÷ÆÃÀ» À§Çؼ­´Â build µð·ºÅ丮¿Í src µð·ºÅ丮°¡ ÇÊ¿äÇÏ´Ù. build µð·ºÅ丮´Â JavaOS¸¦ buildÇϱâ À§ÇØ ÇÊ¿äÇÑ makefileµé°ú scriptµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. Build °úÁ¤ Áß¿¡ »ý¼ºµÇ´Â Àӽà ¶Ç´Â ÃÖÁ¾ À̹ÌÁö ÆÄÀϵéÀº ÀÌ build µð·ºÅ丮¿¡ ÀúÀåµÈ´Ù. build µð·ºÅ丮ÀÇ ±¸Á¶´Â ´ÙÀ½°ú °°´Ù:

¡¡

- build

-build/javaos

-build/javaos/makefiles

-build/javaos/java

- build/javaos/java/java

- build/javaos/scripts

¡¡

build/javaos´Â ÃÖ»óÀ§ÀÇ GNUmake µð·ºÅ丮ÀÌ´Ù. build/javaos/java/java´Â ´ÙÀ½ÀÇ Å° ÆÄÀϵéÀ» Æ÷ÇÔÇϰí ÀÖ´Â ³»ºÎÀÇ GNUmake µð·ºÅ丮ÀÌ´Ù:

¡¡

- Classfiles.gmk ? Ç÷§Æû build¿¡ Æ÷ÇԵǴ Java Ŭ·¡½ºµéÀÇ ¸®½ºÆ®

- Exportedfiles.gmk ? native methodµéÀ» °®´Â Java Ŭ·¡½ºµéÀÇ ¸®½ºÆ®

- GNUmakefile ? build ³»¿¡ Æ÷ÇԵǴ .o native binaryµéÀÇ ¸®½ºÆ®

build/javaos/makefiles´Â build/javaos/java/java¿Í °°ÀÌ ³»ºÎ GNUmake µð·ºÅ丮ÀÌ´Ù. Dfs.gmk´Â build µ¿¾È¿¡ °Ë»çÇØ¾ß ÇÏ´Â ¼Ò½º ÄÚµå µð·ºÅ丮 ¸®½ºÆ®¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù.

´ÙÀ½Àº ¼Ò½º ÄÚµåµéÀ» Æ÷ÇÔÇϰí ÀÖ´Â src µð·ºÅ丮ÀÌ´Ù. src µð·ºÅ丮´Â src/javaos¿Í src/share·Î ±¸¼ºµÇ¾î ÀÖ´Ù. src/javaos´Â JavaOS ÄÚµåÀÇ ´ëºÎºÐÀ» °¡Áö°í ÀÖÀ¸¸ç Æ÷ÆÃ ÀÛ¾÷ÀÇ ÁÖ ´ë»óÀÌ´Ù. src/share´Â ÁÖ·Î HotJava³ª JDK¿Í °°Àº non-JavaOS productµé°ú °øÀ¯µÇ´Â ÄÚµåµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. src µð·ºÅ丮ÀÇ ±¸Á¶¸¦ »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

¡¡

- src/javaos/java - - Main native OS code directory

- src/javaos/java/green_threads - - Thread management

- src/javaos/java/os ? Platform independent code

- src/javaos/java/os.i386 - - x86 specific code

- src/javaos/java/os.i386/sys

- src/javaos/java/os.PC - - IBM PC specific code

- src/javaos/java/os.sparc - - Sparc specific code

- src/javaos/java/os.SS5 - - SparcStation5 specific code

¡¡

ÀÌ·¯ÇÑ platform-specific µð·ºÅ丮µéÀº ÇÏÀ§ ¼öÁØÀÇ Ç÷§Æû Á¾¼ÓÀûÀÎ native codeµéÀ» ¸¹ÀÌ Æ÷ÇÔÇϰí À־ JavaOS¸¦ Æ÷ÆÃÇÏ´Â °æ¿ì ÀÌ·¯ÇÑ µð·ºÅ丮µéÀÇ ³»¿ë¿¡ ´ëÇÑ Á¤¹ÐÇÑ Á¶»ç´Â ÇʼöÀûÀÌ´Ù.

src/javaos/sun/javaos´Â ÇÏÀ§ÀÇ native code¸¦ Æ÷ÇÔÇϰí ÀÖ¾î ÀÚ¼¼ÇÑ »çÀü °ËÅä°¡ ÇÊ¿äÇϸç, src/sun/sun/javaos Ŭ·¡½ºµé¿¡ ´ëÀÀµÇ´Â native methodµéÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. src/javaos/sun/sun/javaos´Â µð¹ÙÀ̽º µå¶óÀ̹ö Äڵ带 Æ÷ÇÔÇÑ JavaOS ¼Ò½º ÄÚµåÀÇ ´ëºÎºÐÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ÀÌ µð·ºÅ丮 ¾ÈÀÇ ¸ðµç ¼Ò½º´Â Java·Î ±¸ÇöµÇ¾î ÀÖ´Ù. JavaOS¸¦ Æ÷ÆÃÇÏ´Â °æ¿ì ÀÌ µð·ºÅ丮ÀÇ ³»¿ëÀ» »çÀü¿¡ ÀÚ¼¼È÷ °ËÅäÇØ º¸¾Æ¾ß ÇÑ´Ù. src/javaos/sun/sun µð·ºÅ丮 ¹ØÀÇ µð·ºÅ丮µéÀÎ net, awt, audio, tools, ¹× hotjava´Â src/share/sun/sun µð·ºÅ丮¿¡ ÀúÀåµÈ ÆÄÀϵé°ú ´ëÀÀÇÏ¿© Ãß°¡ÀûÀÎ ³»¿ëµéÀ» °¢°¢ Æ÷ÇÔÇϰí ÀÖ´Ù.

ÀÌ·¯ÇÑ µð·ºÅ丮µé¿¡ ÀúÀåµÈ ÆÄÀϵéÀ» ÀÌ¿ëÇÏ¿© JavaOS¸¦ Æ÷ÆÃÇÏ·Á¸é, À§¿¡¼­ ¾ð±ÞÇÑ ÀÎÅÍÆäÀ̽ºµéÀ» ÀÌ¿ëÇÏ¿© ÇÊ¿äÇÑ methodµéÀ» È£ÃâÇÏ¿©¾ß ÇÑ´Ù. ÀÌÁ¦ ÀÎÅÍÆäÀ̽ºÀÇ ±â´ÉÀ» ÀÌ¿ëÇϱâ À§ÇÑ JavaOSÀÇ ±âº» °³³äµéÀ» ¹ÙÅÁÀ¸·Î Æ÷ÆÃÀ» À§ÇÑ methodµéÀ» ¾Ë¾Æº¸±â·Î ÇÑ´Ù.

¡¡

1. Memory

JavaOS ½Ã½ºÅÛ ¸Þ¸ð¸®´Â ±×¸²5¿Í °°ÀÌ ´ÙÀ½ÀÇ ¿©·¯ ºÎºÐÀ¸·Î ³ª´µ¾îÁ® ÀÖ´Ù.

¡¡

- ÀÎÅÍ·´Æ® º¤ÅÍ Å×À̺í°ú °°Àº °ÍµéÀÌ ÀûÀçµÇ´Â ÃÖÇÏÀ§ÀÇ ¿¹¾àµÈ ¿µ¿ª

- °´Ã¼ ÇÚµé ¸Þ¸ð¸®

- °´Ã¼ ¸Þ¸ð¸® (µ¿ÀûÀ̸ç, À̵¿ °¡´ÉÇϰí, °¡ºñÁö ¼ö°Å°¡´ÉÇÑ ¸Þ¸ð¸®)

- Malloc ¸Þ¸ð¸® (µ¿ÀûÀ̸ç, °íÁ¤ÇüÀ̰í, °¡ºñÁö ¼ö°ÅºÒ°¡´ÉÇÑ ¸Þ¸ð¸®)

- Mark bit¸¦ ó¸®ÇÏ´Â °íÁ¤ ¿µ¿ª

- Native ¸Þ¸ð¸® ( C ÅØ½ºÆ®, static¹× µ¥ÀÌŸ ¼¼±×¸ÕÆ®µé Æ÷ÇÔ)

±×¸² 5 JavaOSÀÇ ¸Þ¸ð¸® ½Ã½ºÅÛ °³·« ±¸Á¶

±×¸² 6Àº JavaOS ¸Þ¸ð¸® ÇÏÀ§ ½Ã½ºÅÛÀÇ ÀÚ¼¼ÇÑ ±¸Á¶¸¦ º¸¿© ÁØ´Ù.

±×¸² 6 JavaOS ¸Þ¸ð¸® ÇÏÀ§ ½Ã½ºÅÛÀÇ »ó¼¼ ±¸Á¶

¡¡

JavaOS ¸Þ¸ð¸® ½Ã½ºÅÛÀ» »õ·Î¿î Ç÷§Æû¿¡ Æ÷ÆÃÇÏ´Â µ¥ ÇÊ¿äÇÑ Çϵå¿þ¾î Á¾¼ÓÀûÀÎ native functionµé·Î´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù: _pages_set_cacheable, _pages_set_read_only_, hal_map, hal_unmap, hal_free_contig, hal_alloc_contig, hal_alloc_heap, hal_reserved_memory.

¡¡

2. Interrupts

JavaOS ÀÎÅÍ·´Æ® ½Ã½ºÅÛÀº ´ÙÀ½ 2 °¡ÁöÀÇ ±¸Á¶Àû ¼öÁØÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù:

¡¡

- ÇÏÀ§ ÀÎÅÍ·´Æ® ±¸Á¶

- »óÀ§ ÀÎÅÍ·´Æ® ±¸Á¶

¡¡

±×¸² 7Àº JavaOSÀÇ ÇÏÀ§ ÀÎÅÍ·´Æ® ±¸Á¶¸¦ º¸¿© ÁÖ°í ÀÖ´Ù.

¡¡

±×¸² 7 JavaOSÀÇ ÇÏÀ§ ÀÎÅÍ·´Æ® ±¸Á¶

¡¡

±×¸² 8Àº JavaOSÀÇ »óÀ§ ÀÎÅÍ·´Æ® ±¸Á¶¸¦ º¸¿© ÁÖ°í ÀÖ´Ù.

¡¡

±×¸² 8 JavaOSÀÇ »óÀ§ ÀÎÅÍ·´Æ® ±¸Á¶

¡¡

JavaOS ÀÎÅÍ·´Æ® ½Ã½ºÅÛÀ» »õ·Î¿î Ç÷§Æû¿¡ Æ÷ÆÃÇÏ´Â µ¥ ÇÊ¿äÇÑ Çϵå¿þ¾î Á¾¼ÓÀûÀÎ native functionµé·Î´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù: interrupt, handle_interrupt, get_pending_interrupt, clear_pending_interrupt, disable_interrupts, acknowledge_interrupt, mask_interrupt, unmask_interrupt, enable_interrupts, get_pending_interrupt_count.

¡¡

3. Standard Devices (Űº¸µå/¸¶¿ì½º/½Ã½ºÅÛ Å¬¶ô)

»õ·Î¿î Ç÷§Æûµé·Î Űº¸µå, ¸¶¿ì½º, ½Ã½ºÅÛ Å¬¶ô°ú °°Àº Ç¥ÁØ JavaOS ÀåÄ¡µéÀ» Æ÷ÆÃÇϱâ À§Çؼ­´Â Ç¥ÁØ µð¹ÙÀ̽º ÀÎÅÍÆäÀ̽ºµéÀÌ ÇÊ¿äÇÏ´Ù. ƯÁ¤ÇÑ ÀåÄ¡µéÀÇ ¼³°è Ư¼ºµéÀ» ÃÖÀûÈ­Çϰųª À̵éÀ» ¼ö¿ëÇϱâ À§Çؼ­´Â JavaOS method¿Í ÇÔ²² µð¹ÙÀ̽º ÀÎÅÍÆäÀ̽ºµéÀ» È®ÀåÇÒ ¼ö ÀÖ´Ù. ¾Æ¿ï·¯, ¿©·¯ °¡ÁöÀÇ Çϵå¿þ¾î Á¾¼ÓÀûÀÎ methodµéµµ ÀÌ¿ëÀÌ °¡´ÉÇÏ´Ù.

JavaOS »ó¿¡¼­ Keyboard ÀÎÅÍÆäÀ̽º´Â CallbackDeviceÀÇ ±â´ÉÀ» È®ÀåÇÑ °ÍÀ¸·Î ´ÙÀ½ÀÇ methodµéÀ» ÀÌ¿ëÇÏ¿© Űº¸µå µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ÀÇÇØ ±¸ÇöµÈ´Ù: getLEDMask, setLEDMask.

Mouse ÀÎÅÍÆäÀ̽ºµµ CallbackDeviceÀÇ ±â´ÉÀ» È®ÀåÇÑ °ÍÀ¸·Î ´ÙÀ½ÀÇ methodµéÀ» ÀÌ¿ëÇÏ¿© ¸¶¿ì½º µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ ÀÇÇØ ±¸ÇöµÈ´Ù: buttonIsDown, numButtons, report.

Abstract class clockÀº ´ÙÀ½ÀÇ methodµéÀ» ÀÌ¿ëÇÏ¿© ½Ã½ºÅÛ Å¬¶ô ±â´ÉÀ» Á¦°øÇÑ´Ù: nativeSetTime, setTime, setTimezone, getTime, report, getMicroSecondsPerTick, setMicroSecondsPerTick, getTick, unbcd, mach_clock_tick, javaos_get_time_micros, javaos_get_fine_time_micros, javaos_set_time_micros. ÀÌ À̿ܿ¡µµ ¿©·¯ °¡ÁöÀÇ Çϵå¿þ¾î Á¾¼ÓÀûÀÎ methodµéÀÌ ÀÖ´Ù.

¡¡

4. Drivers

¸ðµç µð¹ÙÀ̽º´Â µå¶óÀ̹ö¸¦ °¡Áö°í ÀÖÀ¸¸ç, µå¶óÀ̹ö´Â ÁÖº¯ÀåÄ¡ Çϵå¿þ¾î, È®Àå ¹ö½º¿Í JavaOS »çÀÌÀÇ ÀÎÅÍÆäÀ̽º¸¦ °ü¸®ÇÏ¿© ½Ã½ºÅÛ Àü¹Ý¿¡ °ÉÃļ­ µ¥ÀÌÅÍ¿Í Á¦¾î Á¤º¸ÀÇ ¿øÈ°ÇÑ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù.

JavaOS 1.0¿¡´Â ºñµð¿À ÇÁ·¹ÀÓ ¹öÆÛ, ¿Àµð¿À Ãâ·Â ÀåÄ¡, Űº¸µå, ¸¶¿ì½º, ½Ã½ºÅÛ Å¬¶ô ¹× ³×Æ®¿öÅ© ÀåÄ¡µéÀ» À§ÇÑ Ç¥ÁØ ÀÎÅÍÆäÀ̽ºµéÀÌ Á¤ÀǵǾî ÀÖ´Ù. ÀÌ·¯ÇÑ Ç¥ÁØ ÀåÄ¡ ÀÎÅÍÆäÀ̽ºµéÀº ƯÁ¤ÇÑ ÀåÄ¡µéÀÇ ¼³°è Ư¼ºµéÀ» ÃÖÀûÈ­Çϰųª ¼ö¿ëÇϱâ À§Çؼ­ JavaOS method¿Í ÇÔ²² µð¹ÙÀ̽º ÀÎÅÍÆäÀ̽ºµéÀ» È®ÀåÇÒ ¼ö ÀÖ´Ù.

Âü°í·Î ±×¸² 9´Â 3-°èÃþÀÇ ¸¶¿ì½º µå¶óÀ̹ö¿Í °ü·ÃµÈ platform class¸¦ º¸¿© ÁÖ°í ÀÖ´Ù.

¡¡

±×¸² 9 3-°èÃþÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö ¸ðµ¨

¡¡

µå¶óÀ̹ö´Â Ŭ·¡½º ÆÄÀϷμ­ ±¸ÇöµÇ¸ç, ¾î¶² ÁÖ¾îÁø Ç÷§Æû¿¡ ´ëÇØ ÀÌ¿ë °¡´ÉÇÑ µå¶óÀ̹öµéÀº platform Ŭ·¡½º¿¡ ¸í±âµÇ¾î ÀÖ´Ù. platform Ŭ·¡½ºÀÇ ÁÖ¿äÇÑ ±â´ÉÀº µå¶óÀ̹ö Ŭ·¡½º À̸§À» µð¹ÙÀ̽º ŸÀÔÀ¸·Î bind (associate) ½ÃŰ´Â ÀÏÀÌ´Ù. ÀÏ´Ü µå¶óÀ̹ö°¡ ¾î¶² ÀåÄ¡¿¡ bound µÇ¸é, ½Ã½ºÅÛÀº ±× ÀåÄ¡¿Í °ü·ÃµÈ µå¶óÀ̹ö¸¦ ÃßÃâÇϱâ À§ÇÏ¿© resolution ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù. ¾Æ·¡¿¡¼­ º¸´Â °Íó·³ bind¿Í resolve methodµéÀº Env Ŭ·¡½º¿¡ Æ÷ÇԵǾî ÀÖ´Ù.

¡¡

Env.bind(name, value)

value = Env.resolve(name)

¡¡

Version 1.0Àº ÇöÀç ´ÜÁö ¸î °³ÀÇ Å¬·¡½ºµé¸¸À» Áö¿øÇϰí ÀÖÀ¸³ª, ¾ÕÀ¸·Î ´Ù¾çÇÑ Á¾·ùÀÇ ÀåÄ¡µéÀ» Áö¿øÇÒ °èȹÀ¸·Î ÀÖ´Ù.

¡¡

5. Multimedia (¿Àµð¿À ¹× ºñµð¿À)

JavaOS ¸ÖƼ¹Ìµð¾î¸¦ »õ·Î¿î Ç÷§Æû¿¡ Æ÷ÆÃÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°Àº °Íµé¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽ºµéÀ» ÇÊ¿ä·Î ÇÑ´Ù: Audio, Video, Frame buffer, Cursor.

Âü°í·Î JavaOS 1.0 ¿Àµð¿À Ãâ·Â °æ·Î¸¦ »ìÆìº¸¸é ±×¸² 10°ú °°´Ù.

±×¸² 10 ¿Àµð¿À Ãâ·Â °æ·Î

¡¡

public interfaceÀÎ audioDriver´Â ¿Àµð¿À Ãâ·Â µå¶óÀ̹ö¿¡ ´ëÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â ¿Àµð¿À ÀåÄ¡¿¡ Ãâ·ÂÇÏ´Â °Í ¸¸À» À§ÇÑ °ÍÀ̸ç, ¿Àµð¿À ÀԷ¿ëÀº ¾Æ´Ï´Ù. À̸¦ À§ÇØ ´ÙÀ½ÀÇ methodµéÀÌ »ç¿ëµÈ´Ù: setGain, getGain, getBalance, write.

JavaOS ºñµð¿À ½Ã½ºÅÛÀÇ ±¸Á¶´Â ±×¸² 11°ú °°´Ù.

¡¡

±×¸² 11 JavaOS ºñµð¿À ±¸Á¶

¡¡

ºñµð¿À ÀÎÅÍÆäÀ̽º¿¡´Â ¿©·¯ methodµéÀÌ »ç¿ëµÇ´Â µ¥, ´ÙÀ½ÀÇ µÎ methodµéÀÌ °¡Àå À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù: (*FillRect), (*CopyArea). ºñµð¿À ÀÎÅÍÆäÀ̽º¿Í °ü·ÃµÈ °ÍÀ¸·Î ºñµð¿À µð½ºÇ÷¹À̸¦ ±¸µ¿½ÃŰ´Â ÀåÄ¡ÀÎ frame buffer°¡ ÀÖÀ¸¸ç, ºñµð¿À µå¶óÀ̹ö´Â public ÀÎÅÍÆäÀ̽ºÀÎ frame buffer ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ Ŭ·¡½ºÀÌ´Ù. Frame buffer¸¦ »õ·Î¿î Ç÷§Æû¿¡¼­ ¼öÇàµÉ ¼ö ÀÖµµ·Ï Æ÷ÆÃÇϱâ À§Çؼ­ ÇÊ¿äÇÑ ÀÎÅÍÆäÀ̽º methodµé·Î´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù: init, VideoMode [] getVideoModes (), setVideoMode, getAddress, setPowerMode, disablePowerSaver, getDpi, getVideoMode. ±×¸®°í, ¼ÒÇÁÆ®¿þ¾î Ä¿¼­ 󸮸¦ À§ÇØ ÇÊ¿äÇÑ native methodµé·Î´Â reInit, show, hideµîÀÌ ÀÖ´Ù.

¡¡

6. Networking

°ÅÀÇ ¸ðµç JavaOS ³×Æ®¿öÅ· ÄÚµå´Â Java·Î ÀÛ¼ºµÇ¾úÀ¸¸ç, native methodµéÀº °ÅÀÇ ¾ø´Ù. ¿¹¸¦ µé¸é, JavaOS¸¦ SPARCStationÀ¸·ÎºÎÅÍ x86Ç÷§ÆûÀ¸·Î Æ÷ÆÃÇÏ´Â °æ¿ì¿¡ ÇÁ·ÎÅäÄÝ ½ºÅÃÀ» Æ÷ÇÔÇÏ¿© ³×Æ®¿öÅ· ÄÚµåÀÇ º¯°æÀÌ ÇÊ¿ä ¾ø´Ù. SPARCStationÀÌ Intel Ç÷§Æû°ú ´Ù¸¥ endian model°ú ¸Þ¸ð¸® ¸ðµ¨À» »ç¿ëÇϰí ÀÖÀ½¿¡µµ ºÒ±¸Çϰí ÀÌ °ÍÀÌ »ç½Ç·Î¼­ Áõ¸íµÈ ¹Ù ÀÖ´Ù. ´ÜÁö ÇϳªÀÇ native method ¸¸ÀÌ ³×Æ®¿öÅ· Äڵ忡¼­ º¯°æÀÌ ÇÊ¿äÇÏ¿´´Ù (IP check sum method). ³×Æ®¿öÅ· ÄÚµå´Â ¿ÏÀüÈ÷ Java·Î ÀÛ¼ºµÇ¸ç Java platform interface¸¦ ÅëÇÏ¿© ¸Þ¸ð¸® ¾×¼¼½º ¹× ÀÎÅÍ·´Æ®ÀÇ Ã³¸®¸¦ ÇÏ°Ô µÈ´Ù. ¹°·Ð, ´Ù¸¥ ³×Æ®¿öÅ© ¾î´ðÅͰ¡ ´Ù¸¥ Ç÷§Æû¿¡ »ç¿ëµÇ¸é ³×Æ®¿öÅ© µå¶óÀ̹ö´Â »õ·Î¿î Çϵå¿þ¾î¸¦ À§ÇÑ µå¶óÀ̹ö·Î ±³Ã¼µÇ¾î¾ß ÇÑ´Ù.

JavaOS 1.0Àº ÀÌ´õ³Ý ³×Æ®¿öÅ· µð¹ÙÀ̽ºµéÀ» »ç¿ëÇϱâ À§ÇÏ¿© ÀÛ¼ºµÇ¾úÀ¸¸ç, ÀÌ´õ³Ý µð¹ÙÀ̽ºµéÀº ¼º´ÉÇâ»óÀ» À§ÇÑ ¾î¶°ÇÑ native methodÀÇ Áö¿øµµ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª, ¼º´ÉÀÇ Çâ»ó ¶§¹®¿¡ ´Ù¸¥ ³×Æ®¿öÅ© µð¹ÙÀ̽ºµéÀº native method Áö¿øÀÌ ÇÊ¿äÇÑ °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦ µé¸é, PPP serial port¸¦ À§ÇÑ ³×Æ®¿öÅ© µå¶óÀ̹ö´Â ³ôÀº È¿À²À» ¿ä±¸ÇÏ´Â ÀÎÅÍ·´Æ® 󸮰¡ ÇÊ¿äÇÑ ÀåÄ¡·Î¼­ ÇöÀç native method°¡ ÀÌ·¯ÇÑ »óȲ¿¡¼­ ¼º´ÉÀ» ÃÖÀûÈ­ Çϱâ À§ÇÑ ÃÖ»óÀÇ ¹æ¹ýÀ¸·Î ÀÌ¿ëµÇ°í ÀÖ´Ù.

±×¸² 12´Â JavaOS 1.0 ³×Æ®¿öÅ© ±¸Á¶¸¦ º¸¿©ÁÖ°í ÀÖ´Ù.

±×¸² 12 JavaOS ³×Æ®¿öÅ© ±¸Á¶

¡¡

NetworkDriver´Â ³×Æ®¿öÅ© µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ±¸ÇöÇØ¾ß ÇÏ´Â public ÀÎÅÍÆäÀ̽º·Î¼­, ÇöÀç JavaOS 1.0¿¡¼­´Â ÀÌ´õ³Ý ÀåÄ¡µé¸¸ Áö¿øÇÑ´Ù. Â÷ÈÄ È®ÀåÀ» °í·ÁÇϰí ÀÖÀ¸¸ç, ÇöÀç Áö¿øµÇ´Â methodµéÀº ´ÙÀ½°ú °°´Ù: enableUpcalls, getTrasmitPacket, sendPacket, getLocalAddress, enablePromiscuous, disablePromiscuous, report.

¡¡

7. Installation and Booting

JavaOS¸¦ ¼³Ä¡ÇÏ´Â µ¥´Â Ŭ¶óÀÌ¾ðÆ® ¼³Ä¡¿Í ¼­¹ö ¼³Ä¡ÀÇ µÎ °¡Áö °üÁ¡¿¡¼­ »ý°¢ÇÒ ¼ö ÀÖ´Ù. JavaOS´Â thin clientÀ̹ǷΠ¼­¹öÀÇ ¼³Ä¡°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ¼³Ä¡º¸´Ù º¹ÀâÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù.

JavaOS¸¦ buildÇÏ´Â µ¥´Â build environment¸¦ ¼³Ä¡ÇÏ´Â °Í°ú build¸¦ ÇÏ´Â µÎ ´Ü°è·Î µÇ¾î ÀÖ´Ù. JavaOS ¼³Ä¡ ¹× bootingÀÇ ÁÖ¿ä ´Ü°èµéÀ» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

¡¡

- Build environment Á¶¼º

- JavaOS binaryÀÇ ±¸Ãà

- Ŭ¶óÀÌ¾ðÆ®¿¡ JavaOS ¼³Ä¡

- ¼­¹ö¿¡ Java OS client ¼³Ä¡

- DHCP ¼³Ä¡

- nsswitch.conf ÆÄÀÏ ¼öÁ¤

- Client root directoryÀÇ »ý¼º

- Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇÑ bootparms entry »ý¼º

- TFTP boot ¼³Ä¡ (SPARC clientÀÇ °æ¿ì)

- JavaOS Ŭ¶óÀ̾ðÆ®ÀÇ booting

¡¡

³¡À¸·Î, JavaOS Ŭ¶óÀÌ¾ðÆ®¸¦ boot ÇÏ´Â µ¥ ÇÊ¿äÇÑ ´Ü°èµéÀº local ȤÀº ³×Æ®¿öÅ© bootÀΰ¡¿¡ µû¶ó ´Ù¸£¸ç, Ŭ¶óÀÌ¾ðÆ®°¡ x86ÀÎÁö ¶Ç´Â SPARC ±â¹ÝÀÇ ½Ã½ºÅÛÀΰ¡¿¡ µû¶ó¼­µµ ´Ù¸£´Ù.

¡¡

¡¡

IV. JavaOSÀÇ Æ¯¼º ¹× ¹Ì·¡

¿©±â¿¡¼­´Â JavaOS 1.0ÀÇ Æ¯¼ºÀ» °£´ÜÈ÷ Á¤¸®ÇØ º¸°í, ¹Ì·¡ÀÇ JavaOS°¡ °¡Áú °ÍÀ¸·Î ±â´ëµÇ´Â ¹Ù¶÷Á÷ÇÑ Æ¯¼ºµé, ±×¸®°í À̵鿡 ´ëÇÑ ºÐ¼®À» ¹ÙÅÁÀ¸·Î ÇöÀç Âø¼ö ¿¹Á¤ÀÎ JavaOS Luna project [4, 5, 6]¿¡¼­ ¸ñÇ¥·Î Çϰí ÀÖ´Â JavaOS¿¡ ´ëÇØ °£´ÜÈ÷ ¾Ë¾Æ º¸±â·Î ÇÑ´Ù.

¡¡

1. JavaOSÀÇ Æ¯¼º

Áö±Ý±îÁö ¾ð±ÞÇÑ ³»¿ëµéÀ» ¹ÙÅÁÀ¸·Î JavaOS 1.0ÀÇ Æ¯¼ºÀ» °£´ÜÈ÷ ¿ä¾àÇÏ¸é ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù [2]:

¡¡

- Kernel¿¡ ÀÇÇÑ thread, trap, interrupt, ¹× bootstrappingÁö¿ø

- ³×Æ®¿öÅ· ÇÁ·ÎÅäÄÝ

- À©µµ¿ì ±â´É ¹× ±×·¡ÇȽº

- Java Ç÷§Æû APIÀÇ Áö¿ø

- Java¸¦ ÀÌ¿ëÇÑ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ±¸Ãà

- JDK 1.02¿Í HotJava 1.0 Áö¿ø

- Class unloading

¡¡

JavaOSÀÇ 2¹øÂ° ÁÖ¿äÇÑ Ãâ½ÃǰÀÎ JavaOS 1.1Àº ´ÙÀ½°ú °°Àº Á¡µéÀÌ JavaOS 1.0¿¡ ºñÇÏ¿© º¯È­µÈ °ÍµéÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù [6].

¡¡

- JDK 1.1.x Áö¿ø

- I18N/L10N

- PPP (Point-to-Point Protocol) Áö¿ø

- SSL (Secure Sockets Layer)¿¡ ÀÇÇÑ º¸¾È ±â´É °­È­

- Local printing Áö¿ø

- Serial port API (CommAPI) Áö¿ø

- JIT (Just-In-Time) compilation Áö¿ø

- ½ÇÁúÀûÀÎ ¼º´É °³¼±

¡¡

2. JavaOSÀÇ ¹Ì·¡

¹Ì·¡ÀÇ JavaOS°¡ °¡Áú °ÍÀ¸·Î ±â´ëµÇ´Â ¹Ù¶÷Á÷ÇÑ Æ¯¼ºµéÀ» ¸î °¡Áö¸¸ »ìÆìº¸¸é ´ÙÀ½°ú °°Àº °ÍµéÀ» µé ¼ö ÀÖ´Ù [2]:

¡¡

- Debugging, booting, ¹× platform API

- º¸¾È

- Æ÷Åͺí È£½ºÆ® ȯ°æ Áö¿ø

- Outline ÆùÆ®

- ¼ÒÇüÀÇ footprint/modular support

- µ¿ÀûÀ¸·Î ¿¬°èµÇ´Â ¶óÀ̺귯¸®

- PC Ä«µå Áö¿ø - ³×Æ®¿öÅ©, ¸ðµ© - Ãß°¡ÀûÀÎ ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝ (¿¹¸¦ µé¸é, IPv6)

- Java Media PlayerµéÀÇ ÅëÇÕ

- Universal Serial Bus

- ¹æÈ­º® Áö¿ø

- Áö´ÉÀûÀΠij½³

- °¡»ó ¸Þ¸ð¸® Áö¿ø

- Accessibility Áö¿ø

- ½º¸¶Æ® Ä«µå ÇÁ·¹ÀÓ¿÷

- IrDA ÇÁ·¹ÀÓ¿÷ (Fast IrDA)

¡¡

3. JavaOS Luna Project

À§¿¡¼­ ¾ð±ÞÇÑ JavaOS 1.0ÀÇ Æ¯¼ºµé°ú ¹Ì·¡ÀÇ JavaOS°¡ ¼ÒÀ¯ÇÏ°Ô µÉ °ÍÀ¸·Î ±â´ëµÇ´Â ¹Ù¶÷Á÷ÇÑ Æ¯¼ºµé¿¡ ´ëÇÑ ºÐ¼®À» ¹ÙÅÁÀ¸·Î ÇöÀç Âø¼ö ¿¹Á¤ÀÎ JavaOS Luna project¿¡¼­ ¸ñÇ¥·Î Çϰí ÀÖ´Â JavaOS´Â JDK 1.1.xÀÇ ¿ì¼öÇÑ Æ¯¼ºµéÀ» ÀÌ¿ëÇÏ¿© ¸ðµç ´Ù¸¥ ³×Æ®¿öÅ© ÄÄÇ»ÅÍ ¿î¿µÃ¼Á¦µéÀ» ¾ÐµµÇÒ °ÍÀ¸·Î ¿¹»óµÈ´Ù. JavaOS Luna´Â °­·ÂÇÑ internationalization ¹× localization ±¸Á¶¸¦ Áö¿øÇϰí Ç¥ÁØ ¸ðµ© ¿¬°áÀ» ÅëÇÑ ¿ø°Ý ¿¢¼¼½º, ±×¸®°í µ¿½Ã¿¡ ±â¾ïÀåÄ¡ Å©±âÀÇ ÃʼÒÇüÈ­ ¹× °í¼º´ÉÀÇ Java-runtime ½Ã½ºÅÛÀ» ¸ñÇ¥·Î Çϰí ÀÖ´Ù. ´ÙÀ½Àº JavaOS LunaÀÇ ÁÖ¿äÇÑ Æ¯¼ºµé ¹× ÀåÁ¡µéÀ» °£´ÜÇÏ°Ô ¿ä¾àÇÑ °ÍÀÌ´Ù [4].

¡¡

Ư¼º ÀåÁ¡

- JDK 1.1.x Áö¿ø JDK 1.1.x APIµéÀ» Áö¿øÇÏ´Â ¾ÖÇø´µé°úÀÇ È£È¯¼º.

- i18N/110n ÀÔ·Â method, ±¹Á¦ÀûÀÎ ÆùÆ®, locale ¹× codesetÀ» Áö¿øÇÔÀ¸·Î½á

JavaOSÀÇ ±¹Áö ¹öÀü (localized version) Çã¿ë.

»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º´Â localeÀ» ±âÁØÀ¸·Î ÀÚµ¿ÀûÀ¸·Î äÅõǰí,

¼Ò½º Äڵ带 º¯°æÇÏÁö ¾Ê°í ´Ù¸¥ localeµé¿¡ ´ëÇÑ ±¹ÁöÈ­

(localization)¸¦ °¡´ÉÄÉ ÇÔ. - Font Client/Server ±¸Á¶ »ç¿ëµÈ ½Ã½ºÅÛ ¸Þ¸ð¸®ÀÇ ¾çÀ» ÁÙÀ̱â À§ÇØ ÇÊ¿äÇÑ ±×¸²¹®ÀÚ µéÀÇ ¼­¹ö ´Ù¿î·Îµù. - PPP¿Í Dialer »ç¿ëÀÚµéÀÌ ¼­·Î ´Ù¸¥ ISP³ª ȸ»çÀÇ ÀÎÆ®¶ó³ÝÀ» ÅëÇØ ÀÎÅͳÝÀ»

ÀÎÅÍÆäÀ̽º ¿ø°Ý Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÜ. ¾ÈÀüÇÑ ·Î±äÀ» À§ÇØ CHAP°ú

PAP Áö¿ø. - Local Printing »ç¿ëÀÚµéÀº Postscript ¶Ç´Â HP PCL ÇÁ¸°Å͸¦ Á÷Á¢ serial ¶Ç´Â parallel port¿¡ ¿¬°áÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥À̳ª ¾ÖÇø´µîÀ» Àμâ ÇÒ

¼ö ÀÖ½¿. ¶ÇÇÑ, non-latin1 ¾ð¾îµéÀÇ Àμ⵵ Áö¿øÇÔ.

- SSL ¹× HTTP-S Áö¿ø ¾÷°è Ç¥ÁØÀÎ SSL V3¿Í ¿©·¯ Á¾·ùÀÇ cipher suiteµéÀ» Áö¿ø. ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ´Â »óÀ§ÀÇ API °èÃþ¿¡¼­ ¾ÈÀüÇÑ ¿¬°áÀÌ ÁÖ´Â

ÀÕÁ¡À» ÀÌ¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ±×µéÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ ³»ºÎ¿¡ Á÷Á¢

³»ÀåÇÒ ¼ö´Â ¾øÀ½.

- ÀÀ¿ë ÇÁ·Î±×·¥ ³»Àå JavaOS¿¡¼­ ¼­·Î ´Ù¸¥ ÁÖ¿ä Java ÀÀ¿ëÇÁ·Î±×·¥µéÀ» ³»Àå½ÃŰ°í ¾µ ¼ö ÀÖ´Â ¹æ¹ý Á¦°ø. - Serial Port API ¹ÙÄÚµå ÆÇµ¶±â, ½º¸¶Æ® Ä«µå ÆÇµ¶±â µîÀ» Áö¿øÇÏ´Â serial driver µéÀÇ °³¹ß Çã¿ë. - À¶Å뼺 ÀÖ´Â È­¸éÀÇ ÇØ»óµµ¸¦ »ç¿ëÀÚ°¡ Á¶Á¤ÇÒ ¼ö ÀÖ°Ô Çã¿ë.

±×·¡ÇȽº ½Ã½ºÅÛ

- JIT Áö¿ø °í¼º´ÉÀ» ¿ä±¸ÇÏ´Â Á¦Ç°À» À§ÇØ Å¬¶óÀÌ¾ðÆ® Ãø¿¡ JIT Áö¿ø.

¡¡

¡¡

V. °á·Ð

º» °í¿¡¼­´Â JavaSoft¿¡ ÀÇÇØ °³¹ßµÈ ¼ÒÇüÀÇ È¿À²ÀûÀÎ ¿î¿µ ȯ°æ (operating environment)À̶ó°í ÇÒ ¼ö ÀÖ´Â JavaOS¿¡ ´ëÇØ ¹öÀü 1.0À» Áß½ÉÀ¸·Î ±â¼úÇÏ¿´´Ù. JavaOSÀÇ Á¾·ù¿¡´Â Å©°Ô ±âÁ¸ÀÇ È£½ºÆ® ¿î¿µÃ¼Á¦¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â °Í°ú È£½ºÆ® ¿î¿µÃ¼Á¦ ¾øÀÌ »ç¿ëµÇ´Â °ÍÀÇ µÎ °¡Áö°¡ ÀÖ´Ù. È£½ºÆ® ¿î¿µÃ¼Á¦°¡ ÇÊ¿ä ¾ø´Â JavaOSÀÇ ÁÖ¿ä ±¸¼º ¿ä¼Ò·Î´Â Java Kernel, Java Virtual Machine (JVM), Device Drivers, Network Protocol Suite, Windows and Graphics, ±×¸®°í JavaOS API µîÀÌ ÀÖ´Ù. JavaOS°¡ OSÀΰ¡¿¡ ´ëÇØ¼­´Â °¢ÀÚÀÇ °üÁ¡¿¡ µû¶ó ´Ù¸£¸ç, JavaOSÀÇ ¼º´ÉÀº ÇöÀç »ó´çÈ÷ ÁÁÀº °ÍÀ¸·Î Æò°¡µÇ°í ÀÖ°í, °ø°£ ÀÌ¿ëÀÇ Ãø¸é¿¡µµ È¿À²ÀûÀÌ´Ù°í ÇÒ ¼ö ÀÖ´Ù. JavaOSÀÇ ´ëÇ¥ÀûÀÎ ÀåÁ¡À¸·Î´Â ´Ü¼ø¼º ¹× È¿À²¼ºÀ» µé ¼ö ÀÖÀ¸¸ç, ÇöÀç ÀÎÆ®¶ó³Ý ÄÄÇ»ÅÍ, ÀÎÅÍ³Ý ÄÄÇ»ÅÍ, ±×¸®°í ³»ÀåÇü Àåºñµî¿¡ Æ÷ÆÃÀÌ °¡´ÉÇÏ´Ù.

JavaOSÀÇ Æ÷ÆÃÀº Memory, Interrupts, Standard Devices, Drivers, Multimedia, Networking, ±×¸®°í installation ¹× booting¿¡ ´ëÇÑ ´Ù¾çÇÑ ±×·ìÀÇ ÀÎÅÍÆäÀ̽ºmethodµéÀÇ ±â´ÉÀ» ÀÌÇØÇϰí À̵éÀ» ÀûÀýÈ÷ ÀÌ¿ëÇÔÀ¸·Î½á °¡´ÉÇÏ´Ù.

JavaOSÀÇ ´ëÇ¥ÀûÀΠƯ¼ºÀ¸·Î´Â kernel¿¡ ÀÇÇÑ thread, trap, interrupt, ¹× bootstrappingÁö¿øÀ» µé ¼ö ÀÖ°í, ÀÌ·¯ÇÑ Æ¯¼ºµéÀÇ ¼º´É °³¼±°ú »õ·Î¿î Ư¼ºµéÀ» ±¸ÇöÇϱâ À§ÇÑ ¿¬±¸°¡ ÇöÀçµµ ²÷ÀÓ ¾øÀÌ ÁøÇàµÇ°í ÀÖ´Ù. ±× Áß ´ëÇ¥ÀûÀÎ ¿¹·Î´Â JavaOS Luna project [4, 5, 6]¸¦ µé ¼ö ÀÖ´Ù.

¡¡

AWT Abstract Window Toolkit

API Application Program(ming) Interface

DHCP Dynamic Host Configuration Protocol

DNS Domain Naming System

ICMP Internet Control Message Protocol

IP Internet Protocol

ISP Internet Service Provider

JDK Java Development Kit

JIT Just-In-Time

MMU Memory Management Unit

NC Network Computer

PDA Personal Digital Assistant

PPP Point-to-Point Protocol

SNMP Simple Network Management Protocol

SSL Secure Sockets Layer

STB Set-Top Box

TCP Transmission Control Protocol

UDP User Datagram Protocol

¡¡

  1. JavaOS¢â: A Standalone Java¢â Environment - A White Paper, Peter W. Madany, JavaSoft, 1996.
  2. An Introduction to JavaOS Internals, JavaSoft, August 1997.
  3. JavaOS¢â 1.0 Porting Guide, JavaSoft Systems Software Group, Sun Microsystems, Inc., 1996.
  4. JavaOS Luna Project Plan, Sun Microsystems, Inc., March 1997.
  5. JavaOS Luna Project Plan I18n and L10n Specification, Sun Microsystems, Inc., March 1997.
  6. Luna 1.1 Beta Specification, JavaSoft Systems Group, Sun Microssystems, Inc., September 1997.
  7. JavaOS¢â Porting Guide, Version 1.1, Draft, JavaSoft Systems Software Group, Sun Microsystems, Inc., October 8, 1997.
¡¡