1.请详ç»ä»ç»ä¸ä¸ UP-NETARM3000
2.LINUXç³»ç»ä»ç»
3.嵌入式GUI开发设计:基于MiniGUI本书特点
4.源码阅读忆丛(37)Minigui
请详ç»ä»ç»ä¸ä¸ UP-NETARM3000
UP-NETARMå½å æ¯ææççARM7åµå ¥å¼æå¦ç§ç å®éªç³»ç»ï¼æ丰å¯çå¤å´æå¦èµæºãå®éç¨æ¨¡ååç设计çå¿µï¼ æ´å 强è°åºç¨ï¼ç§»æ¤äºç®åæ为æµè¡çå®æ¶ãå¼æ¾æºç çåæä½ç³»ç»Î¼C/OS-IIåUCLinuxï¼å®ç°äºå¯¹ä¸åä¸ä¸æå¦è¦æ±çå ¨è¦çã UP-NETARM稳å®è¿è¡åµå ¥å¼ç³»ç»ä¸åºç¨æ为广æ³çμC/OS-IIåμCLinux åæä½ç³»ç»ï¼é常éåé«æ ¡æ¬ç§ççåµå ¥å¼ç³»ç»æå¦ãå®æ¥æå½å æ广æ³ç客æ·ç¾¤å丰å¯çæå¦èµæºï¼æè¿ç¾å®¶å®éªå®¤ç¨æ·ï¼ä»¥ä¸°å¯å®åç软硬件èµæºé¢å äºå½å å ¶å®å类平å°ï¼ UP-NETARMå®éªå¹³å° æ ¸å¿æ¨¡å ·åºäºARM7æ¶æçåµå ¥å¼è¯çS3CB0X ·2MB Nor Flashä½ä¸ºå¼å¯¼ROM ·8MB SDRAM 主æ¿èµæº ·MB Nand Flash ·äºä¸ªä¸²å£ ·ä¸ä¸ªUSBå£ Â·ä¸ä¸ªJTAGéç¨æ¥å£ ·M以太ç½å£ ·触æ¸å± ·é®é®ç ·*STN彩è²LCD ·M Uç ·ç´æµçµæºæ¨¡å ·æ¥è¿çµæºæ¨¡å ·é³é¢æ¨¡å ·CANæ»çº¿æ¨¡å ·A/DãD/A模å ·I2Cæ¥å£ UP-NETARMéé 模å IDE+CFå¡æ¨¡å FPGAæ©å±æ¿æ¨¡å GPS/GPRS模å I2C模å è¯é³è¯å«æ¨¡å UP-NETARMå®éªè½¯ä»¶å ·å®å ¨ç§»æ¤å¥½çμC/OS-IIãUCLinuxæä½ç³»ç»ï¼å¹¶åå«æé å¥çå®éªæ导书ãå®éªæºç ã ·æ¯æARMå ¬å¸çADS1.2ï¼SDT2.5å¼åç¯å¢ï¼å¨Î¼C/OS-IIä¸æ对åºç两å¥å ¨é¨å®éªæºç ã ·移æ¤å¥½çMiniGUIå¾å½¢ç¨æ·çé¢ã ·æºç å ¨é¨å¼æ¾ã UP-NETARMé å¥ææ UP-NETARMå®éªæ导书 μC/OS-IIæä½ç³»ç»ç¬¬ä¸ç« åµå ¥å¼ç³»ç»å¼åç¯å¢ç®ä» 1.1 ARM SDT 2.5å¼åç¯å¢ç®ä» 1.2 ADS 1.2 å¼åç¯å¢ç®ä» 1.3 è¶ çº§ç»ç«¯è®¾ç½®åBIOSåè½ä½¿ç¨ç¬¬äºç« åµå ¥å¼ç³»ç»ç¡¬ä»¶é©±å¨åºç¡å¼åæ¡ä¾ 2.1 ARMç串è¡å£å®éª 2.2 é®çåLED驱å¨å®éªï¼Cè¯è¨å®ç°æ¹æ³ 2.3 é®çåLED驱å¨å®éªï¼ARMæ±ç¼è¯è¨å®ç°æ¹æ³ 2.4 ARMçD/Aæ¥å£å®éª 2.5 ARMçA/Dæ¥å£å®éª 2.6 çµæºè½¬å¨æ§å¶å®éªï¼Cè¯è¨å®ç°æ¹æ³ 2.7 æ¥è¿çµæºæ§å¶ï¼ARMæ±ç¼è¯è¨å®ç°æ¹æ³ 2.8 LCDç驱å¨æ§å¶å®éª 2.9 触æ¸å±é©±å¨å®éª 2. CANæ»çº¿é讯å®éªç¬¬ä¸ç« åµå ¥å¼ç³»ç»æ ¸å¿å¼åæ¡ä¾ 3.1 å®æ¶å¨ä¸æå驱å¨ç¨åºå®éª 3.2 BOOTLOADERå®éª 3.3 μC/OS-IIå¨ARMå¾®å¤çå¨ä¸ç移æ¤åç¼è¯ 3.4 å®åçμC/OS-IIå¼åæ¡æ¶ç¬¬åç« åºäºÎ¼C/OS-IIæä½ç³»ç»çå¼åæ¡ä¾ 4.1 é³é¢å®éª 4.2 ç»å¾çAPIå½æ° 4.3 ç³»ç»çæ¶æ¯å¾ªç¯ 4.4 æ件çä½¿ç¨ 4.5 å表æ¡æ§ä»¶çä½¿ç¨ 4.6 ææ¬æ¡æ§ä»¶çä½¿ç¨ 4.7 å¤ä»»å¡åç³»ç»æ¶é 4.8 UDPé讯å®éªç¬¬äºç« åµå ¥å¼ç³»ç»ç»¼åå¼åæ¡ä¾ 5.1 综åå®éª 5.2 模æçµåç»æ¿å®éªï¼è§¦æ¸å±åºç¨ 5.3 åºäºARMçå¤éé仪表æ°æ®ééå®éªï¼å¤ä»»å¡ä¸A/D转æ¢ç¬¬å ç« å¾å½¢çé¢MINIGUIå ¥é¨æ¡ä¾ 6.1 MINIGUIå°Î¼C/OS-II---HELLOWORLDç¨åº 6.2 MINIGUIå°Î¼C/OS-II---LOADBMPä½å¾æä½ç¬¬ä¸ç« åµå ¥å¼ç³»ç»æ©å±æ¿å¼åæ¡ä¾ 7.1 GPRSæ©å±æ¿éä¿¡å®éª 7.2 GPSéä¿¡å®éª 7.3 åºäºARM7çFPGAå®éªéå½Aï¼åµå ¥å¼ç³»ç»åºç¨ç¼ç¨APIå½æ°éå½Bï¼åµå ¥å¼å¼åç³»ç»æ¦åµå设å¤é©±å¨å®è£ éå½Cï¼ARMæ±ç¼æ令ééå½Dï¼åµå ¥å¼ç³»ç»åèçµè·¯åçå¾ UCLinuxæä½ç³»ç»ç¬¬ä¸ç« åµå ¥å¼LINUXå¼ååºç¡ç¥è¯ 1.1 åµå ¥å¼Linuxç®ä» 1.2 åµå ¥å¼Linuxå¼åå¹³å°ç®ä» 1.3 åµå ¥å¼Linuxå¼åæµç¨ 1.4 建ç«åµå ¥å¼Linuxå¼åç¯å¢ 第äºç« åºç¡å®éª 2.1 çæUCLinuxå¼åç¯å¢ 2.2 å¤çº¿ç¨åºç¨ç¨åºè®¾è®¡ 2.3 串è¡ç«¯å£ç¨åºè®¾è®¡ 2.4 A/Dæ¥å£å®éª 2.5 D/Aæ¥å£å®éª 2.6 CANæ»çº¿æ¥å£å®éª 2.7 LEDå®éª 2.8 çµæºæ§å¶å®éª 第ä¸ç« MICROWINDOWSå¾å½¢çé¢å®éª 3.1 Microwindowsé ç½®ä¸å®è£ 3.2 Microwindowsç»å¾ç»ä¹ 3.3 Microwindows触æ¸å±åç 3.4 Microwindowsäºä»¶ç¼ç¨ç»ä¹ 3.5 Microwindows综åå®éª 3.6 Microwindowså¾åå¤ç 3.7 Microwindowsæ±åå¤ç 3.8 ç®ååµå ¥å¼WEBæå¡å¨å®éª 3.9 åµå ¥å¼æ¸¸æ设计 3. PDA-GUI设计第åç« MINIGUIå¾å½¢åºç¨ç¨åºè®¾è®¡ 4.1 MINIGUIé ç½®ä¸å®è£ 4.2 MINIGUIçç¨åºæ¶æåhelloworldç¨åº 4.3 MINIGUIï¼loadbmpä½å¾å®éª 4.4 åºäºNEWGALçé«çº§GDIå½æ° 4.5 å¼å¯¼è£ è½½ç¨åºï¼BOOTLOADERï¼ç§»æ¤å®éªï¼BLOB 4.6 å æ ¸ç§»æ¤ä¸ç¼è¯å®éª 4.7 å æ ¸é©±å¨è®¾è®¡å ¥é¨ï¼æ¨¡åæ¹å¼é©±å¨å®éª 4.8 å æ ¸é©±å¨è®¾è®¡å®éªï¼è§¦æ¸å±é©±å¨ 4.9 å æ ¸ãæ ¹æ件系ç»ç§åå®éª 4. 常ç¨LINUXå½ä»¤çä½¿ç¨ 4. gccä¸gdb 4. GNUéç¨å ¬å ±è®¸å¯è¯ï¼GPL .6第äºçï¼
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ï¼å®åºç¨çèå´ä¹è¶æ¥è¶å¹¿ãè¿åªå°ä¼é¹ çåæ¯æ¯ååå æçã
嵌入式GUI开发设计:基于MiniGUI本书特点
这本专注于嵌入式GUI开发设计的例源书籍,其独特之处在于它紧紧把握了MiniGUI3.0这一快速发展的源码技术平台。它并非仅仅理论讲解,分析而是例源通过权威培训机构的专业解读,将GUI理论与MiniGUI系统实操相结合,源码引导读者在学习过程中,分析ssd源码从广度和深度两个层面全面理解嵌入式GUI以及整个嵌入式系统的例源工作原理和实践应用。 特别值得一提的源码是,书籍提供了丰富的分析配套资源,包括详尽的例源光盘内容,其中包含大量的源码源代码和实际应用案例。这些资源旨在帮助读者快速掌握系统搭建技巧,分析2022视酷即时通讯源码实现从零开始到独立操作的例源过渡,直接应用于实际项目,源码提升工作效率。分析 书中精心设计的实例项目,不仅具有高度的可操作性,还鼓励读者发挥创新思维,进行功能扩展,充分锻炼和提升他们的实践能力和创新精神。这是一本理论与实践并重,既适合初学者入门,又适合有一定经验的小商店运营神器源码是什么开发者深入学习的宝贵参考资料。扩展资料
它既适合需要进入MiniGUI应用程序开发领域的人员,也适合需要对通用的GUI技术学习的人员。源码阅读忆丛()Minigui
探索GUI的历史与实现
对于GUI的细节仍然存在一些困惑,似乎总是有新的东西需要学习。年轻时,对《Windows程序设计》、MFC等书籍充满热情,那些API的神奇之处让人着迷。然而,花费大量时间深入学习,却似乎事倍功半,一键玩源码导入教程微软似乎更倾向于教人如何使用,而非深入解释实现原理。尽管如此,还是尝试实现过文字版的GUI,涉及基本的按钮、滚动条、菜单等元素。但一些细节仍不清楚。
通过网络搜索,了解到魏永明的Minigui项目是对Windows GUI和GDI的模仿。通过下载vc6版本的如何找到奇门遁甲系统源码MinGUI,能够进行调试。在分析代码时,发现事件回调、消息链等常见功能并无特别之处。而DefaultMainWinProc、InvalidateRect、PopupMenuTrackProc等函数则更具实际意义。GUI就像是在显存沙漠中绘画,有其既定规则。DefaultMainWinProc负责实现画最大、最小按钮、窗口方框等常规操作,而绘制的动作有其先后顺序,即消息的先后处理。
GDI部分则展示了如何在显存中书写文字,包括粗体、斜体等效果;如何绘制图标和位图;关键的rgn裁剪矩形技术,用于加速绘制,矩形外的绘制不会进行。rgn裁剪矩形的运算包括加、减、合、并等,对应着窗口的各种移动和形状改变。不同线程之间的窗口管理由HWND_DESKTOP统一处理,desktop-common.c相当于窗口管理器,不同程序无法直接获取其他窗口的位置和大小,由其进行统一管理。desktop包含三个线程,分别负责捕捉键盘、鼠标消息,以及实际消息的处理,以及窗口给desktop的消息交由DesktopWinProc统一处理。
MinGUI的模拟版本在调试方面虽能使用,但功能实现上有缺失。相比之下,libminigui-1.0.提供了完整的gui、gdi、kernel代码,定义了大部分的画窗套路和动作,只需要关注关键部分和自己定义的动作即可。
Linux的GUI采用了xwindows,通过socket将xclient进程中的窗口绘制信息传输到xserver,由xserver统一处理。xclient之间互相不知道窗口的位置和大小,因此都通过xserver进行绘制,xserver还包含了窗口管理器。而MinGUI在一个进程的多个线程中实现,不存在窗口管理器与进程间位置信息传递的问题。
Windows使用wink.sys作为窗口管理器,作为内核态程序,用户态的动态链接库在不同进程间数据段不同,但内核态的数据段统一,因此实现了窗口管理。Windows显示流畅的原因之一在于窗口管理机制与MinGUI的desktop类似,但实现机制有所不同。
工作繁忙,业余时间进行学习。尽管以前对GUI有过大量无用功,但这次的探索仅用几天时间便有所收获。