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

linuxÄÚºËÄ£¿é½âÎö


Linux ¾ÍÊÇͨ³£Ëù˵µÄµ¥Äںˣ¨monolithic kernel£©£¬¼´²Ù×÷ϵͳµÄ´ó²¿·Ö¹¦Äܶ¼±»³ÆÎªÄںˣ¬²¢ÔÚÌØÈ¨Ä£Ê½ÏÂÔËÐС£ËüÓë΢ÐÍÄںˠ²»Í¬£¬ºóÕßÖ»°Ñ»ù±¾µÄ¹¦ÄÜ£¨½ø³Ì¼äͨÐÅ [IPC]¡¢µ÷¶È¡¢»ù±¾µÄÊäÈë/Êä³ö [I/O] ºÍÄÚ´æ¹ÜÀí£©µ±×÷ÄÚºËÔËÐУ¬¶ø°ÑÆäËû¹¦ÄÜ£¨Çý¶¯³ÌÐò¡¢ÍøÂç¶ÑÕ»ºÍÎļþϵͳ£©ÅųýÔÚÌØÈ¨¿Õ¼äÖ®Íâ¡£Òò´Ë£¬Äú¿ÉÄÜÈÏΪ Linux ÊÇÒ»¸öÍêÈ«¾²Ì¬µÄÄںˣ¬µ«ÊÂʵǡǡÏà·´¡£Í¨¹ý Linux ÄÚºËÄ£¿é£¨LKM£©¿ÉÒÔÔÚÔËÐÐʱ¶¯Ì¬µØ¸ü¸Ä Linux¡£
¿É¶¯Ì¬¸ü¸Ä ÊÇÖ¸¿ÉÒÔ½«ÐµĹ¦ÄܼÓÔØµ½Äںˡ¢´ÓÄÚºËÈ¥³ýij¸ö¹¦ÄÜ£¬ÉõÖÁÌí¼ÓʹÓÃÆäËû LKM µÄРLKM¡£LKM µÄÓŵãÊÇ¿ÉÒÔ×îС»¯Äں˵ÄÄÚ´æÕ¼Óã¬Ö»¼ÓÔØÐèÒªµÄÔªËØ£¨ÕâÊÇǶÈëʽϵͳµÄÖØÒªÌØÐÔ£©¡£
Linux ²»ÊÇ¿ÉÒÔ½øÐж¯Ì¬¸ü¸ÄµÄΩһ£¨Ò²²»ÊǵÚÒ»¸ö£©µ¥Äںˡ£Berkeley Software Distribution£¨BSD£©µÄ±äÌå¡¢Sun Solaris¡¢¸üÀϵÄÄںˣ¨±ÈÈç OpenVMS£©£¬ÒÔ¼°ÆäËûÁ÷ÐеIJÙ×÷ϵͳ£¨±ÈÈç Microsoft® Windows® ºÍ Apple Mac OS X£©¶¼Ö§³Ö¿É¼ÓÔØÄ£¿é¡£
LKM£¬ËüÊÇÒÔÒ»¸öʲôÑùµÄ¶«Î÷ÄØ£¿ÎÒÃÇÖªµÀ£¬Ëû±àÒëÖ®ºó»áÊÇÒ»¸ökoºó׺ÃûµÄ¶«Î÷£¬µ«ÊÇÀïÃæÊÇÒ»¸öʲôÑùµÄ¡£ÎÒÃÇ¿´£¬Ò»°ãµÄÄ£¿éµÄÄ£°å¡£
/*
 * hello.c  Hello, World! As a Kernel Module
 */
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
/*
 * hello_init  the init function, called when the module is loaded.
 * Returns zero if successfully loaded, nonzero otherwise.
 */
static int hello_init(void)
{
        printk(KERN_ALERT "I bear a charmed life.\n");
        return 0;
}
/*
 * hello_exit  the exit function, called when the module is removed.
 */
static void hello_exit(void)
{
        printk(KERN_ALERT "Out, out, brief candle!\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Shakespeare");
Ä£¿é²¢²»ÊÇÇý¶¯£¬Ö»ÊÇLinuxµÄÒ»ÖÖÄÚºËÀ©Õ¹»úÖÆ£¬Çý¶¯¾ÍÊǽèÖúÕâÖÖ»úÖÆµÄ£¬ÀíÂÛÉÏÓ¦¸ÃÕâÑùµÄÀí½â¡£
Õâ¾ÍÊÇÒ»¸öÄ£¿éµÄ»ù±¾Ä£°å£¬Í¨¹ý±àÒëÖ®ºó£¬»áÉú³ÉÒ»¸öko£¬×¢Ò⣬±àÒëµÄʱºòÓëÆäËûµÄÓ¦ÓóÌÐòÓкܴóµÄ²»Í¬£¬Ô­ÒòÊÇËüÉú³ÉµÄ¶«Î÷Ê


Ïà¹ØÎĵµ£º

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

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

»ñÈ¡Linux 2.6.x sys_call_table


ÔÚlinuxÖÐËùÓеÄsyscall¶¼Êǵ÷ÓÃint 0x80, int 0x80µÄÖжϷþÎñ³ÌÐòΪsystem_call(arch/x86/kernel/traps_32.c:set_system_gate(SYSCALL_VECTOR,&system_call).  system_call (arch/x86/entry_32.S)×îÖÕcall *sys_call_table(,%eax,4)À´Íê³ÉÒ»¸ösyscallµ÷ÓÃ. 
¼´ int 0x80 -> system_call -> s ......

ÐÂÈ˵ÄLINUXÊּǣ­£­ÏÔ¿¨°²×°

×î½üºÜÊÇÎÞÁÄ£¬°Ñ±¾±¾ÄóöÀ´»»¸öϵͳ»»¸öÐÄÇé¡£ÓÚÊǾö¶¨°ÑÔ½ÅÜÔ½ÂýµÄD°æXP»»µô¡£Õâ´ÎÏÂÔØÁËFEDORA 12 X64£¬×ÜÊÇÄÃË«ºË64λµÄCPUÀ´ÅÜ32λϵͳÒѾ­ÈÃÎÒ²»Ë¬ºÜ¾ÃÁË¡£
ϵͳװºÃÁËÒÔºó·¢ÏÖÓе㲻¶Ô¾¢£¬£À £À
¶«Î÷ºÃ´ó¡£¿´À´ÊÇ·Ö±æÂʵÄÎÊÌ⣬ϵͳ£­Ê×Ñ¡ÏÏÔʾ......ºÃÏñ¸Ä²»ÁË.
PS:ÔÚlinuxÏÂÃæ²»×°ÏÔ¿¨ÊDz»ÄܸķֱæÂʵÄ
û° ......

¹ØÓÚlinuxÍü¼ÇÃÜÂëµÄÒ»¸ö×î¼òµ¥µÄ·½·¨

ÍøÉÏÓкܶàµÄ·½·¨£¬¹ØÓÚÍü¼ÇlinuxµÇ¼ÃÜÂëÖ®ºóÓ¦¸ÃÔõô°ì¡£ÓÐÎåÖÖ·½·¨£¬¶¼ºÜºÃ¡£
±¾ÈËÒÔΪÓÃgrubÒýµ¼µÄÄÇÖÖ×îʵÓ㬺Ǻǣ¡ÊÔÁËһϣ¬¹ûÈ»¿ÉÒÔ£¡£¡
grubÒýµ¼

1. ÔÚ³öÏÖgrub»­ÃæÊ±£¬Ñ¡ÔñlinuxÒýµ¼ÏȻºó°´e¼ü
2. Ñ¡ÔñÒÔkernel¿ªÍ·µÄÒ»ÐУ¬ÔÙ°´e ¼ü£¬ÔÚ´ËÐеÄĩ⣬°´¿Õ¸ñ¼üºóÊäÈësingle£¬ÒԻسµ¼üÀ´Í˳ö±à¼­Ä£Ê½£» ......

linux ÏÂÔØ¹¤¾ß multiget °²×°¡£

multigetºÅ³ÆÎªlinuxϵÄѶÀ×£¬ÏÂÔØËٶȺܿì,Ö§³Ö¶ÏµãÐø´«£¬ÇÒÓÐѶÀ×Ò»ÑùµÄÐü¸¡¿ò£¬ºÜÊÇ·½±ã¡£µ«ÓÉÓÚÆäÓÚ2007ÄêÍ£Ö¹¸üкͿª·¢£¬¶ø
linuxµÄ±àÒëÈí¼þÈ´ÔÚ²»¶Ï¸üУ¬gccµÈ±àÒë³ÌÐò¶Ô³ÌÐò´úÂëµÄÓï·¨ºÍ²ÎÊýÒªÇóÔ½À´Ô½Ñϸñ£¬ËùÒÔÏÖÔÚ¾ÍÔì³ÉÁË´ó¶àÊýlinux»á³öÏÖ±àÒë°²×°
multiget1.2ʧ°ÜµÄÏÖÏó£¬ÉÏÃæ¸½¼þÊÇÎÒÐ޸ĺóµÄmultiget£¬ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ