»ùÓÚLinuxµÄ±ãЯǶÈëʽÉ豸µçÔ´¹ÜÀí½â¾ö·½°¸
ǰ¡¡ÑÔ
¡¡¡¡Ëæ×Ÿ÷ÖÖ±ãЯǶÈëʽÉ豸ÐÔÄܵÄÈÕÒæÌá¸ß£¬¹¦ÄÜÈÕÒæ·á¸»£¬ÆäµçÔ´½ôÕŵÄÎÊÌâÒ²ÈÕÒæÍ»³ö£¬¹úÄÚÐÂÍÆ³öµÄijЩ¾ßÓÐPDAµÈ¶àÖÖ¹¦ÄܵÄÖÇÄܵ绰ÔÚÃܼ¯Ê¹ÓÃÏÂÖ»ÄÜά³Ö°ëÌ죬¶àÊýÉãÏñ»ú
ºÍÊýÂëÏà»ú
ÔÚ
Ò»´Î³äµçºó¶¼Ö»ÓÐÒ»¸öСʱ×óÓÒµÄÀÛ»ý¹¤×÷ʱ¼ä¡£Linux×÷Ϊһ¸ö¿ª·ÅÔ´´úÂëµÄ²Ù×÷ϵͳ£¬ÓµÓзdz£·á¸»µÄÈí¼þ×ÊÔ´ºÍƽ̨֧³Ö£¬ÕâʹµÃǶÈëʽϵͳ¿ª·¢µÄÖÜÆÚ
´ó´óËõ¶Ì£¬Ô½À´Ô½¶àµÄÉÌÓúÍͨÓÃǶÈëʽϵͳ¶¼²ÉÓÃLinux×÷ΪÈí¼þƽ̨¡£Òò´ËÓбØÒª¶ÔLinuxϵͳµÄµçÔ´¹ÜÀí»úÖÆ½øÐÐÉîÈëÑо¿¡£
LinuxÄں˵çÔ´¹ÜÀí»úÖÆ·ÖÎö
¡¡¡¡ Linux×÷Ϊһ¸öÇ¿´ó¶ø³ÉÊìµÄ²Ù×÷ϵͳ£¬±¾ÉíÌṩÁËÒ»Ì×´ÓÓû§¿Õ¼äµ½ÏµÍ³¿Õ¼äµÄ£¬ÓÉÉ϶øÏµÄÈí¼þµçÔ´¹ÜÀí»úÖÆ¡£
µçÔ´¹ÜÀí×Óϵͳ
LinuxÄÚºËʵÏÖÁËÒ»¸öµçÔ´¹ÜÀí×ÓϵͳÓÃÓÚͳһ¹ÜÀíÿ¸öÉ豸¡£Ô´´úÂëpm.hºÍpm.cÖж¨ÒåºÍʵÏÖÁËÖ÷ÒªµÄ½Ó¿Ú
º¯Êý¡£Èç±í1Ëùʾ¡£
¡¡¡¡
¡¡¡¡ ͨ¹ýÕâЩ½Ó¿Úº¯Êý¾Í¿ÉÒÔ½«×Ô¼ºµÄÓ²¼þÉ豸ÄÉÈëµçÔ´¹ÜÀí×ÓϵͳʹÆä³ÉΪϵͳµçÔ´
¹ÜÀíµÄÒ»²¿·Ö¡£ÕâÐèÒªÔÚ±àдÉ豸Çý¶¯³ÌÐòµÄʱºòÍê³ÉÏÂÃæµÄ¹¤×÷:
¡¡¡¡(1)ÔÚ³õʼ»¯Çý¶¯Ê±£¬Ê¹ÓÃpm_ register¶ÔÉ豸µÄÿ¸öʵÀý( instance)½øÐÐ×¢²á;ÔÚÇå³ýÇý¶¯Ê±Ê¹ÓÃpm_unregisterÀ´È¡ÏûÉ豸µÄ×¢²á¡£
¡¡¡¡(2)ÔÚ¶ÔÓ²¼þ½øÐвÙ×÷֮ǰµ÷ÓÃpm_access (ÕâÑù»á±£Ö¤É豸Òѱ»»½ÐѲ¢ÇÒ´¦ÓÚready״̬) ¡£
¡¡
¡¡(3)±àд×Ô¼ºµÄpm
_callbackº¯Êý¡£¿ª·¢ÈËÔ±Ó¦¸ÃÔÚÉ豸»òϵͳ½øÈësuspend״̬ʱ±£ÁôÉ豸ºÍϵͳµÄÉÏÏÂÎĵ½°²È«µÄµØ·½£¬²¢ÔÚÉ豸»òϵͳre
-sumeʱ»Ö¸´ÆäÉÏÏÂÎÄ£¬Ê¹Ö®Äܹ»¼ÌÐøÔËÐУ¬±àдpm_callbackº¯ÊýÊÇÇý¶¯ÊµÏÖÉ豸µçÔ´¹ÜÀíµÄÖØµã¡£
¡¡¡¡(4)µ±É豸²»ÔÚ±»Ê¹ÓõÄʱºòµ÷ÓÃpm_dev_idleº¯Êý£¬Õâ¸ö²Ù×÷ÊÇ¿ÉÑ¡µÄ£¬¿ÉÒÔÔöÇ¿É豸idle״̬µÄ¼à²âÄÜÁ¦¡£
µçÔ´¹ÜÀíÉ豸
¡¡
¡¡½«É豸¼ÓÈëµ½µçÔ´¹ÜÀí×Óϵͳºó£¬¸ÃÉ豸¾ÍÒѾÓÐÁË´¦ÀíµçÔ´¹ÜÀíÇëÇóµÄÄÜÁ¦£¬µ«ÊÇϵͳµÄµçÔ´¹ÜÀíÐÐΪ²¢²»»áÖ÷¶¯·¢Éú¡£Òò´Ë»¹ÐèÒªÒ»¸öµçÔ´¹ÜÀíÉ豸À´½ÓÊÜÓÃ
»§ÇëÇ󣬲úÉúµçÔ´¹ÜÀíÐÐΪ¡£ÕâÀïËùÖ¸µÄÉ豸²¢²»ÊÇÒ»¸öÕæÊµµÄÓ²¼þÉ豸£¬¶øÊÇÒ»¸öÔÚLinuxϵͳ¿Õ¼äÀï½ÓÊÜÓû§¿ØÖƵÄÐéÄâÉ豸£¬Ëü¿ÉÒÔÊÇÒ»¸ö¼òµ¥
Ïà¹ØÎĵµ£º
ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......
so_test.h£º
#include
#include
void test_a();
void test_b();
void test_c();
test_a.c£º
#include "so_test.h"
void test_a()
{
printf("this is in test_a...\n");
}
test_b.c£º
#include "so_test.h"
void test_b()
{
printf("this is in test_b...\n");
......
ÔÚÍøÉÏ¿´µ½ÓÐÈË×ܽáµÃ²»´í
1£®¿ª»úÆô¶¯Ê±×Ô¶¯ÔËÐгÌÐò
Linux
¼ÓÔØºó, Ëü½«³õʼ»¯Ó²¼þºÍÉ豸Çý¶¯, È»ºóÔËÐеÚÒ»¸ö½ø³Ìinit¡£init¸ù¾ÝÅäÖÃÎļþ¼ÌÐøÒýµ¼¹ý³Ì£¬Æô¶¯ÆäËü½ø³Ì¡£Í¨³£Çé¿öÏ£¬Ð޸ķÅÖÃ
ÔÚ /etc/rc»ò /etc/rc.d »ò /etc/rc?.d Ŀ¼ÏµĽű¾Îļþ£¬¿ÉÒÔʹinit×Ô¶¯Æô¶¯Æ ......
NAPI ÊÇ Linux ÉϲÉÓõÄÒ»ÖÖÌá¸ßÍøÂç´¦ÀíЧÂʵļ¼Êõ£¬ËüµÄºËÐĸÅÄî¾ÍÊDz»²ÉÓÃÖжϵķ½Ê½¶ÁÈ¡Êý¾Ý£¬¶ø´úÖ®ÒÔÊ×ÏȲÉÓÃÖжϻ½ÐÑÊý¾Ý½ÓÊյķþÎñ³ÌÐò£¬È»ºó POLL µÄ·½·¨À´ÂÖѯÊý¾Ý¡£Ëæ×ÅÍøÂçµÄ½ÓÊÕËٶȵÄÔö¼Ó£¬NIC ´¥·¢µÄÖжÏÄÜ×öµ½²»¶Ï¼õÉÙ£¬Ä¿Ç° NAPI ¼¼ÊõÒѾÔÚÍø¿¨Çý¶¯²ãºÍÍøÂç²ãµÃµ½Á˹㷺µÄÓ¦Óã¬Çý¶¯²ã´ÎÉÏÒѾÓÐ E1000 Ï ......
ubuntu: ÐÞ¸ÄΪmaserat1
1) ÐÞ¸Ä /etc/hostname
master1
2£© /etc/hosts
127.0.0.1 localhost.localdomain localhost
172.16.111.102 master1.localdomain master1
172.16.111.103 slaver1.localdomain slaver1
172.16.111.106 slaver2.localdomain slaver2
3£© ÖØÆôÍøÂç
Redhat ÐÞ¸ÄΪslaver2
1) Ð ......