LinuxϵͳÏÂÇý¶¯³ÌÐò¿ò¼Ü¸ÅÊö
Ò»¡¢linuxµÄÉ豸Çý¶¯³ÌÐòÓëÍâ½çµÄ½Ó¿Ú¿ÉÒÔ·ÖΪÈý¸ö²¿·Ö£º
¡¡¡¡1£®Çý¶¯³ÌÐòÓë²Ù×÷ϵͳÄں˵Ľӿڡ£Í¨¹ýfile_operations(include/linux/fs.h)Êý¾Ý½á¹¹À´Íê³ÉµÄ¡£
¡¡¡¡2£®Çý¶¯³ÌÐòÓëϵͳÒýµ¼µÄ½Ó¿Ú¡£Õⲿ·ÖÀûÓÃÇý¶¯³ÌÐò¶ÔÉ豸½øÐгõʼ»¯¡£
¡¡¡¡3£®Çý¶¯³ÌÐòÓëÉ豸µÄ½Ó¿Ú¡£Õⲿ·ÖÃèÊöÁËÇý¶¯³ÌÐòÈçºÎÓëÉ豸½øÐн»»¥£¬Óë¾ßÌåµÄÉ豸ÃÜÇÐÏà¹Ø¡£
¡¡¡¡¶þ¡¢¸ù¾Ý¹¦ÄÜ»®·Ö£¬É豸Çý¶¯³ÌÐòµÄ´úÂëÓÐÒÔϼ¸²¿·Ö£º
¡¡¡¡1£®Çý¶¯³ÌÐòµÄ×¢²áºÍ×¢Ïú¡£
¡¡¡¡2£®É豸µÄ´ò¿ªºÍÊÍ·Å¡£
¡¡¡¡3£®É豸µÄ¶Áд²Ù×÷¡£
¡¡¡¡4£®É豸µÄ¿ØÖƲÙ×÷¡£
¡¡¡¡5£®É豸µÄÖжϺÍÂÖѯ´¦Àí¡£
¡¡¡¡Èý¡¢Çý¶¯³ÌÐòµÄ×¢²áºÍ×¢Ïú£º
¡¡¡¡É豸Çý¶¯³ÌÐò¿ÉÒÔÔÚϵͳÆô¶¯µÄʱºò³õʼ»¯£¬Ò²¿ÉÒÔÔÚÐèÒªµÄʱºò¶¯Ì¬¼ÓÔØ¡£×Ö·ûÉ豸µÄ³õʼ»¯ÓÉchr_dev_init()Íê³É£¬°üÀ¨¶ÔÄڴ棨devfs_register_chrdev(MEM_MAJOR,"mem",&memory_fops)£©£¬Öնˣ¨tty_init()£©£¬´òÓ¡»ú£¨lp_init()£©£¬Êó±ê£¨misc_init()£©µÈ×Ö·ûÉ豸µÄ³õʼ»¯¡£
¡¡¡¡¿éÉ豸³õʼ»¯ÓÉblk_dev_init()Íê³É£¬Õâ°üÀ¨¶ÔIDEÓ²ÅÌ£¨ide_init()£©£¬ÈíÅÌ£¨floppy_init()£©£¬¹âÇýµÈ¿éÉ豸µÄ³õʼ»¯¡£
¡¡¡¡Ã¿¸ö×Ö·ûÉ豸»òÊÇ¿éÉ豸µÄ³õʼ»¯¶¼ÊÇͨ¹ýdevfs_register_chrdev()»òÊÇdevfs_register_blkdev()ÏòÄÚºË×¢²á¡£ÔڹرÕ×Ö·ûÉ豸»òÊÇ¿éÉ豸ʱ£¬»¹ÐèҪͨ¹ýdevfs_unregister_chrdev()»òÊÇdevfs_unregister_blkdev()´ÓÄÚºËÖÐ×¢ÏúÉ豸¡£
¡¡¡¡ËÄ¡¢É豸µÄ´ò¿ªºÍÊÍ·Å£º
¡¡¡¡´ò¿ªÉ豸ÊÇÓÉopen()À´Íê³ÉµÄ¡£ÀýÈ磬´òÓ¡»úÊÇÓÃlp_open()´ò¿ªµÄ£¬¶øÓ²ÅÌÊÇÓÃhd_open()´ò¿ªµÄ¡£Ôڴ󲿷ÖÉ豸Çý¶¯³ÌÐòÖУ¬openÍê³ÉÈçϹ¤×÷£º
¡¡¡¡1£®Ôö¼ÓÉ豸µÄÊÇÓüÆÊý¡£
¡¡¡¡2£®¼ì²éÉ豸µÄÏà¹Ø´íÎó£¬ÈçÉ豸ÉÐδ׼±¸ºÃ»òÊÇÀàËÆÓ²¼þµÄÎÊÌâ¡£
¡¡¡¡3£®¼ì²éÊÇÊ״δò¿ª£¬Ôò³õʼ»¯É豸¡£
¡¡¡¡4£®Ê¶±ð´ÎÉ豸ºÅ£¬ÈçÓбØÒªÔò¸üÐÂf_opÖ¸Õë¡£
¡¡¡¡5£®Èç¹ûÐèÒª£¬·ÖÅäÇÒÉèÖÃÒª·ÅÔÚfilp->private_dataÀïµÄÊý¾Ý½á¹¹¡£
¡¡¡¡ÊÍ·ÅÉ豸ÓÉrelease()À´Íê³É£¬ÀýÈçÊÍ·Å´òÓ¡»úÊÇÓÃlp_release()£¬¶øÊÍ·ÅÖÕ¶ËÉ豸ÊÇÓÃtty_release()¡£ÊÍ·ÅÉ豸µÄÒ»°ã²½Öè°üÀ¨£º
¡¡¡¡1£®ÊÍ·ÅÔÚfilp->private_dataÖеÄopen·ÖÅäµÄÄÚ´æ¡£
¡¡¡¡2£®Èç¹ûÊÇ×îºóÒ»´ÎÊÍ·Å£¬Ôò¹Ø±ÕÉ豸¡£
¡¡¡¡3£®µÝ¼õÉè±ðµÄʹÓüÆÊý¡£
¡¡¡¡Îå¡¢É豸µÄ¶Áд²Ù×÷£º
¡¡¡¡×Ö·ûÉ豸ʹÓø÷×ÔµÄread()ºÍwrite()À´½øÐÐÊý¾Ý¶Áд¡£ÀýÈ磬¶ÔÐéÄâÖն˵ĶÁдÊÇͨ¹ývcs_read()ºÍvcs_write()À´½øÐÐÊý¾Ý¶ÁдµÄ¡£
¡¡¡¡¿éÉ豸ʹÓÃͨÓõÄgene
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
ÔÚ¿ØÖÆ̨Ï£¬ÓÃls£¬¾Í»á·¢ÏÖ£¬shell½«²»Í¬ÀàÐ͵ÄÎļþÏîÄ¿ÏÔʾΪ²»Í¬µÄÑÕÉ«¡£Õß¿ÉÒÔÌá¸ßЧÂÊ£¬²»ÓÃls -l±ãÄÜ´ó¸ÅµÄ°Ñ¸÷¸öÎļþµÄÀàÐÍÇé¿öÁ˽âһϡ£
ÄãÓÐûÓÐÏë¹ý¸ü¸ÄÕâ¸ö×ÅÉ«ÅäÖÃÄØ£¿
Æä
ʵ£¬ÔÚ/etcÏÂÓÐÒ»¸öDIR_COLORSµÄÎļþ£¬ÕâÊÇÒ»¸ö×ÅÉ«¿ØÖƵÄÄ£°æ¡£ÏÖ½«Õâ¸öÄ£°æ¿½³öÀ´¡£Èç¹ûÏëÈÃÕâ¸öÅäÖÃÔÚrootÓû§ÏÂÉúЧ£¬±ß¿½µ½
......
#include <stdio.h>
#include <unistd.h>
int main() {
char link[100], path[100];
sprintf(link, "/proc/%d/exe", getpid());
readlink(link, path, sizeof(path));
printf("%s\n.", path);
return 0;
} ......
×òÌìÓиö¹«Ë¾µÄÍøÕ¾£¬ÒªÉÏ´«linux·þÎñÆ÷ÍøÕ¾´ó¸ÅÓÐ1¸ö¶àG£¬ÓÃÓÚ¹«Ë¾ÍøËÙµÄÎÊÌ⣬ÓÃwinscpÉÏ´«ÂýµÄÒªËÀ£¬ËùÒÔÅܵ½»ú·¿±¾´òËãͨ¹ý¿Í»§µÄÒƶ¯Ó²ÅÌ¿½±´ÉÏÈ¥£¬µ«ÊÇÊÔÁ˺ܾÃҲûÓÐmountµ½»úÆ÷ÉÏ£¬ÊµÔÚÓôÃÆ¡£ÓÉÓÚʱ¼äÌ«ÍíËùÒԾͻؼÒÁË£¬ËùÒÔÖ»ÄÜͨ¹ýÈí¼þÉÏ´«ÁË£¬½ñÌìÀ´ÁË°ÑÒƶ¯Ó²Å̲åÔÚµçÄÔÉÏ¿´µ½Ã ......