Èç¹û˵LinuxϵͳÊÇÒ»²¿¾«ÃÜÔËתµÄ»úÆ÷£¬ÄÇôinit¾ÍÊÇÕⲿ»úÆ÷×î³õÆô¶¯²¢³ÖÐøÎ¬»¤ÆäÎȶ¨ÔËÐеÄÒýÇæ
±¾ÎĽ«´ÓinitµÄÆðÔ´¡¢·¢Õ¹Àú³Ì¡¢µ±Ç°ÊµÏÖ£¨ÈçsystemdºÍSysVinit£©ÒÔ¼°ËüÔÚLinuxϵͳÖеĹؼü×÷Óõȷ½Ã棬ÉîÈë̽ÌÖinitΪºÎÊÇLinuxϵͳµÄÁé»êÆô¶¯Õß
Ò»¡¢initµÄÆðÔ´ÓëÑݱä initµÄ¸ÅÄî×îÔç¿ÉÒÔ×·Ëݵ½Unixϵͳʱ´ú
ÔÚUnixϵͳÖУ¬initÊǵÚÒ»¸ö±»ÄÚºËÆô¶¯µÄÓû§¼¶½ø³Ì£¬Æä½ø³ÌºÅΪ1£¬ÕâÒ»±àºÅÔÚUnixºÍLinuxϵͳÖоßÓÐÌØÊâÒâÒ壬ÏóÕ÷×Åϵͳ½ø³ÌµÄÊ¼×æ
init½ø³Ì¸ºÔðÔÚϵͳÆô¶¯Ê±³õʼ»¯ÏµÍ³»·¾³£¬Æô¶¯±ØÒªµÄϵͳ·þÎñ£¬²¢×÷ΪËùÓй¶ù½ø³ÌµÄÊÕÑøÕߣ¬È·±£ÏµÍ³×ÊÔ´µÄÕýÈ·»ØÊÕ
Ëæ×ÅLinux²Ù×÷ϵͳµÄ²»¶Ï·¢Õ¹ºÍÍêÉÆ£¬initµÄʵÏÖÒ²¾ÀúÁ˶à´Îµü´ú
ÔçÆÚ£¬Linux´ó¶à²ÉÓÃSysVinit×÷Ϊ³õʼ»¯ÏµÍ³£¬ËüÔ´×ÔSystem V UnixµÄinit»úÖÆ£¬Í¨¹ýÔËÐм¶±ð£¨runlevels£©À´¹ÜÀíϵͳµÄÆô¶¯ºÍ¹Ø±Õ¹ý³Ì£¬ÒÔ¼°·þÎñµÄ¹ÜÀí
È»¶ø£¬SysVinitµÄÅäÖúÍά»¤Ïà¶Ô¸´ÔÓ£¬¶ÔÓÚÏÖ´úLinuxϵͳÀ´Ëµ£¬ÏԵò»¹»Áé»îºÍ¸ßЧ
¶þ¡¢systemdµÄáÈÆð£ºinitµÄÐÂÆªÕ ΪÁ˿˷þSysVinitµÄ¾ÖÏÞÐÔ£¬LinuxÉçÇø¿ªÊ¼Ñ°ÕÒ¸üÏȽøµÄ³õʼ»¯ÏµÍ³½â¾ö·½°¸
ÔÚÕâÑùµÄ±³¾°Ï£¬systemdÓ¦Ô˶øÉú
systemdÊÇÓÉLennart PoetteringÁìµ¼µÄFreedesktop.orgÏîÄ¿µÄÒ»²¿·Ö£¬Ö¼ÔÚÌṩһ¸öͳһµÄ·þÎñ¹ÜÀíϵͳ£¬Ëü²»½öº¸ÇÁËinitµÄ¹¦ÄÜ£¬»¹´ó´óÀ©Õ¹ÁËϵͳºÍ·þÎñ¹ÜÀíµÄÄÜÁ¦
systemd²ÉÓÃÁËÒ»ÖÖ»ùÓÚÒÀÀµ¹ØÏµµÄÆô¶¯·½Ê½£¬¼´Ã¿¸ö·þÎñ¶¼¿ÉÒÔÉùÃ÷ËüÒÀÀµÓÚÄÄЩÆäËû·þÎñ£¬´Ó¶øÊµÏÖÁË·þÎñµÄ²¢ÐÐÆô¶¯£¬ÏÔÖøËõ¶ÌÁËϵͳÆô¶¯Ê±¼ä
´ËÍ⣬systemd»¹ÒýÈëÁËcgroupºÍnamespaceµÈÄÚºËÌØÐÔ£¬ÔöÇ¿ÁË·þÎñµÄ¸ôÀëÐԺͰ²È«ÐÔ
ͨ¹ýͳһµÄÈÕ־ϵͳjournald£¬systemd»¹¼«´óµØ¼ò»¯ÁËϵͳÈÕÖ¾µÄ¹ÜÀíºÍ²éѯ
systemdµÄÁíÒ»¸öÏÔÖøÓÅÊÆÊÇÆäÇ¿´óµÄÅäÖú͹ÜÀíÄÜÁ¦
Ó봫ͳµÄSysVinit½Å±¾Ïà±È£¬systemdʹÓüòµ¥µÄÅäÖÃÎļþ£¨Í¨³£ÒÔ.service½á⣩À´¶¨Òå·þÎñµÄÆô¶¯ÐÐΪ£¬ÕâЩÅäÖÃÎļþÒ×ÓÚ±àд¡¢ÔĶÁºÍÐ޸쬴ó´ó½µµÍÁËϵͳ¹ÜÀíµÄ¸´ÔÓ¶È
Èý¡¢initÔÚÏÖ´úLinuxϵͳÖеĹؼü×÷Óà 1.ϵͳÆô¶¯Óë³õʼ»¯ init½ø³ÌÊÇLinuxϵͳÆô¶¯Á÷³ÌµÄµÚÒ»²½
µ±ÄÚºËÍê³ÉÒýµ¼ºó£¬Ëü»áÆô¶¯init½ø³Ì
init½ø³ÌËæºó¸ºÔð¹ÒÔØ¸ùÎļþϵͳ£¬Æô¶¯±ØÒªµÄÄÚºËÄ£¿é£¬ÒÔ¼°¸ù¾ÝÅäÖÃÎļþ£¨Èç/etc/inittabÔÚSysVinitÖУ¬»ò/etc/systemd/system/default.targetÔÚsystemdÖУ©À´ÉèÖÃϵͳµÄÔËÐм¶±ð»òÄ¿±ê״̬
2.·þÎñ¹ÜÀí ÎÞÂÛÊÇSysVinit»¹ÊÇsystemd£¬initϵͳµÄºËÐŦÄÜÖ®Ò»¶¼ÊǹÜÀí·þÎñ£¨¼´ÊØ»¤½ø³Ì£©
Õâ°üÀ¨Æô¶¯¡¢Í£Ö¹¡¢ÖØÆô·þÎñ£¬ÒÔ¼°¼à¿Ø·þÎñµÄÔËÐÐ״̬
ÔÚsystemdÖУ¬·þÎñ¹ÜÀí±äµÃ¸ü¼ÓÁé»îºÍÇ¿´ó£¬Í¨¹ýtargetµ¥Ôª£¨ÀàËÆÓÚSysVinitµÄÔËÐм¶±ð£©ºÍ·þÎñµ¥Ôª£¬¿ÉÒÔ¾«Ï¸µØ¿ØÖÆ·þÎñµÄÆô¶¯Ë³ÐòºÍÌõ¼þ
3.Óû§»á»°¹ÜÀí ³ýÁËϵͳ·þÎñ£¬initϵͳ»¹¸ºÔð¹ÜÀíÓû§»á»°
ÔÚsystemdÖУ¬Õâͨ¹ýgetty·þÎñºÍlogin manager£¨Èçsystemd-logind£©ÊµÏÖ
getty·þÎñ¸ºÔðÔÚÖÕ¶ËÉÏÆô¶¯µÇ¼Ìáʾ·û£¬¶ølogin managerÔò¹ÜÀíͼÐεǼ½çÃæºÍÓû§µÄ»á»°ÉúÃüÖÜÆÚ
4.ϵͳ»Ö¸´Óë¹ÊÕÏÅŲé initϵͳ»¹°çÑÝ×Åϵͳ»Ö¸´ºÍ¹ÊÕÏÅŲéµÄ¹Ø¼ü½ÇÉ«
ÔÚ³öÏÖϵͳ±ÀÀ£»òÎÞ·¨Õý³£Æô¶¯Ê±£¬initϵͳ£¨ÌرðÊÇsystemd£©ÌṩÁ˽ô¼±¾ÈԮģʽ£¨emergency mode£©£¬ÔÊÐí¹ÜÀíÔ±½øÐÐϵͳÐÞ¸´
´ËÍ⣬systemdµÄÈÕ־ϵͳjournaldÄܹ»¼Ç¼ÏêϸµÄÆô¶¯ÈÕÖ¾ºÍÔËÐÐʱÐÅÏ¢£¬Îª¹ÊÕÏÅųýÌṩÁ˱¦¹óµÄÐÅÏ¢
5.×ÊÔ´¹ÜÀíÓë¸ôÀë systemdͨ¹ýcgroupºÍnamespaceµÈÄÚºËÌØÐÔ£¬ÊµÏÖÁË·þÎñÖ®¼äµÄ×ÊÔ´¸ôÀëºÍÏÞÖÆ£¬Ìá¸ßÁËϵͳµÄ°²È«ÐÔºÍÎȶ¨ÐÔ
ÀýÈ磬¿ÉÒÔÏÞ֯ij¸ö·þÎñµÄCPUºÍÄÚ´æÊ¹ÓÃÁ¿£¬·ÀÖ¹µ¥¸ö·þÎñÏûºÄ¹ý¶à×ÊÔ´¶øÓ°ÏìÕû¸öϵͳ
ËÄ¡¢Õ¹ÍûδÀ´£ºinitµÄ³ÖÐø½ø»¯ ¾¡¹ÜsystemdÒѾ¼«´óµØÌáÉýÁËLinuxϵͳµÄ³õʼ»¯ºÍ·þÎñ¹ÜÀíÄÜÁ¦£¬µ«¼¼ÊõµÄ½ø²½ÓÀÎÞÖ¹¾³
Ëæ×ÅÈÝÆ÷»¯£¨ÈçDocker£©ºÍ΢·þÎñ¼Ü¹¹µÄÐËÆð£¬Linuxϵͳ¶ÔinitϵͳµÄÐèÇóÒ²ÔÚ²»¶Ï±ä»¯
δÀ´µÄinitϵͳ¿ÉÄÜÐèÒª¸ü¼Ó½ôÃܵØÓëÈÝÆ÷¼¼Êõ¼¯³É£¬Ìṩ¸ü¸ßЧµÄ×ÊÔ´µ÷¶ÈºÍ·þÎñ·¢