´ÓºÎ´¦¿ªÊ¼ÔĶÁLinuxÔ´´úÂë(ת)
ÏñLinuxÄÚºËÕâÑùÅÓ´ó¶ø¸´ÔӵijÌÐò¿´ÆðÀ´È·ÊµÈÃÈËÍû¶øÉú磬ËüÏóÒ»¸öºÜ´óµÄÇò£¬Ã»ÓÐÆðµãºÍÖյ㡣ÔÚ¶ÁÔ´´úÂëµÄ¹ý³ÌÖУ¬Äã»áÓöµ½ÕâÑùµÄÇé¿ö£¬µ±¶Áµ½Äں˵Äijһ²¿·ÖʱÓÖ»áÉæ¼°µ½ÆäËü¸ü¶àµÄÎļþ£¬µ±·µ»Øµ½ÔÀ´µÄµØ·½Ïë¼ÌÐøÍù϶Áʱ£¬ÓÖÍüÁËÔÀ´¶ÁµÄÄÚÈÝ¡£ÔÚinternetÉÏ£¬ºÜ¶àÈËΪ´Ë¸¶³öÁ˺ܴóµÄŬÁ¦£¬ÖÆ×÷³öÁËÔ´´úÂëµ¼º½Æ÷£¬ÕâΪԴ´úÂëÔĶÁÌṩÁËÁ¼ºÃµÄÌõ¼þ£¬Õ¾µãΪ£ºhttp://lxr.linux.no/source£¬ÏÂÃæ¸ø³öÔĶÁÔ´´úÂëµÄһЩÏßË÷¡£
1. ϵͳµÄÆô¶¯ºÍ³õʼ»¯
ÔÚ»ùÓÚIntelµÄϵͳÉÏ£¬µ± loadlin.exe »ò LILO°ÑÄÚºË×°Èëµ½ÄÚ´æ²¢°Ñ¿ØÖÆÈ¨´«µÝ¸øÄÚºËʱ£¬Äں˿ªÊ¼Æô¶¯¡£¹ØÓÚÕâÒ»²¿·Ö£¬¿´arch/i386/kernel/head.S £¬head.S½øÐÐÌØ¶¨½á¹¹µÄÉèÖã¬È»ºóÌø×ªµ½init/main.cµÄmain()Àý³Ì¡£
2. ÄÚ´æ¹ÜÀí
ÄÚ´æ¹ÜÀíµÄ´úÂëÖ÷ÒªÔÚ/mm£¬µ«Ìض¨½á¹¹µÄ´úÂëÔÚarch/*/mm¡£È±Ò³Öжϴ¦ÀíµÄ´úÂëÔÚmm/memory.c £¬¶øÄÚ´æÓ³ÉäºÍÒ³¸ßËÙ»º´æÆ÷µÄ´úÂëÔÚmm/filemap.c¡£»º³åÆ÷¸ßËÙ»º´æÊÇÔÚmm/buffer.c ÖÐʵÏÖ£¬¶ø½»»»¸ßËÙ»º´æÊÇÔÚmm/swap_state.c ºÍ mm/swapfile.cÖÐʵÏÖ¡£
3. ÄÚºË
ÄÚºËÖУ¬Ìض¨½á¹¹µÄ´úÂëÔÚarch/*/kernel£¬µ÷¶È³ÌÐòÔÚkernel/sched.c£¬forkµÄ´úÂëÔÚkernel/fork.c£¬task_struct Êý¾Ý½á¹¹ÔÚ include/linux/sched.hÖС£
4. PCI
PCI αÇý¶¯³ÌÐòÔÚ drivers/pci/pci.c £¬Æä¶¨ÒåÔÚinclude/linux/pci.h¡£Ã¿Ò»Öֽṹ¶¼ÓÐÒ»Ð©ÌØ¶¨µÄ PCI BIOS ´úÂ룬 IntelµÄÔÚarch/alpha/kernel/bios32.c¡£
5. ½ø³Ì¼äͨÐÅ
ËùÓÐSystem V IPC ¶ÔÏóȨÏÞ¶¼°üº¬ÔÚ ipc_perm Êý¾Ý½á¹¹ÖУ¬Õâ¿ÉÒÔÔÚ include/linux/ipc.hÖÐÕÒµ½¡£ System V ÏûÏ¢ÊÇÔÚ ipc/msg.cÖÐʵÏÖ, ¹²ÏíÄÚ´æÔÚ ipc/shm.cÖУ¬ÐźÅÁ¿ÔÚ ipc/sem.cÖУ¬¹ÜµÀÔÚ ipc/pipe.cÖÐʵÏÖ¡£
6. Öжϴ¦Àí
Äں˵ÄÖжϴ¦Àí´úÂëÊǼ¸ºõËùÓеÄ΢´¦ÀíÆ÷ËùÌØÓеġ£Öжϴ¦Àí´úÂëÔÚ arch/i386/kernel/irq.cÖУ¬Æä¶¨Òå×ÓÔÚ include/asm-i386/irq.hÖС£
7. É豸Çý¶¯³ÌÐò
LinuxÄÚºËÔ´´úÂëµÄºÜ¶àÐÐÊÇÉ豸Çý¶¯³ÌÐò¡£LinuxÉ豸Çý¶¯³ÌÐòµÄËùÓÐÔ´´úÂë¶¼±£´æÔÚ/driver£¬¸ù¾ÝÀàÐͿɽøÒ»²½»®·ÖΪ£º
/block
¿éÉ豸Çý¶¯³ÌÐòÈçide(ÔÚide.c)¡£Èç¹ûÄãÏë¿´°üº¬ÎļþϵÍ
Ïà¹ØÎĵµ£º
ºÇºÇÒ»Ö±Ò»À´ÔÚWINDOWSÏÂÓл¨Éú¿ÇµÈÖÚ¶àµÄDDNSÈí¼þʵÏÖ¶¯Ì¬ÓòÃû½âÎö¡£µ«¶¼ÊÇÔÚWINDOWSϵġ£
½ñÌìÕÒµ½ÁËÒ»¸ö½ðÍòά¹«Ë¾ÌṩµÄÃâ·ÑDDNS·þÎñ¡£Ö÷ÒªÊÇÌṩÓÐLINUXϵݲװ¿Í»§¶Ë
°²×°·½·¨£ºµÃµ½½ðÍòάgnhostlinux¶¯Ì¬ÓòÃûLinux/UnixÏ¿ͻ§¶ËÈí¼þ
wget http://www.gnway.com/download/gnhostlinux1.2.6.tgz
......
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<sys/types.h>
#include<dirent.h>
#define MAX 1024
char path[100];
char *strmin(char *des,const char *min)
{
int i=strlen(des);
&nbs ......
×÷Õߣºsixth
Ò»¡¢LinuxµÄÆô¶¯Á÷³Ì
1. ´ÓBIOSµ½KERNEL
BIOS×Ô¼ì£>MBR(GRUB)£>KERNEL£>KERNEL×Ô½âѹ£>Äں˳õʼ»¯£>ÄÚºËÆô¶¯
2. ÄÚºËÆô¶¯£º´´½¨1££½ø³Ì²¢Ö´ÐУ¬ÓÉËü´´½¨Èô¸ÉÄÚºËỊ̈߳¨kernel thread£©£¬È»ºó×°Èë²¢Ö´ÐгÌÐò/sbin/init£¨±ä³ÉÒ»¸öÓû§½ø³Ì£©¡£´Ëºó£¬init¸ù¾Ý/etc/initt ......
Ò»¡¢ ʲôÊÇϵͳµ÷ÓÃ
ÔÚLinuxµÄÊÀ½çÀÎÒÃǾ³£»áÓöµ½ÏµÍ³µ÷ÓÃÕâÒ»ÊõÓËùνϵͳµ÷Ó㬾ÍÊÇÄÚºËÌṩµÄ¡¢¹¦ÄÜÊ®·ÖÇ¿´óµÄһϵÁеĺ¯Êý¡£ÕâЩϵͳµ÷ÓÃÊÇÔÚÄÚºËÖÐʵÏֵģ¬ÔÙͨ¹ýÒ»¶¨µÄ·½Ê½°Ñϵͳµ÷ÓøøÓû§£¬Ò»°ã¶¼Í¨¹ýÃÅ(gate)ÏÝÈë(trap)ʵÏÖ¡£ÏµÍ³µ÷ÓÃÊÇÓû§³ÌÐòºÍÄں˽»»¥µÄ½Ó¿Ú¡£
¶þ¡¢ ϵͳµ÷ÓõÄ×÷Ó ......
¾¡¹ÜLinux¿ª·¢µÄÏà¹Ø¸ÚλºÜ¶à£¬µ«³¤ÆÚÒÔÀ´Linux¿ª·¢Ã»ÓÐͳһµÄ¿ª·¢Æ½Ì¨£¬´ó¶àÊýµÄ¿ª·¢Õß¶¼Ö±½ÓʹÓÃVI¡¢GCCµÈÃüÁîÐй¤¾ß£¬ÕâÑùÆäʵ²»ÀûÓÚ´óÐÍÏîÄ¿µÄ¿ª·¢¡£ 1.ÒÀÈ»ÊÇÊìϤµÄ¿ª·¢Á÷³Ì ÔÚLinux²Ù×÷ϵͳÖУ¬CÓïÑÔ³ÌÐòµÄ¿ª·¢ºÍÆäËû»·¾³ÀàËÆ£¬³ÌÐòÉú³ÉÖ÷Òª·Ö³É±àÒë¡¢»ã±à¡¢Á¬½ÓµÈ¼¸¸ö²½Öè¡£ ± ......