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)
Ïà¹ØÎĵµ£º
getenv£¨È¡µÃ»·¾³±äÁ¿ÄÚÈÝ£©
Ïà¹Øº¯Êý putenv£¬setenv£¬unsetenv
±íÍ·Îļþ #include<stdlib.h>
¶¨Ò庯Êý char * getenv(const char *name);
º¯Êý˵Ã÷ getenv()ÓÃÀ´È¡µÃ²ÎÊýname»·¾³±äÁ¿µÄÄÚÈÝ¡£²ÎÊýnameΪ»·¾³±äÁ¿µÄÃû³Æ£¬Èç¹û¸Ã±äÁ¿´æÔÚÔò»á·µ»ØÖ¸Ïò¸ÃÄÚÈݵÄÖ¸Õë¡£»·¾³±äÁ¿µÄ¸ñʽΪname£½value¡£
·µ»ØÖµ Ö´Ðг ......
½»²æ±àÒë»ùÓÚARMµÄLinuxÄÚºË֮ǰ,ÎÒÃÇ×÷ÒÔϵÄ×¼±¸¹¤×÷£º
1¡¢ÒѾ°²×°ºÃÒ»Ì×ÄãÊìϤµÄ½»²æ±àÒ빤¾ß£¨½¨Á¢ºÃ½»²æ±àÒë»·¾³£©¡£
2¡¢Ñ¡ÔñÒ»Ì×ÄãÊìϤµÄ¹¦ÄÜ×ã¹»ÄãʹÓõÄÄںˣ¬µ±È»£¬Õâ¸öÄÚºËÊÇÊʺÏÓÃÄãµÄ½»²æ±àÒ빤¾ß±àÒëµÄ¡£
ÕÆÎÕÒÔÉÏ2µã£¬»ù±¾ÉϾͲ¶àÁË¡£ÕâÀïĬÈÏÄãÖªµÀµÄһЩ³£ÓÃ֪ʶ££££ÃüÁî£ ......
ͨ³£Çé¿öÏ£¬ÎÒÃÇ´ÓÃüÁîÐÐÊäÈëÃüÁîÿÊäÈëÒ»´Î¾ÍÄܹ»µÃµ½ÏµÍ³µÄÒ»´ÎÏìÓ¦¡£Ò»µ©ÐèÒªÎÒÃÇÒ»¸ö½Ó×ÅÒ»¸öµÄÊäÈëÃüÁî¶ø×îºó²ÅµÃµ½½á¹ûµÄʱºò£¬ÕâÑùµÄ×ö·¨ÏÔÈ»¾ÍûÓÐЧÂÊ¡£Òª´ïµ½ÕâÑùµÄÄ¿µÄ£¬Í¨³£ÎÒÃÇÀûÓÃshell³ÌÐò»òÕßshell½Å±¾À´ÊµÏÖ¡£
Ò»¡¢¼ò½é
Shell±à³ÌÓкܶàÀàËÆCÓïÑÔºÍÆäËû³ÌÐòÓïÑÔµÄÌØÕ÷£¬µ«ÊÇÓÖûÓбà³ÌÓïÑÔÄÇÑù¸´ÔÓ¡£ ......
LinuxϵͳϵĶàÏß³Ì×ñÑPOSIXÏ߳̽ӿڣ¬³ÆÎªpthread¡£±àдLinuxϵĶàÏ̳߳ÌÐò£¬ÐèҪʹÓÃÍ·Îļþpthread.h£¬Á¬½Óʱ
ÐèҪʹÓÿâlibpthread.a¡£Ë³±ã˵һÏ£¬LinuxÏÂpthreadµÄʵÏÖÊÇͨ¹ýϵͳµ÷ÓÃclone£¨£©À´ÊµÏֵġ£clone£¨£©ÊÇLinux
ËùÌØÓеÄϵͳµ÷Óã¬ËüµÄʹÓ÷½Ê½ÀàËÆfork£¬¹ØÓÚclone£¨£©µÄÏêϸÇé¿ö£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔÈ¥² ......
1¡¢Ê×ÏÈ´ÓÈí¼þ¹ÜÀíÀï°ÑËùÓÐÓйØÓʼþ·þÎñÈí¼þ¶¼×°ÉÏ£¬ÆäÖаüÀ¨ÁË£¬sendmailºÍdovecot
2
¡¢
DN
SÅä
ÖÃ
¡¡¡¡£¨1£©ÐÞ¸Ä/etc/named.conf
£¬´ËÎļþÒ»°ãÊǸöÈíÁ´½Ó£¬Ìí¼ÓÈçÏ£º
zone "excontainer.com" IN {
type master;
&nb ......