Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÖжÏÓëÒì³£2

¸ß¼¶¿É±à³Ì¿ØÖÆÆ÷
Èç¹ûϵͳֻÓÐÒ»¸öcpu£¬Ö÷picÊä³öÏßÒÔÖ±½ØÁ˵±µÄ·½Ê½Á¬½Óµ½cpuµÄintrÒý½Å¡£Èç¹ûϵͳÖаüº¬Á½¸ö»ò¶à¸öcpu,¾ÍÐèÒª¸ü¼Ó¸´ÔÓµÄpic.
intel´Óp3¿ªÊ¼ÒýÈëi/o¸ß¼¶¿É±ä³É¿ØÖÆÆ÷£¨APIC£©×é¼þ¡£80x86΢´¦ÀíÆ÷µ±Ç°ËùÓеÄcpu¶¼º¬ÓÐÒ»¸ö±¾µØapic¡£Ã¿¸ö±¾µØapic¶¼ÓÐ32λ¼Ä´æÆ÷£¬Ò»¸öÄÚ²¿Ê±ÖÓ£¬Ò»¸ö±¾µØ¶¨ÊÇÉ豸ÒÔ¼°Îª±¾µØapicÖжϱ£ÁôµÄÁ½Ìõ¶îÍâµÄirqÏßlint0ºÍlint1¡£ËùÓб¾µØapic¶¼Á¬½Óµ½Ò»¸öÍⲿi/o apic£¬ÐγÉÒ»¸ö¶àapicϵͳ¡£
i/o apicµÄ×é³É£ºÒ»×é24ÌõirqÏߣ¬Ò»ÕÅ24ÏîµÄÖж϶¨Ïò±í£¨interrupt redirection table£©£¬¿É±à³Ì¼Ä´æÆ÷£¬ÒÔ¼°Í¨¹ýapic×ÜÏß·¢ËͺͽÓÊÕapicÐÅÏ¢µÄÒ»¸öÐÅÏ¢µ¥Ôª£¬ÖжÏÓÅÏȼ¶²¢²»ÓëÒý½ÅºÅÏà¹ØÁª£ºÖжÏÖض¨Ïò±íÖеÄÿһÏ¿ÉÒÔ±»µ¥¶À±ä³ÉÒÔÖ¸Ã÷ÖжÏÏòÁ¿ºÍÓÅÏȼ¶£¬Ä¿±ê´¦ÀíÆ÷ÒÔ¼°Ñ¡Ôñ´¦ÀíÆ÷µÄ·½Ê½¡£Öض¨Ïò±íÖеÄÐÅÏ¢ÓÃÓÚ°Ñÿ¸öÍⲿirq ÐźÅת»»ÎªÒ»ÌõÏûÏ¢£¬Í¨¹ýapic×ÜÏß°ÑÏûÏ¢·¢Ë͸øÒ»¸ö»òÕ߶à¸ö±¾µØapicµ¥Ôª¡£
À´×ÔÍⲿӲ¼þÉ豸µÄÖжÏÇëÇóÒÔÁ½ÖÖ·½Ê½ÔÚ¿ÉÓÃcpuÖ®¼ä·Ö·¢£º
1¾²Ì¬·Ö·¢£ºirqÐźŴ«µÝ¸øÖض¨Ïò±íÏàÓ¦ÏîÖÐËùÁгöµÄ±¾µØapic¡£ÖжÏÁ¢¼´´«µÝ¸øÒ»¸öÌض¨µÄcpu£¬»òÕßÒ»×écpu,»òÕßËùÓÐcpu.
2¶¯Ì¬·Ö·¢£ºÈç¹û´¦ÀíÆ÷ÕýÔÚÖ´ÐÐ×îµÍÓÅÏȼ¶µÄ½ø³Ì£¬irqÐźžʹ«µÝ¸øÕâÖÖ´¦ÀíÆ÷µÄ±¾µØapic.
ÿ¸ö±¾µØapic¶¼ÓÐÒ»¸ö¿É±à³ÌÈÎÎñÓÅÏȼ¶¼Ä´æÆ÷£¨task priority register£©trrÓÃÀ´¼ÆË㵱ǰÔËÐнø³ÌµÄÓÅÏȼ¶¡£intelÏ£ÍûÔÚ²Ù×÷ϵͳÄÚºËÖÐͨ¹ýÿ´Î½ø³ÌÇ뻶ÔÕâ¸ö¼Ä´æÆ÷½øÐÐÐ޸ġ£
Èç¹ûÁ½¸ö»òÕ߶à¸öcpu¹²Ïí×îµÍÓÅÏȼ¶£¬¾ÍÀûÓÃÖٲü¼ÊõÔÚÕâЩcpuÖ®¼ä·ÖÅ为ºÉ¡£ÔÚ±¾µØapicµÄÖÙ²ÃÓÅÏȼ¶¼Ä´æÆ÷ÖУ¬¸øÿ¸öcpu¶¼·ÖÅäÒ»¸ö0£­15·¶Î§ÄÚµÄÊýÖµ¡£
ÿµ±Öжϴ«µÝ¸øÒ»¸öcpuʱ£¬ÆäÏàÓ¦µÄÖÙ²ÃÓÅÏȼ¶¾Í×Ô¶¯ÉèÖÃΪ0£¬¶øÆäËûÿ¸öcpuµÄÖÙ²ÃÓÅÏȼ¶¶¼Ôö¼Ó1.µ±ÖÙ²ÃÓÅÏȼ¶¼Ä´æÆ÷´óÓÚ15ʱ£¬¾Í°ÑËüÉèÖÃΪ»ñʤcpuµÄÇ°Ò»¸öÖÙ²ÃÓÅÏȼ¶¼Ó1.Òò´Ë£¬ÖжÏÒÔÂÖת·½Ê½ÔÚcpuÖ®¼ä·Ö·¢£¬ÇÒ¾ßÓÐÏàͬµÄÈÎÎñÓÅÏȼ¶¡£
³ýÁËÔÚ´¦ÀíÆ÷Ö®¼ä·Ö·¢ÖжÏÍ⣬¶àapicϵͳ»¹ÔÊÐícpu²úÉú´¦ÀíÆ÷¼äÖжϡ£µ±Ò»¸öcpuÏ£Íû°ÑÖжϷ¢¸øÁíÒ»¸öcpuʱ£¬¾ÍÔÚ×Ô¼º±¾µØapicµÄÖжÏÖ¸Áî¼Ä´æÆ÷£¨interrupt command register,ICR£©Öдæ·ÅÕâ¸öÖжÏÏòÁ¿ºÍÄ¿±ê±¾µØ APIC±êʶ·û¡£È»ºóͨ¹ýapic×ÜÏßÏòÄ¿±ê±¾µØapic·¢ËÍÒ»ÌõÏûÏ¢£¬´Ó¶øÏò×Ô¼ºµÄcpu·¢³öÒ»¸öÏàÓ¦µÄÖжϡ£
Òì³££º80x86΢´¦ÀíÆ÷·¢²¼ÁË´óÔ¼20ÖÖ²»Í¬µÄÒì³£¡£Äں˱ØÐëΪÿÖÖÒì³£Ìṩһ¸öרÃŵÄÒì³£´¦Àí³ÌÐò¡£
ÖжÏÏòÁ¿±í£¨interrupt descriptor table IDT£©ÊÇÒ»¸ö


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

Éî¶È½éÉÜLinuxÄÚºËÊÇÈçºÎ¹¤×÷µÄ


Å£½ò×ÖµäÖжÔ"kernel"Ò»´ÊµÄ¶¨ÒåÊÇ£º"½ÏÈíµÄ¡¢Í¨³£ÊÇÒ»¸ö¼á¹û¿ÉʳÓõIJ¿·Ö¡£"µ±È»»¹ÓеڶþÖÖ¶¨Ò壺"ij¸ö¶«Î÷ºËÐÄ»òÕß×îÖØÒªµÄ²¿·Ö¡£"¶ÔLinuxÀ´Ëµ£¬ËüµÄKernelÎÞÒÉÊôÓÚµÚ¶þÖÖ½âÊÍ¡£ÈÃÎÒÃÇÀ´¿´¿´Õâ¸öÖØÒªµÄ¶«Î÷ÊÇÈçºÎ¹¤×÷µÄ£¬ÏÈ´ÓÒ»µãÀíÂÛ˵Æð¡£
¹ãÒåµØÀ´Ëµkernel¾ÍÊÇÒ»¸öÈí¼þ£¬ËüÔÚÓ²¼þºÍÔËÐÐÔÚ¼ÆËã»úÉϵÄÓ¦ÓóÌÐòÖ®¼äÌá¹ ......

linuxÄں˺¯Êý±Ê¼Ç(¶þ)

ÐźÅÖ¸¶¨´¦Àíº¯Êý
void (*signal (int signum,void (*handle)(int)))(int);ÉèÖÃij¸öÐźŵĴ¦Àí·½·¨
int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact);ÓÃÓÚ¼ì²é»ò¸Ä±ä½ø³ÌÔÚ½Óµ½ÐźÅʱµÄ¶¯×÷
Ðźż¯²Ù×÷º¯Êý
static inline void sigaddset(sigset_t *set,int _sig);
static inline voi ......

Linuxϵͳ¸÷°æ±¾±¾µØrootÃÜÂëÆƽⷽ·¨ÕûÀí


¡¡¡¡Õâ¶Îʱ¼äÀÏÅöµ½ÓÐÈËÎʼ°¸÷¸öLinux°æ±¾µÄ±¾µØrootÃÜÂëÆƽⷽ·¨£¬ÎÒÕâÀï×Ô¼ºÒÔ¼°ÔÚÍøÂçÉÏËѼ¯ÁËЩ×ÊÁÏ£¬Ï£Íû¶Ô¿´µ½ÁËÕâÎÄÕ¶øÓÖÇ¡ºÃÓõõ½µÄ¼¼ÊõÈËÔ±Óеã°ïÖú£º
(Ò»)RedHat/CentOS/Fedora ϵͳÃÜÂëÆƽâ
¡¡¡¡1.ÔÚgrubÑ¡Ïî²Ëµ¥°´E½øÈë±à¼­Ä£Ê½
¡¡¡¡2.±à¼­kernel ÄÇÐÐ×îºó¼ÓÉÏ¿Õ¸ñS (»òÕß¿Õ¸ñSingle)
¡¡¡¡3.°´B£¬Æô¶¯µ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ