linux ½ø³ÌͨÐÅ——ÐźŵÆ
ÐźŵÆÓëÆäËû½ø³Ì¼äͨÐÅ·½Ê½²»´óÏàͬ£¬ËüÖ÷ÒªÌṩ¶Ô½ø³Ì¼ä¹²Ïí×ÊÔ´·ÃÎÊ¿ØÖÆ»úÖÆ¡£Ï൱ÓÚÄÚ´æÖеıêÖ¾£¬½ø³Ì¿ÉÒÔ¸ù¾ÝËüÅж¨ÊÇ·ñÄܹ»·ÃÎÊijЩ¹²Ïí×ÊÔ´£¬Í¬Ê±£¬½ø³ÌÒ²¿ÉÒÔÐ޸ĸñêÖ¾¡£³ýÁËÓÃÓÚ·ÃÎÊ¿ØÖÆÍ⣬»¹¿ÉÓÃÓÚ½ø³Ìͬ²½¡£
Ò»¡¢ÐźŵƸÅÊö
ÐźŵÆÓëÆäËû½ø³Ì¼äͨÐÅ·½Ê½²»´óÏàͬ£¬ËüÖ÷ÒªÌṩ¶Ô½ø³Ì¼ä¹²Ïí×ÊÔ´·ÃÎÊ¿ØÖÆ»úÖÆ¡£Ï൱ÓÚÄÚ´æÖеıêÖ¾£¬½ø³Ì¿ÉÒÔ¸ù¾ÝËüÅж¨ÊÇ·ñÄܹ»·ÃÎÊijЩ¹²Ïí×ÊÔ´£¬Í¬Ê±£¬½ø³ÌÒ²¿ÉÒÔÐ޸ĸñêÖ¾¡£³ýÁËÓÃÓÚ·ÃÎÊ¿ØÖÆÍ⣬»¹¿ÉÓÃÓÚ½ø³Ìͬ²½¡£ÐźŵÆÓÐÒÔÏÂÁ½ÖÖÀàÐÍ£º
¶þÖµÐźŵƣº×î¼òµ¥µÄÐźŵÆÐÎʽ£¬ÐźŵƵÄÖµÖ»ÄÜÈ¡0»ò1£¬ÀàËÆÓÚ»¥³âËø¡£
×¢£º¶þÖµÐźŵÆÄܹ»ÊµÏÖ»¥³âËøµÄ¹¦ÄÜ£¬µ«Á½ÕߵĹØ×¢ÄÚÈݲ»Í¬¡£ÐźŵÆÇ¿µ÷¹²Ïí×ÊÔ´£¬Ö»Òª¹²Ïí×ÊÔ´¿ÉÓã¬ÆäËû½ø³ÌͬÑù¿ÉÒÔÐÞ¸ÄÐźŵƵÄÖµ£»»¥³âËø¸üÇ¿µ÷½ø³Ì£¬Õ¼ÓÃ×ÊÔ´µÄ½ø³ÌʹÓÃÍê×ÊÔ´ºó£¬±ØÐëÓɽø³Ì±¾ÉíÀ´½âËø¡£
¼ÆËãÐźŵƣºÐźŵƵÄÖµ¿ÉÒÔÈ¡ÈÎÒâ·Ç¸ºÖµ£¨µ±È»ÊÜÄں˱¾ÉíµÄÔ¼Êø£©¡£
¶þ¡¢LinuxÐźŵÆ
linux¶ÔÐźŵƵÄÖ§³Ö×´¿öÓëÏûÏ¢¶ÓÁÐÒ»Ñù£¬ÔÚred had 8.0·¢Ðа汾ÖÐÖ§³ÖµÄÊÇϵͳVµÄÐźŵơ£Òò´Ë£¬±¾ÎĽ«Ö÷Òª½éÉÜϵͳVÐźŵƼ°ÆäÏàÓ¦API¡£ÔÚûÓÐÉùÃ÷µÄÇé¿öÏ£¬ÒÔÏÂÌÖÂÛÖÐÖ¸µÄ¶¼ÊÇϵͳVÐźŵơ£
×¢Ò⣬ͨ³£Ëù˵µÄϵͳVÐźŵÆÖ¸µÄÊǼÆÊýÐźŵƼ¯¡£
»ØÒ³Ê×
Èý¡¢ÐźŵÆÓëÄÚºË
1¡¢ÏµÍ³VÐźŵÆÊÇËæÄں˳ÖÐøµÄ£¬Ö»ÓÐÔÚÄÚºËÖØÆð»òÕßÏÔʾɾ³ýÒ»¸öÐźŵƼ¯Ê±£¬¸ÃÐźŵƼ¯²Å»áÕæÕý±»É¾³ý¡£Òò´ËϵͳÖмÇ¼ÐźŵƵÄÊý¾Ý½á¹¹£¨struct ipc_ids sem_ids£©Î»ÓÚÄÚºËÖУ¬ÏµÍ³ÖеÄËùÓÐÐźŵƶ¼¿ÉÒÔÔڽṹsem_idsÖÐÕÒµ½·ÃÎÊÈë¿Ú¡£
2¡¢ÏÂͼ˵Ã÷ÁËÄÚºËÓëÐźŵÆÊÇÔõÑù½¨Á¢ÆðÁªÏµµÄ£º
ÆäÖУºstruct ipc_ids sem_idsÊÇÄÚºËÖмÇ¼ÐźŵƵÄÈ«¾ÖÊý¾Ý½á¹¹£»ÃèÊöÒ»¸ö¾ßÌåµÄÐźŵƼ°ÆäÏà¹ØÐÅÏ¢¡£
ÆäÖУ¬struct sem½á¹¹ÈçÏ£º
struct sem{
int semval; // current value
int sempid // pid of last operation
}
´ÓÉÏͼ¿ÉÒÔ¿´³ö£¬È«¾ÖÊý¾Ý½á¹¹struct ipc_ids sem_ids¿ÉÒÔ·ÃÎʵ½struct kern_ipc_permµÄµÚÒ»¸ö³ÉÔ±£ºstruct kern_ipc_perm£»¶øÃ¿¸östruct kern_ipc_permÄܹ»Óë¾ßÌåµÄÐźŵƶÔÓ¦ÆðÀ´ÊÇÒòΪÔڸýṹÖУ¬ÓÐÒ»¸ökey_tÀàÐͳÉÔ±key£¬¶økeyÔòΨһȷ¶¨Ò»¸öÐźŵƼ¯£»Í¬Ê±£¬½á¹¹struct kern_ipc_permµÄ×îºóÒ»¸ö³ÉÔ±sem_nsemsÈ·¶¨Á˸ÃÐźŵÆÔÚÐźŵƼ¯ÖеÄ˳Ðò£¬ÕâÑùÄں˾ÍÄܹ»¼Ç¼ÿ¸öÐźŵƵÄÐÅÏ¢ÁË¡£kern_ipc_perm½á¹¹²Î¼û¡¶Linux»·¾³½ø³Ì¼äͨÐÅ£¨Èý£©£ºÏûÏ¢¶ÓÁС·¡£struct sem_array¼û¸½Â¼1¡£
»
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
ת×Ô£º
http://blog.chinaunix.net/u2/63316/showart_547992.html
LinuxϵÄĿ¼ÊÇÒÀÕÕ±ê×¼À´Êµ×÷µÄ£¬Òò´Ë£¬Äú¿ÉÒÔºÁÎÞÎÊÌâµØÒÆÖ³µ½ÈÎºÎÆäËüUNIXƽ̨¡£
--------------------------------------------------------------------------------
getcwd/getwd : È¡µÃĿǰËùÔÚĿ¼
--------------- ......
´ÓÓû§µÄ½Ç¶È¿´£¬MySQL±»SunÊÕ¹º£¬ÓÖ±»OracleÊÕ¹º¿ÉÄÜÕæ²»ÊÇʲôºÃÊ¡£MySQL±¾À´¾Í±»Oracleͨ¹ý²¢¹ºÆäÒÀÀµµÄ´æ´¢ÒýÇæInnobase¡¢BerkeleyDBÕÛÌڵIJ»ÐУ¬ÓÖÔÚ±»SunÊÕ¹ººó·¢ÉúÁËMonty´´½¨Ð·ÖÖ§MariaDBÕâÑùµÄÊÂÇ飬×îÖÕ»¹ÊÇËæ×ÅSunÒ»Æð±»Oracle²¢¹º£¬Ã»ÓÐÌÓÍÑLarry ElisonµÄħצ¡£Ò²Ðí£¬¿ªÔ´Èí¼þµÄºÃ´¦¾ÍÔÚ ......
arch\arm\kernel\head.S
¸ÃÎļþĩβ°üº¬ÁËÓï¾ä£º#include "head-common.S"£¬__lookup_processor_typeº¯ÊýÔÚarch\arm\kernel\head-common.SÖж¨Òå¡£
¹Ø¼üÊý¾Ý½á¹¹£ºstruct proc_info_list£¬ÔÚarch\arm\include\asm\procinfo.hÎļþÖж¨Ò壬Cortex¶Ô´ËÊý¾Ý½á¹¹µÄÌî³äÔÚarch\arm\mm\proc-v7.sÎļþÖж¨Òå¡£
head.sÖУ¬kernelµ ......