linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÄÚ´æ4
££££££££££££££££££££££££££££££££££££££££££££££££££
¼¸¸öºê£º
PGDIR_SHIFT:È·¶¨Ò³È«¾ÖĿ¼ÏîÄÜÓ³ÉäµÄÇøÓò´óСµÄ¶ÔÊý¡£´ËºêÓÃÓÚ¼ÆËãҳȫ¾ÖĿ¼ÖÐÒ»¸öµ¥¶À±íÏîËùÄÜÓ³ÉäÇøÓòµÄ´óС¡£PGDIR_MASKÓÃÓÚÆÁ±Îoffset table,middle air,upper dir.×ֶεÄËùÓÐλ¡£
#define PGDIR_SHIFT 22//µ±ÎïÀíµØÖ·À©Õ¹»úÖÆ£¨pae£©±»½ûֹʱ,µ±¼¤»îµÄʱºò£¬´Ëʱ¾ÍΪ30루12λƫÒÆ£¬9λ±í£¬9λÖмäĿ¼£©
#define PGDIR_SIZE (1UL << PGDIR_SHIFT)//´ËʱΪ2µÄ22´Î·½£¬4MB.µ±¼¤»îµÄʱºò£¬¾ÍÊÇ2µÄ30´Î·½£¬1GB.
#define PGDIR_MASK (~(PGDIR_SIZE-1))//0xffc00000
PUD_SHIFT£ºÈ·¶¨Ò³Éϼ¶Ä¿Â¼ÏîÄÜÓ³ÉäµÄÇøÓò´óСµÄ¶ÔÊý¡£´ËºêÓÃÓÚ¼ÆËãÈ«¾ÖĿ¼ÖеÄÒ»¸öµ¥¶À±íÏîËùÄÜÓ³ÉäµÄÇøÓò´óС¡£PUD_MASKÓÃÓÚÆÁ±Îoffset×ֶΣ¬table×ֶΣ¬Öмä²ã×ֶΣ¬upper dir×ֶεÄËùÓÐλ¡£
#define PUD_SHIFT PGDIR_SHIFT
#define PUD_SIZE (1UL << PUD_SHIFT)
#define PUD_MASK (~(PUD_SIZE-1))
Ö¸¶¨ÏßÐÔµØÖ·µÄoffset×ֶκÍtable×ֶεÄ×ÜλÊý¡£ÊÇÒ³ÖмäĿ¼Ïî¿ÉÒÔÓ³ÉäµÄÇøÓò´óСµÄ¶ÔÊý¡£sizeÓÃÓÚ¼ÆËãÓÉÒ³ÖмäĿ¼µÄÒ»¸öµ¥¶À±íÏîËùÓ³ÉäµÄÇøÓò´óС£¨Ò³±í´óС£©maskÓÃÓÚÆÁ±Îoffset×Ö¶ÎÓëtable×ֶεÄËùÓÐλ¡£¡£
#define PMD_SHIFT PUD_SHIFT
#define PMD_SIZE (1UL << PMD_SHIFT)
#define PMD_MASK (~(PMD_SIZE-1))
PAGE_SHIFT£ºÖ¸¶¨offset×ֶεÄλÊý£»µ±x86ʱ£¬Îª12.ÔÙ¿´ËûµÄ³ß´ç£º1<< PAGE_SHIFT½«1×óÒÆ12룬Ҳ¾ÍÊÇ1*2^12£½4096¸ö×Ö½Ú¡£1ULµÄÒâ˼ÊÇunsigned longµÄ1.¶øPAGE_MASKÓÃÒÔÆÁ±Îoffset×ֶεÄËùÓÐλÖá£
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
ÒÔÉÏÒ²¾ÍÊÇÈ«¾Ö£>Éϼ¶—>ÖмäĿ¼—>Ò³±íÕâ¸ö˳Ðò¡£¶ø³ýÁËÉÏÃæµÄºêÖ®Í⣬»¹ÓбíÃ÷¸÷¸ö²ã´ÎÖ®¼ä±íÏî¸öÊýµÄºê¡£
Ïà¹ØÎĵµ£º
ºÜ¼òµ¥µÄÒ»¸ö³ÌÐò,subÄ£¿éÌṩÁ½¸öº¯Êýsub_integer,add_integer£¬²¢½«Æäµ¼³öµ½Äں˷ûºÅ±íÖУ¬sub_testÄ£¿é¶ÔÕâÁ½¸öº¯Êý½øÐе÷Óá£ÕâËãÊÇ×Ô¼ºÐ´µÄµÚÒ»¸öÄÚºËÄ£¿é³ÌÐò°É£¬¼ÍÄîÒ»ÏÂ.
sub.c:
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL") ......
ʵÓÃСÇÏÃÅʵÔÚÌ«¶àÁË£¬ÂýÂý̽Ë÷°É¡£ÏëÆð¸ÕÓõçÄÔʱ£¬ÌìÌìÔÚ¡¶µçÄÔ°®ºÃÕß¡·ÖÐÕÒСÇÏÃÅ¡£ÕÒµ½Á˾ÍÈç»ñÖÁ±¦¡£ÓÖ¿´µ½ÎÒblogÖÐÓÐÈ˻ظ´²»Ï°¹ßubuntu£¬»¹ÊÇͶ±¼win7¡£ÐÄÏ룬Ӧ¸ÃijЩÈËҲͦÐèÒªÒ»µãʹÓÃСÇÏÃŵĽ»Á÷µÄ¡£ÐÅÊÖдÁËЩ£¬¹©²Î¿¼¡£
±¾ÎÄÊʺϳõ¼¶Óû§ÔĶÁ¡£
1.Öն˸´ÖÆÕ³Ìù
ÓÃgnomeÖÕ¶Ëʱ£¬¶Ô×Ö·ûµÄ¸´ÖÆÕ³Ìù¸Ð¾õûÓÐw ......
ÕªÒª
LinuxÔÚÏû·Ñµç×ÓÀà²úÆ·Öеõ½Á˹㷺ӦÓã¬ÓÉÓÚǶÈëʽÓû§¶ÔÓÚϵͳÆô¶¯ËٶȽÏΪÃô¸Ð£¬Òò´Ë¿ìËÙÆô¶¯¼¼ÊõÖð½¥³ÉΪÑо¿ºÍÓ¦ÓÃÖеÄÒ»¸öÖص㡣±¾ÎÄͨ¹ý¶ÔǶ
Èëʽ
LinuxµÄÆô¶¯Ê±ÐòºÍÖ÷ÒªÑÓʱÒòËصķÖÎö£¬Õë¶ÔÐÔµØ̽ÌÖÁËÔÚ¸÷¸öÆô¶¯½×¶Î½µµÍʱºÄµÄ¼¼Êõ£¬Öصã·ÖÎöÁËXIP¼¼ÊõºÍXIPÎļþϵͳ£¬²¢¸ø³öÁËÖ÷ÒªµÄʵÏÖ¹ý
³Ì¡£
¹Ø¼ü´ ......
½ñÌì¿´ÁËһƪºÜÌرðµÄÎÄÕ£¬ËäÈ»ÓеãÆ«¼¤£¬µ«ÖµµÃÉî˼£¬ÓÚÊÇתÁ˹ýÀ´£¡
±¾ÎÄÊÇһλÇ廪ÍËѧѧÉúËùд!ËûµÄÃû×Ö½ÐÍõÛó,È˺ܳöÃû£¬²»ÐÅ°Ù¶ÈһϾÍÖªµÀ£¡
ÎÒÒѾ°ëÄêûÓÐʹÓà Windows µÄ·½Ê½¹¤×÷ÁË¡£Linux ¸ßЧµÄÍê³ÉÁËÎÒËùÓеŤ×÷¡£
GNU/Linux ²»ÊÇÿ¸öÈ˶¼ÏëÓõġ£Èç¹ûÄãÖ»ÐèÒª´¦ÀíÒ»°ãµÄÊÂÎñ£¬´òÓÎÏ·£¬ÄÇôÄã²»ÐèÒªÁ˽âÏ ......
1¡¢TCP/IP²Î¿¼Ä£ÐÍ
ΪÁËʵÏÖ¸÷ÖÖÍøÂçµÄ»¥Á¬£¬¹ú¼Ê±ê×¼»¯×éÖ¯(ISO)Öƶ¨ÁË¿ª·Åʽϵͳ»¥Á¬(OSI)²Î¿¼Ä£ÐÍ¡£¾¡¹ÜOSIµÄÌåϵ½á¹¹´ÓÀíÂÛÉϽ²ÊDZȽÏÍêÕûµÄ£¬µ«Êµ¼ÊÉÏ£¬ÍêÈ«·ûºÏOSI¸÷²ãÐÒéµÄÉÌÓòúÆ·È´ºÜÉÙ½øÈëÊг¡¡£¶øʹÓÃTCP/IP ÐÒéµÄ²úÆ·È´´óÁ¿Ó¿ÈëÊг¡£¬¼¸ºõËùÓеŤ×÷Õ¾¶¼ÅäÓÐTCP/IPÐÒ飬ʹµÃTCP/IP ³ÉΪ¼ÆËã»úÍøÂçµÄʵ¼ÊµÄ¹ ......