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ѧϰ±Ê¼Ç
Table of Contents
1. ´æ´¢Æ÷Ѱַ
2. É豸Çý¶¯³ÌÐò¿ª·¢
3. ×Ö·ûÉ豸Çý¶¯³ÌÐò
3.1. É豸ºÅ
3.2. É豸ºÅµÄ·ÖÅäºÍÊÍ·Å
3.3. ÖØÒªµÄÊý¾Ý½á¹¹
3.4. ¶ÁºÍд
4. PCIÉ豸
5. Äں˳õʼ»¯ÓÅ»¯ºê
6. ·ÃÎÊÄں˲ÎÊýµÄ½Ó¿Ú
7. Äں˳õʼ»¯Ñ¡Ïî
8. ÄÚºËÄ£¿é±à³Ì
8.1. ÈëÃÅ
8.2. Ϊģ¿éÌí¼Ó ......
¿âÓж¯Ì¬Ó뾲̬Á½ÖÖ£¬¶¯Ì¬Í¨³£ÓÃ.soΪºó׺£¬¾²Ì¬ÓÃ.aΪºó׺¡£ÀýÈ磺libhello.so libhello.a
ΪÁËÔÚͬһϵͳÖÐʹÓò»Í¬°æ±¾µÄ¿â£¬¿ÉÒÔÔÚ¿âÎļþÃûºó¼ÓÉϰ汾ºÅΪºó׺,ÀýÈ磺 libhello.so.1.0,ÓÉÓÚ³ÌÐòÁ¬½ÓĬÈÏÒÔ.soΪÎļþºó׺Ãû¡£ËùÒÔΪÁËʹÓÃÕâЩ¿â£¬Í¨³£Ê¹Óý¨Á¢·ûºÅÁ¬½ÓµÄ·½Ê½¡£
ln -s libhello.so.1.0 libhello.so.1 ......
Linux Äں˼ò½é
ÏÖÔÚÈÃÎÒÃÇ´ÓÒ»¸ö±È½Ï¸ßµÄ¸ß¶ÈÀ´ÉóÊÓһϠGNU/Linux ²Ù×÷ϵͳµÄÌåϵ½á¹¹¡£Äú¿ÉÒÔ´ÓÁ½¸ö²ã´ÎÉÏÀ´¿¼ÂDzÙ×÷ϵͳ£¬Èçͼ 2 Ëùʾ¡£
ͼ 2. GNU/Linux ²Ù×÷ϵͳµÄ»ù±¾Ìåϵ½á¹¹
ϵͳµ÷Óýӿڣ¨SCI£©µÄ·½·¨
ʵ¼ÊÉÏ£¬Ìåϵ½á¹¹¿ÉÄܲ¢²»Ïñͼ 2 ËùʾµÄÒ»ÑùÇåÎú¡£ÀýÈ磬´¦Àíϵͳµ÷Ó㨴ÓÓû§¿Õ¼äÇл»µ½ÄÚºË¿Õ ......
1¡¢ÌØÈ¨¼¶
¡¡¡¡IntelÌåϵ½á¹¹ÒýÈëÌØÈ¨¼¶ÊÇΪÁËʵÏÖ±£»¤¡£Ëùν386±£»¤Ä£Ê½¾ÍÊÇÔÚ´Ë»ù´¡ÉϽ¨Á¢ÆðÀ´µÄ¡£ÏµÍ³ÖÐÿ¸ö¶Î£¨CS¡¢DS¡¢SS£©¶¼ÓÐ×Ô¼ºµÄÌØÈ¨¼¶£¬ÏµÍ³ÖÐÿ¸öÈÎÎñ»ò³ÌÐòÒ²¶¼ÓÐ×Ô¼ºµÄÌØÈ¨¡£
¡¡¡¡2¡¢²Ù×÷ģʽ
¡¡¡¡´¦ÀíÆ÷¼Óµç»òÖØÆôºó£¬Ê×ÏȽøÈëʵģʽ£¬²Ù×÷ϵͳ³õʼ»¯²¿·Ö¸ºÔð´Óʵģʽµ½±£»¤Ä£Ê½µÄÇл»¡£
¡¡¡¡3¡¢¶Î¡¢¶Îà ......