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

¡¾Linux½»»»·ÖÇø¡¿ ½»»»·ÖÇø¸ñʽdzÎö

Íê³É±¾ÎÄ£¬Ê¹ÓÃÁËÁ½¸ö¹¤¾ß
 1. strace
 2. google code search
.
----
swap·ÖÇøÓÐÒ»¸ö´óСΪPAGE_SIZEµÄÒ³Ãæ£¬³ÆÎªsignatureÒ³£¬ÉÏÃæ¼Ç¼swap·ÖÇøµÄ»ù±¾ÐÅÏ¢¡£
static struct swap_header_v1 {
char bootbits[1024]; /* Space for disklabel etc. */
unsigned int version;
unsigned int last_page;
unsigned int nr_badpages;
unsigned int padding[125];
unsigned int badpages[1];
} *p;
check_blocks()ȇ
¶ÔÕû¸öÎļþ½øÐÐÒ»´Î˳Ðò¶Á£¬ÔÚv1Éú³ÉÒ»¸ö´ÅÅ̿铺ÿ锺͓»µ¿é”µÄλͼ¡£ÔÚv2ÖÐ,“ºÃ¿é”ÎÞÐè¼Ç¼£¬Ö»¼Ç¼»µ¿é¡£Ò»¸ö´ÅÅ̵ϵ¿éÒ»°ãÀ´Ëµ¼«ÉÙ£¬ÎªÁË
½ÚÊ¡¿Õ¼ä£¬Òò´Ë¼Ç¼·½·¨²»ÔÙÊÇλͼ£¬¸Ä¶øÓÃÊý×éµÄ·½Ê½¡£
p->badpages[badpages] = page; // pageΪ»µ¿éºÅ
ÕâÀïÐèҪעÒâµÄÊÇ£¬ÔÚ
swap_header_v1µÄ¶¨ÒåÖУ¬p->badpagesÊý×é´óСΪ1£¬ÕâÀïʵ¼ÊÉϲúÉúÁËÔ½½ç¡£µ«ÊÇ£¬´ÓCÓïÑÔµÄ֪ʶÎÒÃÇÖªµÀ£¬¼´Ê¹Ô½½ç£¬Ö»
Òª±àÒëÆ÷ûÓмì²â³öÀ´£¬²¢ÇÒʵ¼Ê·ÃÎʵēԽ½çÇø”ÊÇÎÒÃǿɷÃÎʵÄÇøÓò£¬Ôò²»»áÓÐÈκÎÎÊÌâ¡£ÉÏÃæÕâ¾ä´úÂëÊÇÒ»ÖÖ“¿É¿ØµÄ¡¢ÓÐÒâʶµÄÔ½½ç”¡£¿É¿ØµÄ±ß½çÔÚÄÄÀï
ÄØ£¿
#define MAX_BADPAGES ((pagesize-1024-128*sizeof(int)-10)/sizeof(int)) // 637 bad pages over i386
½áºÏswap_header_v1µÄ¶¨Ò壬ÉÏÃæµÄ¹«Ê½²»ÄÑÀí½â
bootbitsÕ¼1024×Ö½Ú£¬Ëæºó4¸ö±äÁ¿·Ö±ðÕ¼4¡¢4¡¢4¡¢4*125×Ö½Ú£¬SIGNATUREÕ¼10×Ö½Ú£¬Ê£ÓàµÄ¶¼¸øbadpagesÁË¡£³¬¹ýÁË
MAX_BADPAGES£¬Ôò»áÒý·¢Ô½½ç·ÃÎÊ¡£
swap
·ÖÇø¸ñʽÓÐÁ½¸ö°æ±¾£¬¹ÃÇÒ³ÆÎªv0ºÍv1£¬°æ±¾¿ÉÒÔÔÚÃüÁîÐÐÖÐÖ¸¶¨£¬Èç¹ûȱʡ£¬Ôòmkswap¸ù¾Ýswap·ÖÇøÉ豸/Îļþ´óС×Ô¶¯É趨¡£
write_signature((version == 0) ? "SWAP-SPACE" : "SWAPSPACE2");
ͨ¹ýÉÏÊö²½Ö裬signatureÒ³µÄÄÚÈݶ¼±»³õʼ»¯ºÃ
ÁË£¬ÏÖÔÚд»Øµ½¿éÉ豸ÖÐÈ¥£º
offset = ((version == 0) ? 0 : 1024);
if (lseek(DEV, offset, SEEK_SET) != offset)
error_msg_and_die("unable to rewind swap-device");
if (write(DEV, (char *) signature_page + offset, pagesize - offset)
!= pagesize - offset)
error_msg_and_die("unable to write signature page");
¶ÔÓÚv0£¬s


Ïà¹ØÎĵµ£º

linux¿ª»ú˳Ðò

1.BIOS×Ô¼ì
        ¼ÆËã»úÔÚ½ÓͨµçÔ´Ö®ºóÊ×ÏȽøÐÐBIOS×Լ죬¼´ÎÒÃÇËù˵µÄpost(power on self test).×Ô¼ìÍê³Éºó£¬È»ºó¸ù¾ÝBIOSÖеÄÉèÖõÄÒýµ¼Ë³Ðò£¬´ÓÓ²ÅÌ¡¢¹âÅÌÒýµ¼£¬Í¨³£ÎÒÃÇʹÓÃÓ²ÅÌÀ´Òýµ¼ÏµÍ³¡£ÔÚÓ²Å̵ĵÚÒ»¸öÉÈÇø£¨0´ÅµÀ0ÖùÃæ1ÉÈÇø£©ÓÐÒ»¶Î´úÂë½Ð×öMBR£¨Master Boot Record.Ö÷Òýµ¼¼Ç¼£©£©£ ......

ÉîÈëÀí½âlinux i½Úµã(inode)

¶ÔÓÚUnixϵÁеIJÙ×÷ϵͳ£¬´ó¶à¶¼ÓÐv½Úµã¡£µ«ÊǶÔÓÚlinuxÀ´Ëµ£¬Ö»ÓÐͨÓõÄi½Úµã£¬È´Ã»ÓÐv½Úµã¡£
ÏÂÃæÀ´Ì½ÌÖһϣ¬linuxϵÄi½Úµã¡£
      linuxÖУ¬Îļþ²éÕÒ²»ÊÇͨ¹ýÎļþÃû³ÆÀ´²éÕҵġ£Êµ¼ÊÉÏÊÇͨ¹ýi½ÚµãÀ´ÊµÏÖÎļþµÄ²éÕÒ¶¨Î»µÄ¡£ÎÒÃÇ¿ÉÒÔÐÎÏóµÄ½«i½Úµã¿´×öÊÇÒ»¸öÖ¸Õëfip¡£µ±Îļþ´æ´¢µ½´ÅÅÌÉÏÈ¥µ ......

Linux Ï´®¿Ú±à³ÌÐĵÃ

Linux Ï´®¿Ú±à³ÌÐĵÃ
        ÎÒ¸Õ¸ÕÍê³ÉÁËÒ»¸ö´®¿ÚµÄÏîÄ¿£¬ÓÐÒ»µãÊÕ»ñ£¬¾Í˵˵Õâ¶Îʱ¼äµÄÌå»á°É£¡
        Ò»¿ªÊ¼ÔÚÍøÉÏÕÒ×ÊÁÏ£¬×î¶àÊÇ¡¶Linux Serial HOWTO ÖÐÒë°æ¡·£¬ä¯ÀÀµØÖ·£ºhttp://linux.cis.nctu.edu.tw/chinese/how-to/Serial-HOWTO.ht ......

2.6°æLinuxÄں˽ṹÌåÖ¸¶¨³õʼ»¯

ÔÚÔĶÁGNU/LinuxÄں˴úÂëʱ£¬ÎÒÃÇ»áÓöµ½Ò»ÖÖÌØÊâµÄ½á¹¹³õʼ»¯·½Ê½¡£¸Ã·½Ê½ÊÇijЩC½Ì²Ä£¨ÈçÌ·¶þ°æ¡¢K&R¶þ°æ£©ÖÐûÓнéÉܹýµÄ¡£ÕâÖÖ·½Ê½³ÆÎªÖ¸¶¨³õʼ»¯£¨designated initializer£©¡£ÏÂÃæÎÒÃÇ¿´Ò»¸öÀý×Ó£¬Linux-2.6.x/drivers/usb/storage/usb.cÖÐÓÐÕâÑùÒ»¸ö½á¹¹Ìå³õʼ»¯ÏîÄ¿£º
static struct usb_driver usb_storage_dri ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ