linux device modelÖ®ÎÒ¼û
¼ÍÏþá°Ôø¾Ëµ£º“ÊÀ¼äµÄµÀÀíÓëÊÂÇ飬¶¼ÔÚ¹ÅÈ˵ÄÊéÖÐ˵¾¡£¬ÏÖÔÚÈçÔÙÖøÊö£¬ÈÔÈ»³¬²»¹ý¹ÅÈ˵ķ¶Î§£¬ÓֺαØÔÙ¶àÖøÊö¡£”ÓÚÊÇËûÒ»ÉúÖ®ÖУ¬´Ó²»ÖøÊ飬ֻÊDZàÊé--ÕûÀíǰÈ˵ĵ伮£¬½«ÖйúÎÄ»¯×÷ϵͳµÄ·ÖÀ࣬ÒÔ±ãÓÚÒÔºóµÄѧÕßÃÇѧϰ¡£×Ô¼ºµÄÖø×÷Ö»ÓСºÔÄ΢²ÝÌñʼǡ»Ò»²á¶øÒÑ¡£
linuxÉ豸ģÐÍÒ²ÊÇÈç´Ë£¬Õâ¸ö¶«Î÷±¾À´¾ÍÊÇÀÏÍâ·¢Ã÷µÄ£¬¶øÇÒÓ¢ÎÄÏà¹Ø×ÊÁÏÒ²×ã¹»ÏêʵÃ÷ÁË£¬ÎÒÔڴ˲»¶à׸ÑÔ£¬Ö»½«×ÊÁÏÕûÀíÓÚ´Ë¡£
ÔÚLinux Kernel Development(Second Edition)£¬linux device drivers£¨third edition£©£¬Understanding the Linux Kernel£¨third edition£©Öж¼ÓйØÓÚlinux device modelµÄÕ½ڣ¬ÆäÖÐlinux device drivers£¨third edition£©ÖнéÉÜ×îΪÏêʵ£¬ÔÚµÚÊ®ËÄÕ¡£[ÕâÈý±¾¿ÉÒÔ´ÓÕâÀïÏÂÔØ]
ÆäʵËùÓйØÓÚlinux device modelµÄÎÄÕ²»¹ýºõÁ½µã£¬Ò»¸öÊǹØÓÚKobjects, Ksets,Ktype£¬ÁíÒ»¸ö¾ÍÊǹØÓÚsysfs£¬ÀïÃæ»á½éÉÜËüµÄdevice,bus,classµÈĿ¼¡£ÔÚlinux device drivers»¹ÓÐÒ»ÕÂ14.6. Putting It All TogetherºÜºÃ£¬Ê¹ÎÒÃǸü¼ÓÇåÎúµÄÁ˽âÒ»¸öÉ豸»òÇý¶¯×¢²áµÄÕû¸ö¹ý³Ì·¢ÉúÁËʲô¡£
ÍøÂ·ÉÏfudan_abcµÄ¸´µ©È˼×Ôø¾ÔÚ“ÎÒÊÇuÅÌ”ÀïÒ²½²¹ýÉ豸ģÐÍ(ÔÚlinuxÄÚºËÐÞÁ¶Ö®µÀÀïÒ²ÓÐ×ܽá)£¬²»¹ý¸Ð¾õÓÄĬÓÐÓ࣬¶øÂß¼²»×㣬²»ÈçÊéÖн²µÄºÃ£¬ËäÈ»ÓÐЩ¿ÝÔï¡£
×ÊÔ´²î²»¶à¶¼ÔÚÉÏÃæ£¬Íòǧ¾«²Ê»¹µÈÄãÈ¥·¢ÏÖ¡£ÕýÇÉÎÒÔÚlwnÉÏÃæ·¢ÏÖÁËÒ»¸ö²»´íµÄoverview£¬½¨ÒéÄãÈ¥¿´ÔÎÄ£¬ÒòΪÉÏÃæÓм¸¸öÓÐÓõÄÁ´½Ó£¬ÕâÀïÖ»×÷Õª³´æµµ¡£
Driver porting: Device model overview
 
Ïà¹ØÎĵµ£º
Ò» ÈýÖÖÀàÐ͵ÄÌ×½Ó×Ö£º
1.Á÷ʽÌ×½Ó×Ö£¨SOCKET_STREAM)
Ìá¹©ÃæÏòÁ¬½ÓµÄ¿É¿¿µÄÊý¾Ý´«Êä·þÎñ¡£Êý¾Ý±»¿´×÷ÊÇ×Ö½ÚÁ÷£¬ÎÞ³¤¶ÈÏÞÖÆ¡£ÀýÈçFTPÐÒé¾Í²ÉÓÃÕâÖÖ¡£
2.Êý¾Ý±¨Ê½Ì×½Ó×Ö£¨SOCKET_DGRAM£©
ÌṩÎÞÁ¬½ÓµÄÊý¾Ý´«Êä·þÎñ£¬²»±£Ö¤¿É¿¿ÐÔ¡£
3.ÔʼʽÌ×½Ó×Ö£¨SOCKET_RAW£©
......
Ïß³Ì
ÊǼÆËã»úÖжÀÁ¢ÔËÐеÄ×îСµ¥Î»£¬ÔËÐÐʱռÓúÜÉÙµÄϵͳ×ÊÔ´¡£¿ÉÒÔ°ÑÏ߳̿´³ÉÊDzÙ×÷ϵͳ·ÖÅäCPUʱ¼äµÄ»ù±¾µ¥Ôª¡£Ò»¸ö½ø³Ì¿ÉÒÔÓµÓÐÒ»¸öÖÁ¶à¸öÏ̡߳£ËüÏß³ÌÔÚ½ø³ÌÄÚ²¿¹²ÏíµØÖ·¿Õ¼ä¡¢´ò¿ªµÄÎļþÃèÊö·ûµÈ×ÊÔ´¡£Í¬Ê±Ïß³ÌÒ²ÓÐÆä˽ÓеÄÊý¾ÝÐÅÏ¢£¬°üÀ¨£ºÏ̺߳š¢¼Ä´æÆ÷£¨³ÌÐò¼ÆÊýÆ÷ºÍ¶ÑÕ»Ö¸Õ룩¡¢¶ÑÕ»¡¢ÐźÅÑÚÂë¡¢ÓÅÏȼ¶¡¢Ïß³ ......
֮ǰÎÒÃÇÒѾ½²µ½ÓÃfork()À´´´½¨Ò»¸öнø³Ì£¬ÓÃexit()À´ÖÕÖ¹Ò»¸ö½ø³Ì¡£ÏÖÔÚÎÒÃǽ«ÂÔ΢ÉîÈëÁ˽âexit()Ö´ÐÐÖ®ºó·¢ÉúµÄÊÂÇé¡£
ÊÂʵÉÏ£¬exit()ÖÕÖ¹½ø³Ì²¢Ã»Óн«Æä³¹µ×Öսᣬ¶øÊǽ«Ò»¸öÕý³£µÄ½ø³Ì±ä³ÉÁËÒ»¸ö½©Ê¬½ø³Ì¡£¸Ã½©Ê¬½ø³Ì¼¸ºõ²»Õ¼ÓÃ×ÊÔ´£¬Ã»ÓпÉÖ´ÐеĴúÂ룬Ҳ²»Äܱ»µ÷¶È£¬½ö½öÖ»ÄÜÔÚ½ø³ÌÁбíÖÐ ......
¿´LDD3ÖÐÉ豸ģÐÍÒ»Õ£¬¾õµÃ˼άÓÐЩ»ìÂÒ¡£ÕâÀï´ÓÕûÌåµÄ½Ç¶ÈÀ´ÀíÀí˼·¡£
±¾ÎÄ´ÓËĸö·½ÃæÀ´×ܽáһЩÄÚÈÝ£º
1.µ×²ãÊý¾Ý½á¹¹£ºkobject,kset.
2.linuxÉ豸ģÐͲã´Î¹ØÏµ£ºbus_type,device,device_driver.
3.¼¯³É£ºPCIÉ豸Çý¶¯Ä£ÐÍʵÀý¼°É豸£¬É豸Çý¶¯×¢²áÔ´ÂëµÄ¼òµ¥·ÖÎö.
4.ÃæÏò¶ÔÏóµÄ˼ÏëÔÚlinuxÉ豸ģÐÍÖеÄÓ¦Ó÷ÖÎö.
......
ºÍÆäËû²Ù×÷ϵͳһÑù£¬Linux°üº¬½ø³Ìµ÷¶ÈÓë½ø³Ì¼äͨÐÅ(IPC)¡¢ÄÚ´æ¹ÜÀí(MMU)¡¢ÐéÄâÎļþϵͳ(VFS)¡¢ÍøÂç½Ó¿ÚµÈ£¬ÏÂͼ¸ø³öÁËLinuxµÄ×é³É¼°Æä¹ØÏµ£º
LinuxÄÚºËÔ´´úÂë°üÀ¨¶à¸öĿ¼£º
¡¡¡¡£¨1£©arch£º°üÀ¨Ó²¼þÌØ¶¨µÄÄں˴úÂ룬Èçarm¡¢mips¡¢i386µÈ£»
¡¡¡¡£¨2£©drivers£º°üº¬Ó²¼þÇý¶¯´úÂ룬Èçcha ......