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

linux Çý¶¯mmap²Ù×÷


Èý¡¢VMAºÍPAGE½á¹¹ ºÍmmapº¯Êý
 
1.page  Ö÷Òª³ÉÔ±
   atomic_t count; 
//Õâ¸öÒ³µÄÒýÓÃÊý. µ±Õâ¸ö count µôµ½ 0, ÕâÒ³±»·µ»Ø¸ø¿ÕÏÐÁбí.
void *virtual; 
//Èç¹ûÒ³±»Ó³É䣬Ôò±íʾÕâÒ³µÄÄÚºËÐéÄâµØÖ·; ·ñÔò, NULL.
unsigned long flags; 
//ÃèÊöҳ״̬µÄÒ»Ì×λ±êÖ¾. ÕâЩ°üÀ¨ PG_locked, Ëüָʾ¸ÃÒ³ÔÚÄÚ´æÖÐÒѱ»¼ÓËø, ÒÔ¼° PG_reserved,
//Ëü·ÀÖ¹ÄÚ´æ¹ÜÀíϵͳʹÓøÃÒ³
 
2.vm_area_struct  Ö÷Òª³ÉÔ±
unsigned long vm_start;//VMA ¿ªÊ¼ÓÚ
unsigned long vm_end; //VMA ½áÊø
struct file *vm_file; 
//Ö¸ÏòºÍÕâ¸öÇø(Èç¹ûÓÐÒ»¸ö)¹ØÁªµÄ struct file ½á¹¹µÄÖ¸Õë.
unsigned long vm_pgoff; 
//ÎļþÖÐÇøµÄÆ«ÒÆ, ÒÔÒ³¼Æ. µ±Ò»¸öÎļþºÍÉ豸±»Ó³Éä, ÕâÊÇÓ³ÉäÔÚÕâ¸öÇøµÄµÚÒ»Ò³µÄÎļþλÖÃ.?????
unsigned long vm_flags; 
// É豸Çý¶¯³£ÓõıêÖ¾ÊÇ VM_IO ºÍ VM_RESERVUED. 
//VM_IO ±êÖ¾Ò»¸ö VMA ×÷ΪÄÚ´æÓ³ÉäµÄ I/O Çø,×èÖ¹Õâ¸öÇø±»°üº¬ÔÚ½ø³ÌºËת´¢£¿£¿£¿ÖÐ. 
//VM_RESERVED ¸æÖªÄÚ´æ¹ÜÀíϵͳ²»ÒªÊÔͼ½»»»³öÕâ¸ö VMA;
struct vm_operations_struct *vm_ops; 
//²Ù×÷
//void (*open)(struct vm_area_struct *vma);  VMA¸Õ¸Õ²úÉúʱ£¬´Ëº¯Êý±»µ÷ÓÃÀ´³õʼ»¯VMA
//void (*close)(struct vm_area_struct *vma);  µ±Ò»¸öÇø±»Ïú»Ù, Äں˵÷ÓÃËüµÄ¹Ø±Õ²Ù×÷
//struct page *(*nopage)(struct vm_area_struct *vma, unsigned long address, int *type); 
//Èç¹û nopage ·½·¨Ã»Óж¨Òå,Äں˷ÖÅäÒ»¸ö¿ÕÒ³.½ø³Ì´æÈ¡²»ÔÚÄÚ´æÖÐÓÐЧ VMA µÄҳʱ,nopage ·½·¨±»µ÷ÓÃ(Èç¹ûËü±»¶¨Òå)
//int (*populate)(struct vm_area_struct *vm, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int
nonblock); 
//ÔÚËüÃDZ»Óû§¿Õ¼ä´æÈ¡Ö®Ç°,ÔÊÐíÄÚºË"Ô¤´í"Ò³µ½ÄÚ´æ. Çý¶¯Í¨³£Ã»ÓбØÒªÊµÏÖÕâ¸öÌî³ä·½·¨
void *vm_private_data; 
//Çý¶¯¿ÉÒÔÓÃÀ´´æ´¢ËüµÄ×ÔÉíÐÅÏ¢µÄ³ÉÔ±.
 
3.mmapÓû§¿Õ¼äµ÷ÓÃÓëÄں˿ռäµ÷ÓÃ
void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offset);
//start Ö¸ÏòÓû¶ÔÓ¦µÄÄÚ´æÆðʼµØÖ·£¬Í¨³£ÉèΪNULL£¬´ú±íÈÃϵͳ×Ô¶¯Ñ¡¶¨µØÖ·£¬¶ÔÓ¦³É¹¦ºó¸ÃµØÖ·»á·µ»Ø
//²ÎÊýlength´ú±í½«ÎļþÖжà´óµÄ²¿·Ö¶ÔÓ¦µ½ÄÚ´æ¡£
//²ÎÊýprot´ú±íÓ³ÉäÇøÓòµÄ±£»¤·½Ê½
//fdÎļþÃèÊö·û
//²ÎÊýoff


Ïà¹ØÎĵµ£º

linuxÃæÊÔ´óÈ«

linuxÃæÊÔ´óÈ«
Ò»£®Ìî¿ÕÌ⣺
1. ÔÚLinuxϵͳÖУ¬ÒÔ Îļþ ·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ /etc/fstab ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà i½Úµã À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã±í¿é ºÍÊý¾Ý´æ´¢¿é¡£
5. Á´½Ó·ÖΪ£º Ó²Á´½Ó ºÍ ·ûºÅÁ´½Ó ¡ ......

VMwareÐéÄâ»ú°²×°Linux¹âÅÌÎÞ·¨¹ÒÔØ½â¾ö°ì·¨

ÎÒÔÚVmwareÐéÄâ»úÉϰ²×°Linuxʱ£¬µÚÒ»Õź͵ڶþÕŹâÅ̶¼Ë³Àû¹ÒÔØ£¬µ«ÊÇÔÚµÚÈýÕŹâÅÌʱȴ³öÏÖÎÞ·¨¹ÒÔØµÄÌáʾ´°¿Ú¡£´ËʱÎҵĽâ¾ö°ì·¨ÊÇ£ºRed Hat Linux/setting/Hardware/cd/dvd(Ide)ÖÐÅäÖúÃImage fileºó¹´ÉÏDevice statusÖеÄConnected¼´¿É ......

LinuxϵͳÏÂMySQLÏà¹ØÃüÁî


Ò»¡¢×ܽáһϣº
1.LinuxϵͳÏÂÆô¶¯MySQLµÄÃüÁ
mysqladmin start
/etc/init.d/mysql start (Ç°ÃæÎªmysqlµÄ°²×°Â·¾¶)
2.linuxÏÂÖØÆômysqlµÄÃüÁ
mysqladmin restart
/etc/init.d/mysql restart (Ç°ÃæÎªmysqlµÄ°²×°Â·¾¶)
3.linuxϹرÕmysqlµÄÃüÁ
mysqladmin shutdown
/etc/init.d/mysql   shutd ......

LinuxÏÂGUI¿ª·¢£ºGTK+ 2.0 + anjuta + glade

ÔÚLinux£¬¿ÉÒÔ¿¼ÂÇÓÃGTK(The GIMP Toolkit)À´×öGUI(Graphic User interface)¿ª·¢£¬¿ª·¢¹¤¾ß½¨ÒéʹÓÃanjuta + glade(Ã²ËÆeclipse+cdtÒ²¿ÉÒÔ)¡£
½¨Ò飺
Ò»¡¢ÏÈѧϰGTK+ 2.0±¾Éí£¬±ÈÈçÓÃvim+gcc+gdb+make+automake+autoconf...ÕâÑù¶Ô»ùÓÚGTKµÄͼÐοª·¢¹ý³Ì¾ÍÓÐÁË»ù±¾Á˽⣬ÒÔºóÓÃanjuata+glade×Ô¶¯Éú³É´úÂëµÄʱºòÈÝÒ×ÔĶÁºÍ· ......

LinuxÏÂDB2µÄ°²×°ÊÖ°ÑÊÖ½Ìѧƪ

 
½ñÌì°²×°ÁËdb2£¬Ã¦Á˺ÃÒ»Õó×Ó£¬ÉÏÍøÕÒ×ÊÁϵȣ¬ÖÕÓÚ×°ºÃÁË£¬ÏÂÃæ¾Í°ÑÎҵIJ½Öè¸ú´ó¼Ò·ÖÏíһϡ£
¡¡¡¡µÚÒ»²½:¼ì²é³ÌÐò°ü¼°Æä°æ±¾
¡¡¡¡ compat-libstdc++-7.3-2.96.118.i386.rpm
¡¡¡¡     ÔÚlinuxµÄ°²×°ÅÌÉÏ,ÕÒµ½ºóʹÓÃrpm -i compat-libstdc++-7.3-2.96.118.i386.rpm °²×°¼´¿É
¡¡¡¡µÚ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ