Ò룺Android ±» Linux kernel ÉçȺ¿ª³ý
ÔÎÄ£ºAndroid and the Linux kernel community
ÔÚ Linux kernel 2.6.33 °æ±¾£¬Android ³ÌʽÂ룬ÒѾ±»ÒƳý¡£ºÜ¶àÈË¿ªÊ¼Ñ¯ÎÊÎÒµ½µ×·¢ÉúÁËʲôÊ£¿Android ÏÂÒ»²½ÓÖ¸ÃÔõô°ì£¿ËùÒÔ£¬ÒÔϾÍÊÇÎÒ¶ÔÕâÕû¼þÊÂÇéµÄÒâ¼û……
Ê×ÏÈ£¬ÎÒҪ˵£¬ÎÒÊǺÜϲ»¶ Android ÊÖ»úƽ̨¡£Ö±µ½ÉÏÖÜ£¬ÎÒ»¹ÊÇÿÌ죬ʹÓÃÎÒÂòµÄ developer G1£¬ËüÍêÃÀµÄÔË×÷£¬ÈÃÉíΪÓû§µÄÎҷdz£»¶Ï²¡£
´Ó¼¼ÊõµÄ½Ç¶È£¬ÎÒÒ²¶Ô Android ¸Ðµ½¸ßÐË¡£讓È˾ªÏ²£¬Google ÔËÓà Linux kernel£¬´¿´â¾ÍÓô«Í³µÄ Linux ϵͳ£¬´´Ôì³öÒ»¸ö¾ßÒÆÖ²ÐÔ£¬¶øÇÒ¿É¿¿µÄÊÖ»úƽ̨¡£Õâ¸öƽ̨ÊÇÕâôÌرð£¬ÄãÉõÖÁ¿ÉÒÔÔÚÊÖ»úÉÏ£¬»»ÉÏÒ»¸ö Linux ×÷ҵϵͳµÄ image µµ£¬Á½ÖÖ°æ±¾¶¼¿ÉÔË×÷Õý³££¬ÍêÈ«²»ÐèÈκÎÐ޸ġ£
Android ͬʱҲ½â¾öÁËÊÕ»úÖÆÔìÉÌ£¬¶àÄêÒÔÀ´µÄһЩÎÊÌ⣺һ¸öÃâ·Ñ°æ±¾µÄ Java£¬¼°Ò»¸öͳһµÄÓ¦ÓóÌʽÖнé²ã£¬ÈóÌʽÈËÔ±Õë¶ÔËü¿ª·¢³öÈíÌ壬¿ÉÒÔÔÚËùÓÐ Android µÄÊÖ»úÉÏ¡£ÒòΪÕâÑù£¬ËùÓÐÏÖÓеēLinux ÊÖ»úÁªÃË”£¬²»ÊÇÒѾȺÌåÃðÍö£¬ÐÒ´æµÄÓ¦¸ÃÒ²»áºÜ¿ì¾ÍĬĬµÄÏûʧ¡£
ÕâÓÐÄÄÀï²»¶Ô£¿
·¢ÉúʲôÊ£¬Èà Android ³ÌʽÂ룬´Ó Linux ºËÐÄɾ³ý£¿¼òµ¥Ëµ£¬Ã»ÓÐÈ˹ØÐÄ Android ³ÌʽÂëÁË£¬ËùÒÔ¾ÍɾÁË°É¡£¾ÍÏñÎÒÒÔÇ°ËùÉùÃ÷µÄ£¬ºËÐijÌʽÂ룬·ÖÖ§°æ±¾£¬±ØÐëŬÁ¦Õû²¢½øÖ÷Òª°æ±¾£¬²»È»¾Í»á±»É¾³ý¡£
µ«ÊǹØÓÚÕâµã£¬Óиü´óµÄÎÊÌâ´æÔÚ¡£
Android ºËÐijÌʽÂ룬²¢·ÇÖ»ÊÇÔÚ drivers/staging/android ×ÓĿ¼Ï£¬µÄ¼¸¸ö¹ÖÒìÇý¶¯³Ìʽ¶øÒÑ¡£ÎªÁËÄÜÈà Android ÔË×÷£¬ÄãÐèÒªÓÃËûÃÇÐÂÔöµÄ lock type£¬²¢ÇÒÓÃËûÃǵݲȫģʽ£¬¸ú Linux ÄÚºËÁ¬½áÉÏ¡£
ΪÁËҪд Android ÉÏʹÓÃµÄ Çý¶¯³Ìʽ£¬ÄãÐèÒªÕýÈ·µÄÕûºÏÐ嵀 lock£¬ÓÐʱ»¹Òª¸ú¹ÖÒìµÄ°²È«Ä£Ê½´ò½»µÀ¡£¶ÔÁË£¬»¹ÓÐÒ»¸öÍêÈ«²»Í¬ÏÔʾ frame buffer ¼Ü¹¹¡£
ÕâÒâνÈκÎΪ Android ƽ̨дµÄÇý¶¯³Ìʽ£¬ÒòΪ¸ú Google Äں˷ÖÖ§ÓÐÏàÒÀÐÔ£¬ËùÒԾͲ»ÄÜÕû²¢½øÖ÷ÒªÄں˷ÖÖ§£¬×îÖÕÒ²²»Äܽø kernel.org ·ÖÖ§¡£
¾ÍÒòΪÕâÑù£¬Google ÒѾÔì³ÉÐí¶àµÄÇý¶¯³Ìʽ£¬Óëƽ̨Ïà¹ØµÄ³ÌʽÂ룬²»ÄÜÕû½øÖ÷ÒªÄں˷ÖÖ§¡£ÊµÖÊÉÏ£¬ÕâÒѾ±ä³ÉÁ˼¸¸öÖÆÔìÉÌËø£¬ËùÒÐÀµµÄÄں˷ÖÖ§¡£
ÏÖÔÚ Linux Äں˵ĵļ¸¸ö·ÖÖ®°æ±¾£¬ÊÇÒÀÕÕ¼¸¸öÖ÷ÒªµÄ·¢Ðа汾£¬Ä¿Ç°Ïà°²ÎÞÊ¡£µ«ÊÇÒòΪ Google ²»ÏëÈÃËûÃǵijÌʽÂ룬²¢ÕûÈëÖ÷Á÷·ÖÖ§¡£Google Ëùд³öµÄÇý¶¯³Ìʽ¼°Æ½Ì¨Ïà¹ØµÄ³Ìʽ£¬±»ËøסÎÞ·¨»ØÀ¡¸øÄÚºËÉçȺ¡£ÄÚºËÉçȺ£¬ÒѾ»¨ºÜ¶àÄê±»¸æËßÕâЩ Linux ·¢Ðа汾µÄ¹«Ë¾£¬°ÑËûÃǵÄÄÚºËÕû²¢½øÀ´¡£Ö®ºóËûÃǾÍ
Ïà¹ØÎĵµ£º
Ò»¸ö³ÌÐòµÄ¿ª·¢Àë²»¿ªÐí¶à¿âº¯ÊýµÄÖ§³Ö£¬¿ÉÊÇ¿âÈç´ËÖ®¶à£¬ÓпªÔ´Ãâ·ÑµÄÒ²ÓÐÊշѵġ£ºÜÏ£ÍûÊìϤ±à³ÌµÄÇ°±²°Ñ×Ô¼ºµÄ¾ÑéÕûÀíÏ£¬³£ÓõĿⶼ°üº¬ÄÄЩ¹¦ÄÜ¡£ÏÂÎÄÊÇÔÚÍøÉÏÕÒµÄÒ»¸öÀàËƵÄ×ÊÁÏ¡£ÆÚ´ý¸ü¶à¸üÈ«µÄÄÚÈÝ¡£
---------------------------------------------------------------------------------------------------
¿´µ ......
LinuxÄÚºËÅäÖð취£º
1. make config
ÕâÖÖ°ì·¨»á±éÀúËùÓÐÅäÖÃÏҪÇóÓû§Öð¸öÑ¡ÔñY/N/M
2. make menuconfig
Õâ¸ö°ì·¨ÊÇ»ùÓÚncurse¿â±àÖƵÄͼÐνçÃ湤¾ß¡£³£ÓÃ
3. make xconfig
ÓÃÓÚ»ùÓÚX11µÄͼÐι¤¾ß
4. make gconfig
ÓÃÓÚ»ùÓÚgtk+ͼÐι¤¾ß
5. make defconfig
´´½¨Ò»¸öĬÈϵÄÅäÖã¬Éú³Éµ±Ç°µÄ.config
6. make x ......
Linux ÏûÏ¢Öض¨Ïò°ì·¨
command > filename
°Ñ±ê×¼Êä³öÖض¨Ïòµ½Ò»¸öÖ¸¶¨ÎļþÖÐ
command 1 > fielname
°Ñ±ê×¼Êä³öÖض¨Ïòµ½Ò»¸öÖ¸¶¨ÎļþÖÐ(ͬÉÏ)
command 2 > filename
°Ñ±ê×¼´íÎóÖض¨Ïòµ½Ò»¸öÎļþÖÐ
command >! filename
°Ñ±ê×¼Êä³öÖض¨Ïòµ½Ò»¸ö
Ö¸¶¨
ÎļþÖУ¬ÈôÎļþ´æÔÚ£¬Ôò¸²¸Ç
command >&am ......
/*
* linux/fs/char_dev.c
*
* (C) 1991 Linus Torvalds
*/
#include <errno.h>
#include <sys/types.h> // ¶¨ÒåÁË»ù±¾µÄϵͳÊý¾ÝÀàÐÍ
#include <linux/sched.h>
#include <linux/kernel.h> // º¬ÓÐһЩÄں˳£Óú¯ÊýµÄÔÐζ¨Òå
#include < ......
ÔÚlinuxÉÏ£¬jprofiler¿ÉÒÔ·ÖÎöjavaµÄÈí¼þϵͳ£¬oprofile¿ÉÒÔ·ÖÎöCµÄÈí¼þϵͳ¡£
oprofile¿ÉÒÔ˵ÊÇÒ»¸ö¹¤¾ß¼¯£¬°üº¬£º
ophelp£¬
opcontrol£¬
agent libraries£¬
opreport£¬
opannotate£¬
opgprof£¬
oparchive£¬
opimport¡£
³ ......