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

LinuxÄÚºËÄ£¿é±à³Ì


ÕªÒª
LinuxÄÚºËÄ£¿é±à³ÌµÄ×ÊÁÏÓÐЩ·×·±¸´ÔÓ£¬ÓеĹýÓÚ¼òµ¥£¬ÓеĹýÓÚÅÓÔÓ£¬ÎÒÊÔͼÓñʼǵÄÐÎʽÏë¶ÁÕßչʾÔõÑùÀ´½ø³ÌLinuxÄ£¿é±à³Ì£¬Á¦Í¼×öµ½¼òÃ÷¶óÒª£¬ÕâÆªÎÄÕÂÒ²ÊÇ×÷Ϊ±¾È˱¸ÍüµÄ×ÊÁÏ£¬ËùÒÔÓÐЩµØ·½¹ýÓÚ¼òÂÔÊÇÄÑÃâµÄ¡£±¾À´ÕâÆªÎÄÕµÄÄ¿µÄ¾ÍÊÇÈÃÓû§ÖªÆäÈ»£¬ÖÁÓÚËùÒÔÈ»»¹ÊÇÇë²Î¿¼ÏàÓ¦µÄ×ÊÁÏ£¬Æäʵ×îºÃµÄ×ÊÁÏιýÓÚLinux Kernel Source¡£
ÊÊÓ÷¶Î§£º
Linux Kernel >= 2.6.0
LinuxÄ£¿é¼ò½é
Ê×ÏÈÕâ¸ömodule²»Í¬ÓÚmicrokernelµÄmodule£¬microkernelµÄmoduleÊÇÒ»¸ö¸öµÄdaemon½ø³Ì£¬¹¤×÷ÓÚÓû§¿Õ¼ä£¬LinuxµÄmoduleÖ»ÊÇÒ»¸öÄں˵ÄÄ¿±ê´úÂ룬ÄÚºËͨ¹ýÖ´ÐÐÔËÐÐʱµÄÁ¬½Ó£¬À´°ÑËüÕûºÏµ½kernelÖÐÈ¥£¬ËùÒÔ˵LinuxµÄmodule»úÖÆ²¢Ã»ÓиıäLinuxÄÚºËΪmonolithic OS±¾ÖÊ£¬ÆämoduleÒ²Êǹ¤×÷ÓÚÄÚºËģʽ£¬ÏíÓÐÄں˵ÄËùÓÐÌØÈ¨¡£
ÖÁÓÚΪʲôҪÒýÈëLinux Kernle Module£¨Ò»Ï¼ò³ÆLKM£©£¬ÎÒÏëÖÁÉÙÓÐһϼ¸µã£º
Ä£¿é»¯±à³ÌµÄÐèÒª£¬½µµÍ¿ª·¢ºÍά»¤³É±¾¡£
ÔöǿϵͳµÄÁé»îÐÔ£¬Ê¹µÃÐÞ¸ÄһЩÄں˹¦Äܶø²»±ØÖØÐ±àÒëÄں˺ÍÖØÆôϵͳ¡£
½µµÍÄں˱à³ÌµÄ¸´ÔÓÐÔ£¬Ê¹ÈëÃÅÃż÷½µµÍ¡£
Ïà¹Øºê¼°Í·Îļþ
LKMÐèÒª°üº¬ÒÔÏÂÍ·Îļþ:<linux/kernel.h> <linux/module.h>
ÐèÒª¶¨ÒåÒÔϺê:__KERNEL__, MODULE
Ò»¸ö¼òµ¥µÄÄÚºËÄ£¿éʾÀý
/*file: hello.c*/
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include <linux/module.h>
#include <linux/kernel.h>
static int __init hello_init(void)
{
printk(KERN_ALERT "Hello, my LKM.\n");
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_ALERT "Bye, my LKM.\n");
}
module_init(hello_init);
module_exit(hello_exit);
ºÜ¼ò´ð°É£¬²»ÊÇÂð£¿Õâ¸öLKMµÄ¹¦ÄÜÆäʵҲºÜ¼òµ¥£¬¾ÍÊǵ±Í¨¹ýinsmod¼ÓÔØËüµÄʱºò£¬Ëû´òÓ¡Hello, my LKM.ͨ¹ýrmmodÐ¶ÔØËüµÄʱºòËû´òÓ¡bye, my LKM.Ò»¸ö×î»ù±¾µÄÄÚºËÄ£¿éÒ»°ã¶¼°üº¬ÓÐÁ½¸öº¯Êý£¬Ò»¸öÊdzõʼ»¯º¯Êý(±ÈÈç˵ÕâÀïµÄhello_init),Ò»¸öÊÇÐ¶ÔØº¯Êý(hello_exit), µ±È»Ò²¿ÉÒÔûÓÐÈκκ¯Êý£¬Ö»ÊÇÌṩһЩ±äÁ¿¡£µ«Êdzõʼ»¯º¯ÊýºÍÐ¶ÔØº¯Êý±ØÐë³É¶Ô³öÏÖ¡£²¢ÇÒinitº¯Êýµ±²Ù×÷³É¹¦Ê±·µ»ØÖµ´óÓÚµÈÓÚÁã,µ±²Ù×÷ʧ°Üʱ£¬·µ»Ø·ÇÁã¡£ºêmodule_initºÍmodule_exitÓÃÓÚ×¢²á³õʼ»¯º¯ÊýºÍÐ¶ÔØº¯Êý¡£
LKMµÄ±àÒë
Ò»¸öʾÀýµÄMakefileÈçÏÂËùʾ
obj-m := hello.o
KERNE


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍ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 ......

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

linuxÇý¶¯ËÙ³É

ǰÌ᣺
1. ÏÂÔØubuntu²¢°²×°
2. ÖªµÀ³£ÓõÄlinuxÃüÁî
3. ÄÜ¿´Ó¢ÎÄ
ͻ񻣼
¶ÔÐÂÊÖÀ´Ëµ
£¬Çý¶¯¾ÍÊÇÒ»¸ö³ÌÐò£¬Í¨¹ýµ÷ÓÃ×¢²áº¯ÊýºÍÐÞ¸ÄmakefileʹlinuxÄÚºËÄܼÓÔØËü£¬ÓÚÊÇËüÔÚ½ÓÊܲÙ×÷µÄʱºòÄÜÓе㷴Ӧ£»ÆäÓëÓ¦ÓóÌÐòµÄÖ÷񻂿±ðÔÚÓÚÆäȨÏ޸ߣ¬ÅÜÔÚkernel spaceÀï¡£
¿ª¶¯£º
* ÏÂÔØ¡¶Linux Device Drivers 3rd Edition¡· ......

LINUX³£ÓÃÃüÁ»ù´¡£©

 



LINUX³£ÓÃÃüÁ»ù´¡£©
1. man ¶ÔÄãÊìϤ»ò²»ÊìϤµÄÃüÁîÌṩ°ïÖú½âÊÍ
eg:man ls ¾Í¿ÉÒԲ鿴lsÏà¹ØµÄÓ÷¨
×¢£º°´q¼ü»òÕßctrl+cÍ˳ö£¬ÔÚlinuxÏ¿ÉÒÔʹÓÃctrl+cÖÕÖ¹µ±Ç°³ÌÐòÔËÐС£
2. ls ²é¿´Ä¿Â¼»òÕßÎļþµÄÊô*£¬ÁоٳöÈÎһĿ¼ÏÂÃæµÄÎļþ
eg: ls /usr/man
ls -l
a.d±íʾĿ¼(directory)£¬È ......

linux comm ÃüÁî½éÉÜ

 Èç¹ûÏëÔÚLinuxÃüÁîÐз½Ê½Ï£¬¶Ô2¸öÎı¾ÎļþµÄÄÚÈÝ×ö±È½Ï£¬ÕÒ³öͬʱ°üº¬ÔÚÕâ2¸öÎı¾ÎļþÖеÄÄÚÈÝ£¬¿ÉÒÔʹÓÃLinuxϵͳ´øµÄ¹¤¾ßcommÀ´´¦Àí£¬Ç°ÌáÊDZ»±È½ÏµÄ2¸öÎı¾ÎļþÒªÊÇÓÐÐòµÄ£¬¿ÉÒÔÏÈÓÃsort´¦Àíһϣ¬¾ßÌå²Ù×÷·½·¨ÈçÏ£º
ԭʼÎļþÈçÏ£º
a.txt
d
c
b
a
b.txt
g
f
b
a
ÅÅÐò´¦Àí
sort a.txt > a1.txt ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ