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
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ǰÌ᣺
1. ÏÂÔØubuntu²¢°²×°
2. ÖªµÀ³£ÓõÄlinuxÃüÁî
3. ÄÜ¿´Ó¢ÎÄ
ͻ񻣼
¶ÔÐÂÊÖÀ´Ëµ
£¬Çý¶¯¾ÍÊÇÒ»¸ö³ÌÐò£¬Í¨¹ýµ÷ÓÃ×¢²áº¯ÊýºÍÐÞ¸ÄmakefileʹlinuxÄÚºËÄܼÓÔØËü£¬ÓÚÊÇËüÔÚ½ÓÊܲÙ×÷µÄʱºòÄÜÓе㷴Ӧ£»ÆäÓëÓ¦ÓóÌÐòµÄÖ÷񻂿±ðÔÚÓÚÆäȨÏ޸ߣ¬ÅÜÔÚkernel spaceÀï¡£
¿ª¶¯£º
* ÏÂÔØ¡¶Linux Device Drivers 3rd Edition¡·
......
Èç¹ûÄãÕýÔÚΪÄãµÄlinux
²Ù×÷ϵͳѰÕÒÃâ·Ñ¶øÓÖ¹»¿á¹»ìŵÄͼÐÎÉè¼ÆÈí¼þ£¬Äã¾ÍÀ´¶ÔµØ·½ÁË£¡ÕâÒ»´Î£¬ÎÒÃǽ«ÎªÄã½éÉÜÔÚlinux
²Ù×÷ϵͳ7¸öÓ¦Óù㷺¶øÇÒÃâ·ÑµÄ3DͼÐÎÉè¼ÆÈí¼þ¡£
1¡¢Blender
¡¾µã»÷ÏÂÔØ
Blender
¡¿
¡¡
BlenderÊÇÒ»¸ö×ÔÓÉ¡¢¿ªÔ´µÄ3DÄ£ÐÍ´´×÷ ......
How to change the hostname of a Linux system
Normally we will set the hostname of a system during the installation process. Many peoples don’t care about this, and don’t change the hostname even if for example this was set to something really stupid by the datacenter that installed the ......
Èç¹ûÏëÔÚ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 ......