´ÓºÎ´¦¿ªÊ¼ÔĶÁ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)¡£Èç¹ûÄãÏë¿´°üº¬ÎļþϵÍ
Ïà¹ØÎĵµ£º
ϵͳ±ÀÀ£ÁËÒ»´Î£¬ºÜ¶àÎļþ¶¼¶ªÁË£¬ÐҺöªµÄÎļþ²»ÊǺÜÖØÒª¡£µÃÁËÕâ´Î½Ìѵ£¬ÒÔºóÒ»¶¨ÒªÇÚд²©¿Í£¬ÎÞÂÛ¶«Î÷¶àô¼¦Ã«ËâÆ¤£¬Ò»µ©ÄãÓùýÁËÈ»ºóÍü¼ÇÁËÈ»ºóijһÌìÓÖÐèÒªÓõÄʱºò£¬ÏëÆðÀ´×Ô¼ºÔø¾»á¹ý¶øÏÖÔÚºÍÐÂÊÖÎÞÒ죬ÄÇÖÖÐÄÇé±ðÌáÓжàÓôÃÆÁË¡£
Õýʽתµ½linuxÓÐÁ½¸ö¶àÔÂÁË£¬ÓÃlinuxµÄÔÒò³ýÁËÃâ·ÑÒÔÍ⣬×îÖØÒªµÄ¾ÍÊÇlinuxÖÐÓÐÌ«¶ ......
#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 ......
Ò»¡¢ ʲôÊÇϵͳµ÷ÓÃ
ÔÚLinuxµÄÊÀ½çÀÎÒÃǾ³£»áÓöµ½ÏµÍ³µ÷ÓÃÕâÒ»ÊõÓËùνϵͳµ÷Ó㬾ÍÊÇÄÚºËÌṩµÄ¡¢¹¦ÄÜÊ®·ÖÇ¿´óµÄһϵÁеĺ¯Êý¡£ÕâЩϵͳµ÷ÓÃÊÇÔÚÄÚºËÖÐʵÏֵģ¬ÔÙͨ¹ýÒ»¶¨µÄ·½Ê½°Ñϵͳµ÷ÓøøÓû§£¬Ò»°ã¶¼Í¨¹ýÃÅ(gate)ÏÝÈë(trap)ʵÏÖ¡£ÏµÍ³µ÷ÓÃÊÇÓû§³ÌÐòºÍÄں˽»»¥µÄ½Ó¿Ú¡£
¶þ¡¢ ϵͳµ÷ÓõÄ×÷Ó ......
Ò»°ãÔÚlinuxÉϲ¿ÊðÏîĿʱ£¬Ö±½Ó°ÑÔÚwindowÉϱàÒë³öÀ´µÄjarÎļþ²¿ÊðÉÏÈ¥£¬ÔÙÔËÐоͿÉÒÔÁË£¬µ«ÊǽñÌìÅöµ½µÄÎÊÌâ £º
Exception in thread "main" java.lang.NoClassDefFoundError: DataServer
at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: DataServer ......