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

linux ×Ö·ûÇý¶¯2


µ¼º½£º[Ê×Ò³]>[linuxÄÚºËѧϰ±Ê¼Ç]
Ŀ¼
 [Òþ²Ø]
1 ×Ö·ûÉ豸Çý¶¯ÖªÊ¶½²½â
1.1 ÃèÊö×Ö·ûÉ豸»ù±¾½á¹¹Ìå
1.2 ×÷ÓÃ
1.3 ¸÷×Ö¶ÎÏê½â
1.4 ²Ù×÷
1.5 ÊµÀý
1.5.1 ´úÂë
1.5.2 ÔËÐÐ
[±à¼­]×Ö·ûÉ豸Çý¶¯ÖªÊ¶½²½â
×÷Õߣº[Å£ÌÎ]
[±à¼­]ÃèÊö×Ö·ûÉ豸»ù±¾½á¹¹Ìå
/linux/include/linux/cdev.h
13struct cdev {
14 struct kobject kobj;
15 struct module *owner;
16 const struct file_operations *ops;
17 struct list_head list;
18 dev_t dev;
19 unsigned int count;
20};
[±à¼­]×÷ÓÃ
ÃèÊö×Ö·ûÉ豸µÄ»ù±¾½á¹¹Ì壬ÓÃÓÚ½øÒ»²½·â×°ÔÚ¸ü´óµÄ½á¹¹ÌåÄÚ£¬ÒÔÃèÊö¾ßÌåµÄ×Ö·ûÉ豸£¬ÀýÈ磺
struct xxx_cdev {
const char *name;
struct cdev cdev;
...
}
ÕâÑù¾Í¿ÉÒÔʹÓÃxxx_cdev½á¹¹ÃèÊö¾ßÌåµÄ×Ö·ûÉ豸ÁË¡£
[±à¼­]¸÷×Ö¶ÎÏê½â
1¡¢struct kobject kobj;
¾ßÌå½á¹¹²Î¼ûhttp://blog.chinaunix.net/u1/55599/showart.php?id=1086478£¬´Ë´¦ËüÊÇÒ»¸öÄÚǶµÄ½á¹¹£¬×÷ÓÃÊÇÌṩÒýÓüÆÊý¡£ÔÚµ÷ÓÃcdev_init()º¯Êý³õʼ»¯cdev½á¹¹Ìåʱ£¬»áµ÷ÓÃkobject_init()º¯Êý³õʼ»¯¸ÃÊý¾ÝÓò¡£¾ßÌå¼ûÏÂÎÄcdev_init()º¯Êý¡£
2¡¢struct module *owner;
Ö¸³ö¸Ã×Ö·ûÉ豸ËùÊôµÄÄ£¿é£¬Ò»°ã³õʼ»¯ÎªTHIS_MODULES¡£
3¡¢struct file_operations *ops;
Îļþ²Ù×÷Ö¸Õ룬ҲÊǸýṹÖÐ×îÖØÒªµÄÊý¾ÝÓò¡£×Ö·ûÉ豸Çý¶¯µÄ±àдÖ÷Òª¾ÍÊÇʵÏÖfile_operationsÀïµÄһЩ³£Óú¯Êý£¬±ÈÈçread£¬write£¬open£¬releaseµÈ¡£¹ØÓÚfile_operations½á¹¹µÄÏê½â²Î¼û£ºhttp://blog.chinaunix.net/u2/73521/showart_1086491.html
4¡¢struct list_head list;
Óë×Ö·ûÉ豸Îļþ¶ÔÓ¦µÄË÷Òý½ÚµãÁ´±íÍ·£¬ÓÃÓÚÊÕ¼¯Ïàͬ×Ö·ûÉ豸Çý¶¯³ÌÐòËù¶ÔÓ¦µÄ×Ö·ûÉ豸ÎļþµÄË÷Òý½Úµã¡£¿ÉÄܺܶàÉ豸Îļþ¾ßÓÐÏàͬµÄÉ豸ºÅ£¬²¢¶ÔÓ¦ÓÚÏàͬµÄ×Ö·ûÉ豸¡£¸Ã×Ö¶ÎÔÚcdev_alloc()ºÍcdev_init()ÖнøÐÐÁ˳õʼ»¯¡£
5¡¢dev_t dev;
´ú±í¸Ã×Ö·ûÉ豸µÄÉ豸ºÅ¡£dev_tʵ¼ÊÉÏΪunsigned intÀàÐÍ£¬32λ¡£ÆäÖиß12λΪÖ÷É豸ºÅ£¬µÍ20λΪ´ÎÉ豸ºÅ¡£Èç¹ûÒÑÖªÒ»¸öÉ豸ºÅ£¬¿ÉÒÔʹÓÃһϺê·Ö±ðÈ¡µÃÖ÷É豸ºÅºÍ´ÎÉ豸ºÅ£º
MAJOR(dev_t dev) /*È¡µÃÖ÷É豸ºÅ*/
MINOR(dev_t dev) /*È¡µÃ´ÎÉ豸ºÅ*/
ÕâÁ½¸öºêµÄÔ­ÐÍÊÇ£º/linux/include/linux/kdev_t.h
4#define MINORBITS 20
5#define MINORMASK ((1U << MINORBITS) - 1)


Ïà¹ØÎĵµ£º

linux ÖеÄhook

ÏàÐÅÊìϤwindows±à³ÌµÄ¸ßÊÖÃǶ¼ÖªµÀ£¬windowsΪÎÒÃÇÌṩһЩapi£¬ÕâЩapiÓÃÓÚhook ¼üÅÌ£¬Êó±ê£¬ÏûÏ¢µÈʼþ¡£windowsµÄÔËÐÐÊÇÀ´Ô´ÓÚÕâЩʼþÇý¶¯µÄ£¬ËùÒÔÒ»µ©ÎÒÃǽػñÁËÕâЩʼþ£¬¾Í¿ÉÒԴ۸ijÌÐò±¾À´µÄ¹¦ÄÜÁË¡£
µ«ÊÇÔÚLinuxÖУ¬²¢²»´æÔÚÕâÑùµÄapi¡£Òª×¥»ñÄÚºËÖеÄinputʼþ£¬¾Í±ØÐëÁíÍâ±à¼­Çý¶¯½øÐжîÍâµÄ´¦Àí¡£
ÕâÊÇÒÔǰΠ......

ÎÒµÄÐéÄâÎļþϵͳ£¨linux)


 
1# ·¢±íÓÚ 2005-11-15 17:34  Ö»¿´¸Ã×÷Õß
  http://www.chinaunix.net ×÷Õß:bierdaci  ·¢±íÓÚ£º2004-05-25 18:59:33
²»ÖªµÀ¸Ã²»¸Ã·¢ÕâÀÊÇÎÒ´Óproc¸ÄÀ´µÄ,¶®ÄÚºËÔ´ÂëµÄ½»Á÷½»Á÷
hello.c
[code:1:3adb123188]
#include "hello.h"
struct inode * hello_get_inode(struct s ......

Linux ¿É¼ÓÔØÄÚºËÄ£¿éÆÊÎö

 
Linux® ¿É¼ÓÔØÄÚºËÄ£¿é£¨´ÓÄÚºËµÄ 1.2 °æ±¾¿ªÊ¼ÒýÈ룩ÊÇ Linux Äں˵Ä×îÖØÒª´´ÐÂÖ®Ò»¡£ËüÃÇÌṩÁË¿ÉÉìËõµÄ¡¢¶¯Ì¬µÄÄںˡ£Ì½Ë÷Òþ²ØÔڿɼÓÔØÄ£¿éºóÃæµÄÔ­Àí£¬²¢Ñ§Ï°ÕâЩ¶ÀÁ¢µÄ¶ÔÏóÈçºÎ¶¯Ì¬µØ×ª»»³É Linux Äں˵ÄÒ»²¿·Ö¡£
Linux ¾ÍÊÇͨ³£Ëù˵µÄµ¥Äںˣ¨monolithic kernel£©
£¬¼´²Ù×÷ϵͳµÄ´ó²¿·Ö¹¦Äܶ¼±»³ÆÎªÄÚº ......

LinuxÉ豸Çý¶¯¿ò¼Ü¡¢ÅäÖÃÎļþ¼°¼ÓÔØ

.Wub131 { display:none; }
±¾½²Ö÷Òª¸ÅÊöLinuxÉ豸Çý¶¯¿ò¼Ü¡¢Çý¶¯³ÌÐòµÄÅäÖÃÎļþ¼°³£ÓõļÓÔØÇý¶¯³ÌÐòµÄ·½·¨£»²¢ÇÒ½éÉÜRed Hat Linux°²×°³ÌÐòÊÇÈçºÎ¼ÓÔØÇý¶¯µÄ£¬Í¨¹ýÁ˽âÕâ¸ö¹ý³Ì£¬ ÎÒÃÇ¿ÉÒÔ×Ô¼º½«Çý¶¯³ÌÐò·Åµ½Òýµ¼ÅÌÖУ»°²×°Íêϵͳºó£¬Ê¹ÓÃkudzu×Ô¶¯ÅäÖÃÓ²¼þ³ÌÐò¡£
54com.cn
LinuxÉ豸Çý¶¯¸ÅÊö

ÖйúÍø¹ÜÁªÃËwww ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ