LinuxÄÚºËÄ£¿é±à³Ì¼ò½é
Ö÷Ì⣺ linuxÄÚºËÄ£¿éµÄ³ÌÐò½á¹¹--Ä£¿é¼ÓÔØº¯Êý(±ØÐë)£¬Ä£¿éÐ¶ÔØº¯Êý(±ØÐë)£¬Ä£¿éÐí¿ÉÖ¤ÉùÃ÷(±ØÐë)£¬Ä£¿é²ÎÊý(¿ÉÑ¡)£¬Ä£¿éµ¼³ö·ûºÅ(¿ÉÑ¡)£¬Ä£¿é×÷ÕߵĵÈÐÅÏ¢ÉùÃ÷(¿ÉÑ¡)
Ò»¸ölinuxÄÚºËÄ£¿éÖ÷ÒªÓÉÒÔϼ¸¸ö²¿·Ö×é³É¡£
1¡¢Ä£¿é¼ÓÔØº¯Êý"ÓÃmodule_init()À´Ö¸¶¨"(±ØÐë)
µ±Í¨¹ýinsmodºÍmodprobeÃüÁî¼ÓÔØÄÚºËÄ£¿éʱ£¬Ä£¿éµÄ¼ÓÔØº¯Êý»á×Ô¶¯±»ÄÚºËÖ´ÐУ¬Íê³É±¾Ä£¿éµÄÏà¹Ø³õʼ»¯¹¤×÷¡£
linuxÄ£¿é¼ÓÔØº¯ÊýÒ»°ãÒÔ __init±íʾÉùÃ÷¡£µäÐÍÉùÃ÷ÈçÏÂ::
static int __init initialization_function(void)
{
/*³õʼ»¯´úÂë*/
}
module_init(initialization_function);
Ä£¿é¼ÓÔØº¯Êý±ØÐëʹÓÃmodule_init(º¯ÊýÃû)µÄÐÎʽ±»Ö¸¶¨¡£Ëü·µ»ØÕûÐÍÖµ£¬Èô³õʼ»¯³É¹¦£¬Ó¦·µ»Ø0£¬¶ø³õʼ»¯Ê§°Üʱ£¬Ó¦·µ»Ø´íÎó±àÂë¡£ÔÚlinuxÄÚºËÖУ¬´íÎó±àÂëÊÇÒ»¸ö¸ºÖµ£¬ÔÚ<linux/errno.h>Öж¨Ò壬°üÀ¨-ENODEV¡¢-ENOMEMÖ®ÀàµÄ·ûºÅÖµ¡£·µ»ØÏàÓ¦µÄ´íÎó±àÂëÊÇÖַdz£ºÃµÄϰ¹ß£¬Ö»ÓÐÕâÑù£¬Ó¦ÓóÌÐò²ÅÄÜÀûÓÃperrorµÈ·½·¨°ÑËûÃÇת»»³ÉÓÐÒâÒåµÄ´íÎóÐÅÏ¢×Ö·û´®¡£
ÔÚ2.6ÄÚºËÖУ¬¿ÉÒÔʹÓÓrequest_module(const char *fmt,...)º¯Êý”¼ÓÔØÄÚºËÄ£¿é£¨×¢Òâ£ºÇ°Ãæ¼ÓÔØÄ£¿é¶¼ÊÇͨ¹ýinsmodºÍmodprobeÀ´ÊµÏֵģ©£¬Çý¶¯¿ª·¢ÈËÔ±¿ÉÒÔͨ¹ýµ÷ÓÃ::
request_module(module_name);
»ò
request_module("char-major-%d-%d",MAJOR(dev),MINOR(dev));
À´¼ÓÔØÆäËûÄÚºËÄ£¿é¡£
ÔÚlinuxÄÚºËÖУ¬ËùÓбíʾΪ__initµÄº¯ÊýÔÚÁ¬½ÓµÄʱºò·ÅÔÚ.init.textÕâ¸öÇø¶ÎÄÚ£¬´ËÍ⣬ËùÓеÄ__initº¯ÊýÔÚ¶Î.initcall.initÖл¹±£´æÁËÒ»·Ýº¯ÊýÖ¸Õ룬ÔÚ³õʼ»¯Ê±£¬Äں˻áͨ¹ýÕâЩָÕëµ÷ÓÃÕâЩ__initº¯Êý£¬²¢ÔÚ³õʼ»¯Íê³ÉºóÊÍ·ÅinitÇø¶Î(.init.text,.initcall.initµÈ)¡£
////////////////////////////////////////////////////////////////////
2¡¢Ä£¿éÐ¶ÔØº¯Êý"ÓÃmodule_exit()À´Ö¸¶¨"(±ØÐë)
µ±Í¨¹ýrmmodºÍmodprobe -rÃüÁîÐ¶ÔØÄÚºËÄ£¿éʱ£¬Ä£¿éµÄÐ¶ÔØº¯Êý»á×Ô¶¯±»ÄÚºËÖ´ÐУ¬Íê³ÉÓëÄ£¿é¼ÓÔØº¯ÊýÏà·´µÄ¹¦ÄÜ¡£
linuxÄÚºËÄ£¿éÓÚÔÚº¯ÊýÒ»°ãÒÔ__exit±íʾ˵Ã÷£¬µäÐ͵ÄÄ£¿éÐ¶ÔØº¯ÊýµÄÐÎʽÈçÏÂ::
static void __exit cleanup_function(void)
{
/*ÊÍ·Å´úÂë*/
}
module_exit(cleanup_function);
Ä£¿éÐ¶ÔØº¯ÊýÔÚÄ£¿éÐ
Ïà¹ØÎĵµ£º
¹ØÓÚ×ÔÐýËøÓ÷¨½éÉܵÄÎÄÕ£¬ÒѾÓкܶ࣬µ«ÓÐЩϸ½ÚµÄµØ·½µãµÄ»¹²»¹»Í¸¡£ÎÒÕâÀï¾Í°ÑÎÒ¸öÈËÈÏΪ´ó¼ÒÈÝÒ×ÓÐÒÉÎʵĵط½ÄóöÀ´ÌÖÂÛһϡ£
Ò»¡¢×ÔÐýËø£¨spinlock£©¼ò½é
×ÔÐýËøÔÚͬһʱ¿ÌÖ»Äܱ»×î¶àÒ»¸öÄÚºËÈÎÎñ³ÖÓУ¬ËùÒÔÒ»¸öʱ¿ÌÖ»ÓÐÒ»¸öÏß³ÌÔÊÐí´æÔÚÓÚÁÙ½çÇøÖС£Õâµã¿ÉÒÔÓ¦ÓÃÔÚ¶à´¦Àí»úÆ÷¡¢»òÔËÐÐÔÚµ¥´¦ÀíÆ÷ÉϵÄÇ ......
ÔÚ½øÐÐǶÈëʽ¿ª·¢Ö®Ç°£¬Ê×ÏÈÒª½¨Á¢Ò»¸ö½»²æ±àÒë»·¾³£¬ÕâÊÇÒ»Ì×±àÒëÆ÷¡¢Á¬½ÓÆ÷ºÍlibc¿âµÈ×é³ÉµÄ¿ª·¢»·¾³¡£±¾ÎľßÌå˵Ã÷ÁËǶÈëʽ½»²æ±àÒë»·¾³µÄ½¨Á¢¹ý³Ì
ºÍ¾ßÌåµÄ²Ù×÷²½Ö裬ϣÍûÄܹ»¶Ô¸÷λÅóÓѴ¶ÔÓ¦µÄ½»²æ±àÒë»·¾³ÓÐËù°ïÖú¡£
Ò»¡¢ËùÐèÈíÓ²¼þ»·¾³
¡ö Ö÷»ú»·¾³
½¨Á¢½»²æ±àÒ빤¾ßÁ´µÄÖ÷»ú»·¾³£º
Ubuntu 8.10£¬gcc-4.3 ......
LinuxÆô¶¯¹ý³ÌµÄÆÊÎöÄܰïÖúÄÇЩÏëÉîÈëѧϰLinuxÓû§½¨Á¢Ò»¸öÏà¹ØLinuxÆô¶¯¹ý³ÌµÄÇåÎú¸ÅÄ½ø¶ø¿ÉÒÔ½øÒ»²½Ñо¿Linux½ÓÏÂÀ´ÊÇÈçºÎ¹¤×÷µÄ¡£
LinuxÆô¶¯¹ý³ÌÈçÏ£ºµ±Óû§´ò¿ªPCµÄµçÔ´£¬BIOS¿ª»ú×Լ죬°´BIOSÖÐÉèÖÃµÄÆô¶¯É豸(ͨ³£ÊÇÓ²ÅÌ)Æô¶¯£¬½Ó×ÅÆô¶¯É豸Éϰ²×°µÄÒýµ¼³ÌÐò lilo»ògrub¿ªÊ¼Òýµ¼Linux£¬LinuxÊ×ÏȽøÐÐÄں˵ÄÒýµ¼ ......
1.Ubuntu
ËüµÄÒâ˼ÿһλGeekÓ¦¸Ã¶¼ÖªµÀ£¬ÕâÊÇÒ»¸ö¹Å·ÇÖÞÓïµ¥´Ê£¬´ú±í“ÈËÐÔ”»òÕß“ÎҵĴæÔÚÊÇÒòΪ´ó¼ÒµÄ´æÔÚ”¡£
2.PCLinuxOS
PC + Linux + Operating System£¬Óû§½çÃæºÜÏñWindows¡£
3.openSUSE
ÊÇNovellºÍAMD×ÊÖúµÄSUSEÉçÇøÏîÄ¿£¬SUSEÈ¡µÂÓïµ¥´ÊÊ××Öĸ“Software- und System-Entwicklun ......
linuxÃüÁî´óÈ« cat cd
chmod chown
cp cut
Ãû³Æ£ºcat
ʹÓÃȨÏÞ£ºËùÓÐʹÓÃÕß
ʹÓ÷½Ê½£ºcat [-AbeEnstTuv] [--help] [--version] fileName
˵Ã÷£º°Ñµµ°¸´®Á¬½Óºó´«µ½»ù±¾Êä³ö£¨Ó©Ä»»ò¼Ó > fileName µ½ÁíÒ»¸öµµ°¸£©
²ÎÊý£º
-n »ò --number ÓÉ 1 ¿ªÊ¼¶ÔËùÓÐÊä³öµÄÐÐÊý±àºÅ
-b »ò --number-nonblank ºÍ -n ......