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
Ïà¹ØÎĵµ£º
ÏȲο´Ò»ÏÂĿ¼ÏµÄREADMEÎĵµ
Ö÷ÒªÓÐÒÔϼ¸¸ö²½Ö裺
1) perl **.PL Éú³Émakefile Îļþ
2) make
3) make test (this is optional£¬Èç¹ûÕⲽûɶÎÊÌâ,»áÏÔʾһÇÐok)
4) make install
³öÏÖµÄÎÊÌ⣬¶à¿´ÏÂÌáʾ£¬Ò»°ã¶¼ÊÇȱ°üÉÙ¿â ......
fdisk -l ÃüÁî¿´µ±Ç°´ÅÅÌÐÅÏ¢
[root@roswell root]# fdisk /dev/sdb
Command (m for help): m --´òÓ¡¸ÃÃüÁîµÄ²ÎÊý¹¦ÄÜÁбí
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibil ......
1¡¢¶þ½øÖÆÎļþ£¨tar.gz£©°²×°
ÏÈ´´½¨Óû§ºÍÓû§×é
su - root
groupadd mysql
useradd -g mysql mysql
½âѹ¶þ½øÖÆÎļþ¡£
gunzip -c filename | tar -xf -
¸´ÖÆÄ¿Â¼/home/mysqlµ½/usr/local£»
´´½¨mysqlÐí¿É±í£º
linux:/usr/local/mysql #scripts/mysql_install_db --user=mysql
ÉèÖöþ½øÖÆËùÓÐȨ£¬Ê ......
1,freadÊÇ´ø»º³åµÄ,read²»´ø»º³å.
2,fopenÊDZê×¼cÀﶨÒåµÄ,openÊÇPOSIXÖж¨ÒåµÄ.
3,fread¿ÉÒÔ¶ÁÒ»¸ö½á¹¹.readÔÚlinux/unixÖжÁ¶þ½øÖÆÓëÆÕͨÎļþûÓÐÇø±ð.
4,fopen²»ÄÜÖ¸¶¨Òª´´½¨ÎļþµÄȨÏÞ.open¿ÉÒÔÖ¸¶¨È¨ÏÞ.
5,fopen·µ»ØÖ¸Õë,open·µ»ØÎļþÃèÊö·û(ÕûÊý).
6,linux/unixÖÐÈκÎÉ豸¶¼ÊÇÎļþ,¶¼¿ÉÒÔÓÃopen,read.
Èç¹ ......
ÕâÀïÖ¸Äں˵İ汾ºÅµÄÃüÁî»úÖÆ
LinuxÄں˰汾ÓÐÁ½ÖÖ£ºÎȶ¨°æºÍ¿ª·¢°æ£¬Îȶ¨µÄÄں˾ßÓй¤Òµ¼¶µÄÇ¿¶È£¬¿ÉÒԹ㷺µØÓ¦ÓúͲ¿Êð£¬ÐµÄÎȶ¨ÄÚºËÏà¶ÔÓڽϾɵÄÖ»ÊÇÐÞÕýһЩbug»ò¼ÓÈëһЩеÄÇý¶¯³ÌÐò£¬¶ø¿ª·¢°æÄÚºËÓÉÓÚÒªÊÔÑé¸÷ÖÖ½â¾ö·½°¸£¬ËùÒԱ仯ºÜ¿ì¡£
LinuxÄں˵ÄÃüÁî»úÖÆ£º
num.num.num
ÆäÖеÚÒ»¸öÊý×ÖÊÇÖ÷°æ±¾ºÅ£¬µÚ¶þ ......