Linux KernelÇýÖðAndroid£ºµ½µ×·¢ÉúÁËʲô
¹Ø×¢Android£¬¹Ø×¢Google ǰÈÕLinux Kernelά»¤ÕßGreg Kroah-Hartman°ÑAndroid´úÂë´ÓLinux Kernel´úÂë¿âÖÐɾ³ýµÄÏûÏ¢ÒýÀ´Á˹㷺¹Ø×¢£¬¿ª·¢½çÒÑÓкܶàÆÀÂÛ¶Ô´ËʽøÐÐÌÖÂÛ¡£ifanr½ñÈÕÌṩÁ˵±ÌìGregÉùÃ÷µÄÈ«ÒëÎÄ£¬ÏÂÃæ¾ÍÈÃÎÒÃÇÀ´¿´¿´¡£ 2.6.33 °æÄÚºËÒÆ³ýÁËAndroidµÄ´úÂë¡£ºÜ¶àÈ˲»¶ÏµØÎÊÎÒ·¢ÉúÁËʲô£¬¶ÔÓÚAndroidÏÂÒ»²½ÒªÔõô°ì¡£ÕâÀïÊÇÎÒ¶ÔÕû¼þÊÂÇéµÄ³ÎÇ壺 Ê×ÏÈ£¬ÎÒºÜϲ»¶Androidƽ̨¡£Ö±µ½ÉÏÖÜ£¬ÎÒ»¹Ã¿ÌìʹÓÃÎҵĿª·¢ÊÖ»úG1¡£Ëü¹¤×÷Á¼ºÃ£¬×÷ΪÓû§ÎÒºÜÂúÒâ¡£ÁíÍ⣬´Ó¼¼Êõ½Ç¶ÈÎÒÒ²ºÜϲ»¶Ëû¡£ÁîÈ˾ªÆæµÄÊÇ£¬Google½ö½öʹÓÃLinuxÄں˹¹½¨ÁËÒ»¸ö¿ÉÒÆÖ²µÄºÍ½¡×³µÄÊÖ»úƽ̨£¬¶ø²¢Ã»ÓÐʹÓá±´«Í³¡±LinuxµÄÈÎºÎÆäËû¶«Î÷¡£¸ü¼ÓÄÑÄܿɹóµÄÊÇ£¬Äã¿ÉÒÔ ÔÚAndroidϵͳ֮Éϰ²×°Ò»¸ö¡±ÕæÕý¡±µÄLinux¾µÏñ£¬Á½Õß¶¼ÄÜÕý³£¹¤×÷¶øÎÞÐèÈκÎÐ޸ġ£ Android Ò²½â¾öÁËÊÖ»úÖÆÔìÉ̶àÄêÀ´Óöµ½µÄÎÊÌ⣺Ëü´´ÔìÁËÒ»¸öÃâ·ÑµÄJavaÐéÄâ»úºÍͳһµÄÓ¦ÓÃÈí¼þ²ã£¬Ê¹³ÌÐò¿ÉÒÔÔÚËùÓм¯³ÉËüµÄÊÖ»úƽ̨ÉÏÔËÐС£ÒòΪËûËüµÄ³öÏÖ£¬ ËùÓÐÏÖ´æµÄ¡±LinuxÊÖ»úлᡱ£¨¡±Linux Phone Consortium¡± £©×éÖ¯¶¼Ðû¸æÖսᣬ»òÕß¼´½«¹Ø±Õ¡£ ³öÁËʲôÎÊÌ⣿ ·¢ÉúÁËʲôÖÂʹAndroidÄں˴úÂ뱻ɾ³ý£¿ ¼òµ¥µÄ˵£¬Ã»ÓÐÈ˹ØÐÄ´úÂ룬ËùÒÔËû±»É¾³ýÁË¡£ÕýÈçÎÒ֮ǰµÄÉùÃ÷£¬¿ª·¢·ÖÖ§µÄ´úÂëÐèÒª¼ÌÐøÐ޸IJÅÄܺϲ¢½øÄÚºËÖ÷ÏßÄÚºËÊ÷£¬·ñÔò½«±»É¾³ý¡£µ«ÊÇ£¬Õâ¶ù»¹ÓиüÑÏÖØµÄÎÊÌâ¡£Android´úÂë²»½ö½öÊÇdrivers/staging/androidĿ¼ÏµÄһЩÇý¶¯³ÌÐò¡£ AndroidϵͳµÄÕý³£ÔËÐУ¬ÐèÒªGoogle´´½¨µÄÒ»ÖÖеÄÄÚºËËøºÍÆä°²È«Ä£ÐÍËøÒÀÀµµÄºËÐÄϵͳÖеĹ³×Ó£¨hooks£©¡£ÒªÐ´³öÄܹ»ÔÚAndroidÉÏÖ´ÐеÄÇý¶¯³ÌÐò£¬ÄãÐèҪǡµ±µÄʹÓÃеÄÄÚºËËø£¬ÓÐʱºò»¹ÐèҪʹÓùÖÒìµÄ°²È«Ä£ÐÍ¡£ ÕâÒâζ×ÅËùÓÐΪAndroidÓ²¼þƽ̨±àдµÄÇý¶¯¶¼²»ÄÜÈںϽøÖ÷ÏßÄÚºËÊ÷£¬ËüÃÇÔÚÖ÷ÏßÄÚºËÖлá±àÒëʧ°Ü¡£ÒòΪËüÃÇÒÀÀµµÄ´úÂëÖ»´æÔÚÓÚGoogleµÄÄں˷ÖÖ§ÖС£ÒòΪÉÏÃæÕâЩ£¬Google×è°ÁË´óÁ¿Ó²¼þÇý¶¯¡¢Æ½Ì¨´úÂëºÍÖ÷ÏßÄÚºËÊ÷µÄÕûºÏ¡£²¢´´½¨ÁËÒ»¸öºÜ¶àÖÆÔìÉÌÏÖÔÚÒÀÀµµÄÄں˷ÖÖ§¡££¨ÒëÕ߯ÀÂÛ£ºÐ°¶ñµÄ×ö·¨£¬ÀûÓÿªÔ´µÄ³É¹ûıÀû£¬¶ø²¢Ã»ÓлØÀ¡¿ªÔ´ÉçÇø£© ´´ÔìÄÚºËÔ´´úÂë·ÖÖ§²¢Ã»ÓÐÎÊÌ⣬¼¸ºõÿһ¸ö·¢Ðа涼ÓÐ×Ô¼ºµÄ·ÖÖ§¡£µ«ÊǸüÔãµÄÊÇ£¬Google²»°ÑËûÃǵĴúÂëÕûºÏ½øÖ÷ÏßÄÚºËÊ÷£¬Ê¹±àдÇý¶¯ºÍƽ̨´úÂëµÄ¹«Ë¾ÎÞ·¨»ØÀ¡¿ªÔ´ÉçÇø¡£Äں˿ª·¢ÉçÇøÔçÔÚ¼¸Äêǰ¾Í¸æËßÕâЩ¹«Ë¾Ê¹ËûÃǵĴúÂëºÏ²¢½øÖ÷ÏßÄںˣ¬ÒԵõ½×Ô¶¯µÄ°²È«ÐÞ¸´ºÍ×Ô¶¯´¦ÀíAPI±ä¶¯£¬ºÜ¶à¹«Ë¾Ìý´Ó½¨Ò
Ïà¹ØÎĵµ£º
1. LinusºÍBill
ËÆºõÔÚÒ»Ò¹Ö®¼ä£¬Õâ¸öÃû×ÖͻȻ±äµÃͬÏó±È¶û¡£¸Ç´ÄÒ»ÑùµÄ¶úÊìÄÜÏê¡£µ«ÊDZȶû¡£¸Ç´Ä£¬ÄÄÅÂÉí¼ÛÓÐÊý²»Çå±¶µÄ°ÙÍòÃÀ½ð£¬Ò²ÓÀÔ¶²»»á±ä³ÉLinux Torvalds¡£Õâλ29ËêµÄ·ÒÀ¼ÈË£¬¼òµ¥¶øÇ¿´óµÄLinux²Ù×÷ϵͳµÄ´´ÔìÕߣ¬³¬Ô½Á˸ǴĵÄÉñ»°¡£Ò²Óд«ÎÅ˵¸Ç´ÄÊÇÒ»¸ö׿ԽµÄ³ÌÐòÔ±£¬µ«LinusÊÇ»õÕæ¼ÛʵµÄ¸ßÊ ......
#include
#include
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
void *thread1(void *);
void *thread2(void *);
int i=1;
main(void)
{
pthread_t t_a;
pthread_t t_b;
pthread_create(&t_a,NULL,thread1,(void *)NULL) ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
ÔÚÏÖʵÉú»îÖб»ÈËÃdzÆÎª´óʦ¼¶µÄÈËÎïȷʵºÜÉÙ¼û¡£
Brian
Proffitt
ÏÈÉú¾ÍÊÇһλȫÇòÖªÃû¡¢ÊÜÈË×ð¾´µÄ
Linux
´óʦ¡£´ËÑÔÓкθù¾Ý£¿½üÈÕ£¬ËûÏòÎÒÃÇÍÆ¼öÁËʲô£¿
......
//
ͬ²½ÎÊÌ⣺
¶Ô¹²ÏíÊý¾ÝµÄ·ÃÎÊ£¬ÐèҪͬ²½£¬»¥³â¡£
ÔÚÖжϣ¬ÇÀÕ¼£¬¶àCPU£¬¶àÏß³Ì »·¾³ÏÂÓÈÆäÖØÒª¡£
ͬ²½·ÖΪ: ×èÈûͬ²½£¬·Ç×èÈûͬ²½
×èÈûͬ²½ÓÐÐí¶àʵÏÖ·½Ê½ÁË£ºmutex, semaphore. ×èÈûͬ²½Ê¹Óò»µ±¾Í¿ÉÄÜÔì³ÉËÀËø£¬»îËø£¬ÓÅÏȼ¶·´×ª¡£
·Ç×èÈûͬ²½£º£¨ÏÖÔÚÁ÷ÐÐÈýÖÖ£©
wait free ºÜÄÑʵÏÖ£¬Ë¼ÏëÊDZ¾Ïß³ÌÓÐÏÞ²½¾Í ......
×ªÔØ£ºhttp://www.cnblogs.com/hexapodsoft/archive/2007/04/24/724902.html
I/OÖØ¶¨ÏòÏê½â¼°Ó¦ÓÃʵÀý
1¡¢ »ù±¾¸ÅÄÕâÊÇÀí½âºóÃæµÄ֪ʶµÄǰÌᣬÇëÎñ±ØÀí½â£©
a¡¢ I/OÖØ¶¨Ïòͨ³£Óë FDÓйأ¬shellµÄFDͨ³£Îª10¸ö£¬¼´ 0¡«9£»
b¡¢ ³£ÓÃFDÓÐ3¸ö£¬Îª0£¨stdin£¬±ê×¼ÊäÈ룩¡¢1£¨stdout£¬±ê×¼Êä³ö£©¡¢2£¨stderr£¬±ê×¼´íÎóÊä ......