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É豸ģÐÍÖ®ttyÇý¶¯¼Ü¹¹·ÖÎö
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2008.07.25 16:24¡¡(¹²ÓÐ0ÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô´´,»¶ÓתÔØ!
תÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»£ºÇ°ÑÔ
TtyÕâ¸öÃû³Æ ......
ÔÎĵØÖ·£ºhttp://hi.baidu.com/%CE%E5%CC%EC%CB%C4%BF%C9%D2%D4/blog/item/8fe434134b663b0b5baf532b.html
×÷Ϊһ¸ö×ÀÃæ²Ù×÷ϵͳ£¬Ubuntu£¨ÒÔºóÎÒ¼ò³ÆΪUB£©×ÔȻҲºÍWindowsÒ»Ñù£¬ÓµÓÐÖÚ¶àµÄʵÓÃÈí¼þ£¬ÈÃÎÒÃÇƽ³£À´Ê¹Ó᣺ܶàÐÂÊÖ£¬ÔÚ°²×°ÁËUbuntuϵͳºó£¬Ãæ¶Ô×ÅÓëÖÚ²»Í¬µÄ×ÀÃ棬²»ÖªµÀ¸ÃÈçºÎ°²×°Èí¼þ£¬Õâ´ÎµÄ½Ì³Ì£¬ÎÒ½«Ï ......
¡¡¡¡Linux×÷Ϊһ¸ö¶àÈÎÎñ»·¾³£¬ÔÊÐíÓû§Í¬Ê±Ö´ÐжàÏîÈÎÎñ£¬ÀýÈç²é¿´ÏµÍ³Çé¿ö¡¢±¸·Ý×ÊÁÏ¡¢±à¼ÎļþºÍ´òÓ¡ÎļþµÈ¡£
¡¡¡¡¶ÔÓÚºÄʱ³¤µÄÈÎÎñ²»Ó¦¸ÃÈÃËüÔÚǰ̨ÈÎÎñÖÐÖ´ÐУ¬¶øÓ¦¸Ã½»¸øºǫ́ÈÎÎñÈ¥Ö´ÐС£ÕâÑùǰ̨ÈÎÎñ¿É¼ÌÐøÕý³£ÔË×÷ÆäËüµÄ²Ù×÷£¬²»Óõȴý¡£Ê¾ÀýÈçÏ£º
¡¡¡¡# find / -name testing &
¡¡¡¡# fg
¡¡¡¡Èç¹ûÏëÒ ......