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

Linux»·¾³½ø³Ì¼äͨÐÅ ¹²ÏíÄڴ棨Ï£©


ÔÚ¹²ÏíÄڴ棨ÉÏ£©ÖУ¬Ö÷ÒªÎ§ÈÆ×Åϵͳµ÷ÓÃmmap()½øÐÐÌÖÂ۵쬱¾²¿·Ö½«ÌÖÂÛϵͳV¹²ÏíÄڴ棬²¢Í¨¹ýʵÑé½á¹û¶Ô±ÈÀ´²ûÊöÁ½ÕßµÄÒìͬ¡£ÏµÍ³V¹²ÏíÄÚ´æÖ¸µÄÊǰÑËùÓй²ÏíÊý¾Ý·ÅÔÚ¹²ÏíÄÚ´æÇøÓò£¨IPC shared memory region£©£¬ÈκÎÏëÒª·ÃÎʸÃÊý¾ÝµÄ½ø³Ì¶¼±ØÐëÔÚ±¾½ø³ÌµÄµØÖ·¿Õ¼äÐÂÔöÒ»¿éÄÚ´æÇøÓò£¬ÓÃÀ´Ó³Éä´æ·Å¹²ÏíÊý¾ÝµÄÎïÀíÄÚ´æÒ³Ãæ¡£
ϵͳµ÷ÓÃmmap()ͨ¹ýÓ³ÉäÒ»¸öÆÕͨÎļþʵÏÖ¹²ÏíÄڴ档ϵͳVÔòÊÇͨ¹ýÓ³ÉäÌØÊâÎļþϵͳshmÖеÄÎļþʵÏÖ½ø³Ì¼äµÄ¹²ÏíÄÚ´æÍ¨ÐÅ¡£Ò²¾ÍÊÇ˵£¬Ã¿¸ö¹²ÏíÄÚ´æÇøÓò¶ÔÓ¦ÌØÊâÎļþϵͳshmÖеÄÒ»¸öÎļþ£¨ÕâÊÇͨ¹ýshmid_kernel½á¹¹ÁªÏµÆðÀ´µÄ£©£¬ºóÃæ»¹½«²ûÊö¡£
1¡¢ÏµÍ³V¹²ÏíÄÚ´æÔ­Àí
½ø³Ì¼äÐèÒª¹²ÏíµÄÊý¾Ý±»·ÅÔÚÒ»¸ö½Ð×öIPC¹²ÏíÄÚ´æÇøÓòµÄµØ·½£¬ËùÓÐÐèÒª·ÃÎʸù²ÏíÇøÓòµÄ½ø³Ì¶¼Òª°Ñ¸Ã¹²ÏíÇøÓòÓ³Éäµ½±¾½ø³ÌµÄµØÖ·¿Õ¼äÖÐÈ¥¡£ÏµÍ³V¹²ÏíÄÚ´æÍ¨¹ýshmget»ñµÃ»ò´´½¨Ò»¸öIPC¹²ÏíÄÚ´æÇøÓò£¬²¢·µ»ØÏàÓ¦µÄ±êʶ·û¡£ÄÚºËÔÚ±£Ö¤shmget»ñµÃ»ò´´½¨Ò»¸ö¹²ÏíÄÚ´æÇø£¬³õʼ»¯¸Ã¹²ÏíÄÚ´æÇøÏàÓ¦µÄshmid_kernel½á¹¹×¢Í¬Ê±£¬»¹½«ÔÚÌØÊâÎļþϵͳshmÖУ¬´´½¨²¢´ò¿ªÒ»¸öͬÃûÎļþ£¬²¢ÔÚÄÚ´æÖн¨Á¢Æð¸ÃÎļþµÄÏàÓ¦dentry¼°inode½á¹¹£¬Ð´ò¿ªµÄÎļþ²»ÊôÓÚÈκÎÒ»¸ö½ø³Ì£¨Èκνø³Ì¶¼¿ÉÒÔ·ÃÎʸù²ÏíÄÚ´æÇø£©¡£ËùÓÐÕâÒ»Çж¼ÊÇϵͳµ÷ÓÃshmgetÍê³ÉµÄ¡£
×¢£ºÃ¿Ò»¸ö¹²ÏíÄÚ´æÇø¶¼ÓÐÒ»¸ö¿ØÖƽṹstruct shmid_kernel£¬shmid_kernelÊǹ²ÏíÄÚ´æÇøÓòÖзdz£ÖØÒªµÄÒ»¸öÊý¾Ý½á¹¹£¬ËüÊÇ´æ´¢¹ÜÀíºÍÎļþϵͳ½áºÏÆðÀ´µÄÇÅÁº£¬¶¨ÒåÈçÏ£º
struct shmid_kernel /* private to the kernel */
{
struct kern_ipc_perm shm_perm;
struct file * shm_file;
int id;
unsigned long shm_nattch;
unsigned long shm_segsz;
time_t shm_atim;
time_t shm_dtim;
time_t shm_ctim;
pid_t shm_cprid;
pid_t shm_lprid;
};
¸Ã½á¹¹ÖÐ×îÖØÒªµÄÒ»¸öÓòÓ¦¸ÃÊÇshm_file£¬Ëü´æ´¢Á˽«±»Ó³ÉäÎļþµÄµØÖ·¡£Ã¿¸ö¹²ÏíÄÚ´æÇø¶ÔÏó¶¼¶ÔÓ¦ÌØÊâÎļþϵͳshmÖеÄÒ»¸öÎļþ£¬Ò»°ãÇé¿öÏ£¬ÌØÊâÎļþϵͳshmÖеÄÎļþÊDz»ÄÜÓÃread()¡¢write()µÈ·½·¨·ÃÎʵ쬵±²ÉÈ¡¹²ÏíÄÚ´æµÄ·½Ê½°ÑÆäÖеÄÎļþÓ³Éäµ½½ø³ÌµØÖ·¿Õ¼äºó£¬¿ÉÖ±½Ó²ÉÓ÷ÃÎÊÄÚ´æµÄ·½Ê½¶ÔÆä·ÃÎÊ¡£
ÕâÀïÎÒÃDzÉÓÃ[1]ÖеÄͼ±í¸ø³öÓëϵͳV¹²ÏíÄÚ´æÏà¹ØÊý¾Ý½á¹¹£º
 
ÕýÈçÏûÏ¢¶ÓÁкÍÐźŵÆÒ»Ñù£¬ÄÚºËͨ¹ýÊý¾Ý½á¹¹struct ipc_ids shm_idsά»¤ÏµÍ³ÖеÄËùÓй²ÏíÄÚ´æÇøÓò¡£ÉÏͼÖеÄshm_ids.entries±äÁ¿Ö¸ÏòÒ»¸öipc_id½á¹¹Êý×飬¶øÃ¿¸öipc_id


Ïà¹ØÎĵµ£º

ѧÓÃLinuxÃüÁî

ѧÓÃLinuxÃüÁî
2006-01-23 11:18:22 ³æ×Ó³æ×ÓÅÀ@-FiFb /article/-FiFb-liXUWS.html ¸´ÖÆ ÆÀÂÛ
»ù´¡½Ì³Ì-ѧÓÃLinuxÃüÁ1£©
LinuxËäÈ»ÊÇÃâ·ÑµÄ£¬µ«ËüµÄÈ·ÊÇÒ»¸ö·Ç³£ÓÅÐãµÄ²Ù×÷ϵͳ£¬ÓëMS£­WINDOWSÏà±È¾ßÓпɿ¿¡¢Îȶ¨¡¢ËÙ¶È¿ìµÈÓŵã,ÇÒÓµÓзḻµÄ¸ù¾ÝUNIX°æ±¾¸Ä½øµÄÇ¿´ó¹¦ÄÜ¡£ÏÂÃæ£¬×÷Ϊһ¸öµäÐ͵ÄDOS ºÍWINDOWSÓû§£¬ ......

LinuxµÄÄÚºËÑÓ³Ùº¯Êý

µ±ÄÚºËÐèÒªµÈ´ýÒ»¸ö±È½Ï¶ÌµÄʱ¼ä¼ä¸ôʱ£¬±È·½Ëµ£ºÓÐʱºòÉ豸Çý¶¯Æ÷»áµÈ´ýÔ¤Ïȶ¨ÒåµÄÈô¸É¸ö΢ÃîµÄʱ¼äÖ±µ½Ó²¼þÍê³ÉijЩ²Ù×÷¡£ÓÉÓÚ¶¯Ì¬¶¨Ê±Æ÷ͨ³£ÓкܴóµÄÉèÖÿªÏúºÍÒ»¸öÏ൱´óµÄ×îСµÈ´ýʱ¼ä£¨1ms£©£¬ËùÒÔÉ豸Çý¶¯Æ÷ʹÓÃËü»áºÜ²»·½±ã¡£
ÔÚÕâЩÇé¿öÏ£¬ÄÚºËʹÓÃudelay£¨£©ºÍndelay£¨£©º¯Êý£ºÇ°Õß½ÓÊÕÒ»¸ö΢Ãî¼¶µÄʱ¼ä¼ä¸ô×÷Î ......

Linux ÅжϻúÆ÷µÄ×Ö½Ú˳Ðò

#include <fcntl.h>
int main(void)
{
    typedef union un{
        short s;
        char c[sizeof(short)];
    }un;
    un myun;
    myun.s = 0x0102;
  ......

LinuxÐÞ¸ÄÆô¶¯Ïî ¼°Í¼ÐÎ/ÎÄ×Ö½çÃæÇл»


LinuxͼÐνçÃæºÍÎÄ×Ö½çÃæÆô¶¯ÏµÍ³·½Ê½µÄÇл»
ת×Ô:http://www.webisok.com/46/t-1346.html
ÒÔrootµÄÉí·ÝµÇ½£¬È»ºóÖ´ÐУº
#cd /etc
#vi inittab
¸ü¸Ä"id:5:initdefault:"Óï¾ä¼´¿É¡£
ÆäÖÐ5±íʾĬÈÏͼÐÎÆô¶¯½çÃæ
3±íʾĬÈÏÎÄ×ÖÆô¶¯½çÃæ
×¢£ºÔÚÆô¶¯Ö®ºó£¬»¹¿ÉÒÔͨ¹ýÏÂÃæµÄÓï¾ä½øÐÐÇл»£º
#init n
Èç¹ûÔÚͼÐνçÃæÏ ......

LinuxÏÂskype¹úÄÚ¿¨²¦ºÅ·½·¨

TOM-Skype×Ô½ñÄê³õÍÆ³ö¹úÄÚ¿¨³¤»°Í¨·þÎñ£¬ÒÔÆä¸üΪÓÅÖʺ͵ͼ۵ĹúÄÚ³¤Í¾µç»°·þÎñÊÕµ½SkypeÓû§µÄ»¶Ó­¡£µ«Òò³¤»°Í¨·þÎñ±ØÐëÓÃTOM-
SkypeÇÒ°æ±¾ÔÚ3.2ÒÔÉϲÅÄÜʹÓ㬶øTOM-Skype½öÓÐWindows°æ±¾£¬Ã»ÓÐMac¡¢Linux¡¢Windows
MobileµÈ°æ±¾£¬ËùÒԺܶ಻Ը°²×°TOM-SkypeµÄÓû§ÎÞ·¨Ê¹Ó󤻰ͨ·þÎñ¡£
ʵ¼Ê·ÇTOM-SkypeÒ²¿ÉÒÔʹÓùúÄ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ