linuxÆô¶¯Ê±¹ÒÔØrootfsµÄ¼¸ÖÖ·½Ê½
[ת]linuxÆô¶¯Ê±¹ÒÔØrootfsµÄ¼¸ÖÖ·½Ê½
Ò»Ö±¶ÔlinuxÆô¶¯Ê±¹ÒÔØ¸ùÎļþϵͳµÄ¹ý³Ì´æÔÚןܶàÒÉÎÊ£¬½ñÌìÔÚˮľ¾«»ªÇøÕÒµ½ÁËÓÐÓõÄ×ÊÁÏ£¬ÕªÂ¼ÈçÏ£º
1¡£linuxÆô¶¯Ê±£¬¾¹ýһϵÁгõʼ»¯Ö®ºó£¬ÐèÒªmount ¸ùÎļþϵͳ£¬Îª×îºóÔËÐÐinit½ø³ÌµÈ×ö×¼±¸£¬mount
¸ùÎļþϵͳÓÐÕâô¼¸ÖÖ·½Ê½£º
1£©ÎļþϵͳÒѾ´æÔÚÓÚÓ²ÅÌ£¨»òÕßÀàËÆµÄÉ豸£©µÄij¸ö·ÖÇøÉÏÁË£¬kernel¸ù¾ÝÆô¶¯µÄÃüÁîÐвÎÊý£¨root£½/dev/xxx),Ö±½Ó½øÐÐmount¡£
ÕâÀïÓÐÒ»¸öÎÊÌ⣬ÔÚrootÎļþϵͳ±¾Éí»¹²»´æÔÚµÄÇé¿öÏ£¬kernelÈç
ºÎ¸ù¾Ý/dev/xxxÀ´ÕÒµ½¶ÔÓ¦µÄÉè±¸ÄØ£¿×¢Ò⣺¸ùÎļþϵͳºÍÆäËûÎļþϵͳµÄmount·½Ê½ÊDz»Ò»ÑùµÄ£¬kernelͨ¹ýÖ±½Ó½âÎöÉ豸µÄÃû³ÆÀ´»ñµÃÉ豸
µÄÖ÷¡¢´ÓÉ豸ºÅ£¬È»ºó¾Í¿ÉÒÔ·ÃÎʶÔÓ¦µÄÉ豸Çý¶¯
ÁË¡£ËùÒÔÔÚinit/main.cÖÐÓкܳ¤Ò»´®µÄroot_dev_names£¨Èç
hda,hdab,sda,sdb,nfs,ram,mtdblock……£©£¬Í¨¹ýÕâ¸ö±í¾Í¿ÉÒÔ¸ù¾ÝÉ豸Ãû³ÆµÃµ½É豸ºÅ¡£×¢Ò⣬bootloader»òÄÚ
ºËÖÐÉ趨µÄÆô¶¯²ÎÊý£¨root£½/dev/xxx)Ö»ÊÇÒ»¸ö´úºÅ£¬Êµ¼ÊµÄ¸ùÎļþϵͳÖв»Ò»¶¨´æÔÚÕâ¸öÉ豸Îļþ£¡
2£©´ÓÈíÇýµÈ±È½ÏÂýµÄÉ豸ÉÏ×°ÔØ¸ùÎļþϵͳ£¬Èç¹ûkernelÖ§³Öramdisk£¬ÔÚ×°ÔØrootÎļþϵͳʱ£¬ÄÚºËÅжϵ½ÐèÒª´ÓÈíÅÌ
£¨fdx£©mount(root=/dev/fd0)£¬¾Í»á×Ô¶¯°ÑÎļþϵͳӳÏó¸´ÖƵ½ramdisk£¬Ò»°ã¶ÔÓ¦É豸ram0£¬È»ºóÔÚram0ÉÏmount
¸ùÎļþϵͳ¡£ ´ÓÔ´Âë¿´£¬Èç¹ûkernel±àÒëʱûÓÐÖ§³Öramdisk£¬¶øÆô¶¯²ÎÊýÓÖÊÇroot=/dev/fd0,
ϵͳ½«Ö±½ÓÔÚÈíÅÌÉÏmount£¬³ýÁËËٶȱȽÏÂý£¬ÀíÂÛÉÏÊÇ¿ÉÐеģ¨Ã»ÊÔ¹ý£¬²»ÖªµÀÊDz»ÊÇÕâÑù£¿£©
3£©Æô¶¯Ê±Óõ½initrdÀ´mount¸ùÎļþϵͳ¡£×¢ÒâÀí½âramdiskºÍinitrdÕâÁ½¸ö¸ÅÄÆäʵramdiskÖ»ÊÇÔÚramÉÏʵÏֵĿéÉ豸£¬
ÀàËÆÓëÓ²Å̲Ù×÷£¬µ«Óиü¿ìµÄ¶ÁдËÙ¶È£¬Ëü¿ÉÒÔÔÚϵͳÔËÐеÄÈκÎʱºòʹÓ㬶ø²»½ö½öÊÇÓÃÓÚÆô¶¯£»initrd£¨boot
loader initialized RAM
disk£©¿ÉÒÔ˵ÊÇÆô¶¯¹ý³ÌÖÐÓõ½µÄÒ»ÖÖ»úÖÆ£¬¾ßÌåµÄʵÏÖ¹ý³ÌҲʹÓÃramdisk¼¼Êõ¡£¾ÍÊÇÔÚ×°ÔØlinux֮ǰ£¬bootloader¿ÉÒÔ°ÑÒ»¸ö±È½Ï
СµÄ¸ùÎļþϵͳµÄÓ³Ïó×°ÔØÔÚÄÚ´æµÄij¸öÖ¸¶¨Î»Ö㬹ÃÇÒ°ÑÕâ¶ÎÄÚ´æ³ÆÎªinitrd£¨ÕâÀïÊÇinitrdËùÕ¼µÄÄڴ棬²»ÊÇramdisk£¬×¢ÒâÇø±ð£©£¬È»ºó
bootloaderͨ¹ý´«µÝ²ÎÊýµÄ·½Ê½¸æËßÄÚºËinitrdµÄÆðʼµØÖ·ºÍ´óС£¨Ò²¿ÉÒÔ°ÑÕâЩ²ÎÊý±àÒëÔÚÄÚºËÖУ©£¬ÔÚÆô¶¯½×¶Î¾Í¿ÉÒÔÔÝʱµÄÓÃinitrd
À´mount¸ùÎļþϵͳ¡£initrdµÄ×î³õµÄÄ¿µÄÊÇΪÁ˰ÑkernelµÄÆô¶¯·Ö³ÉÁ½¸ö½×¶Î£ºÔÚkernelÖб£Áô×îÉÙ×î»ù±¾µÄÆô¶¯´úÂ룬Ȼºó°Ñ¶Ô¸÷ÖÖ¸÷
ÑùÓ²¼þÉè
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
´ÓÓû§µÄ½Ç¶È¿´£¬MySQL±»SunÊÕ¹º£¬ÓÖ±»OracleÊÕ¹º¿ÉÄÜÕæ²»ÊÇʲôºÃÊ¡£MySQL±¾À´¾Í±»Oracleͨ¹ý²¢¹ºÆäÒÀÀµµÄ´æ´¢ÒýÇæInnobase¡¢BerkeleyDBÕÛÌڵIJ»ÐУ¬ÓÖÔÚ±»SunÊÕ¹ººó·¢ÉúÁËMonty´´½¨Ð·ÖÖ§MariaDBÕâÑùµÄÊÂÇ飬×îÖÕ»¹ÊÇËæ×ÅSunÒ»Æð±»Oracle²¢¹º£¬Ã»ÓÐÌÓÍÑLarry ElisonµÄħצ¡£Ò²Ðí£¬¿ªÔ´Èí¼þµÄºÃ´¦¾ÍÔÚ ......
linux—selectÏê½â
selectϵͳµ÷ÓÃʱÓÃÀ´ÈÃÎÒÃǵijÌÐò¼àÊÓ¶à¸öÎļþ¾ä±úµÄ״̬±ä»¯µÄ¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþ¾ä±úÓÐÒ»¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£
¹ØÓÚÎļþ¾ä±ú£¬Æäʵ¾ÍÊÇÒ»¸öÕûÊý£¬Í¨¹ýsocketº¯ÊýµÄÉùÃ÷¾ÍÃ÷°×ÁË£º
int socket(int domain, int type, int protocol);
ÎÒÃÇ×îÊìϤµÄ¾ä±úÊÇ0¡¢1¡¢2 ......
linux¿âÎļþ±àдÈëÃÅ
Ò»¡¢ÎªÊ²Ã´ÒªÊ¹ÓÿâÎļþ
ÎÒÃÇÔÚʵ¼Ê±à³Ì¹¤×÷Öп϶¨»áÓöµ½ÕâÖÖÇé¿ö£ºÓм¸¸öÏîÄ¿ÀïÓÐһЩº¯ÊýÄ£¿éµÄ¹¦ÄÜÏàͬ£¬
ʵÏÖ´úÂëÒ²Ïàͬ£¬Ò²ÊÇÎÒÃÇËù˵µÄÖØ¸´´úÂë¡£±ÈÈ磬ºÜ¶àÏîÄ¿Àï¶¼ÓÐÒ»¸öÓû§ÑéÖ¤µÄ¹¦ÄÜ¡£
´úÂë¶ÎÈçÏ£º
//UserLogin.hÎļþ£¬Ìṩº¯ÊýÉùÃ÷
int IsValidUser(char ......