´ó¼ÒÖªµÀLinuxÖд´½¨×Ó½ø³ÌµÄÒ»¸öºÜºÃµÄ·½·¨ÊǺ¯Êýµ÷ÓÃfork,µ«ÊǺܶà³õѧÕß¶ÔforkµÄÀí½âÉÏ¿ÉÄÜÓеãÀ§ÄÑ¡£ÏÂÃæ¾Ù¸öÀý×ÓÀ´¿´¿´forkµÄÓ÷¨°É¡£
Æäʵ£¬´ó¼ÒÓÃforkµÄʱºò¼ÇסforkÊÇ“·Ö²æ”µÄÒâ˼¾ÍºÜºÃÀí½âÁË¡£
ÏÈ¿´Ò»ÏÂfork() µÄ¾µäģʽ£º
int pid=fork();
if(pid < 0)
{
//ʧ°Ü£¬Ò»°ãÊǸÃÓû§µÄ½ø³ÌÊý´ïµ½ÏÞÖÆ»òÕßÄÚ´æ±»ÓùâÁË
........
}
else if(pid == 0)
{
//×Ó½ø³ÌÖ´ÐеĴúÂë
......
}
else
{
//¸¸½ø³ÌÖ´ÐеĴúÂë
.........
}
......... //ÆäËû²¿·Ö
Ê×ÏÈÀ´¿´fork µÄ·µ»ØÖµ£¬ÓÐÈýÖÖÇé¿ö -1£¬0£¬>0
·µ»Ø-1: µ±È»ÊÇʧ°ÜÁË£¬Ò²²»»á·ÖÁѳÉÁ½¸ö½ø³Ì¡£
·µ»Ø0ÊÇ×Ó½ø³Ì¡£
·µ»Ø¡µ0 ÊǸ¸½ø³Ì£¬´Ëʱ·µ»ØµÄÖµµ±È»ÊÇ×Ó½ø³ÌµÄpidÁË¡£
Õâ¸ö¹ý³ÌÆäʵ¿ÉÒÔÕâÑù¼òµ¥µÄ½âÊÍ£º µ±½ø³ÌÓöµ½forkµ÷ÓÃʱ£¬½«´Ë½ø³ÌÕû¸ö¿½±´ ......
ת£ºhttp://www.ibm.com/developerworks/cn/linux/l-linux-kvm/#N1009B 2007 Äê 5 Ô 28 ÈÕ Linux® ¼ÈÓÐÁ¼ºÃµÄÁé»îÐÔ£¬ÔÚÐéÄ⻯·½ÃæÍ¬Ñù³öÉ«¡£µ«ÊÇ×î½ü£¬Ëæ×ÅÄÚºËÐéÄâ»ú£¨KVM£©µÄ³öÏÖ£¬Linux ÐéÄ⻯µÄǰ¾°·¢ÉúÁ˱仯¡£KVM Êǹ¹³ÉÖ÷Á÷ Linux Äںˣ¨V2.6.20£©Ò»²¿·ÖµÄµÚÒ»¸öÐéÄ⻯½â¾ö·½°¸¡£KVM Ö§³Ö Linux ¿Í»§²Ù×÷ϵͳµÄÐéÄ⻯ —— ÉõÖÁÖ§³ÖÆäÓ²¼þ¶ÔÐéÄ⻯Ãô¸ÐµÄ Windows® ϵͳµÄÐéÄ⻯¡£Á˽â Linux KVM µÄ¼Ü¹¹²¢Á˽âËüÓëÄں˵ĽôÃܼ¯³ÉΪºÎ»á¸Ä±äÄúʹÓà Linux µÄ·½Ê½¡£ ¼ò½é ÐéÄ⻯ ¸ÅÄîºÜÔç¾ÍÒѳöÏÖ¡£¼òµ¥À´Ëµ£¬ÐéÄ⻯¾ÍÊÇʹÓÃijЩ³ÌÐò£¬²¢Ê¹Æä¿´ÆðÀ´ÀàËÆÓÚÆäËû³ÌÐòµÄ¹ý³Ì¡£½«Õâ¸ö¸ÅÄîÓ¦Óõ½¼ÆËã»úϵͳÖпÉÒÔÈò»Í¬Óû§¿´µ½²»Í¬µÄµ¥¸öϵͳ£¨ÀýÈ磬һ̨¼ÆËã»ú¿ÉÒÔͬʱÔËÐÐ Linux ºÍ Microsoft® Windows®£©¡£Õâͨ³£³ÆÎªÈ«ÐéÄ⻯£¨full virtualization£©¡£ KVM ºÍ kvm ÔÚ±¾ÎÄÖУ¬ÎÒÃÇʹÓà KVM ÒýÓÃÄÚºËÐéÄâ»ú£¬Ê¹Óà kvm ÒýÓÃϵͳ¹ÜÀí³ÌÐò£¨ÓÃÀ´Æô¶¯Ò»Ì¨ÐÂÐéÄâ»ú£©¡£ ÐéÄ⻯Ҳ¿ÉÒÔʹÓøü¼Ó¸´Ôӵĸñʽ£¬ÆäÖе¥¸ö¼ÆËã»ú¿´ÉÏÈ¥¾ßÓжà¸ö¼Ü¹¹£¨¶ÔÓÚÒ»¸öÓû§À´Ëµ£¬ËüÊÇÒ»¸ö±ê×¼µÄ x86 ƽ̨£»¶ÔÓÚÁíÍâÒ»¸öÓû§À´Ëµ£¬ËüÊÇ IBM Power PC® ......
¼¶±ð£º Öм¶ M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex 2007 Äê 1 Ô 15 ÈÕ ÐéÄ⻯µÄº¬Òå·á¸»£¬Ó¦Óù㷺¡£Ä¿Ç°ÐéÄ⻯¼¼ÊõÖ÷Òª¹Ø×¢ÓÚ·þÎñÆ÷ÐéÄ⻯£¬¼´ÔÚÒ»¸öËÞÖ÷¼ÆËã»úÉÏÌṩ¶à¸ö¶ÀÁ¢²Ù×÷ϵͳ¡£±¾ÎĽ«Ì½Ë÷ÐéÄ⻯±³ºóµÄ˼Ï룬ȻºóÌÖÂÛʵÏÖÐéÄ⻯µÄһЩ¼¼Êõ¡£ÎÒÃÇ»¹½«Á˽âÏÖÓÐµÄÆäËûһЩÐéÄ⻯¼¼Êõ£¬ÀýÈç Linux ÉϲÙ×÷ϵͳµÄÐéÄ⻯¡£ ½øÐÐÐéÄ⻯ ¾ÍÊÇÒª½«Ä³ÖÖÐÎʽµÄ¶«Î÷ÒÔÁíÍâÒ»ÖÖÐÎʽ³ÊÏÖ³öÀ´¡£¶Ô¼ÆËã»ú½øÐÐÐéÄ⻯¾ÍÊÇÒª½«¼ÆËã»úÒÔ¶ą̀¼ÆËã»ú»òһ̨ÍêÈ«²»Í¬µÄ¼ÆËã»úµÄÐÎʽ³ÊÏÖ³öÀ´¡£ ÐéÄ⻯Ҳ¿ÉÒÔ½«¶ą̀¼ÆËã»ú×éºÏ³Éһ̨¼ÆËã»úµÄÐÎʽ³ÊÏÖ³öÀ´¡£Õâͨ³£³ÆÎª·þÎñÆ÷¾ÛºÏ»òÍø¸ñ¼ÆËã¡£ ÏÂÃæÈÃÎÒÃÇÊ×ÏÈÀ´¿´Ò»ÏÂÐéÄ⻯µÄÆðÔ´¡£ ÐéÄ⻯µÄÀúÊ· ÐéÄ⻯²¢²»ÊÇʲôÐÂÖ÷Ì⣻ʵ¼ÊÉÏ£¬ËüµÄ´æÔÚÒѾ³¬¹ý 40 ÄêÁË¡£ÐéÄ⻯¼¼Êõ×îÔçµÄһЩÓ÷¨°üÀ¨ IBM® 7044¡¢ÂéÊ¡Àí¹¤Ñ§Ôº£¨MIT£©ÔÚ IBM 704 ÉÏ¿ª·¢µÄ CTSS£¨Compatible Time Sharing System£©ÒÔ¼°Âü³¹Ë¹ÌØ´óѧµÄ Atlas ÏîÄ¿£¨ÊÀ½çÉÏ×îÔçµÄ³¬¼¶¼ÆËã»úÖ®Ò»£©£¬ÕâЩ¶¼ÊÇÇëÇóÒ³Ãæµ÷¶ÈºÍ¼à¹Ü½ø³Ìµ÷ÓõÄÏÈÇý¡£ Ó²¼þÐéÄ⻯ IBM ÔçÔÚ 20 ÊÀ¼Í 60 Äê´ú¿ª·¢ System/360™ Model 67 ´óÐÍ»úʱ¾ÍÈÏʶµ½ÁËÐéÄ⻯µÄÖØÒªÐÔ¡£Model 67 ͨ¹ý VMM£¨Virtual ......
Äں˱àÒëÍê³Éºó»áÉú³ÉzImageÄں˾µÏñÎļþ¡£¹ØÓÚbootloader¼ÓÔØzImageµ½Äںˣ¬²¢ÇÒÌø×ªµ½zImage¿ªÊ¼µØÖ·ÔËÐÐzImageµÄ¹ý³Ì£¬ÏàÐÅ´ó¼Ò¶¼ºÜÈÝÒ×Àí½â¡£µ«¶ÔÓÚzImageÊÇÈçºÎ½âѹµÄ¹ý³Ì£¬¾Í²»ÊÇÄÇôºÃÀí½âÁË¡£±¾ÎĽ«½áºÏ²¿·Ö¹Ø¼ü´úÂ룬½²½âzImageµÄ½âѹ¹ý³Ì¡£
¡¡¡¡ÏÈ¿´¿´zImageµÄ×é³É°É¡£ÔÚÄں˱àÒëÍê³Éºó»áÔÚarch/arm/boot/ÏÂÉú³ÉzImage¡£
¡¡¡¡ÔÚarch/armboot/MakefileÖУº
$(obj)/zImage:¡¡$(obj)/compressed/vmlinux FORCE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ $(call if_changed,objcopy)
¡¡¡¡Óɴ˿ɼû£¬zImageµÄÊÇelf¸ñʽµÄarch/arm/boot/compressed/vmlinux¶þ½øÖÆ»¯µÃµ½µÄ
¡¡¡¡ÔÚarch/armboot/compressed/MakefileÖУº
$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o
¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ $(addprefix $(obj)/, $(OBJS)) FORCE
¡¡¡¡¡¡ ¡¡¡¡¡¡ $(call if_changed,ld)
$(obj)/piggy.gz: $(obj)/../Image FORCE
¡¡¡¡¡¡ ¡¡¡¡¡¡ $(call if_changed,gzip)
$(obj)/piggy.o:¡¡$(obj)/piggy.gz FORCE
¡¡¡¡ÆäÖÐImageÊÇÓÉÄں˶¥²ãĿ¼ÏµÄvmlinux¶þ½øÖÆ»¯ºóµÃµ½µÄ¡£×¢Ò⣺arch/arm/boot/compressed/vmlinuxÊÇλÖÃÎ޹صģ¬Õâ¸öÓÐÖúÓÚÀí½â ......
Linux 2.6.19.x Äں˱àÒëÅäÖÃÑ¡Ïî¼ò½é ×÷Õߣº½ð²½¹ú °æÈ¨ÉùÃ÷ ±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈÎºÎÆäËüÌõ¼þ¡£Äú¿ÉÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´«²¥´ËÎĵµ£¬µ«Ç°ÌáÊDZØÐ뱣֤ȫÎÄÍêÕû×ªÔØ£¬°üÀ¨ÍêÕûµÄ°æÈ¨ÐÅÏ¢ºÍ×÷ÒëÕßÉùÃ÷¡£ ÆäËû×÷Æ· ±¾ÎÄ×÷ÕßÊ®·ÖÔ¸ÒâÓëËûÈ˹²ÏíÀͶ¯³É¹û£¬Èç¹ûÄã¶ÔÎ񵀮äËû·Òë×÷Æ·»òÕß¼¼ÊõÎÄÕÂÓÐÐËȤ£¬¿ÉÒÔÔÚÈçÏÂλÖò鿴ÏÖÓÐ×÷Æ·µÄÁÐ±í£º ½ð²½¹ú×÷Æ·Áбí BUG±¨¸æ£¬ÇдèÓë̽ÌÖ ÓÉÓÚ×÷ÕßˮƽÓÐÏÞ£¬Òò´Ë²»Äܱ£Ö¤×÷Æ·ÄÚÈÝ׼ȷÎÞÎó£¬ÇëÔÚÔĶÁÖÐ×ÔÐмø±ð¡£Èç¹ûÄã·¢ÏÖÁË×÷Æ·ÖеĴíÎó£¬ÇëÄúÀ´ÐÅÖ¸³ö£¬ÄÄÅÂÊÇ´í±ð×ÖÒ²ºÃ£¬ÈκÎÌá¸ß×÷Æ·ÖÊÁ¿µÄ½¨ÒéÎÒ¶¼½«ÐéÐĽÓÄÉ¡£Èç¹ûÄãÔ¸Òâ¾Í×÷Æ·ÖеÄÏà¹ØÄÚÈÝÓëÎÒ½øÐнøÒ»²½ÇдèÓë̽ÌÖ£¬Ò²»¶ÓÄãÓëÎÒÁªÏµ¡£ÁªÏµ·½Ê½£ºMSN: csfrank122@hotmail.com Code maturity level options
´úÂë³ÉÊì¶ÈÑ¡Ïî Prompt for development and/or incomplete code/drivers ÏÔʾÉÐÔÚ¿ª·¢ÖлòÉÐδÍê³ÉµÄ´úÂëÓëÇý¶¯.³ý·ÇÄãÊDzâÊÔÈËÔ±»òÕß¿ª·¢Õß,·ñÔòÇëÎðÑ¡Ôñ General se ......
PCIÊÇÒ»Öֹ㷺²ÉÓõÄ×ÜÏß±ê×¼£¬ËüÌṩÁËÐí¶àÓÅÓÚÆäËü×ÜÏß±ê×¼£¨ÈçEISA£©µÄÐÂÌØÐÔ£¬Ä¿Ç°ÒѾ³ÉΪ¼ÆËã»úϵͳÖÐÓ¦ÓÃ×îΪ¹ã·º£¬²¢ÇÒ×îΪͨÓõÄ×ÜÏß±ê×¼¡£LinuxµÄÄÚºËÄܽϺõØÖ§³ÖPCI×ÜÏߣ¬±¾ÎÄÒÔIntel 386Ìåϵ½á¹¹ÎªÖ÷£¬Ì½ÌÖÁËÔÚLinuxÏ¿ª·¢PCIÉ豸Çý¶¯³ÌÐòµÄ»ù±¾¿ò¼Ü¡£
Ò»¡¢PCI×ÜÏßϵͳÌåϵ½á¹¹
PCIÊÇÍâΧÉ豸»¥Á¬£¨Peripheral Component Interconnect£©µÄ¼ò³Æ£¬×÷ΪһÖÖͨÓõÄ×ÜÏß½Ó¿Ú±ê×¼£¬ËüÔÚĿǰµÄ¼ÆËã»úϵͳÖеõ½Á˷dz£¹ã·ºµÄÓ¦Óá£PCIÌṩÁËÒ»×éÍêÕûµÄ×ÜÏ߽ӿڹ淶£¬ÆäÄ¿µÄÊÇÃèÊöÈçºÎ½«¼ÆËã»úϵͳÖеÄÍâΧÉ豸ÒÔÒ»Öֽṹ»¯ºÍ¿É¿Ø»¯µÄ·½Ê½Á¬½ÓÔÚÒ»Æð£¬Í¬Ê±Ëü»¹¿Ì»ÁËÍâΧÉ豸ÔÚÁ¬½ÓʱµÄµçÆøÌØÐÔºÍÐÐΪ¹æÔ¼£¬²¢ÇÒÏêϸ¶¨ÒåÁ˼ÆËã»úϵͳÖеĸ÷¸ö²»Í¬²¿¼þÖ®¼äÓ¦¸ÃÈçºÎÕýÈ·µØ½øÐн»»¥¡£
ÎÞÂÛÊÇÔÚ»ùÓÚIntelоƬµÄPC»úÖУ¬»òÊÇÔÚ»ùÓÚAlphaоƬµÄ¹¤×÷Õ¾ÉÏ£¬PCIºÁÎÞÒÉÎʶ¼ÊÇĿǰʹÓÃ×î¹ã·ºµÄÒ»ÖÖ×ÜÏß½Ó¿Ú±ê×¼¡£Í¬¾ÉʽµÄISA×ÜÏß²»Í¬£¬PCI½«¼ÆËã»úϵͳÖеÄ×ÜÏß×ÓϵͳÓë´æ´¢×ÓϵͳÍêÈ«µØ·Ö¿ª£¬CPUͨ¹ýÒ»¿é³ÆÎªPCIÇÅ£¨PCI-Bridge£©µÄÉ豸À´Íê³Éͬ×ÜÏß×ÓϵͳµÄ½»»¥£¬Èçͼ1Ëùʾ¡£
ͼ1 PCI×ÓϵͳµÄÌåϵ½á¹¹
ÓÉÓÚʹÓÃÁ˸ü¸ßµÄʱÖÓÆµÂÊ£¬Òò´ËPCI×ÜÏßÄܹ»»ñµÃ±ÈISA×ÜÏ ......