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

linuxÄÚºËprintkµ÷ÊÔ


linuxÄÚºËprintkµ÷ÊÔ£¨ÕªÂ¼¡¶Linux°²È«Ìåϵ·ÖÎöÓë±à³Ì¡·£©
linuxÄÚºËprintkµ÷ÊÔ£¨ÕªÂ¼¡¶Linux°²È«Ìåϵ·ÖÎöÓë±à³Ì¡·£©
1  printk¼°¿ØÖÆÌ¨µÄÈÕÖ¾¼¶±ð
º¯ÊýprintkµÄʹÓ÷½·¨ºÍprintfÏàËÆ£¬ÓÃÓÚÄں˴òÓ¡ÏûÏ¢¡£printk¸ù¾ÝÈÕÖ¾¼¶±ð£¨loglevel£©¶ÔÏûÏ¢½øÐзÖÀà¡£
ÈÕÖ¾¼¶±ðÓú궨Ò壬ÈÕÖ¾¼¶±ðºêÕ¹¿ªÎªÒ»¸ö×Ö·û´®£¬ÔÚ±àÒëʱÓÉÔ¤´¦ÀíÆ÷½«ËüºÍÏûÏ¢Îı¾Æ´½Ó³ÉÒ»¸ö×Ö·û´®£¬Òò´Ëprintk º¯ÊýÖÐÈÕÖ¾¼¶±ðºêºÍ¸ñʽ×Ö·û´®¼ä²»ÄÜÓжººÅ¡£
ÏÂÃæÊÇÁ½¸öprintkµÄÀý×Ó£¬Ò»¸öÓÃÓÚ´òÓ¡µ÷ÊÔÐÅÏ¢£¬ÁíÒ»¸öÓÃÓÚ´òÓ¡ÁÙ½çÌõ¼þÐÅÏ¢¡£
printk(KERN_DEBUG "Here I am: %s:%i\n", _ _FILE_ _, _ _LINE_ _);
printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr);
printkµÄÈÕÖ¾¼¶±ð¶¨ÒåÈçÏ£¨ÔÚlinux26/includelinux/kernel.hÖУ©£º
#defineKERN_EMERG"<0>"/*½ô¼±Ê¼þÏûÏ¢£¬ÏµÍ³±ÀÀ£Ö®Ç°Ìáʾ£¬±íʾϵͳ²»¿ÉÓÃ*/
#defineKERN_ALERT"<1>"/*±¨¸æÏûÏ¢£¬±íʾ±ØÐëÁ¢¼´²ÉÈ¡´ëÊ©*/
#defineKERN_CRIT"<2>"/*ÁÙ½çÌõ¼þ£¬Í¨³£Éæ¼°ÑÏÖØµÄÓ²¼þ»òÈí¼þ²Ù×÷ʧ°Ü*/
#defineKERN_ERR"<3>"/*´íÎóÌõ¼þ£¬Çý¶¯³ÌÐò³£ÓÃKERN_ERRÀ´±¨¸æÓ²¼þµÄ´íÎó*/
#defineKERN_WARNING"<4>"/*¾¯¸æÌõ¼þ£¬¶Ô¿ÉÄܳöÏÖÎÊÌâµÄÇé¿ö½øÐо¯¸æ*/
#defineKERN_NOTICE"<5>"/*Õý³£µ«ÓÖÖØÒªµÄÌõ¼þ£¬ÓÃÓÚÌáÐÑ¡£³£ÓÃÓÚÓ밲ȫÏà¹ØµÄÏûÏ¢*/
#defineKERN_INFO"<6>"/*ÌáʾÐÅÏ¢£¬ÈçÇý¶¯³ÌÐòÆô¶¯Ê±£¬´òÓ¡Ó²¼þÐÅÏ¢*/
#defineKERN_DEBUG"<7>"/*µ÷ÊÔ¼¶±ðµÄÏûÏ¢*/
 
extern int console_printk[];
 
#define console_loglevel ¡¡(console_printk[0])
#define default_message_loglevel¡¡ (console_printk[1])
#define minimum_console_loglevel¡¡ (console_printk[2])
#define default_console_loglevel¡¡ (console_printk[3])
ÈÕÖ¾¼¶±ðµÄ·¶Î§ÊÇ0¡«7£¬Ã»ÓÐÖ¸¶¨ÈÕÖ¾¼¶±ðµÄprintkÓï¾äĬÈϲÉÓõļ¶±ðÊÇ DEFAULT_ MESSAGE_LOGLEVEL£¬Æä¶¨ÒåÁгöÈçÏ£¨ÔÚlinux26/kernel/printk.cÖУ©£º
/*ûÓж¨ÒåÈÕÖ¾¼¶±ðµÄprintkʹÓÃÏÂÃæµÄĬÈϼ¶±ð*/
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING ¾¯¸æÌõ¼þ*/
Äں˿ɰÑÏûÏ¢´òÓ¡µ½µ±Ç°¿ØÖÆÌ¨ÉÏ£¬¿ÉÒÔÖ¸¶¨¿ØÖÆÌ¨Îª×Ö·ûģʽµÄÖÕ¶Ë»ò´òÓ¡»úµÈ¡£Ä¬ÈÏÇé¿öÏ£¬“¿ØÖÆÌ¨”¾ÍÊǵ±Ç°µÄÐéÄâÖÕ¶Ë¡£
ΪÁ˸üºÃµØ¿ØÖƲ»Í¬¼¶±ðµÄÐÅÏ¢ÏÔʾÔÚ¿ØÖÆÌ¨ÉÏ£¬ÄÚºËÉèÖÃÁË¿ØÖÆÌ¨µÄÈÕÖ¾¼¶±ðconsole_loglevel¡£printkÈÕÖ¾¼¶±ðµÄ×÷ÓÃ


Ïà¹ØÎĵµ£º

linuxÄÚºËÒÆÖ²s3c2410£¬×¼±¸¹¤×÷

1.Ê×ÏÈÊÇ»ñµÃlinuxÄÚºËÔ´Â룬ºÃÏñÊÇ·Ï»°£¬ÏÂÔØµØÖ·ÈçÏ£ºftp://ftp.kernel.org/pub/linux/kernel/v2.6/ÏÂÔØ£º
linux-2.6.16.22.tar.bz2  patch-2.6.22.6.bz2
ÉÏÃæÒ»²½ÐèҪ˵Ã÷µÄÊÇÒ»°ã¶øÑÔ£¬linuxÄں˵ĸ÷¸ö²¹¶¡ÎļþÊǸù¾Ýij¸ölinuxÄں˵İ汾ºÅÀ´×÷µÄpatch¡£
½«ÉÏÃæµÄÁ½¸öѹËõÎļþ½âѹ:
tar jxvf linux-2.6.22.ta ......

֨װwindowsϵͳºó£¬ÈçºÎÕÒ»Ølinux Æô¶¯Ïî

    ֮ǰװÍêwindowsºó¾Í·¢ÏÖlinuxµÄÆô¶¯ÏîÕÒ²»µ½ÁË£¬¿ªÊ¼Ê±£¬ÊµÔÚÊÇÎÞÄΰ¡£¡½á¹ûÖ»ºÃ֨װlinux£¡£¡ºÜ²Ë°É£¡£¡
    ÏÖÔÚÖÕÓÚÖªµÀÁË£¬ÆäʵÊÇ¿ÉÒԺܼòµ¥µØ¾Í°ÑlinuxÕÒ»ØÀ´µÄ£¡
    Õâ¸ö·½·¨Ö»ÏÞÓÚÓð²×°Å̵ÄÓû§£¡£¡£¡£¡
    ×°Èëlinux°²×°ÅÌ£¬ÒÔ¹âÇýÆô¶¯£¬½ ......

LinuxÏÂÈçºÎ±¸·ÝºÍ»Ö¸´·ÖÇø±í

±¸·ÝMBR·ÖÇø
   0. ±¸·ÝÓ²Å̵ķÖÇøÐÅÏ¢£º
     #fdisk /dev/sda -l > /tem/sda.txt
¡¡
¡¡¡¡1.ʹÓÃfdisk -l È·¶¨MBRλÖÃ
¡¡
¡¡¡¡2.±¸·ÝMBR
¡¡
¡¡¡¡dd if=/dev/sda1 of=/root/mbr bs=512 count=1
¡¡
¡¡¡¡3.»Ö¸´MBR
¡¡
¡¡¡¡dd if=/root/mbr of=/dev/sda1 bs=512 count=1
¡¡
¡¡ ......

linuxÏÂechoÃüÁîÏê½â


linuxµÄechoÃüÁî, ÔÚshell±à³ÌÖм«Îª³£ÓÃ, ÔÚÖÕ¶ËÏ´òÓ¡±äÁ¿valueµÄʱºòÒ²Êdz£³£Óõ½µÄ, Òò´ËÓбØÒªÁ˽âÏÂechoµÄÓ÷¨
echoÃüÁîµÄ¹¦ÄÜÊÇÔÚÏÔʾÆ÷ÉÏÏÔʾһ¶ÎÎÄ×Ö£¬Ò»°ãÆðµ½Ò»¸öÌáʾµÄ×÷Óá£
¸ÃÃüÁîµÄÒ»°ã¸ñʽΪ£º echo [ -n ] ×Ö·û´®
ÆäÖÐÑ¡Ïîn±íʾÊä³öÎÄ×Öºó²»»»ÐУ»×Ö·û´®ÄܼÓÒýºÅ£¬Ò²Äܲ»¼ÓÒýºÅ¡£ÓÃechoÃüÁîÊä³ö¼ÓÒýº ......

linuxϵͳ±à³Ì ϵͳµ÷ÓÃ

1.fork
            ´´½¨Ò»¸öнø³Ì
2.clone          
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó½ø³Ì
3.execve
          ÔËÐпÉÖ´ÐÐÎļþ
4.exit       ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ