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

LinuxÄں˱àÂëʰ½õ

1.Ò»ÖÖ¶¨Ò庯ÊýÖ¸ÕëµÄ·½·¨
<linux/proc_fs.h>
typedef int (read_proc_t)(char *page, char **start, off_t offset, int count, int *eof, void *data);
read_proc_t *proc_read;
    ÕâÖÖ¶¨Òå·½·¨ÓÐÒ»¸öÓÅÊÆ¾ÍÊÇ£¬¼´Ê¹ÄãûÓп´µ½read_proc_tµÄ¶¨Ò壬ҲÄܹ»Çå³þµÄÖªµÀproc_readÊÇÒ»¸öÖ¸Õ룬ÈçÏÂÃæ2ÖеĵÄcreate_proc_read_entryÖеIJÎÊýÖÐÏÔʾµÄÄÇÑù¡£ÁíÒ»ÖÖ³£Ó÷½·¨ÊÇ£º
typedef int (*read_proc_t)(....);¶¨Ò庯ÊýÖ¸Õë¡£
read_proc_t p;
    µ«ÊÇÕâÖÖ·½·¨Ã»ÓÐÉÏÃæÄÇÖֿɶÁÐԺã¬ÒòΪ²»ÄÜÒ»Ñ۾Ϳ´³öpÊÇÒ»¸öº¯ÊýÖ¸Õë¡£
2.Ò»ÖÖ¶¨ÒåºêµÄ·½·¨
<linux/proc_fs.h>
static inline struct proc_dir_entry *create_proc_read_entry(const char *name, mode_t mode,
    struct proc_dir_entry *base, read_proc_t *read_proc, void *data);
inline¹Ø¼ü×ÖÊÇGNU CÀ©Õ¹µÄ£¬×¨ÃÅΪÉè¼ÆÄں˶øÀ©Õ¹µÄ£¬ËüÄܹ»½«º¯Êý±àÒë³Éºê£¬Èç¹ûËüÊǺ¯Êý£¬ÄÇôÓÉÓÚÓÐstatic¹Ø¼ü×ÖÐÞÊΣ¬ÏÔÈ»Äã²»ÄÜÔÚ±¾ÎļþÖ®ÍⶨÒ弰ʹÓÃËü¡£
3.ö¾Ù±äÁ¿µÄÊýÁ¿
<linux/interrupt.h>
enum{
    HI_SOFTIRQ,
    TIMER_SOFTIRQ,
    ...
    ...
    NR_SOFTIRQS,
};
    Õâ¸öö¾Ù¶¨ÒåÁËÈíÖжÏÀàÐÍ£¬×îºóÒ»¸öNR_SOFTIRQSÀíËùµ±È»µÄ±íʾÁËö¾ÙÀàÐ͵Ä×î´óÖµ¡£
4.ÁªºÏºÍ½á¹¹µÄǶÌ×
<linux/mm_types.h>
struct page{
    unsigned long flags;
    union {
        atomic_t _mapcount;
        struct {
            u16 inuse;
            u16 objects;
        };
    };
}
    ½á¹¹pageÖеijÉÔ±ÔõÑù·ÃÎÊÄØ£¿³õʼ»¯ÔõÑù³õʼ»¯ÄØ£¿º¬ÓÐÄäÃûµÄÁªºÏºÍ½á¹¹¡£²âÊÔÒÔºó¿ÉÒÔ·¢ÏÖ×îÄÚ²ãµÄ³ÉÔ±»¹Êǵ±³ÉµÚÒ»²ãÀ´·ÃÎÊ£¬µ«ÊDz»ÄÜÕâÑù³õʼ»¯¡£ÈçÓÐ
struct page p;
p.flags=1;
atomic_set(&p._mapcount,1);
p.inuse=1;
p.objects=1;
¶ø²»ÄÜÈçÏÂÕâÑù³õʼ»¯
struct page p={
    .flags=1,
    .inuse=1,


Ïà¹ØÎĵµ£º

Linux Kernelѧϰ±Ê¼Ç

Linux Kernelѧϰ±Ê¼Ç
Table of Contents
1. ´æ´¢Æ÷Ѱַ
2. É豸Çý¶¯³ÌÐò¿ª·¢
3. ×Ö·ûÉ豸Çý¶¯³ÌÐò
3.1. É豸ºÅ
3.2. É豸ºÅµÄ·ÖÅäºÍÊÍ·Å
3.3. ÖØÒªµÄÊý¾Ý½á¹¹
3.4. ¶ÁºÍд
4. PCIÉ豸
5. Äں˳õʼ»¯ÓÅ»¯ºê
6. ·ÃÎÊÄں˲ÎÊýµÄ½Ó¿Ú
7. Äں˳õʼ»¯Ñ¡Ïî
8. ÄÚºËÄ£¿é±à³Ì
8.1. ÈëÃÅ
8.2. Ϊģ¿éÌí¼Ó ......

Linux ¹ØÓÚ¶¯Ì¬Á´½Ó¿âÒÔ¼°¾²Ì¬Á´½Ó¿âµÄһЩ¸ÅÄî

¿âÓж¯Ì¬Ó뾲̬Á½ÖÖ£¬¶¯Ì¬Í¨³£ÓÃ.soΪºó׺£¬¾²Ì¬ÓÃ.aΪºó׺¡£ÀýÈ磺libhello.so libhello.a
ΪÁËÔÚͬһϵͳÖÐʹÓò»Í¬°æ±¾µÄ¿â£¬¿ÉÒÔÔÚ¿âÎļþÃûºó¼ÓÉϰ汾ºÅΪºó׺,ÀýÈ磺 libhello.so.1.0,ÓÉÓÚ³ÌÐòÁ¬½ÓĬÈÏÒÔ.soΪÎļþºó׺Ãû¡£ËùÒÔΪÁËʹÓÃÕâЩ¿â£¬Í¨³£Ê¹Óý¨Á¢·ûºÅÁ¬½ÓµÄ·½Ê½¡£
ln -s libhello.so.1.0 libhello.so.1 ......

LinuxÄں˼ò½é


Linux Äں˼ò½é
ÏÖÔÚÈÃÎÒÃÇ´ÓÒ»¸ö±È½Ï¸ßµÄ¸ß¶ÈÀ´ÉóÊÓһϠGNU/Linux ²Ù×÷ϵͳµÄÌåϵ½á¹¹¡£Äú¿ÉÒÔ´ÓÁ½¸ö²ã´ÎÉÏÀ´¿¼ÂDzÙ×÷ϵͳ£¬Èçͼ 2 Ëùʾ¡£
ͼ 2. GNU/Linux ²Ù×÷ϵͳµÄ»ù±¾Ìåϵ½á¹¹
 
ϵͳµ÷Óýӿڣ¨SCI£©µÄ·½·¨
ʵ¼ÊÉÏ£¬Ìåϵ½á¹¹¿ÉÄܲ¢²»Ïñͼ 2 ËùʾµÄÒ»ÑùÇåÎú¡£ÀýÈ磬´¦Àíϵͳµ÷Ó㨴ÓÓû§¿Õ¼äÇл»µ½ÄÚºË¿Õ ......

linux 2.6 ÄÚºËѧϰС½á Ó²¼þÏà¹Ø¸ÅÄî

1¡¢ÌØÈ¨¼¶
¡¡¡¡IntelÌåϵ½á¹¹ÒýÈëÌØÈ¨¼¶ÊÇΪÁËʵÏÖ±£»¤¡£Ëùν386±£»¤Ä£Ê½¾ÍÊÇÔÚ´Ë»ù´¡ÉϽ¨Á¢ÆðÀ´µÄ¡£ÏµÍ³ÖÐÿ¸ö¶Î£¨CS¡¢DS¡¢SS£©¶¼ÓÐ×Ô¼ºµÄÌØÈ¨¼¶£¬ÏµÍ³ÖÐÿ¸öÈÎÎñ»ò³ÌÐòÒ²¶¼ÓÐ×Ô¼ºµÄÌØÈ¨¡£
¡¡¡¡2¡¢²Ù×÷ģʽ
¡¡¡¡´¦ÀíÆ÷¼Óµç»òÖØÆôºó£¬Ê×ÏȽøÈëʵģʽ£¬²Ù×÷ϵͳ³õʼ»¯²¿·Ö¸ºÔð´Óʵģʽµ½±£»¤Ä£Ê½µÄÇл»¡£
¡¡¡¡3¡¢¶Î¡¢¶Îà ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ