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

linuxÄÚ´æ¹ÜÀíÖØÒªµÄÊý¾Ý½á¹¹

ÕâÀïÖ»Áоټ¸¸ö±È½ÏÂé·³µÄÊý¾Ý½á¹¹
struct list_head {
    struct list_head *next, *prev;
} //linuxͨÓõÄË«ÏòÁ´¶ÓÁУ¬ÏÂÃæ¶à´¦Óõ½£¬ÕâÀïÁгöÔ´´úÂë
linux¶ÔÄÚ´æÔÙÓÃҳʽ¹ÜÀí£¬¶ÔÓÚÒ³£¬¾ÍÓиöÊý¾Ý½á¹¹page¼ÓÒÔÃèÊö¡£ÔÚÄÚºËÖÐÓиöÈ«¾ÖÁ¿mem-mapÖ¸ÏòµÄÊÇÒ»¸öpageµÄÊý×飬Õû¸öÊý×éÃèÊöÁËÕû¸öÎïÀíÄڴ棬´ó¼Ò×¢Òâ32λµØÖ·Ïߣ¬ÄÚ´æ´óСÊÇ2µÄ32´Î·½¡£ÓÉÓÚÒ³´óСÊÇ4kÒ²¾ÍÊÇ2µÄ12´Î·½¡£Ã¿4KµÄÒ³¾ÍÓÐÒ»¸öpage¡£ÄÇô2µÄ32´Î·½¹²ÓÐ2µÄ20´Î·½¸öÒ³£¬Ôòmem-mapÖ¸ÏòµÄÊý×é´óС¾ÍÊÇ2µÄ20´Î·½¡£ÆäÖÐÃ÷ÏÔ¶ÔÓÚÒ³µÄÎïÀíµØÖ·£¬Ò»¶¨ÊÇ4KµÄ±¶Êý£¬ÒòΪËü´óСÊÇ4K£¬ÄÇôÕâ¸öÊý×é¾ÍÓиö¶ÔÓ¦£¬Êý×éϱêºóÃæ12¸ö0£¨2½øÖÆ£©¶ÔÓ¦ÁËÒ³ÃæµÄÎïÀíµØÖ·£¬ËûÃÇÔÚÊýÖµÉÏÊÇÏàµÈµÄ¡£ÄÇôÎÒÃÇÔÚpageÊý¾Ý½á¹¹ÖоÍûÓбØÒª´æÖüËüµÄÎïÀíµØÖ·¡£pageÊý¾Ý½á¹¹¶¨ÒåλÖÃinclude/linux/mm.h
struct page{
struct list_head list;   //ͨ¹ýʹÓÃËü½øÈëÏÂÃæµÄÊý¾Ý½á¹¹free_area_struct½á¹¹ÖеÄË«ÏòÁ´¶ÓÁÐ
struct address_space * mapping;   //ÓÃÓÚÄÚ´æ½»»»µÄÊý¾Ý½á¹¹
unsigned long index;//µ±Ò³ÃæµÄÄÚÈÝÀ´×ÔÒ»¸öÎļþʱ£¬index´ú±íןÃÒ³ÃæÔÚÎļþÖеÄÐòºÅ£¬µ±Ò³ÃæµÄÄÚÈݱ»»»³öµ½½»»»É豸ÉÏ¡¢µ«»¹±£Áô×ÅÄÚÈÝ×÷Ϊ»º³åʱ£¬ÔòindexÖ¸Ã÷ÁËÒ³ÃæµÄÈ¥Ïò£¬¸÷λµÄº¬ÒåͬÓÚswp_entry_tÖеÄvalº¬Òå¡£
struct page *next_hash; //×ÔÉíµÄÖ¸Õ룬ÕâÑù¾Í¿ÉÒÔÁ´½Ó³ÉÒ»¸öÁ´±í
atomic t count; //ÓÃÓÚÒ³Ãæ½»»»µÄ¼ÆÊý,ÈôÒ³ÃæÎª¿ÕÏÐÔòΪ0£¬·ÖÅä¾Í¸³Öµ1£¬Ã»½¨Á¢»ò»Ö¸´Ò»´ÎÓ³Éä¾Í¼Ó1£¬¶Ï¿ªÓ³Éä¾Í¼õÒ»
unsigned long flags;//·´Ó¦Ò³Ãæ¸÷ÖÖ״̬£¬ÀýÈç»îÔ¾£¬²»»îÔ¾Ô࣬²»»îÔ¾¸É¾»£¬¿ÕÏÐ
struct list_head lru;
unsigned long age; //±íÊ¾Ò³ÃæÊÙÃü
wait_queue_head_t wait;
struct page ** pprev_hash;
struct buffer_head * buffers;
void * virtual
struct zone_struct * zone; //Ö¸ÏòËùÊôµÄ¹ÜÀíÇø
}
(¶ÔÓÚÿ¸öÏîµÄ˵Ã÷£¬ÎÒ»áÂýÂý²¹ÉÏ£©
¶ÔÄڴ棬½ö½öÓÃpageÊý¾Ý½á¹¹À´ÃèÊö¿Ï¶¨Ô¶Ô¶²»¹»£¬¶ÔÓÚÕû¸öÄڴ棬ÎÒÃÇÔÚ´ËÖ®ÉÏ·ÖÁ˹ÜÀíÇøµÄ¸ÅÄÿ¸ö¹ÜÀíÇø¹ÜÀíÊý¸öÒ³Ãæ¡£Õâ¸öÊý¾Ý½á¹¹ÊÇ zone_struct¶¨ÒåλÖÃÊÇÔÚinclude/linux/mmzone.h
typedef struct free_area_struct {
    struct list_head free_list;   //linux ÖÐͨÓõÄË«ÏòÁ´¶ÓÁÐ
    unsigned int * map;
} free_area_t;
typedef struct zone_struct{
    sp


Ïà¹ØÎĵµ£º

linuxÏÂmysqlµÄʹÓÃ


Æô¶¯mysql:  /etc/rc.d/init.d/mysql start
ÐÞ¸ÄÃÜÂë: ¸ñʽ£ºmysqladmin -uÓû§Ãû -p¾ÉÃÜÂë password ÐÂÃÜÂë
ʹÓÃÃÜÂëµÇ¼:  mysql -u root -p
ÏÔʾÊý¾Ý¿â:  show databases;
Ñ¡ÔñÊý¾Ý¿â:  use Êý¾Ý¿âÃû;
ÏÔʾ±í:  show tables;
ÏÔʾ±í½á¹¹:  descibe ±íÃû;
Ô¶³ÌµÇ¼mysqlÐèÒª¿ªÆôÈ ......

LinuxÖÐKillÃüÁîµÄ½ø³Ìµ÷¶È½²½â_ת

¡¡¡¡killÃüÁî
µ±ÐèÒªÖжÏÒ»¸öǰ̨½ø³ÌµÄʱºò£¬Í¨³£ÊÇʹÓÃ< Ctrl+c >×éºÏ¼ü£»µ«ÊǶÔÓÚÒ»¸öºǫ́½ø³Ì¿ÖžͲ»ÊÇÒ»¸ö×éºÏ¼üËùÄܽâ¾öµÄÁË£¬Õâʱ¾Í±ØÐëÇóÖúÓÚkillÃüÁî¡£¸ÃÃüÁî¿ÉÒÔÖÕÖ¹ºǫ́½ø³Ì¡£ÖÁÓÚÖÕÖ¹ºǫ́½ø³ÌµÄÔ­ ÒòºÜ¶à£¬»òÐíÊǸýø³ÌÕ¼ÓõÄCPUʱ¼ä¹ý¶à£»»òÐíÊǸýø³ÌÒѾ­¹ÒËÀ¡£×ÜÖ®ÕâÖÖÇé¿öÊǾ­³£·¢ÉúµÄ¡£
killÃü ......

Linuxϵͳ¿ÉÐ¶ÔØÄÚºËÄ£¿éÍêȫָÄÏ_ÉÏ

¼ò½é
½« Linux²Ù×÷ϵͳÓÃÓÚ·þÎñÆ÷ÔÚÏÖÔÚÊÇÔ½À´Ô½ÆÕ±éÁË¡£Òò´Ë,ÈëÇÖLinuxÔÚ½ñÌìÒ²±äµÃÔ½À´Ô½ÓÐȤ.Ŀǰ×îºÃµÄ¹¥»÷LinuxµÄ¼¼Êõ¾ÍÊÇÐÞ¸ÄÄں˴úÂë¡£ÓÉ ÓÚÒ»ÖÖ½Ð×ö¿ÉÐ¶ÔØÄÚºË(LoadableKernelModules(LKMs))µÄ»úÖÆ,ÎÒÃÇÓпÉÄܱàдÔÚÄں˼¶±ðÔËÐеĴúÂë,¶øÕâÖÖ´úÂë¿ÉÒÔÔÊÐíÎÒÃÇ ½Ó´¥µ½²Ù×÷ϵͳÖзdz£Ãô¸ÐµÄ²¿·Ö¡£
ÔÚ¹ýÈ¥ÓÐһЩºÜº ......

Linuxϵͳ¿ÉÐ¶ÔØÄÚºËÄ£¿éÍêȫָÄÏ_ÖÐ

µÚ¶þ²¿·Ö ½¥Èë¼Ñ¾³
2.1 ÈçºÎ½Ø»ñϵͳµ÷ÓÃ
ÏÖÔÚÎÒÃÇ¿ªÊ¼ÈëÇÖLKM£¬ÔÚÕý³£Çé¿öÏÂLKMsÊÇÓÃÀ´À©Õ¹Äں˵Ä(ÌØ±ðÊÇÄÇЩӲ¼þÇý¶¯)¡£È»¶øÎÒÃǵđHacks’×öһЩ²»Ò»ÑùµÄÊÂÇé¡£ËûÃÇ»á½Ø»ñϵͳµ÷Óò¢ÇÒ¸ü¸ÄËûÃÇ£¬ÎªÁ˸ıäϵͳijЩÃüÁîµÄÏìÓ¦·½Ê½¡£
ÏÂÃæµÄÕâ¸öÄ£¿é¿ÉÒÔʹµÃÈκÎÓû§¶¼²»ÄÜ´´½¨Ä¿Â¼¡£ÕâÖ»²»¹ýÊÇÎÒÃÇËæºó·½·¨µ ......

dzÎölinuxϼüÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì

dzÎölinuxϼüÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì
¡¾Ç³ÎölinuxÏÂÊó±êÇý¶¯µÄʵÏÖ¡¿
 input_init()=>
=>
class_register(&input_class);×¢²áinputÀà
input_proc_init();´´½¨procϵÄĿ¼ºÍÎļþ
register_chrdev(INPUT_MAJOR, "input", &input_fops);×¢²áÇý¶¯³ÌÐòµ½cdev_mapÉÏ,ÒÔ´ýÇý¶¯É豸.
drivers\input\keybo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ