1.LINUXç³»ç»ä»ç»
2.å¦ä½ç¼è¯POCO
3.JAVA程序应用与开发(java应用开发技术实例教程)
4.汽车领域hypervisor
LINUXç³»ç»ä»ç»
åµå ¥å¼Linuxç³»ç»ç设计ä¸åºç¨
æè¦ï¼éçåµå ¥å¼Linuxç³»ç»çè¿ éåå±ï¼åµå ¥å¼Linuxå·²åå±æ为åµå ¥å¼æä½ç³»ç»çä¸ä¸ªéè¦åæ¯ãæ¬æä»ç»äºåµå ¥å¼Linuxç设计åå ç§æµè¡çåµå ¥å¼Linuxç³»ç»ã
å ³é®è¯ï¼åµå ¥å¼Linux
ä¸ãå¼è¨
åµå ¥å¼ç³»ç»(Embedded Systems)æ¯æ ¹æ®åºç¨çè¦æ±ï¼å°æä½ç³»ç»ååè½è½¯ä»¶éæäºè®¡ç®æºç¡¬ä»¶ç³»ç»ä¹ä¸ï¼ä»èå®ç°è½¯ä»¶ä¸ç¡¬ä»¶ä¸ä½åç计ç®æºç³»ç»ãåµå ¥å¼ç³»ç»åºç°äºå¹´ä»£ææï¼å®æå被ç¨äºæ§å¶æºçµçµè¯äº¤æ¢æºï¼å¦ä»å·²è¢«å¹¿æ³çåºç¨äºå·¥ä¸å¶é ãè¿ç¨æ§å¶ãé讯ã仪å¨ã仪表ã汽车ãè¹è¶ãèªç©ºãèªå¤©ãåäºè£ å¤ãæ¶è´¹ç±»äº§åçä¼å¤é¢åãåµå ¥å¼ç³»ç»å¨æ°éä¸è¿è¿è¶ è¿äºåç§éç¨è®¡ç®æºç³»ç»ï¼è®¡ç®æºç³»ç»æ ¸å¿CPUï¼æ¯å¹´å¨å ¨çèå´å ç产é大æ¦å¨äºå亿é¢å·¦å³ï¼å ¶ä¸è¶ è¿ï¼ åºç¨äºåç±»ä¸ç¨æ§å¾å¼ºçåµå ¥å¼ç³»ç»ã
ä¸è¬ç说ï¼å¡æ¯å¸¦æå¾®å¤çå¨çä¸ç¨è½¯ç¡¬ä»¶ç³»ç»é½å¯ä»¥ç§°ä¸ºåµå ¥å¼ç³»ç»ãåéç¨ç计ç®å¹³å°ç¸æ¯ï¼åµå ¥å¼ç³»ç»å¾å¾å ·æåè½åä¸ãä½ç§¯å°ãåèä½ãå¯é æ§é«ãåªè£æ§å¥½ã软硬件éæ度é«ã计ç®è½åç¸å¯¹è¾ä½çç¹ç¹ãå¤å¹´æ¥ï¼åµå ¥å¼è®¾å¤ä¸æ²¡ææä½ç³»ç»ï¼å ¶ä¸»è¦åå æäºï¼é¦å ï¼è¯¸å¦æ´è¡£æºã微波çãçµå°ç®±è¿æ ·ç设å¤ä» ä» éè¦ä¸éç®åçæ§å¶ç¨åºï¼ä»¥ç®¡çæ°éæéçæé®åæ示ç¯ï¼æ²¡æ使ç¨æä½ç³»ç»çå¿ è¦ï¼å ¶æ¬¡ï¼å®å¾å¾åªå ·ææéç硬件èµæºï¼ä¸è¶³ä»¥æ¯æä¸ä¸ªæä½ç³»ç»ã
ç¶èï¼éç硬件çåå±ï¼åµå ¥å¼ç³»ç»åå¾è¶æ¥è¶å¤æï¼æåçæ§å¶ç¨åºä¸éæ¥çå å ¥äºè®¸å¤åè½ï¼èè¿äºåè½ä¸æå¾å¤å¯ä»¥ç±æä½ç³»ç»æä¾ãäºæ¯ï¼å¨å¹´ä»£æ«æåºç°äºåµå ¥å¼æä½ç³»ç»(Embedded Operating Systems)ï¼å®çåºç°å¤§å¤§ç®åäºåºç¨ç¨åºè®¾è®¡ï¼å¹¶å¯ä»¥ææçä¿é软件质éå缩çå¼åå¨æãç®åçESä¸è¬å¹¶ä¸ä½¿ç¨æä½ç³»ç»ï¼åªå å«ä¸äºæ§å¶æµç¨ï¼ä½æ¯éçåµå ¥å¼æä½ç³»ç»å¨å¤ææ§ä¸çå¢é¿ï¼ç®åçæµç¨æ§å¶å°±ä¸è½æ»¡è¶³ç³»ç»çè¦æ±ï¼è¿æ¯å°±å¿ é¡»èè使ç¨æä½ç³»ç»åç³»ç»è½¯ä»¶ãå æ¤ï¼åµå ¥å¼æä½ç³»ç»å°±åºè¿èçã
éçEOSç广æ³åºç¨ï¼ä¸çå·²æ¨åºä¸äºåºç¨æ¯è¾æåçEOS产åãå½çº³èµ·æ¥EOSåºè¯¥å ·æ以ä¸å 个ç¹ç¹ï¼å°å·§ãå®æ¶æ§ãå¯è£ å¸ãåºå代ç ã弱交äºæ§ã强稳å®æ§åç»ä¸çæ¥å£ãç®å使ç¨æå¤çEOS产åå æ¬æï¼VxworkãQNXãPalmOSãWindowsCEãpSOSãHopen OS(å½å å¯æéå¢å ¬å¸èªä¸»ç å¶å¼å)çãå ¶ä¸ï¼Vxwork使ç¨æ为广æ³ãå¸åºå æçæé«ï¼å ¶çªåºç¹ç¹æ¯å®æ¶æ§å¼º(éç¨ä¼å 级æ¢å å轮转è°åº¦çæºå¶)ï¼é¤æ¤ä¹å¤ï¼å ¶å¯é æ§åå¯åªè£æ§ä¹ç¸å½ä¸éãQNXæ¯ä¸ç§ä¼¸ç¼©æ§æä½³çç³»ç»ï¼å ¶æ ¸å¿å ä¸å®æ¶POSIXç¯å¢åä¸ä¸ªå®æ´ççªå£ç³»ç»è¿ä¸å°ä¸å ãç¸æ¯ä¹ä¸ï¼Microsoft WinCEçæ ¸å¿ä½ç§¯åºå¤§ï¼å®æ¶æ§è½ä¹å·®å¼ºäººæï¼ä½ç±äºWindowsç³»åå好çç¨æ·çé¢å为ç¨åºåæçæçAPIï¼å¹¶æç»IEãOfficeçåºç¨ç¨åºï¼æ£éæ¸è·å¾æ´å¤§çå¸åºä»½é¢ãèä¸è¿äºåä¸åçæä½ç³»ç»ç¸æ¯ï¼Linuxå·²ç»è¶æ¥è¶åå°äººä»¬ç注æã
äºãåµå ¥å¼Linuxæ¦è¿°
Linuxæ¯ä¸ä¸ªæçè稳å®çç½ç»æä½ç³»ç»ãå°Linuxæ¤å ¥åµå ¥å¼è®¾å¤å ·æä¼å¤çä¼ç¹ãé¦å ï¼Linuxçæºä»£ç æ¯å¼æ¾çï¼ä»»ä½äººé½å¯ä»¥è·å并修æ¹ï¼ç¨ä¹å¼åèªå·±ç产åãå ¶æ¬¡ï¼Lirmxæ¯å¯ä»¥å®å¶çï¼å ¶ç³»ç»å æ ¸æå°åªæ约kBãä¸ä¸ªå¸¦æä¸æç³»ç»åå¾å½¢ç¨æ·çé¢çæ ¸å¿ç¨åºä¹å¯ä»¥åå°ä¸è¶³1MBï¼å¹¶ä¸åæ ·ç¨³å®ãå¦å¤ï¼å®åå¤æ°Unixç³»ç»å ¼å®¹ï¼åºç¨ç¨åºçå¼åå移æ¤ç¸å½å®¹æãåæ¶ï¼ç±äºå ·æè¯å¥½çå¯ç§»æ¤æ§ï¼äººä»¬å·²æå使Linuxè¿è¡äºæ°ç¾ç§ç¡¬ä»¶å¹³å°ä¹ä¸ã
ç¶èï¼Linux并éä¸é¨ä¸ºå®æ¶æ§åºç¨è设计ï¼å æ¤å¦ææ³å¨å¯¹å®æ¶æ§è¦æ±è¾é«çåµå ¥å¼ç³»ç»ä¸è¿è¡Linuxï¼å°±å¿ 须为ä¹æ·»å å®æ¶è½¯ä»¶æ¨¡åãè¿äºæ¨¡åè¿è¡çå æ ¸ç©ºé´æ£æ¯æä½ç³»ç»å®ç°è¿ç¨è°åº¦ãä¸æå¤çåç¨åºæ§è¡çé¨åï¼å æ¤é误ç代ç å¯è½ä¼ç ´åæä½ç³»ç»ï¼è¿èå½±åæ´ä¸ªç³»ç»çå¯é æ§å稳å®æ§ãLinuxçä¼å¤ä¼ç¹è¿æ¯ä½¿å®å¨åµå ¥å¼é¢åè·å¾äºå¹¿æ³çåºç¨ï¼å¹¶åºç°äºæ°éå¯è§çåµå ¥å¼Linuxç³»ç»ãå ¶ä¸æ代表æ§çå æ¬ï¼uClinuxãETLinuxãThinLinuxãLOAFçãETLinuxé常ç¨äºå¨å°åå·¥ä¸è®¡ç®æºï¼å°¤å ¶æ¯PCï¼æ¨¡åãThinLinuxé¢åä¸ç¨çç §ç¸æºæå¡å¨ãX-æ§å¶å¨ãMP3ææ¾å¨åå ¶å®ç±»ä¼¼çåµå ¥å¼åºç¨ãLOAFæ¯Linux On A Floppyç缩ç¥è¯ï¼å®è¿è¡å¨å¹³å°ä¸ã
ä¸ãLinuxä½ä¸ºåµå ¥å¼æä½ç³»ç»çä¼å¿
Linuxä½ä¸ºåµå ¥å¼æä½ç³»ç»çä¼å¿ä¸»è¦æ以ä¸å ç¹ï¼
1ã å¯åºç¨äºå¤ç§ç¡¬ä»¶å¹³å°ãLinuxå·²ç»è¢«ç§»æ¤å°å¤ç§ç¡¬ä»¶å¹³å°ï¼è¿å¯¹äºç»è´¹ï¼æ¶é´åéå¶çç 究ä¸å¼å项ç®æ¯å¾æå¸å¼åçãååå¯ä»¥å¨æ åå¹³å°ä¸å¼åå移æ¤å°å ·ä½ç硬件ä¸ï¼å å¿«äºè½¯ä»¶ä¸ç¡¬ä»¶çå¼åè¿ç¨ãLinuxéç¨ä¸ä¸ªç»ä¸çæ¡æ¶å¯¹ç¡¬ä»¶è¿è¡ç®¡çï¼ä»ä¸ä¸ªç¡¬ä»¶å¹³å°å°å¦ä¸ä¸ªç¡¬ä»¶å¹³å°çæ¹å¨ä¸ä¸å±åºç¨æ å ³ãLinuxå¯ä»¥éæå°é ç½®ï¼ä¸éè¦ä»»ä½ç许å¯è¯æå家çåä½å ³ç³»ï¼æºä»£ç å¯ä»¥å è´¹å¾å°ãè¿ä½¿å¾éç¨Linuxä½ä¸ºæä½ç³»ç»ä¸ä¼éå°ä»»ä½å ³äºçæççº çº·ã毫æ çé®ï¼è¿ä¼èç大éçå¼åè´¹ç¨ãæ¬èº«å ç½®ç½ç»æ¯æï¼èç®ååµå ¥å¼ç³»ç»å¯¹ç½ç»æ¯æè¦æ±è¶æ¥è¶é«ãLinuxçé«åº¦æ¨¡åå使添å é¨ä»¶é常容æã
2ã Linuxæ¯ä¸ä¸ªåUnixç¸ä¼¼ã以å æ ¸ä¸ºåºç¡çãå ·æå®å ¨çå å访é®æ§å¶ï¼æ¯æ大é硬件(å æ¬Xï¼AlphaãARMåMotorolaçç°æç大é¨åè¯ç)çç¹æ§çä¸ç§éç¨æä½ç³»ç»ãå ¶ç¨åºæºç å ¨é¨å ¬å¼ï¼ä»»ä½äººå¯ä»¥ä¿®æ¹å¹¶å¨GUNéç¨å ¬å ±è®¸å¯è¯(GNU General Public License)ä¸åè¡ãè¿æ ·ï¼å¼å人åå¯ä»¥å¯¹æä½ç³»ç»è¿è¡å®å¶ï¼éåºå ¶ç¹æ®éè¦ã
3ã Linux带æUnixç¨æ·çæçå®åçå¼åå·¥å ·ï¼å ä¹ææçUnixç³»ç»çåºç¨è½¯ä»¶é½å·²ç§»æ¤å°äºLinuxä¸ãLinuxè¿æä¾äºå¼ºå¤§çç½ç»åè½ï¼æå¤ç§å¯éæ©çªå£ç®¡çå¨(X Windows)ãå ¶å¼ºå¤§çè¯è¨ç¼è¯å¨GCCï¼C++çä¹å¯ä»¥å¾å®¹æå¾å°ï¼ä¸ä½æçå®åï¼èä¸ä½¿ç¨æ¹ä¾¿ã
åãåµå ¥å¼Linuxç建ç«
å®æ´çåµå ¥å¼Linux解å³æ¹æ¡åºå æ¬åµå ¥å¼Linuxæä½ç³»ç»å æ ¸ãè¿è¡ç¯å¢ãå¾å½¢åçé¢ååºç¨è½¯ä»¶çãç±äºåµå ¥å¼è®¾å¤çç¹æ®è¦æ±ï¼åµå ¥å¼Linux解å³æ¹æ¡ä¸çå æ ¸ãç¯å¢ãGUIçé½ä¸æ åLinuxæå¾å¤§ä¸åï¼å ¶ä¸»è¦æææ¯å¦ä½å¨çå°çFLASHãROMåå åä¸å®ç°é«è´¨éçä»»å¡å®æ¶è°åº¦ãå¾å½¢åæ¾ç¤ºãç½ç»éä¿¡çåè½ã
1ã ç²¾ç®å æ ¸
Linuxå æ ¸æèªå·±çç»æä½ç³»ï¼å ¶ä¸è¿ç¨ç®¡çãå å管çåæ件系ç»æ¯å ¶æåºæ¬ç3个åç³»ç»ãå¾1ç®å表示äºå®çæ¡æ¶ãç¨æ·è¿ç¨å¯ç´æ¥éè¿ç³»ç»è°ç¨æè å½æ°åºæ¥è®¿é®å æ ¸èµæºãæ£å 为Linuxå æ ¸å ·æè¿æ ·çç»æï¼å æ¤ä¿®æ¹å æ ¸æ¶å¿ 须注æå个åç³»ç»ä¹é´çåè°ã
åµå ¥å¼Linuxå æ ¸ä¸è¬ç±æ åLinuxå æ ¸è£åªèæ¥ãç¨æ·å¯æ ¹æ®éæ±é 置系ç»ï¼åé¤ä¸éçæå¡åè½ãæ件系ç»å设å¤é©±å¨ãç»è¿è£åªãå缩åçç³»ç»å æ ¸ä¸è¬åªækå·¦å³ï¼ååéååµå ¥å¼è®¾å¤ãåæ åLinuxä¸åçæ¯åµå ¥å¼Linuxå¿ é¡»è¦å®ç°ä»FLASHæROMçå¯å¨ãæ åLinuxå¯å¨ä»£ç å®ç°äºç³»ç»åå§ååä»è½¯çã硬çOçåºå¼å¯¼å æ ¸ãåµå ¥å¼Linuxä¸è¬ä¿åå¨FLASHæROMä¸ï¼æ åLILOæ æ³å¼å¯¼ãå¨æ¯æç´æ¥ä»FLASH设å¤å¼å¯¼çç³»ç»ä¸ï¼å¦åæå ¬å¸çuClinuxï¼å¼å¯¼ç¨åºä¸»è¦å®æ对硬件系ç»çåå§åå·¥ä½åæä½ç³»ç»ç解åã移ä½å·¥ä½ãå¨ä¸æ¯æç´æ¥ä»FLASHå¼å¯¼çç³»ç»ä¸ï¼FLASH设å¤åªè½ä½ä¸ºéå¼å¯¼ç£ç使ç¨ãæ¤æ¶ï¼å¯éç¨å ä»ç¡¬çæ软çå è½½ä¸ä¸ªå°æä½ç³»ç»ï¼å¦åµå ¥å¼DOSï¼ç¶ååæ§è¡"Loadlin"å è½½ç¨åºä»FLASHå¼å¯¼åµå ¥å¼Linuxã
对æ åLinuxçä¿®æ¹ä¸»è¦æ¯èæå ååè°åº¦ç¨åºé¨åçæ¹å¨ãå 为æ åLinuxç³»ç»ä½¿ç¨èæå å管ççç®çæ¯ä¸ºäºè½åæ¶è¿è¡å¤ä¸ªè¿ç¨ï¼ä½æ¯è¿æ ·æ¯ä¸ªå¾ è¿è¡çè¿ç¨æè½åé çCPUæ¶é´çå°±åéå¶ï¼èµæºç使ç¨æçå°±ä½ãè¿æ ·å¯¹äºå®æ¶æ§è¦æ±è¾é«çåµå ¥å¼ç³»ç»æ¥è¯´ï¼å®æ¶ä»»å¡å¾å¾è¦æ±CPUå ·æå¾é«ççªåå¤çè½åï¼å³å¨æäºæ¶åéè¦æé«çå¤çæçï¼å æ¤éè¦å±è½å æ ¸çèæå å管çæºå¶ã对äºæ 硬ç设å¤çåµå ¥å¼ç³»ç»ï¼ä¸å¿ éç¨èå管çã强å®æ¶éæ±çåµå ¥å¼åºç¨å¯ä»¥éè¿ä¿®æ¹ä»»å¡è°åº¦æ¨¡åå®ç°ï¼ä¸»è¦æ¯å¨å æ ¸å设å¤é©±å¨ç¨åºä¸å å ¥äºè®¸å¤åæ¢ç¹ãå¨è¯¥ç¹å¤ï¼ç³»ç»æ£æµæ¯å¦åå¨æªå¤ççç´§æ¥ä¸æï¼æåå¥å¤ºå æ ¸çè¿è¡ï¼åæ¶å¤çä¸æãå®ç°å®æ¶æ§æå¡çä¸ä¸ªè¾å¥½çæ¹æ³æ¯å¨æ åçLinuxå æ ¸ä¸å¢å ä¸ä¸ªå®æ¶å æ ¸ï¼æ åLinuxå æ ¸ä½ä¸ºä¸ä¸ªä»»å¡è¿è¡äºå®æ¶å æ ¸ä¸ï¼å¼ºå®æ¶æ§ä»»å¡ä¹ç´æ¥è¿è¡å¨å®æ¶å æ ¸ä¸ï¼å¦RT-Linuxçã
æ件系ç»æ¯åµå ¥å¼Linuxæä½ç³»ç»å¿ ä¸å¯å°çãä½æ åLinuxæ¯æ大éçæ件系ç»ï¼å æ¤é¤äºæ»¡è¶³ç³»ç»çæ£å¸¸è¿è¡éè¦èä¿çä¸ç§å¤ï¼å ¶å®çå ¨é¨å¯ä»¥å é¤ï¼å©ç¨åæç设置é项å¯ä»¥ç§»é¤ãä¸è¬åµå ¥å¼è®¾å¤æ件系ç»ä¸»è¦ä½¿ç¨RamDiskææ¯åç½ç»æ件系ç»ææ¯ãRamDiskå¯é©»çäºFlashï¼è¿è¡æ¶å è½½å°å åä¸ã
2ã ç²¾ç®è¿è¡ç¯å¢
Linuxé常çè¿è¡ç¯å¢æç¨æ·è¿è¡ä»»ä½åºç¨çåºç¡è®¾æ½ï¼ä¸»è¦å æ¬å½æ°åºååºæ¬å½ä»¤éçãæ åLinuxç³»ç»åæ¶åç¨æ·æä¾äºéæåå¨æå½æ°åºãéæå½æ°åºå¨çæåºç¨æ¶ç´æ¥é¾æ¥å°ç¨æ·åºç¨ä¸ãå¨æåºå¨åºç¨è¿è¡æ¶æé¾æ¥ãç±äºåµå ¥å¼ç³»ç»åºç¨ä¸è¬é½æ¯å¨å¼åå¹³å°ä¸é¢å çæçï¼å æ¤åµå ¥å¼ç³»ç»åªéååºç¨æä¾å¨æå½æ°åºãLinuxåºç¨è¿è¡æéçå½æ°åºä¸»è¦æCåºãæ°å¦åºã线ç¨åºãå å¯åºãç½ç»éä¿¡åºçãå ¶ä¸æåºæ¬çæ¯Cè¯è¨çè¿è¡åºglibãè¿ä¸ªåºä¸»è¦å®æåºæ¬çè¾å ¥è¾åºï¼å å访é®ï¼æ件å¤çãä¸ä¸ªæ åçglibåºå¤§çº¦è¦kBåå¨ç©ºé´ï¼èèå°åµå ¥å¼Linuxå æ ¸å¾å¾å¾å°ï¼è¿ç§è¿è¡åºå®å¨å¤ªå¤§ï¼æ们åäºä¸äºç²¾ç®çå·¥ä½ï¼æ¹æ³æ两ç§ï¼(1)ã使ç¨éæè¿æ¥çæ¹æ³ï¼å®å ¨ä¸ä½¿ç¨è¿è¡åºå¨æè¿æ¥ï¼(2)ã对è¿ä¸ªåºçå½æ°è¿è¡ç²¾ç®ã
å¨ä¸ä¸ªæ¡é¢ç³»ç»ä¸ï¼ä½¿ç¨å¨æè¿æ¥å¯ä»¥å¸¦æ¥è®¸å¤å¥½å¤ã使ç¨å¨æè¿æ¥åºï¼å¯ä»¥è®©åºç¨ç¨åºè·å½æ°åºçæ´æ°ãå级å离ï¼ä¾¿äºç»´æ¤ï¼å¯ä»¥è®©åæ¶è¿è¡çå¤ä¸ªç¨åºå ±äº«ä¸æ®µä»£ç ãä½æ¯ï¼å¨åµå ¥å¼ç³»ç»ä¸ï¼å¾å°æå¤ä¸ªç¨åºå¹¶è¡çå¯è½ï¼ç¨åºçç»´æ¤ï¼å°¤å ¶æ¯åºå½æ°çç»´æ¤æ´æ°æ¯ä¸å¸¸è§çãè¿æ¶ï¼ä½¿ç¨éæè¿æ¥çä¼å¿å°±æ为ææ¾ãå 为éæè¿æ¥å¯ä»¥åªå°åºä¸ç¨å°çé¨åè¿æ¥è¿ç¨åºãå¨åºç¨ç¨åºè¾å°(å°äº5)çæ åµä¸ï¼éæè¿æ¥å¯ä»¥è¾¾å°è¾å¥½çç»æã为äºä¾¿äºå°æ¥æ©å çéè¦ï¼æ们ä¹éç¨ç¬¬äºç§æ¹æ³ï¼é对æ们çéè¦ï¼å¯¹åºå½æ°çå 容è¿è¡ç²¾ç®ï¼åªä¿çä¸äºåºæ¬åè½ï¼è¿æä¸ç§æ¹æ³æ¯éç¨å ¶å®çCè¯è¨è¿è¡åºãä½æ¯è¿äºåºå¯¹å ¼å®¹æ§å½±åå¾å¤§ã
åºæ¬å½ä»¤éåæ ·æ¯è¿è¡ç¨æ·åºç¨çåºç¡ï¼ä¸»è¦å æ¬åå§åè¿ç¨initï¼ç»ç«¯è·ågettyãShellååºæ¬å½ä»¤çãåµå ¥å¼ç³»ç»çå¯å¨è¿ç¨å¯è½ä¸æ åLinuxä¸åï¼ä¾å¦è·³è¿ç»å½è¿ç¨ç´æ¥å¯å¨GUIçãè¿å°±è¦æ±ä¿®æ¹initï¼gettyçãæ åLinuxå½ä»¤éåæ ·ç±äºä½ç§¯é®é¢æ æ³ç´æ¥åºç¨äºåµå ¥å¼ç¯å¢ãç®åï¼å°å½ä»¤éç解å³æ¹æ³ä¸»è¦æéææ¹æ³åæ±ç¼æ¹æ³ä¸¤ç§ãéææ¹æ³éç¨éæå ¬å ±é¨ååå°å½ä»¤éæ´ä½ä½ç§¯ï¼ç¨Cå®ç°ï¼æè¾å¥½çå¹³å°ç§»æ¤æ§ï¼æ±ç¼æ¹æ³åéç¨æ±ç¼ç¼ç¨åå°æ¯ä¸ªå½ä»¤çä½ç§¯ï¼è¿æ ·å¯ä½¿ä½ç§¯å¾å°ä½å ¶å¹³å°ç§»æ¤æ§è¾å·®ã
3ã åµå ¥å¼Linuxä¸çGUI
GUIå¨åµå ¥å¼ç³»ç»æè å®æ¶ç³»ç»ä¸çå°ä½è¶æ¥è¶éè¦ï¼æ¯å¦PDAãDVDææ¾æºãWAPææºçï¼é½éè¦ä¸ä¸ªå®æ´ï¼æ¼äº®çå¾å½¢ç¨æ·çé¢ãè¿äºç³»ç»å¯¹GUIçåºæ¬è¦æ±å æ¬ï¼(1)ãè½»åãå ç¨èµæºå°ï¼(2)ãé«æ§è½ï¼(3)ãé«å¯é æ§ï¼(4)ãå¯é ç½®ãè¿äºä¹æ为è¯ä»·åµå ¥å¼ç³»ç»çéè¦ææ ãç®åï¼åµå ¥å¼Linuxä¸çGUI主è¦æwinCEãMicro Windowã紧缩çX WindowãMiniGUI(å½å åå¾è¾å¥½çèªç±è½¯ä»¶ä¹ä¸)ãæ åLinuxçXfreeç±äºä½ç§¯åºå¤§ï¼è¿è¡ç¯å¢è¦æ±é«ï¼æ æ³è¿è¡äºåµå ¥å¼ç¯å¢ãåµå ¥å¼GUI主è¦éè¿åååè½ï¼éä½æ§è½æ¥å®ç°ä½ç§¯å°åå ç¨èµæºå°ãç®ååµå ¥å¼Linuxä¸çGUIç¯å¢ä¸»è¦æ两类ï¼Xç±»åwinç±»ãXç±»GUIå为æå¡æ¹å客æ·æ¹ä¸¤æ¹ãæå¡å¨æ¹æä¾é¼ æ ãé®çå¤çåæ¾ç¤ºåè½ï¼å®¢æ·æ¹æ¯ç¨æ·åºç¨ï¼æå¡æ¹å客æ·æ¹éè¿socketæ¥å£åXåè®®éä¿¡ãéç¨è¯¥æ¹å¼ååæå©äºè¿ç¨ç½ç»å¾å½¢åæå¡ï¼å®¢æ·æ¹åæå¡æ¹å¯éè¿ç½ç»å®ç°Xåè®®åå¾å½¢æ¾ç¤ºãå ¸åçXç±»GUIæMicro Windowã紧缩çX Windowçãwinç±»çGUIä¸åå¨å®¢æ·æ¹åæå¡æ¹ï¼æ¯ä¸ªä»»å¡é½èªæä¸ä½ï¼ä»»ä½ä»»å¡é´çåæ¢ãäºä»¶ååç±ä¸é¨ç管çä»»å¡è´è´£ãå¦wiCEãMiniGUIå°±æ¯ç±»ä¼¼äºwinç±»çGUIã
äºãå½åæµè¡çå ç§åµå ¥å¼Linuxç³»ç»
é¤äºæºè½æ°åç»ç«¯é¢å以å¤ï¼Linuxå¨ç§»å¨è®¡ç®å¹³å°ãæºè½å·¥ä¸æ§å¶ãéèä¸ç»ç«¯ç³»ç»ï¼çè³åäºé¢åé½æç广æ³çåºç¨åæ¯ãè¿äºLinux被ç»ç§°ä¸º"åµå ¥å¼Linux"ã
1ãRT-Linux
è¿æ¯ç±ç¾å½å¢¨è¥¿å¥çå·¥å¦é¢å¼åçåµå ¥å¼Linuxæä½ç³»ç»ãå°ç®å为æ¢ï¼RT-Linuxå·²ç»æåå°åºç¨äºèªå¤©é£æºç空é´æ°æ®ééãç§å¦ä»ªå¨æµæ§åçµå½±ç¹æå¾åå¤çç广æ³é¢åãRT-Linuxå¼åè 并没æé对å®æ¶æä½ç³»ç»çç¹æ§èéåLinuxçå æ ¸ï¼å 为è¿æ ·åçå·¥ä½éé常大ï¼èä¸è¦ä¿è¯å ¼å®¹æ§ä¹é常å°é¾ã为æ¤ï¼RT-Linuxæåºäºç²¾å·§çå æ ¸ï¼å¹¶ææ åçLinuxæ ¸å¿ä½ä¸ºå®æ¶æ ¸å¿çä¸ä¸ªè¿ç¨ï¼åç¨æ·çå®æ¶è¿ç¨ä¸èµ·è°åº¦ãè¿æ ·å¯¹Linuxå æ ¸çæ¹å¨é常å°ï¼å¹¶ä¸å åå©ç¨äºLinuxä¸ç°æç丰å¯ç软件èµæºã
2ãuClinux
uCLinuxæ¯Lineoå ¬å¸ç主æ产åï¼åæ¶ä¹æ¯å¼æ¾æºç çåµå ¥å¼Linuxçå ¸èä¹ä½ãuCLinux主è¦æ¯é对ç®æ å¤çå¨æ²¡æåå¨ç®¡çåå MMU(Memory Management Unit) çåµå ¥å¼ç³»ç»è设计çãå®å·²ç»è¢«æåå°ç§»æ¤å°äºå¾å¤å¹³å°ä¸ãç±äºæ²¡æMMUï¼å ¶å¤ä»»å¡çå®ç°éè¦ä¸å®æå·§ãuCLinuxæ¯ä¸ç§ä¼ç§çåµå ¥å¼Linuxçæ¬ï¼æ¯micro-Conrol-Linuxç缩åãå®ç§æ¿äºæ åLinuxçä¼è¯ç¹æ§ï¼ç»è¿åæ¹é¢çå°ååæ¹é ï¼å½¢æäºä¸ä¸ªé«åº¦ä¼åçã代ç ç´§åçåµå ¥å¼Linuxãè½ç¶å®çä½ç§¯å¾å°ï¼å´ä»ç¶ä¿çäºLinuxç大å¤æ°çä¼ç¹ï¼ç¨³å®ãè¯å¥½ç移æ¤æ§ãä¼ç§çç½ç»åè½ã对åç§æ件系ç»å®å¤çæ¯æåæ å丰å¯çAPIãå®ä¸ä¸ºåµå ¥å¼ç³»ç»åäºè®¸å¤å°ååçå·¥ä½ï¼ç®åå·²æ¯æå¤æ¬¾CPUãå ¶ç¼è¯åç®æ æ件å¯æ§å¶å¨å ç¾KBæ°é级ï¼å¹¶å·²ç»è¢«æåå°ç§»æ¤å°å¾å¤å¹³å°ä¸ã
3ãEmbedix
Embedixæ¯ç±åµå ¥å¼Linuxè¡ä¸ä¸»è¦ååä¹ä¸Luneoæ¨åºçï¼æ¯æ ¹æ®åµå ¥å¼åºç¨ç³»ç»çç¹ç¹éæ°è®¾è®¡çLinuxåè¡çæ¬ãEmbedixæä¾äºè¶ è¿ç§çLinuxç³»ç»æå¡ï¼å æ¬Webæå¡å¨çãç³»ç»éè¦æå°8MBå åï¼3MB ROMæå¿«ééªåãEmbedixåºäºLinux 2.2å æ ¸ï¼å¹¶å·²ç»æåå°ç§»æ¤å°äºIntel xåPowerPCå¤çå¨ç³»åä¸ãåå ¶å®çLinuxçæ¬ä¸æ ·ï¼Embedixå¯ä»¥å è´¹è·å¾ãLuneoè¿åå¸äºå¦ä¸ä¸ªéè¦ç软件产åï¼å®å¯ä»¥è®©å¨Windows CEä¸è¿è¡çç¨åºè½å¤å¨Embedixä¸è¿è¡ãLuneoè¿å°è®¡åæ¨åºEmbedixçå¼åè°è¯å·¥å ·å ãåºäºå¾å½¢çé¢çæµè§å¨çãå¯ä»¥è¯´ï¼Embedixæ¯ä¸ç§å®æ´çåµå ¥å¼Linux解å³æ¹æ¡ã
4ãXlinux
XLinuxæ¯ç±ç¾å½ç½èå ¬å¸æ¨åºï¼ä¸»è¦å¼åè æ¯éç豪ãä»å¨å çç½èå 个æå便å¼ååºäºåºäºXLinuxçãå·ç§°æ¯ä¸çä¸æå°çåµå ¥å¼Linuxç³»ç»ï¼å æ ¸åªæKBï¼èä¸è¿å¨ä¸æåå°ãXLinuxæ ¸å¿éç¨äº"è¶ åå é"ä¸å©ææ¯ï¼è®©Linuxæ ¸å¿ä¸ä» å¯è½ä¸æ åå符éç¸å®¹ï¼è¿å«çäº1 2个å½å®¶åå°åºçå符éãå æ¤ï¼XLinuxå¨æ¨å¹¿Linuxçå½é åºç¨æ¹é¢æç¬ç¹çä¼å¿ã
5ãPoketLinux
ç±Agendaå ¬å¸éç¨ãä½ä¸ºå ¶æ°äº§å"VR3PDA"çåµå ¥å¼Linuxæä½ç³»ç»ãå®å¯ä»¥æä¾è·¨æä½ç³»ç»æé ç»ä¸çãæ ååçåå¼æ¾çä¿¡æ¯éä¿¡åºç¡ç»æï¼å¨æ¤ç»æä¸å®ç°ç«¯å°ç«¯æ¹æ¡çå®æ´å¹³å°ãPoketLinuxèµæºæ¡æ¶å¼æ¾ï¼ä½¿æ®éç软件ç»æå¯ä»¥ä¸ºææç¨æ·æä¾ä¸è´çæå¡ãPoketLinuxå¹³å°ä½¿ç¨æ·çè§çº¿ä»è®¾å¤ãå¹³å°åç½ç»ä¸ç§»å¼ï¼ç±æ¤å¼åäºä¿¡æ¯ææ¯æ°æ¶ä»£ç产çãå¨PoketLinuxä¸ï¼ç§°ä¹ä¸ºç¨æ·åä¿¡æ¯äº¤æ¢(CIE)ï¼ä¹å°±æ¯æä¾å访é®ä¸ºæ¯ä¸ªç¨æ·éæ±èå®å¶ç"主é¢"ä¿¡æ¯çè½åï¼èä¸ç®¡æ£å¨ä½¿ç¨ç设å¤æ¯ä»ä¹ã
6ãMidoriLinux
ç±Transmetaå ¬å¸æ¨åºçMidoriLinuxæä½ç³»ç»ä»£ç å¼æ¾ï¼å¨GUNæ®éå ¬å ±è®¸å¯(GPL)ä¸åå¸ï¼å¯ä»¥å¨ä¸ç«å³è·å¾ãè¯¥å ¬å¸æ个å为"MidoriLinux计å"ã"MidoriLinux"è¿ä¸ªååæ¥æºäºæ¥æ¬ç"绿è²"---Midoriï¼ç¨æ¥åæ å ¶Linuxæä½ç³»ç»çç¯ä¿å¤è§ã
7ã红æåµå ¥å¼Linux
ç±å京ä¸ç§é¢çº¢æè½¯ä»¶å ¬å¸æ¨åºçåµå ¥å¼Linuxæ¯å½å åå¾è¾å¥½çä¸æ¬¾åµå ¥å¼æä½ç³»ç»ãç®åï¼ä¸ç§é¢è®¡ç®æèªè¡å¼åçå¼æ¾æºç çåµå ¥å¼æä½ç³»ç»---Easy Embedded OS(EEOS)ä¹å·²ç»å¼å§è¿å ¥å®ç¨é¶æ®µäºã该款åµå ¥å¼æä½ç³»ç»éç¹æ¯æp-Javaãç³»ç»ç®æ ä¸æ¹é¢æ¯å°ååï¼å¦ä¸æ¹é¢è½éç¨Linuxç驱å¨åå ¶å®æ¨¡åãç±äºæä¸ç§é¢è®¡ç®æç强大ç§ç åéååç¾ï¼EEOSææåå±æ为åè½å®åã稳å®ãå¯é çå½äº§åµå ¥å¼æä½ç³»ç»å¹³å°ã
å ãç»æè¯
ç±äºLinuxæ¯ä¸ä¸ªå æ ¸æºä»£ç å¼æ¾ãå ·å¤ä¸æ´å¥å·¥å ·é¾ãæ强大çç½ç»æ¯æåææ¬ä½å»çæä½ç³»ç»ï¼å æ¤åµå ¥å¼Linuxèªè¯çèµ·å°±ç§æ¿äºè¿ä¼å¤ç¬ç¹ä¼å¿ï¼è¿ä½¿å®æ£å¨å¹¶è¶æ¥è¶å¤å°åå°äººä»¬çå ³æ³¨ãæ®Even Dataæ°æ®æ¾ç¤ºï¼ææ使ç¨åµå ¥å¼Linuxçç¨æ·ä»å¹´çï¼ å¢å°å¹´ï¼ ï¼èåæVxworkåªæ¯ä»ï¼ å°ï¼ ï¼Win CEä»9ï¼ å°ï¼ ãå¦å¤ï¼å¨åµå ¥å¼Linuxçåç§åºç¨å¸åºä¸ï¼éä¿¡(è¯é³åæ°æ®)åå第ä¸ï¼å¹´çéå®é¢æ¯ä¸ç¾å ï¼èå¹´é¢è®¡å°è¾¾å°1.亿ç¾å ï¼å¯ä»¥é¢è§ï¼åµå ¥å¼Linuxå°å¨æªæ¥çéä¿¡ç¨åµå ¥å¼æä½ç³»ç»ä¸å æ®å¼ºæåçå°ä½
Linuxæ¯ç®åååç«ççæä½ç³»ç»ãå®æ¯ç±è¬å °èµ«å°è¾åºå¤§å¦çä¸ä¸ªå¤§å¦çLinus B. Torvoldså¨å¹´é¦æ¬¡ç¼åçãæ å¿æ§å¾æ æ¯ä¸ä¸ªå¯ç±çå°ä¼é¹ ã
Linuxæ¯ä¸ç§ç±»Unixç³»ç»ï¼Linuså½æ¶ç¼åå®çç®çæ¯ä¸ºäºæ¿ä»£ä¸ç§åå«Minixçæä½ç³»ç»ãMinixæ¯ç±ä¸ä¸ªåå«Andrew Tannebaumç计ç®æºææç¼åçï¼å½æ¶ç±äºUnixæ¯ä¸ä¸ªåä¸è½¯ä»¶ï¼å ¶æºä»£ç æ¯ä¸è½æ¿æ¥è¿è¡æå¦çï¼Andrewææå°±èªå·±ç¼åäºä¸ä¸ªç³»ç»ç¨äºæå¦ãæ
åçMinixç¨ä¸å¼ 软çå°±è½è£ ä¸ï¼éº»éè½å°ãäºèä¿±å ¨ï¼Minixå ·æä¸è¬æä½ç³»ç»çç¹å¾ï¼å®åæ¶å ¼å®¹Unixç³»ç»ã
Linuxæ¯ä¸ä¸ªå è´¹çæä½ç³»ç»ï¼ç¨æ·å¯ä»¥å è´¹è·å¾å ¶æºä»£ç ï¼å¹¶è½å¤éæä¿®æ¹ãå®æ¯å¨å ±ç¨è®¸å¯è¯GPL(General Public License)ä¿æ¤ä¸çèªç±è½¯ä»¶ï¼ä¹æ好å ç§çæ¬ï¼å¦Red Hat LinuxãSlackwareï¼ä»¥åå½å çXteam Linuxçã
Linuxå ·æ许å¤Unixç³»ç»çåè½åç¹ç¹ï¼è½å¤å ¼å®¹Unixï¼ä½æ éæ¯ä»Unixé«é¢çè´¹ç¨ãæ¯å¦ä¸ä¸ªUnixç¨åºåå¨åä½å¯ä»¥å¨Unixç³»ç»ä¸è¿è¡å·¥ä½ï¼åå°å®¶éå¨Linuxç³»ç»ä¸ä¹è½å®æåæ ·çå·¥ä½ï¼èä¸å¿ éæ°è´ä¹°Unixãè¦ç¥éUnixçä»·æ ¼æ¯å¸¸è§çWindowsè¦é«åºè¥å¹²åï¼åLinuxçä½å»æ´æ¯ç¸è·çè¿ã
Linuxçåºç¨ä¹åå广æ³ãSonyææ°çPS2游ææºå°±éç¨äºLinuxä½ä¸ºç³»ç»è½¯ä»¶ï¼ä½¿PS2æ身ä¸åï¼æ为äºä¸å°Linuxå·¥ä½ç«ãèåççµå½±ãæ³°å¦å°¼å å·ãçæ°åææ¯åæå·¥ä½å°±æ¯å©ç¨å¤å°Linuxæå¡å¨æ¥å®æçã
å¹´8ææ¥ï¼Linuxåå¸äºææ°çLinux 2.4.9çï¼å®ä¹å·²ç»åå²äºã
Linuxçä¼ç¹
Linuxçæµè¡æ¯å 为å®å ·æ许å¤è¯±äººä¹å¤ã
1ãå®å ¨å è´¹
Linuxæ¯ä¸æ¬¾å è´¹çæä½ç³»ç»ï¼ç¨æ·å¯ä»¥éè¿ç½ç»æå ¶ä»éå¾å è´¹è·å¾ï¼å¹¶å¯ä»¥ä»»æä¿®æ¹å ¶æºä»£ç ãè¿æ¯å ¶ä»çæä½ç³»ç»æåä¸å°çãæ£æ¯ç±äºè¿ä¸ç¹ï¼æ¥èªå ¨ä¸ççæ æ°ç¨åºååä¸äºLinuxçä¿®æ¹ãç¼åå·¥ä½ï¼ç¨åºåå¯ä»¥æ ¹æ®èªå·±çå ´è¶£åçµæå¯¹å ¶è¿è¡æ¹åãè¿è®©Linuxå¸æ¶äºæ æ°ç¨åºåçç²¾åï¼ä¸æ壮大ã
2ãå®å ¨å ¼å®¹POSIX 1.0æ å
è¿ä½¿å¾å¯ä»¥å¨Linuxä¸éè¿ç¸åºç模æå¨è¿è¡å¸¸è§çDOSãWindowsçç¨åºãè¿ä¸ºç¨æ·ä»Windows转å°Linuxå¥ å®äºåºç¡ã许å¤ç¨æ·å¨èè使ç¨Linuxæ¶ï¼å°±æ³å°ä»¥åå¨Windowsä¸å¸¸è§çç¨åºæ¯å¦è½æ£å¸¸è¿è¡ï¼è¿ä¸ç¹å°±æ¶é¤äºä»ä»¬ççèã
3ãå¤ç¨æ·ãå¤ä»»å¡
Linuxæ¯æå¤ç¨æ·ï¼å个ç¨æ·å¯¹äºèªå·±çæ件设å¤æèªå·±ç¹æ®çæå©ï¼ä¿è¯äºåç¨æ·ä¹é´äºä¸å½±åãå¤ä»»å¡åæ¯ç°å¨çµèæ主è¦çä¸ä¸ªç¹ç¹ï¼Linuxå¯ä»¥ä½¿å¤ä¸ªç¨åºåæ¶å¹¶ç¬ç«å°è¿è¡ã
4ãè¯å¥½ççé¢
Linuxåæ¶å ·æå符çé¢åå¾å½¢çé¢ãå¨å符çé¢ç¨æ·å¯ä»¥éè¿é®çè¾å ¥ç¸åºçæ令æ¥è¿è¡æä½ãå®åæ¶ä¹æä¾äºç±»ä¼¼Windowså¾å½¢çé¢çX-Windowsç³»ç»ï¼ç¨æ·å¯ä»¥ä½¿ç¨é¼ æ å¯¹å ¶è¿è¡æä½ãå¨X-Windowsç¯å¢ä¸å°±åå¨Windowsä¸ç¸ä¼¼ï¼å¯ä»¥è¯´æ¯ä¸ä¸ªLinuxççWindowsã
5ã丰å¯çç½ç»åè½
äºèç½æ¯å¨Unixçåºç¡ä¸ç¹è£èµ·æ¥çï¼Linuxçç½ç»åè½å½ç¶ä¸ä¼éè²ãå®çç½ç»åè½åå ¶å æ ¸ç´§å¯ç¸è¿ï¼å¨è¿æ¹é¢Linuxè¦ä¼äºå ¶ä»æä½ç³»ç»ãå¨Linuxä¸ï¼ç¨æ·å¯ä»¥è½»æ¾å®ç°ç½é¡µæµè§ãæä»¶ä¼ è¾ãè¿ç¨ç»éçç½ç»å·¥ä½ã并ä¸å¯ä»¥ä½ä¸ºæå¡å¨æä¾WWWãFTPãE-Mailçæå¡ã
6ãå¯é çå®å ¨ã稳å®æ§è½
Linuxéåäºè®¸å¤å®å ¨ææ¯æªæ½ï¼å ¶ä¸æ对读ãåè¿è¡æéæ§å¶ã审计è·è¸ªãæ ¸å¿ææçææ¯ï¼è¿äºé½ä¸ºå®å ¨æä¾äºä¿éãLinuxç±äºéè¦åºç¨å°ç½ç»æå¡å¨ï¼è¿å¯¹ç¨³å®æ§ä¹ææ¯è¾é«çè¦æ±ï¼å®é ä¸Linuxå¨è¿æ¹é¢ä¹åååºè²ã
7ãæ¯æå¤ç§å¹³å°
Linuxå¯ä»¥è¿è¡å¨å¤ç§ç¡¬ä»¶å¹³å°ä¸ï¼å¦å ·æxãx0ãSPARCãAlphaçå¤çå¨çå¹³å°ãæ¤å¤Linuxè¿æ¯ä¸ç§åµå ¥å¼æä½ç³»ç»ï¼å¯ä»¥è¿è¡å¨æä¸çµèãæºé¡¶çæ游ææºä¸ãå¹´1æ份åå¸çLinux 2.4çå æ ¸å·²ç»è½å¤å®å ¨æ¯æIntel ä½è¯çæ¶æãåæ¶Linuxä¹æ¯æå¤å¤çå¨ææ¯ãå¤ä¸ªå¤çå¨åæ¶å·¥ä½ï¼ä½¿ç³»ç»æ§è½å¤§å¤§æé«ã
Linuxçä¸è¶³
ç±äºå¨ç°å¨ç个人çµèæä½ç³»ç»è¡ä¸ä¸ï¼å¾®è½¯çWindowsç³»ç»ä»ç¶å æ大é¨åç份é¢ï¼ç»å¤§å¤æ°çè½¯ä»¶å ¬å¸é½æ¯æWindowsãè¿ä½¿å¾Windowsä¸çåºç¨è½¯ä»¶åºæå°½æï¼èå ¶ä»çæä½ç³»ç»å°±è¦å°ä¸äºã许å¤ç¨æ·å¨æ¢æä½ç³»ç»çæ¶åé½ä¼èè以åç软件è½å¦ç»§ç»ä½¿ç¨ï¼æ¢äºæä½ç³»ç»åæ¯å¦ä¼ä¸æ¹ä¾¿ãè½ç¶Linuxå ·æDOSãWindows模æå¨ï¼å¯ä»¥è¿è¡ä¸äºWindowsç¨åºï¼ä½Windowsç³»ç»æå ¶å¤æï¼æ¨¡æå¨æ模æçè¿è¡ç¯å¢ä¸å¯è½å®å ¨ä¸çå®çWindowsç¯å¢ä¸æ¨¡ä¸æ ·ï¼è¿å°±ä½¿å¾ä¸äºè½¯ä»¶æ æ³æ£å¸¸è¿è¡ã
许å¤ç¡¬ä»¶è®¾å¤é¢å¯¹Linuxç驱å¨ç¨åºä¹ä¸è¶³ï¼ä¸å°ç¡¬ä»¶ååæ¯å¨æ¨åºWindowsçæ¬ç驱å¨ç¨åºåæç¼åLinuxççãä½ä¸äºå¤§ç¡¬ä»¶ååå¨è¿æ¹é¢åå¾è¿ä¸éï¼ä»ä»¬çLinuxç驱å¨ç¨åºä¸è¬é½æ¨åºå¾æ¯è¾åæ¶ã
软件æ¯æçä¸è¶³æ¯Linuxæ大ç缺æ¾ï¼ä½éçLinuxçåå±ï¼è¶æ¥è¶å¤ç软件ååä¼æ¯æLinuxï¼å®åºç¨çèå´ä¹è¶æ¥è¶å¹¿ãè¿åªå°ä¼é¹ çåæ¯æ¯ååå æçã
å¦ä½ç¼è¯POCO
Poco C++åºæ¯ï¼
ä¸ç³»åC++ç±»åºï¼ç±»ä¼¼Javaç±»åºï¼.Netæ¡æ¶ï¼AppleçCocoa;
侧éäºäºèç½æ¶ä»£çç½ç»åºç¨ç¨åº
使ç¨é«æçï¼ç°ä»£çæ åANSI/ISO C++ï¼å¹¶åºäºSTL
é«å¯ç§»å¼æ§ï¼å¹¶å¯å¨å¤ä¸ªå¹³å°ä¸å¯ç¨
å¼æºï¼å¹¶ä½¿ç¨Boost Software Licenseåå¸
ä¸ç®¡æ¯å¦åç¨ï¼é½å®å ¨å è´¹
Pocoåºæ¦è§
ç¹æ§ï¼
DynamicAnyä¸Anyç±»
Cacheæ¡æ¶
åºäºOpenSSLçå¯ç ç³»ç»
æ¥æï¼æ¶é´ç±»åº
äºä»¶åéç¥æ¡æ¶
FTP客æ·ç«¯
跨平å°çæ件系ç»ç±»åº
HTML表åç±»åº
HTTP客æ·ç«¯åæå¡ç«¯ï¼æ¯æSSLï¼ï¼C++ æå¡å¨é¡µé¢ç¼è¯å¨
æ¥å¿æ¡æ¶
å¤çº¿ç¨æ¡æ¶ï¼çº¿ç¨æ± ï¼æ´»å¨å¯¹è±¡ï¼å·¥ä½éåçï¼
POP3客æ·ç«¯ç±»åº
跨平å°ï¼ä¸æ¬¡ç¼åï¼å¤å¹³å°ç¼è¯åè¿è¡
è¿ç¨ç®¡çåè¿ç¨é´éä¿¡ç±»åº
åå°æ¡æ¶
åºäºPCREçæ£å表达å¼
SMTP客æ·ç«¯ç±»åº
æ°æ®åºè®¿é®ç±»åºï¼SQLite,源码MySQL, ODBC)
æ¯æSSL/TLSï¼åºäºOpenSSL
å¨æç±»åºå è½½
å è¿çå ååæé管çï¼Buffer, Poolï¼
Socketç±»åº
ç½ç»æ°æ®æµç±»åºï¼æ¯æBase,HexBinaryç¼è§£ç ï¼å缩çç
åç¬¦ä¸²æ ¼å¼ååå ¶å®åç¬¦ä¸²å·¥å ·ç±»åº
TCPæå¡å¨æ¡æ¶ï¼å¤çº¿ç¨ï¼
ææ¬ç¼ç å转æ¢
Tuples
URIæ¯æ
æ¯æUTF8åUnicodeç¼ç
UUIDçæå¨
XMLçæå解æå¨
Zipæ件æä½ç±»åº
Pocoç使å½
Pocoæ¯ä¸ä¸ªå¼ºå¤§çç±»åºï¼å¹¶æäºæ建èªå·±çåºç¨ç¨åº
Poco帮å©ä½ å建跨平å°çåºç¨ç¨åºï¼ä¸æ¬¡ç¼åï¼å¤å¹³å°ç¼è¯åè¿è¡ï¼
模åååå¯æ©å±ï¼å¯åºç¨äºåµå ¥å¼å°ä¼ä¸çº§ç¨åº
æä¾å ¨é¢ï¼ææçç¼ç¨æ¥å£
使ç¨C++è¯è¨ï¼å¿«éä¸é«æ
Pocoå´å°ç®æ
å¨è®¾è®¡ï¼ä»£ç é£æ ¼åææ¡£ä¸ä¿æä¸è´
Poco强è°ä»£ç è´¨éï¼å æ¬å¯è¯»æ§ï¼ç»¼åæ§ï¼ä¸è´æ§ï¼ç¼ç é£æ ¼åå¯æµè¯æ§
Poco使å¾C++ç¼ç¨æ´å 容æ
æ导æ¹é
é«åº¦å ³æ³¨ä»£ç è´¨éï¼ç¼ç é£æ ¼ï¼ä¸è´æ§ï¼å¯è¯»æ§
é«åº¦å ³æ³¨æµè¯
注éå®ç¨æ§
åºäºç°æçï¼å¯é çç»ä»¶å¼å
çæ¬åå²
Summer : Günter Obiltschnig started development
February : First release on SourceForge
(Release 0. under Sleepycat license)
May : First contributions by Aleksandar Fabijanic
January : Release 1.0
March : Release 1.1
July : Moved to Boost license, POCO Community Website
August : Release 1.2
May : Release 1.3
July : Stable Release 1.3.7,
about contributors, used in s of projects
æ¯æå¹³å°
Microsoft Windows
Linux
Mac OS X
HP-UX, Solaris, AIX
*Embedded Linux (uClibc, glibc)
iOS
Windows Embedded CE
QNX
Pocoåºç¨åºæ¯
å建èªå¨åçä¸é´ä»¶å设å¤
å·¥ä¸èªå¨ååå·¥ä¸è®¾å¤
æµéæ§å¶ç³»ç»
å¥åº·ç³»ç»
æµéï¼æ°æ®æ¶éåæµè¯ç³»ç»
æ¶è´¹çµå产åå家åºèªå¨å产å
æµé
èªç©ºäº¤é管çç³»ç»
VoIP
票å¡åå ¥å£æ§å¶ç³»ç»
å è£ åºç¨ç¨åº
Pocoçä¼å¿
å ¨é¢çï¼å®æ´çC++æ¡æ¶ï¼å¯åå°å¼åå·¥ä½ï¼å¿«é让产åèµ°åå¸åº
æå¦æ使ç¨ï¼ä»¥åç¸å½å¤ç示ä¾ä»£ç åè¯å¥½çææ¡£
åççC++代ç ï¼æ§è½ä¼ç§ï¼ä½å åå ç¨
å¹³å°æ å ³ï¼ä¸å¤ç¼åï¼è·¨å¹³å°ç¼è¯åè¿è¡
大å¤æ°æ åµä¸ï¼å¯ä»¥å¼åæºä¸å®æå¼ååè°è¯å·¥ä½
å¯ä»¥é常容æçè¿ç§»å°æ°å¹³å°
ç¼è¯
ä¸é¢ç®åä»ç»ä¸ä¸æ¹æ³ï¼ä»¥ vs 为ä¾ã
第ä¸ç§æ¹æ³ï¼
ï¼1ï¼ Poco æ ¹ç®å½ä¸æbuild_vs.cmdåbuildwin.cmdè¿ä¸¤ä¸ªæ¹å¤çæ件, æ们å¾ä¿®æ¹ä¸ä¸å®ä»¬ã
æbuild_vs.cmd ä¿®æ¹ä¸ºä»¥ä¸å 容:
@echo off
if defined VSCOMNTOOLS (
call "C:\Program Files (x)\Microsoft Visual Studio .0\VC\bin\amd\vsvars.bat")
buildwin build all both x samples
红è²çé¨åæ¯vsvars.batçè·¯å¾ï¼å ·ä½è¦çæ¬æºçå®è£ ä½ç½®ãè¿éå 为æ¯è¦ç¼è¯Xï¼æ以è¦ä¿®æ¹ç¯å¢ã
èè²é¨åæ¯æ§è¡ç¼è¯æ¶åçåæ°ï¼æ³¨æXçXè¦å°åï¼ãåæ°çå ·ä½è¯´æ为ï¼
buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
VS_VERSION: ||||
ACTION: build|rebuild|clean
LINKMODE: static_mt|static_md|shared|all
CONFIGURATION: release|debug|both
PLATFORM: Win|x|WinCE
SAMPLES: samples|nosamples
TESTS: tests|notests
TOOL: devenv|vcexpress|msbuild
å ·ä½çåæ°éæ©æ ¹æ®éæ±ã
å¦æä¸éè¦ NetSSL_OpenSSL å MySQL ,æ¤æ¶ä¿ååå°±åå»å®å°±è¡äºã å®ä¼èªå¨ç¼è¯å¥½åç§åºã
å¦æè¦NetSSL_OpenSSL è¿ä¸ªåºåæå¼buildwin.cmdæ件:
设置 openssl çè·¯å¾ï¼å¦ï¼
set OPENSSL_DIR=c:\OpenSSL-Win
set OPENSSL_INCLUDE=%OPENSSL_DIR%\include
set OPENSSL_LIB=%OPENSSL_DIR%\lib;%OPENSSL_DIR%\lib\VC
set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
set LIB=%LIB%;%OPENSSL_LIB%
注æï¼å¦æè¦ Poco ä¸ç MySQL åº è¿å¾å®è£ . Mysql
ç¼è¾å¥½åï¼åå» build_vs.cmdæ§è¡ç¼è¯ãå®æåä¼å¨Pocoæ ¹ç®å½ä¸çlibä¸çå°ç¼è¯å¥½çåºãå¨binä¸æç¼è¯å¥½çdllã
第äºç§æ¹æ³ï¼éåçæå½ä»¤è¡çç¨æ·ï¼ï¼
æéæ±ä¿®æ¹å®buildwin.cmdæ件åï¼ä½¿ç¨vsçToolsä¸âVisual Studio x Win å½ä»¤æ示()âå½ä»¤ï¼è¿å ¥å½ä»¤è¡ç¶æã转å°Pocoæå¨çæ ¹ç®å½ï¼ç´æ¥è¾å ¥å½ä»¤ï¼
buildwin build all both x samples
æåéè¦æ³¨æçå°æ¹ï¼
ä¸è¿°æ¹æ³å®æç¼è¯åï¼å ³äºDataçMySQLãODBCãSQLiteä¸ä¸ªåºæ²¡æçæï¼åå ä¸è¯¦ï¼ï¼éè¦åç¬ç¼è¯ï¼å¨æ¤ä»¥MySQL为ä¾è®°å½ä¸ä¸ç¼è¯è¿ç¨ãå¨\Data\MySQLæ件夹ä¸ï¼æ¾å°MySQL_vs.slnæ件ï¼æå¼ã
æå¼çå·¥ç¨æ¯winçï¼éè¦æ¹ä¸ºXãå¨C++å å«ç®å½ä¸æ·»å æ¬é¡¹ç®çincludeæ件夹ï¼ä¾å¦ï¼âC:\poco-1.5.1-all\Data\MySQL\include;âï¼è¿è¦æ·»å å®è£ çMySQLçincludeæ件夹ï¼ä¾å¦âC:\Program Files\MySQL\MySQL Server 5.6\includeâï¼å¨åºç®å½ä¸æ·»å æéåºçè·¯å¾ï¼ä¾å¦âC:\Program Files\MySQL\MySQL Server 5.6\libâã
JAVA程序应用与开发(java应用开发技术实例教程)
简述Java应用程序的开发流程
Java应用程序的运行经过编写、编译、源码运行三个步骤。源码
第1步,源码编写程序。源码使用记事本或其他软件编写程序的源码php微盘源码源代码,将源代码保存为文件filename.java文件。源码
第2步,源码编译程序。源码在MS-DOS命令窗口,源码将当前目录转换到Java源程序所在的源码保存目录;输入“javacfilename.java”形式的命令进行程序编译。
第3步,源码执行程序。源码在同样的源码命令窗口中输入“javafilename”形式的命令执行程序。
完成了程序的源码开发,查看相应t目录,其中应该具有两个文件,分别是XXXX.java和XXXX.class。
如果是开发网页应用,开发流程大概是这样的:
搭建开发平台,一般使用的是j2ee
编写DAO层,建立数据库
编写业务层action
编写显示文件jsp、html
Java桌面端程序开发
Java对于服务器个人电脑和移动设备来说是一项伟大的技术由于需要java的跨平台的特性因此java在服务器和移动设备方面的应用是非常成功的但java在个人电脑应用方面的情况和在服务器及移动设备方面的应用有所不同但是这很快就会有所改变至少比你想象得要快在这篇文章中我会分析一下java在桌面环境中的应用将怎样得到提升然后具体说一下javaGUI(用户图形接口)的三个主要的工具:AWTSwing和SWT在下文中我将会开发一个完整的java桌面应用程序Java与桌面端现在流行的桌面平台要数WindowsMacandLinux了但它们不是十全十美的Windows主宰著桌面操作系统的市场其上有巨大的应用和开发群体但它昂贵且有许多安全漏洞Linux有着稳固的基础它是开源的软件比Windows更可靠Macs非常容易操作且不是黑客的目标但与Windows和Linux比起来Mac的硬件和软件可选的余地非常的有限公司和个人选择他们的操作系统基于许多因素花费少且安全性高是首选的因素这导致一些组织从Windows系统转而选择Linux对许多用户来说可用性及对原有应用程序的支持是非常重要的因素这意味着Windows将继续享有巨大的市场Mac有其自己忠诚的用户这使得苹果机仍然可以存活Linux在桌面的流行及Mac的成功创造了多样性这种多样性正是Java需要的这种多样性使得Java在桌面有举足轻重的地位跨平台的支持Java运行于所有相关的操作系统包括WindowsMac和Linux对于任何组织他想把现有的应用从一个操作系统移植到另一个操作系统而不用做太多的改动那么Java正是他们首选的桌面开发平台或许用微软的可视化工具很容易构建NET应用但是这将使你被绑定在了Windows平台上了很多人也许想立刻用Linux代替Windows从而避免由微软件操作系统的漏洞带来的问题用户不能容忍的问题之一是当从Windows移植到Linux带来的巨大的费用如果你的应用程序用Java构建你就没有了这些问题Java的图形用户界面看上去会跟你用的操作系统一样而并不需要做什么改动假如有一天又有一种桌面操作系统出现的话java是个安全的赌注因为它现在能够运行在Windows和Linux上那么可以推测它也可以运行在将来可能出现的操作系统上这些操作系统可能或迟或早地由微软或是开源社区或是其它的人开发出来丰富的特征最初Java只有非常有限的一些特征去构建图形用户界面思想就是用平台无关的Java应用程序接口打包不同的操作系统的本地图形用户界面称之为抽象的窗口工具仅有普通的部件如文件域文本区选择框单选按钮列表框和按钮被AWT支持图形和图像的特性支持非常有限也就是说只足够构建简单的applet程序认识到需要更高级的图形用户界面组件和图形能力Sun公司开发了SwingJavaDJavaD图像的输入/输出Java高级图像(JAI)和很多其它的这些中的一些窗体组件现在已经是Java标准版(JSE)里的一部分并且其它的一些扩展必须和你的应用程序打包在一起例如SwingJavaD图像的输入/输出都是Java的核心API随着Java开发工具包(JDK)和Java运行环境一起提供让我们不要忘了JEE平台如果你开发服务器端的应用程序并且需要丰富的图形用户界面那么你毫无疑问应该选择Java这允许你把服务器端的一些代码移到客户端反之亦然例如一个项目可能开始是基于WEB和图形界面在某些时候用户可能要求图形元素不能在HTML中实现如果你选择java做客户端应用那么你可以重用这些当初用来做服务器端的代码如果你用远程调用一些类会真正地实现服务器和客户端的共享通过页面服务器Java桌面应用也能够和其它的Java或非Java应用程序通信如CORBATCP/IP或是HTTPJava图形界面工具Java有三个主要的图形界面工具AWTSwing和SWTSwing是构建java图形界面标准的API(应用程序接口)一些AWT类由Swing基础而来SWT是一个非常有前途的新的窗体工具由IBM资助但是事实上这三者相互补充他们满足不同的需求AWT抽象窗口工具集为简单的applet程序设计它不适宜用来构建丰富的桌面图形界面但是从开始被介绍它至少有一个好的思想就是布局管理它负责为组件找到一个放置的位置这种机制是必需的因为GUI组件在不同的操作系统中有不同的尺寸现在AWT扩展了组件模型和事件处理机制(由JavaBeans说明定义)新的图形API(称为JavaD)支持剪贴板和拖拉操作打印准入和新的GUI工具Swing所有这些都归到Java基础类中(JFC)SwingSwing是曾经开发的最复杂的GUI之一它有一套完全的组件从按钮到文件域到表格树型和文件编辑器这些组件不依赖于操作系统本地的部件而是用原始的图形像直线矩形文字画出这种画代表感观插件它能够模仿本地的感观Swing也有平台无关的外观称为MetalSwing的结构由MVC模式得到启发这里在屏幕上的视觉GUI组件和支持数据的模型对象之间有一个明显的分隔在GUI和数据层之间的通讯基于事件在最初的Swing版本中有许多错误并且有执行问题这减慢了接受它的速度Swing最大的问题是被从事于并且许多人相信它是为开发桌面应用而准备的今天有许多基于Swing开发的商业产品包括大多数的Java集成开发工具我所喜欢的集成开发工具是Jbuilder它的速度相当的快SWTSWT是IBM为它的Eclipse集成开发环境而开发的图形用户界面工具SWT可以在Eclipse环境外使用而且提供对操作系统本地图形用户界面的直接访问因此基于SWT的Java应用程序拥有本地的图形用户界面并且可以和本地别的应用程序和部件集成在一起假如你的桌面应用程序产生HTML报表你想把它显示给用户看你可以使用Swing去浏览简单的HTML文档但这不是一个理想的的解决方案最好是在你的应用程序里提供IE或者Mozilla浏览器引擎SWT社区现在正在设计浏览器API这些API可以让你产生基于IE或者Mozilla的HTML窗口SWT现在可以在AIXHPUXLinuxQNXSolarisandWindows下面运行MacOSXis也在进行之中误解与Bug对于java/Swing一直有着误解诸如Java/Swing太慢了或者是Java/Swing需要更多的内存Swing也许在老式的奔腾的cpu而且只有m内存运行JDK运行起来却是很慢但是如果在PIII级别的CPU有着mb的内存运行JDK环境是足够快的对于一个应用程序来说鼠标在毫秒和在毫秒的反映的区别对于使用者来说看起来是没什么区别的Java在企业级的数百人上千人同时在线的服务器表现的很好Java在对于有限资源的移动设备上的表现也是很出色的那为什么Java不能成为很好的桌面应用程序呢?以我的观点看Swing的bug比其运行速度慢这问题还严重例如如果你用的是JDK你将不能在表格(称为JTable)中输入%($#!q等这些字符这八个字符和箭头键及HomeEndPgupandPgdn这几个键的键值是相同的其中一个由JTable由到的类调用了KeyEventgetCharCode()方法代替KeyEventgetKeyCode()这个bug这JDK已经得到了纠正你大概已经放弃过Swing如果你是从用JDK的Swing你可能因为你不能在表格里输入q而恼怒可能不幸的是你正需要用Jtable开发一个Swing应用你将花费许多时间从sun的bug数据库中查找解决的办法但没有发现你需要的(记住在那时Swing还是个新事物)你将花费更多的时间去看Swing的源代码和发展中的工作区经过了这个的经历之后很少有人很在另一个项目里再用Swing了你的工作区会像下面这样子importjavaawt*;importjavaawtevent*;importjavaxswing*;importjavaxswingtable*;publicclassWorkingTableextendsJTable{ publicstaticfinalbooleanJDK=SystemgetProperty(javaversion)startsWith();publicvoidprocessKeyEvent(KeyEvente){ if(JDK){ charch=egetKeyChar();if(egetID()==KeyEventKEY_TYPED((=chch=)||ch=='q')){ intanchorRow=getSelectionModel().getAnchorSelectionIndex();intanchorColumn=getColumnModel().getSelectionModel().getAnchorSelectionIndex();if(anchorRow!=-1anchorColumn!=-1){ if(!isEditing())editCellAt(anchorRow,anchorColumn);ComponenteditorComp=getEditorComponent();if(isEditing()editorCompinstanceofJTextField){ JTextFieldtextField=(JTextField)editorComp;textField.setText(textField.getText()+ch);return;}}}}super.processKeyEvent(e);}}不幸的是,Swing有许多像上面描述的那样的问题,一些问题很难解决,外挂c 源码需要做大量的工作。Tw.WInGwiT.例如,Swing的打开文件和保存文件的对话框是基于称为JfileChooser的组件,它部分的执行了JDK1.2和JDK1.3(一些特性总是不能用的,要创建一个新的目录对大多数用户来是一个挑战)。我不知道为什么Sun需要几年的时间直到jdk1.4中才完成JfileChooser。在JDK1.4之前,你有两种选择:用这种破烂的JfileChooser或是创建你自己的文件选择框,Borland公司在他们的JBuilder4中做一个很好的文件打开对话框。然而,大多数的开发者用的是标准的JfileChooser,给他们的用户带来许多问题。有一件重要的事情需要注意:可以像上面描述的那个去创建工作环境,因为Swing的源代码是可以得到的。学习java源代码也能够让你成为更好的程序员并且让你理解工作在JavaAPI的内部机制。当你开发你自己习惯的GUI组件,这点是有用lishixinzhi/Article/program/Java/hx//
学java最重要的是学java的什么内容学java最重要的是下面四个内容:1、掌握Java语言的使用:语言语法、程序逻辑,OOP(面向对象)思想,封装、继承、多态,集合框架、caffe源码卷积泛型、FileI\O技术,多线程技术、socket网络编程,XML技术。编程有关的操作系统基本使用,HTML5规范、HTML5文档结构、HTML5元素、Web语义化;CSS3规范、CSS3选择器、层叠与继承、盒模型与视觉格式化模型、现代CSS布局、CSS3基本属性千锋教育就有线上免费Java线上公开课。2、掌握JavaWeb开发技术:Java开发中使用到的Web前端技术,HTML5+CSS3,JavaScript操作BOM和DOM,JQuery的选择器、事件处理、动画效果,MySQL数据库技术,JDBC技术、boll算法源码JSP、Servlet、EL和JSTL、过滤器和监听器、AJax异步请求等,Linux技术、SVN、Linux环境下项目发布部署等。3、掌握使用流行框架SSM\SSH技术实现企业级项目开发:重点学习MyBatis、Spring、SpringMVC框架的应用,Git、Java设计模式等,重点学习Struts2、Spring、Hibernate框架的应用,Maven、Oracle数据库应用技术,了解大数据生态体系,Hadoop基础入门。4、JavaWeb框架:Spring体系结构、SpringIOC、媒介网站源码AOP、FactoryBean与BeanFactory、声明性事务处理、Spring5新特性。Maven与Gradle的使用。SpringBoot自动配置、SpringBootCLI与Initializr、SpringBootStarter、Actuator。SpringMVC工作原理和工作流程;拦截器、数据绑定转换和格式化、全局异常处理、转发与重定向、AJAX请求处理。如果想了解更多相关知识,建议到千锋教育了解一下。千锋教育总部位于北京,已在个城市成立分公司,现有教研讲师团队余人,每年培养泛IT人才近2万人,十年间累计培养超余万泛IT人才。
开发JAVA应用程序有哪些步骤?需要以下步骤:
定义问题:主要是指“想开发什么样的程序”、“这个程序用来解决什么问题”。满足目标客户的要求是最重要的。
2.是否具有可行性:要对这个程序是否具有实用性、利益性、以及对技术和法律方面的要求,都进行考虑。
3.需求分析。弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。
4.开发阶段:设计、实现、测试,是开发时最为重要的三个步骤。这三个步骤需要把程序员自己的理解及想法,和客户的需求都要得到体现。
5.对程序的维护:维护相当于售后服务,这个非常重要。因为程序在运营时,可能遇到各种各样的突发事件,面对这些突发情况,必须要进行紧急的处理。维护包括四个方面"改正性维护、适应性维护、完善性维护、预防性维护"。
Java,是由SunMicrosystems公司于年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现均支持Javaapplet。
ava分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
汽车领域hypervisor
面向未来的汽车架构,使用hypervisor实现车联网自动驾驶等技术,可以减少ECU个数,实现资源隔离和分配。汽车ARM架构算力问题和实时性要求下,选择xen hypervisor而非KVM,使用virtio标准处理IO。汽车领域的hypervisor有Xen、Opensynergy、ACRN、Global、Mentor、QNX、Redbend等,QNX hypervisor较为量产。汽车产品的虚拟化一般指的是硬件虚拟化技术,其开销较小,CPU负载不超过2%,DDR小于MB,EMMC小于MB。hypervisor技术代码量在3万行以内,Xen的代码量较大。使用hypervisor可以降低成本,通过在单个SOC上运行多个不同安全级别的操作系统实现降本需求,满足车内屏幕数量的增加。智能座舱中运行四个系统,如仪表、信息娱乐系统、L0-L2级的ADAS、以及HUD系统,可能需要运行三个或四个不同系统。VIRTIO标准在汽车嵌入式环境中提供硬件接口标准,支持块存储、SCSI、网络、控制台、加密、GPU、熵、输入、socket、文件服务器、声音等设备类型。标准制定工作在OASIS标准设置组中进行,支持多种操作系统,如Linux、Blackberry的QNX,以及Android。hypervisor硬件支持、安全关键性、overhead、实时性能是Tier1和OEM在选择时需考虑的因素。ACRN hypervisor是针对IOT网络开源的type 1 hypervisor项目,定义了设备管理程序参考堆栈、体系结构和虚拟设备仿真参考框架。在构建时考虑了实时性和安全性,并经过优化。ACRN支持Linux和Android作为用户虚拟机,服务虚拟机在后台运行,用户虚拟机作为post-launched的虚拟机运行。ACRN hypervisor架构利用英特尔虚拟化技术(Intel VT),运行在VMM模式和访客模式中。VMM模式下,服务VM以系统最高的虚拟机优先级运行,用户VM在访客模式中运行。启动顺序从第三方引导加载程序开始,预启动VM和服务VM的引导选项定义在源代码中。ACRN hypervisor支持设备直通和VIRTIO框架架构,提供简单、高效、标准和可扩展的虚拟设备接口,包括前端和后端驱动程序、直接交互方式、批处理操作、标准的virtqueue机制、可扩展的feature bits等。VIRTIO设备在现有总线上运行,鼓励批量操作和延迟通知以实现高性能I/O,所有设备共享一个标准的环形缓冲区和描述符机制。