Linux¿éÉ豸Çý¶¯(2) ¿éÇý¶¯ÖÐÏà¹ØÏà¹ØÄ£¿éÄ£°å
1.¿éÉ豸Çý¶¯µÄÄ£¿é¼ÓÔØÓëÐ¶ÔØ
1)¿éÉ豸Çý¶¯µÄÄ£¿é¼ÓÔØÍê³ÉµÄ¹¤×÷ÈçÏÂ:
Ø ·ÖÅä,³õʼ»¯ÇëÇó¶ÓÁÐ,°ó¶¨ÇëÇó¶ÓÁкÍÇëÇóº¯Êý
Ø ·ÖÅä,³õʼ»¯gendisk,¸øgendiskµÄmajor,fops,queueµÈ³ÉÔ±¸³Öµ,×îºóÌí¼Ógendisk.
Ø ×¢²á¿éÉ豸Çý¶¯.
´úÂë1:ʹÓÃblk_alloc_queueº¯ÊýÍê³É¿éÉ豸Çý¶¯µÄÄ£¿é¼ÓÔØÄ£°å
static int __init xxx_init(void){
//·ÖÅägendisk
xxx_disks = alloc_disk(1);
if(!xxx_disks){
goto out;
}
//¿éÉ豸Çý¶¯×¢²á
if(register_blkdev(xxx_MAJOR, "xxx"){
err = -EIO;
goto out;
}
//"ÇëÇó¶ÓÁÐ"·ÖÅä
xxx_queue = blk_alloc_queue(GFP_KERNEL);
if(!xxx_queue){
goto out_queue;
}
blk_queue_make_request(xxx_queue, &xxx_make_request);//°ó¶¨"ÖÆÔìÇëÇó"º¯Êý
blk_queue_hardsect_size(xxx_queue,xxx_blocksize);//¸æÖªÄÚºËÓ²¼þÉÈÇø³ß´ç
//gendisk³õʼ»¯
xxx_disks->major = xxx_MAJOR;
xxx_disks->first_minor = 0
Ïà¹ØÎĵµ£º
ÎÊÌâÃèÊö£º
µ±linuxÆô¶¯µ½sendmail·þÎñʱ£¬ÎÞ·¨Õý³£½øÈëϵͳ
½â¾öÎÊÌ⣺
1¡¢²¢²»ÊÇÎÞ·¨½øÈ¥£¬¶øÊÇÕâÒ»¸ö·þÎñÆô¶¯µÄÌØ±ðÂý£¬ËùÒÔ¾´ÇëµÈ´ý
2¡¢ÈçÆô¶¯Ê±²»ÏëµÈ´ý£¬OK£¬Äǵ±ÎÒÃǽøÈëÒԺ󣬹صôsendmail·þÎñ£º ......
Ò»¡¢Ç°ÑÔ
Linux ÉÏÓкò»ÉÙÈí¼þÄܹ»´î½¨ FTP£¬ÀýÈç vsftpd¡¢glftpd¡¢proftpd µÈ¡£
vsftpd ÊÇºÍ Linux ϵͳÉÏÓû§¹ÜÀíÒ»ÑùµÄ¡£ËùÓеÄÓû§¹ÜÀí¶¼ÊÇÔÚÏÖÓÐËÞÖ÷ϵͳÉϵÄÓû§ÒÔ¼°×é¹ÜÀíÏàͬ¡£ÎļþȨÏÞÉϵĹÜÀíÒ²ÊÇºÍ Linux һģһÑù¡£ÔڴÉϱȽϿ죬¼òµ¥·½±ã¡£
......
¡¡¡¡Linux×÷Ϊһ¸ö¶àÈÎÎñ»·¾³£¬ÔÊÐíÓû§Í¬Ê±Ö´ÐжàÏîÈÎÎñ£¬ÀýÈç²é¿´ÏµÍ³Çé¿ö¡¢±¸·Ý×ÊÁÏ¡¢±à¼ÎļþºÍ´òÓ¡ÎļþµÈ¡£
¡¡¡¡¶ÔÓÚºÄʱ³¤µÄÈÎÎñ²»Ó¦¸ÃÈÃËüÔÚǰ̨ÈÎÎñÖÐÖ´ÐУ¬¶øÓ¦¸Ã½»¸øºǫ́ÈÎÎñÈ¥Ö´ÐС£ÕâÑùǰ̨ÈÎÎñ¿É¼ÌÐøÕý³£ÔË×÷ÆäËüµÄ²Ù×÷£¬²»Óõȴý¡£Ê¾ÀýÈçÏ£º
¡¡¡¡# find / -name testing &
¡¡¡¡# fg
¡¡¡¡Èç¹ûÏëÒ ......
fg¡¢bg¡¢jobs¡¢&¡¢ctrl + z¶¼ÊǸúϵͳÈÎÎñÓйصģ¬ËäÈ»ÏÖÔÚ»ù±¾Éϲ»ÔõôÐèÒªÓõ½ÕâЩÃüÁµ«Ñ§»áÁËÒ²ÊǺÜʵÓõÄ
Ò»¡£& ×î¾³£±»Óõ½
Õâ¸öÓÃÔÚÒ»¸öÃüÁîµÄ×îºó£¬¿ÉÒÔ°ÑÕâ¸öÃüÁî·Åµ½ºǫִ́ÐÐ
¶þ¡£ctrl + z
¿ÉÒÔ½«Ò»¸öÕýÔÚǰִ̨ÐеÄÃüÁî·Åµ½ºǫ́£¬²¢ÇÒÔÝÍ£
Èý¡£jobs
&n ......
http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/ ½éÉÜÁË»ù±¾µÄ²âÊÔÀàÐͺÍÔÀí
http://blog.csdn.net/rufeng18/archive/2008/11/17/3322099.aspx
http://www.ibm.com/developerworks/cn/linux/l-pow-debug/
http://xueyueming.blog.163.com/blog/static/60411785200981045547110/
http://zhangyafeikimi.java ......