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

Linux Platform Device and Driver

    
´Ó
Linux 2.6
ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ :Platform_device
ºÍ Platform_driver
¡£
     Linux
Öд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ ,
É豸ÓÃ
Platform_device
±íʾ£¬Çý¶¯ÓÃ
Platform_driver
½øÐÐ×¢²á¡£

     Linux platform driver
»úÖÆºÍ´«Í³µÄ device driver
»úÖÆ (
ͨ¹ý driver_register
º¯Êý½øÐÐ×¢²á )
Ïà±È£¬Ò»¸öÊ®·ÖÃ÷ÏÔµÄÓÅÊÆÔÚÓÚ
platform
»úÖÆ½«É豸±¾ÉíµÄ×ÊÔ´×¢²á½øÄںˣ¬ÓÉÄÚºËͳһ¹ÜÀí£¬ÔÚÇý¶¯³ÌÐòÖÐʹÓÃÕâЩ×ÊԴʱͨ¹ý platform device
ÌṩµÄ±ê×¼½Ó¿Ú½øÐÐÉêÇ벢ʹÓá£ÕâÑùÌá¸ßÁËÇý¶¯ºÍ×ÊÔ´¹ÜÀíµÄ¶ÀÁ¢ÐÔ£¬²¢ÇÒÓµÓнϺõĿÉÒÆÖ²ÐԺͰ²È«ÐÔ (
ÕâЩ±ê×¼½Ó¿ÚÊǰ²È«µÄ )
¡£ 
    Platform
»úÖÆµÄ±¾ÉíʹÓò¢²»¸´ÔÓ£¬ÓÉÁ½²¿·Ö×é³É£º platform_device
ºÍ platfrom_driver
¡£

   
ͨ¹ý Platform
»úÖÆ¿ª·¢·¢µ×²ãÇý¶¯µÄ´óÖÂÁ÷³ÌΪ :
¶¨Òå platform_device ->
×¢²á platform_device->
¶¨Òå platform_driver->
×¢²á platform_driver
¡£ 
   
Ê×ÏÈҪȷÈϵľÍÊÇÉ豸µÄ×ÊÔ´ÐÅÏ¢£¬ÀýÈçÉ豸µÄµØÖ·£¬ÖжϺŵȡ£

ÔÚ 2.6
ÄÚºËÖÐ platform
É豸ÓýṹÌå platform_device
À´ÃèÊö£¬¸Ã½á¹¹Ì嶨ÒåÔÚ
kernel\include\linux\platform_device.h
ÖУ¬
struct platform_device {
const char *
name;
u32 id;
struct device
dev;
u32
num_resources;
struct resource
* resource;
};
 
   
¸Ã½á¹¹Ò»¸öÖØÒªµÄÔªËØÊÇ resource
£¬¸ÃÔªËØ´æÈëÁË×îÎªÖØÒªµÄÉ豸×ÊÔ´ÐÅÏ¢£¬¶¨ÒåÔÚ
kernel\include\linux\ioport.h
ÖУ¬

struct resource {
const char
*name;
unsigned long
start, end;
unsigned long
flags;
struct resource
*parent, *sibling, *child;
};
¶¨ÒåºÃÁË platform_device
½á¹¹Ìåºó¾Í¿ÉÒÔµ÷Óú¯Êý platform_add_devices
ÏòϵͳÖÐÌí¼Ó¸ÃÉ豸ÁË£¬Ö®ºó¿ÉÒÔµ÷ÓÃ
platform_device_register()
½øÐÐÉ豸ע²á¡£Òª×¢ÒâµÄÊÇ£¬ÕâÀïµÄ platform_device
É豸µÄ×¢²á¹ý³Ì±ØÐëÔÚÏàÓ¦É豸Çý¶¯¼ÓÔØÖ®Ç°±»µ÷Ó㬼´Ö´ÐÐ platform_driver_register
֮ǰ ,
Ô­ÒòÊÇÒòΪÇý¶¯×¢²áʱÐèҪƥÅäÄÚºËÖÐËùÒÔÒÑ×¢²áµÄÉ豸Ãû¡£
ÔÚÇý¶¯³õʼ»¯º¯ÊýÖе÷Óú¯Êý platform_driver_


Ïà¹ØÎĵµ£º

linuxÏÂɱ×Ó½ø³Ì£¨µ÷ÓÃkill£©

ÔÚlinuxÀïÃæ£¬fork()Ò»¸ö×Ó½ø³Ì£¬½á¹ûÔõô¶¼É±²»µô¡£ÓÉÓÚ²»ÊÇrootÓû§£¬Ê¹ÓÃkill -9 pid£¬Ò²Ã»Óá£
ÔÚps -awtµÄʱºò×ÜÊÇÄÜ¿´µ½ÄǸö×Ó½ø³Ì¡£ÎÒÔÚ×Ó½ø³ÌÀïÃæÆðÁ˸öshell¡£
ºóÀ´googleÁËһϣ¬·¢ÏÖÒªµ÷ÓÃwaitpid²Å¿ÉÒÔ¡£
Õâ¸öÊÇËùνµÄzombie£¨½©Ê¬½ø³Ì£©
ÒýÓÃÒ»¶Î£º
ÔÚfork()/execve()¹ý³ÌÖУ¬¼ÙÉè×Ó½ø³Ì½áÊøÊ±¸¸½ø³ÌÈÔ ......

linux PS1 Ìáʾ·û¶¨Òå

PS1£º¾ÍÊÇÓû§Æ½Ê±µÄÌáʾ·û¡£
¡¡¡¡PS2£ºµÚÒ»ÐÐûÊäÍ꣬µÈ´ýµÚ¶þÐÐÊäÈëµÄÌáʾ·û¡£
¡¡¡¡LinuxϵͳÌáʾ·ûÊÇÓÃϵͳ±äÁ¿PS1À´¶¨ÒåµÄ¡£Ò»°ãϵͳĬÈϵÄÐÎʽÊÇ£º[username@host ¹¤×÷Ŀ¼]$.
¡¡¡¡ÓÃecho $PS1¿ÉÒԵõ½PS1µÄÖµ£¬¼´PS1="[\u@\h \w]"\$
¡¡¡¡µÇ¼ºó¿ÉÒÔ¸ü¸ÄPS1µÄÏÔʾÑùʽ£¬µ«Êǵ±Í˳öÖØÆôµÇ¼½øÈëϵͳºó£¬ÑùʽÓÖ±ä³ ......

LinuxÉϹÒÔØWindows¹²ÏíĿ¼

------------LinuxÉϹÒÔØWindows¹²ÏíĿ¼£¨ÖØÆôºóʧЧ£©--------------------
µÚÒ»²½£ºÏÈÔÚWindowsÉÏ´´½¨Ò»¸ö¹²ÏíĿ¼
µÚ¶þ²½£ºÔÚlinuxÖÐÔËÐÐÈçÏÂÃüÁ
mount.cifs //192.168.10.43/shared /root/shared -o user=name,pass=123456
×¢£º/root/sharedÊÇlinuxÉϵÄĿ¼¡£userÊÇWindowsϵͳµÄÓû§Ãû  passÊÇWindo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ