linuxÉ豸Çý¶¯Ö®¿ØÖÆ̨Çý¶¯
¡¡Ò»:Ç°ÑÔ
¡¡¡¡ÎÒÃÇÔÚ֮ǰ·ÖÎö¹ýinput×ÓϵͳºÍttyÉ豸Çý¶¯¼Ü¹¹.½ñÌìÐèÒª½«Á½Õß½áºÏÆðÀ´.¿´¿´linuxÖеĿØÖÆ̨ÊÇÔõôÑùʵÏÖµÄ.
¡¡¡¡¶þ:¿ØÖÆ̨Çý¶¯µÄ³õʼ»¯
¡¡¡¡Ö®Ç°ÔÚ·ÖÎöttyÇý¶¯¼Ü¹¹µÄʱºòÔø·ÖÎöµ½.Ö÷É豸Ϊ4,´ÎÉ豸Ϊ0µÄÉ豸½Úµã,¼´/dev/tty0Ϊµ±Ç°µÄ¿ØÖÆÖÕ¶Ë.
¡¡¡¡ÓÐtty_init()ÖÐ,ÓÐÒÔÏ´úÂë¶Î:
¡¡¡¡static int __init tty_init(void)
¡¡¡¡{
¡¡¡¡……
¡¡¡¡……
¡¡¡¡#ifdef CONFIG_VT
¡¡¡¡cdev_init(&vc0_cdev, &console_fops);
¡¡¡¡if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) ||
¡¡¡¡register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0)
¡¡¡¡panic("Couldn't register /dev/tty0 driver\n");
¡¡¡¡device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), "tty0");
¡¡¡¡vty_init();
¡¡¡¡#endif
¡¡¡¡return 0;
¡¡¡¡}
¡¡¡¡CONFIG_VT:ÊÇÖ¸ÅäÖÃÐéÄâÖÕ¶Ë.¼´ÎÒÃÇËù˵µÄ¿ØÖÆ̨.ÔÚ´Ë¿ÉÒÔ¿´µ½TTY_MAJOR(4),0¶ÔÓ¦µÄÉ豸½Úµã²Ù×÷¼¯Îªconsole_fops.
¡¡¡¡¼ÌÐø¸ú½øvty_init()
¡¡¡¡int __init vty_init(void)
¡¡¡¡{
¡¡¡¡vcs_init();
¡¡¡¡console_driver = alloc_tty_driver(MAX_NR_CONSOLES);
¡¡¡¡if (!console_driver)
¡¡¡¡panic("Couldn't allocate console driver\n");
¡¡¡¡console_driver->owner = THIS_MODULE;
¡¡¡¡console_driver->name = "tty";
¡¡¡¡console_driver->name_base = 1;
¡¡¡¡console_driver->major = TTY_MAJOR;
¡¡¡¡console_driver->minor_start = 1;
¡¡¡¡console_driver->type = TTY_DRIVER_TYPE_CONSOLE;
¡¡¡¡console_driver->init_termios = tty_std_termios;
¡¡¡¡console_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS;
¡¡¡¡tty_set_operations(console_driver, &con_ops);
¡¡¡¡if (tty_register_driver(console_driver))
¡¡¡¡panic("Couldn't register console driver\n");
¡¡¡¡kbd_init();
¡¡¡¡console_map_init();
¡¡¡¡#ifdef CONFIG_PROM_CONSOLE
¡¡¡¡prom_con_init();
¡¡¡¡#endif
¡¡¡¡#ifdef CONFIG_MDA_CONSOLE
¡¡¡¡mda_console_init();
¡¡¡¡#endif
¡¡¡¡return 0;
¡¡¡¡}
¡¡¡¡¾¹ýÎÒÃÇ֮ǰµÄttyÇý¶¯¼Ü¹¹·ÖÎö,Õâ¶Î´úÂë¿´ÆðÀ´¾Í±È½Ï¼òµ¥ÁË,Ëü¾ÍÊÇ×¢²áÁËÒ»¸öttyÇý¶¯.Õâ¸öÇý¶¯¶ÔÓ¦µÄ²Ù×÷¼¯ÊÇλÓÚcon_opsÀïÃæµÄ.
¡¡¡¡×Ðϸ¿´.ÔÚÖ®ºó»¹»áµ÷ÓÃkbd_init().¹ËÃû˼Òå,Õâ¸öÊÇÒ»¸öÓй
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâƪ·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´ËתÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨Õâƪ²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
תÔØ
£¨1£©ÈíÁ¬½Ó¿ÉÒÔ ¿çÎļþϵͳ £¬Ó²Á¬½Ó²»¿ÉÒÔ ¡£Êµ¼ùµÄ·½·¨¾ÍÊÇÓù²ÏíÎļþ°ÑwindowsÏ嵀 aa.txtÎı¾ÎĵµÁ¬½Óµ½linuxÏÂ/rootĿ¼ Ï bb,cc . ln -s aa.txt /root/bb Á¬½Ó³É¹¦ ¡£ln aa.txt /root/bb ʧ°Ü ¡£
£¨2£©¹ØÓÚ I½ÚµãµÄÎÊÌâ ¡£Ó²Á¬½Ó²»¹ÜÓжàÉÙ¸ö£¬¶¼Ö¸ÏòµÄÊÇͬһ¸öI½Úµã£¬»á°Ñ ½áµãÁ¬½ÓÊýÔö¼Ó £¬Ö»Òª½áµãµÄÁ¬½Ó ......
http://en.wikipedia.org/wiki/Loop_device
In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loopback file interface) is a pseudo-device that makes a file accessible as a block device.
Ëùνloop deviceÖ¸µÄ¾ÍÊÇÄÃÎļþÀ´Ä£Äâ¿éÉ豸¡£
Albert WoodhullÓ"The Linux loop device can ......