ÔÚlinuxÖÐ Ó¦ÓóÌÐòÈçºÎµ÷ÓÃÄ£¿éÄڵĺ¯Êý
ÔÚbbsÉÏ·¢Á˸öÈçÌâËùʾµÄ´óÍÁÌû£¬½á¹ûûһ¸ö»Ø¸´£¬°¥£¬Õ涪ÈË~~~£¬ÃÉʦÐÖÖ¸µã£¬²Å³õ²½¸ãÇå³þlinuxÄ£¿éº¯ÊýµÄµ÷ÓûúÖÆ£º
Ê×ÏÈ£¬Ó¦ÓóÌÐòÊÇÎÞ·¨Ö±½Ó·ÃÎÊÄ£¿éÖеĺ¯ÊýµÄ£¨¼´Ê¹ÊÇÄã×Ô±à×Ô¹ÒµÄÄ£¿é££Êµ¼ÊÉÏËüÒ²ÊÇÄÚºËÄ£¿é£©£¬Óû§¿Õ¼äÓëÄں˿ռäÖ®¼äÖ»ÓÐͨ¹ýÒ»Ð©ÌØ¶¨µÄϵͳº¯ÊýÀ´½øÐÐͨѶ£¨Èçʲôuser_to_kernel£©£¬¶ø¾ø¶Ô²»¿ÉÄÜͨ¹ý“Ö±½Óµ÷ÓÃÄ£¿éÀïµÄº¯Êý”ÕâÖÖÐÎʽÀ´Í¨Ñ¶¡£
ÄÇ
ô£¬Ëù±àдµÄÄ£¿éÀïµÄº¯ÊýÔõô²ÅÄܱ»Ö´ÐУ¿ÓÉ˵÷Óã¿Æäʵ´ð°¸ºÜ¼òµ¥£¬ËüÃÇÊÇÓÉÄÚºËÀ´µ÷Óõģ¬×¢Ò⣬ÊÇÓÉÄÚºËÀ´µ÷Óõġ£±ÈÈç
init_module() ºÍ cleanup_module()
º¯Êý£¬·Ö±ðÊÇÔÚ¹ÒÔØÄ£¿é£¨insmod£©ºÍÐ¶ÔØÄ£¿é£¨rmmod£©µÄʱºò£¬Äں˸ù¾ÝÃüÁî²ÎÊýÀ´µ÷ÓôËÁ½¸öº¯ÊýµÄ£¬ËüÃÇ·Ö±ð¸ºÔðÄ£¿éµÄ³õʼ»¯¼°ºó´¦Àí¡£
ºÜ
×ÔÈ»µÄ£¬ÏÂÒ»¸öÒÉÎʽÓõà¶øÖÁ£¬££Ä£¿éÀïµÄÆäËûº¯ÊýÈçºÎ±»µ÷Ó㿱ÈÈçÎÒдµÄÄ£¿éÖгýÁË init_module()
ºÍ cleanup_module() º¯ÊýÍ⣬»¹Ð´ÁËÒ»¸ö hello_world() º¯Êý£¬¼òµ¥µÄÊä³ö“hello
world”µ½¿ØÖÆÌ¨£¬ºÃ£¬½ÓÏÂÀ´¾ÍÊÇÕâ´Î·ÖÎöµÄ¹Ø¼ü£¬Ç°ÃæÎÒÃÇÇ¿µ÷ÁËÄ£¿éÖеĺ¯ÊýÊÇÓÉÄÚºËÀ´µ÷Óõ쬳ý´ËÖ®ÍâûÓбðµÄ»ú»áʹËü±»Ö´Ðе½¡£ÄÇÈç¹ûÎÒÃǵÄ
hello_world()
º¯Êý²»Äܱ»Äں˵÷Óã¬Õâ²»¾ÍÒâζ×ÅËüÓÀÔ¶Ò²²»¿ÉÄܱ»Ö´Ðе½Âð£¿È·ÊµÊÇÕâÑù£¬»»¾ä»°Ëµ£¬ÔÚÕâÖÖÇé¿öÏÂËü¾ÍÊÇÒ»¶ÎÀ¬»ø´úÂ룬ÓÀÎÞ¼ûÌìÈÕ֮ʱ¡£ÔõôÑù²ÅÄÜʹÎÒÃÇ
µÄ hello_world()
º¯Êý±»Ö´ÐУ¿ÏÔÈ»£¬¹Ø¼üÔÚÓÚÈÃÄÚºËÈÏʶËü£¬¼´ÄÚºËÄÜÕÒµ½Ëü¡£ÄÇô£¬ÔõÑù²ÅÄÜʹÄÚºËÕÒµ½Õâ¸öº¯Êý£¿ÔÙ½øÒ»²½µÄÎÊÌâÊÇ£¬ÄÚºËΪʲôҪȥÕÒÕâ¸öº¯Êý£¿
µÚÒ»ÎʵĴð°¸ÊÇ£¬ÄÚºËͨ¹ýϵͳÖÐÌØ¶¨µÄÊý¾Ý½á¹¹À´ÕÒµ½º¯ÊýµÄ£¬µ±È»£¬ÕâÒâζ×ÅÔÚÄãµÄÄ£¿é³ÌÐòÖУ¬½ö½öдÉÏ hello_world() º¯ÊýµÄ´úÂëÊDz»¹»µÄ£¬»¹Ó¦¸ÃÔÙ×ö¼¸²½¹¤×÷£º
a£¬Ê×ÏÈ£¬ÏµÍ³Öеĸ÷ÀàÊý¾Ý½á¹¹ÄÇô¶à£¬ÒªÊ¹ÓÃÄĸöÄØ£¿ÕâÓÉÄãÕâ¸öÄ£¿éµÄ×¢²áÐÔÖʾö¶¨£¬Æ©ÈçÄãµÄÄ£¿éÊÇÒ»¸öUSBÉ豸Çý¶¯Ä£¿é£¬ÄÇôÄã¾ÍÐèÒªÌîдusbÉ豸Çý¶¯³ÌÐòµÄÊý¾Ý½á¹¹£¨Í¨³£Êý¾Ý½á¹¹¶¼ÊǽṹÌå(struct)µÄÐÎʽ£©
struct usb_driver{µÚÒ»ÏµÚ¶þÏµÚÈýÏ.......}
ÕâÀïµÄ¸÷ÏîÓÐЩÊÇ×Ö·û´®£¬ÓÐЩÊǺ¯ÊýÖ¸Õ룬¾ßÌåÇë²é×ÊÁÏ¡£
b£¬
°Ñ hello_world()
µÄº¯ÊýÖ¸Õë·Å½øÒ»¸öÊý¾Ý½á¹¹ÖС£ÎÒÃÇ»¹ÊǽÓמÙusbÉ豸Çý¶¯³ÌÐòÄ£¿éµÄÀý×Ó°É£¬ÔÚËüµÄÊý¾Ý½á¹¹usb_driver{}ÖУ¬Ñ¡Ò»¸öÇ¡ºÃÊǺ¯ÊýÖ¸ÕëµÄÏ
°Ñ hello_world() º¯ÊýµÄÖ¸Õë·Å½øÈ¥£¨Í¨¹ýº¯ÊýÃû£©£¬ÔÙÌîÂúÕâ¸öÊý¾Ý½á¹¹µÄÆäËû
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ϻ¯Êý£¬´´½¨½ø³ÌÃèÊö·ûÒÔ¼°×Ó½ø³ÌÖ´ÐÐËùÐèÒªµÄËùÓÐÆäËûÊý¾Ý½á¹¹¡£²ÎÊýÓëdo_fork()µÄ²ÎÊýÏàͬ£¬Íâ¼Ó×Ó½ø³ÌµÄpid¡£
static task_t *copy_process(unsigned long clone_flags,unsigned long stack_start,struct pt_regs *regs,unsigned long stack_size,int __user *parent_tidptr,int __user *child_tidptr,int pid)
{
&n ......
Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£ÕâÀï½éÉÜѧϰLinuxµÄһЩ½¨Òé¡£
Ò»¡¢´Ó»ù´¡¿ªÊ¼£º³£³£ÓÐЩÅóÓÑÔÚLinuxÂÛ̳ÎÊһЩÎÊÌ⣬²»¹ý£¬ÆäÖдó¶àÊýµÄÎÊÌâ¶¼ÊǺܻù´¡µÄ¡£ÀýÈ磺ΪʲôÎÒʹÓÃÒ»¸öÃüÁîµÄʱºò£¬ÏµÍ³¸æËßÎÒÕÒ²»µ½¸ÃĿ¼£¬ÎÒÒªÈçºÎÏÞÖÆÊ¹ÓÃÕß ......
http://news.csdn.net/a/20091229/216149.html
Techradar£ºLinuxÑݱäµÄ15¸öÖØ´óÀï³Ì±®
2009-12-29 15:50 | 273´ÎÔĶÁ | À´Ô´£º»ª¾ü×ÊѶ ¡¾ÒÑÓÐ0ÌõÆÀÂÛ¡¿·¢±íÆÀÂÛ
¹Ø¼ü´Ê£ºLinux | ¸ÐлcarlkxiafhwfhwµÄÌṩ | ÊÕ²ØÕâÆªÐÂÎÅ
¾Ý¹úÍâýÌ屨µÀ£¬½üÈÕ£¬×ÊÑ¶ÍøÕ¾TechradarÁоÙÁ˽üÊ®ÄêÀ´LinuxÏ ......