อ่าน 9 นาที
เริ่มต้น
ใน ระบบปฏิบัติการ คอมพิวเตอร์ แบบ Unix นั้น init ( ย่อมาจาก initialization ) เป็น กระบวนการ ในพื้นที่ผู้ใช้ (user-space ) แรกที่เริ่มต้นระหว่าง การบูต ระบบปฏิบัติการ init เป็น...
เริ่มต้น


ในระบบปฏิบัติการคอมพิวเตอร์แบบ Unix นั้น init (ย่อมาจากinitialization ) เป็น กระบวนการในพื้นที่ผู้ใช้ (user-space ) แรกที่เริ่มต้นระหว่างการบูตระบบปฏิบัติการ init เป็น กระบวนการ แบบ daemonที่ทำงานต่อเนื่องจนกว่าระบบจะปิดตัวลง มันเป็นบรรพบุรุษ โดยตรงหรือโดยอ้อม ของกระบวนการอื่นๆ ทั้งหมด และจะรับเอากระบวนการที่ถูกทิ้งร้าง ทั้งหมดมาดูแลโดยอัตโนมัติ init จะเริ่มต้นโดยเคอร์เนลระหว่าง กระบวนการ บูตในระบบแบบ Unix ส่วนใหญ่หากเคอร์เนลไม่สามารถเริ่มต้น init ได้ หรือหาก init หยุดทำงานด้วยเหตุผลใดๆ ก็ตาม จะเกิด kernel panic ขึ้น โดยทั่วไปแล้ว init จะได้ รับหมายเลขประจำตัวกระบวนการเป็น 1
ในระบบ Unix เช่นSystem IIIและSystem Vการออกแบบ init แตกต่างจากฟังก์ชันการทำงานที่ init มีให้ในResearch Unixและ อนุพันธ์ BSDจนกระทั่งช่วงต้นทศวรรษ 2010 [ 1 ]การแจกจ่าย Linuxส่วนใหญ่ใช้ init แบบดั้งเดิมที่เข้ากันได้กับ System V ในระดับหนึ่ง ในขณะที่การแจกจ่ายบางอย่าง เช่นSlackwareใช้สคริปต์เริ่มต้นแบบ BSD และการแจกจ่ายอื่นๆ เช่นGentooมีเวอร์ชันที่ปรับแต่งเอง
นับตั้งแต่นั้นมา ระบบปฏิบัติการ Linux ส่วนใหญ่ได้นำระบบ init ที่ทันสมัยกว่ามาใช้ โดยส่วนใหญ่ใช้ระบบ init ที่มาจาก โปรเจกต์ systemdบางระบบปฏิบัติการเลือกที่จะสร้างระบบที่เข้ากันได้กับ System V-init ของตนเอง เช่นOpenRCของGentoo LinuxและrunitของVoid Linuxโปรเจกต์เหล่านี้มักจะมีคุณสมบัติที่เดิมไม่มีในระบบ init ของ System V เช่นการทำงานแบบมัลติเธรดหรือ init แบบโต้ตอบ ระบบ init ที่ทันสมัยส่วนใหญ่ยังสามารถเริ่มต้น หยุด และเปิดใช้งานบริการต่างๆ ได้แบบไดนามิกหลังจากบูตเครื่อง โดยมีการแจ้งเตือนจากผู้ใช้
ศึกษาเกี่ยวกับระบบ Unix/BSD
การวิจัย Unix init เรียกใช้สคริปต์เชลล์ เริ่มต้น ที่อยู่ใน/etc/rc, [ 2 ]จากนั้นเรียกใช้gettyบนเทอร์มินัลภายใต้การควบคุมของ/etc/ttys. [ 3 ]ไม่มี runlevels; /etc/rcไฟล์จะกำหนดว่าโปรแกรมใดจะถูกเรียกใช้โดย init ข้อดีของระบบนี้คือเรียบง่ายและแก้ไขด้วยตนเองได้ง่าย อย่างไรก็ตาม ซอฟต์แวร์ใหม่ที่เพิ่มเข้ามาในระบบอาจต้องมีการเปลี่ยนแปลงไฟล์ที่มีอยู่ ซึ่งอาจทำให้ระบบบูตไม่ได้
ก่อน 4.3BSD ระบบ init ของ BSDเหมือนกับระบบ init ของ Research UNIX [ 4 ] [ 5 ]ใน4.3BSDได้เพิ่มการสนับสนุนสำหรับการเรียกใช้ระบบหน้าต่างเช่นXบนเทอร์มินัลกราฟิกภายใต้การควบคุมของ/etc/ttys[ 6 ] [ 7 ] เพื่อขจัดความจำเป็นในการแก้ไข ระบบ/etc/rcBSD เวอร์ชันต่างๆ ได้สนับสนุนไฟล์เฉพาะไซต์/etc/rc.localที่ทำงานในซับเชลล์ใกล้กับส่วนท้ายของลำดับการบูต มานานแล้ว
ระบบโมดูลาร์เต็มรูปแบบได้รับการแนะนำในNetBSD 1.5 และพอร์ตไปยังFreeBSD 5.0, OpenBSD 4.9 และรุ่นต่อๆ มา ระบบนี้ดำเนินการสคริปต์ใน/etc/rc.dไดเร็กทอรี ต่างจากการจัดลำดับสคริปต์ของ System V ซึ่งได้มาจากชื่อไฟล์ของแต่ละสคริปต์ ระบบนี้ใช้แท็กการพึ่งพาที่ชัดเจนซึ่งวางไว้ภายในแต่ละสคริปต์[ 8 ]ลำดับในการดำเนินการสคริปต์จะถูกกำหนดโดย ยูทิลิตี้ rcorderโดยอิงตามข้อกำหนดที่ระบุไว้ในแท็กเหล่านี้
สไตล์ SysV

เมื่อเปรียบเทียบกับรุ่นก่อนหน้าระบบ UNIX System III ของ AT&T ได้นำเสนอรูปแบบใหม่ของการกำหนดค่าการเริ่มต้นระบบ[ 9 ]ซึ่งยังคงใช้ต่อไป (โดยมีการปรับเปลี่ยน) ในUNIX System Vและจึงเรียกว่า "SysV-style init"
ในทุกขณะ ระบบ System V จะอยู่ในสถานะใดสถานะหนึ่งจากจำนวนสถานะที่กำหนดไว้ล่วงหน้า ซึ่งเรียกว่าระดับการทำงาน (runlevel ) อย่างน้อยหนึ่งระดับการทำงานจะเป็นสถานะการทำงานปกติของระบบ โดยทั่วไปแล้ว ระดับการทำงานอื่นๆ จะแสดงถึงโหมดผู้ใช้คนเดียว (ใช้สำหรับซ่อมแซมระบบที่ผิดพลาด) การปิดระบบ และสถานะอื่นๆ การเปลี่ยนจากระดับการทำงานหนึ่งไปยังอีกระดับหนึ่งจะทำให้ชุดสคริปต์สำหรับแต่ละระดับการทำงานถูกเรียกใช้ ซึ่งโดยทั่วไปแล้วจะทำการเมานต์ระบบไฟล์ เริ่มหรือหยุดโปรแกรมบริการเบื้องหลัง (daemon)เริ่มหรือหยุดระบบ X Window Systemปิดเครื่อง ฯลฯ
ระดับการวิ่ง
ระดับการทำงาน (runlevels)ใน System V อธิบายถึงสถานะต่างๆ ของเครื่อง โดยมีลักษณะเฉพาะคือ กระบวนการและโปรแกรมเบื้องหลัง (daemon) ที่ทำงานอยู่ในแต่ละสถานะ โดยทั่วไปแล้วมีระดับการทำงานเจ็ดระดับ ซึ่งสามระดับถือเป็น "มาตรฐาน" เนื่องจากเป็นสิ่งจำเป็นต่อการทำงานของระบบ:
- ปิด
- โหมดผู้ใช้คนเดียว (เรียกอีกอย่างว่าSหรือs )
- รีบูต
นอกเหนือจากมาตรฐานเหล่านี้แล้ว ระบบ Unix และระบบที่คล้าย Unix ยังจัดการกับระดับการทำงาน (runlevel) แตกต่างกันออกไปเล็กน้อย สิ่งที่เหมือนกันคือ/etc/inittabไฟล์ที่กำหนดว่าแต่ละระดับการทำงานที่กำหนดค่าไว้จะทำอะไรในระบบนั้นๆ
ระดับการทำงานเริ่มต้น
| ระบบปฏิบัติการ | ระดับการทำงานเริ่มต้น |
|---|---|
| เอไอเอ็กซ์ | 2 [ 10 ] |
| แอนตี้เอ็กซ์ | 5 |
| เจนทู ลินุกซ์ | 3 [ 11 ] |
| เอชพี-UX | 3 (คอนโซล/เซิร์ฟเวอร์/ผู้ใช้หลายคน) หรือ 4 (กราฟิก) |
| สแล็คแวร์ ลินุกซ์ | 3 |
| โซลาริส / อิลลูมอส | 3 [ 12 ] |
| ระบบปฏิบัติการ UNIX System Vเวอร์ชัน 3.x และ 4.x | 2 |
| ยูนิกซ์แวร์ 7.x | 3 |
ในระบบปฏิบัติการ Linux ที่ตั้งค่า runlevel เป็น 5 ตามตารางด้านขวา runlevel 5 จะเรียกใช้งานสภาพแวดล้อมกราฟิกแบบมัลติยูเซอร์ที่ใช้ระบบ X Window Systemโดยปกติจะมีตัวจัดการการแสดงผลเช่นGDMหรือKDMอย่างไรก็ตาม ระบบปฏิบัติการ Solarisและillumosมักจะสงวน runlevel 5 ไว้สำหรับปิดเครื่องและปิดระบบโดยอัตโนมัติ
ในระบบส่วนใหญ่ ผู้ใช้ทุกคนสามารถตรวจสอบระดับการทำงานปัจจุบันได้โดยใช้คำสั่งrunlevelหรือ[ 13 ] โดยทั่วไป ผู้ ใช้ rootจะเปลี่ยนระดับการทำงานปัจจุบันโดยการเรียกใช้คำสั่งหรือไฟล์จะตั้งค่าระดับการทำงานเริ่มต้นด้วยรายการ who -rtelinitinit/etc/inittab:initdefault:
ในระบบ Unix การเปลี่ยนระดับการทำงาน (runlevel) ทำได้โดยการเริ่มเฉพาะบริการที่ขาดหายไป (เนื่องจากแต่ละระดับจะกำหนดเฉพาะบริการที่จะเริ่มต้น/หยุดทำงาน) ตัวอย่างเช่น การเปลี่ยนระดับการทำงานจาก 3 เป็น 4 อาจเริ่มต้นเฉพาะเซิร์ฟเวอร์ X ในเครื่องเท่านั้น การกลับไปที่ระดับการทำงาน 3 ก็จะหยุดการทำงานอีกครั้ง
การใช้งานอื่นๆ
โดยทั่วไป ข้อเสียสำคัญอย่างหนึ่งของคำสั่ง init คือมันเริ่มทำงานทีละงาน โดยรอให้แต่ละงานโหลดเสร็จก่อนจึงจะเริ่มงานถัดไป เมื่อกระบวนการเริ่มต้นระบบ ติดขัด เรื่องการรับส่งข้อมูล (I/O) อาจส่งผลให้เกิดความล่าช้าอย่างมากระหว่างการบูต การเพิ่มความเร็ว I/O เช่น การใช้ SSD อาจช่วยลดความล่าช้าได้ แต่ไม่ได้แก้ไขสาเหตุที่แท้จริง
มีความพยายามหลายอย่างในการแทนที่เดมอนเริ่มต้นแบบดั้งเดิมเพื่อแก้ไขปัญหานี้และปัญหาการออกแบบอื่นๆ ซึ่งรวมถึง:
ทั่วไป
| ชื่อ | นักพัฒนา | รุ่นล่าสุด | ใบอนุญาต | หมายเหตุ | |
|---|---|---|---|---|---|
| เวอร์ชั่น | วันที่ | ||||
| บูตสคริปต์ | ผู้ร่วมให้ข้อมูลสคริปต์ GoboLinux [ 14 ] | 016.02 | 16 สิงหาคม 2560 ; 8 ปีที่แล้ว | จีพีแอล | [ก] |
| บัสซี่บ็อกซ์-อินิต | บรูซ เปเรนส์ฯลฯ[ 15 ] [ 16 ] [ 17 ] | 1.36.1 [ 18 ] | 19 พฤษภาคม 2023 ; 3 ปีที่แล้ว | GPL-2.0 เท่านั้นตั้งแต่ 1.3.0 [ 19 ] GPL-2.0 หรือเวอร์ชันที่ใหม่กว่าจนถึง 1.2.2.1 [ 20 ] | [ข] |
| ดินิต | ดาวิน แมคคอล[ 21 ] | 0.21.0 [ 22 ] | 9 มีนาคม 2026 ; 3 เดือนที่แล้ว | อัล2 | [ค] |
| ยุค | ผู้มีส่วนร่วมในยุค[ 23 ] | 1.3.0 | 24 มิถุนายน 2558 ; 10 ปีที่แล้ว | ไม่ได้รับอนุญาต | [ d ] |
| ฟินิท | โยอาคิม ไวเบิร์ก เป็นต้น[ 25 ] | 4.16 [ 25 ] | 27 กุมภาพันธ์ 2026 ; 3 เดือนที่แล้ว | เอ็มไอที | |
| ginitd | เอสเอ็ม วูด-แมทเทอุสสัน | [ e ] | |||
| อินิตง | ผู้มีส่วนร่วมเริ่มต้น[ 27 ] | 0.6.10.2 | 25 มีนาคม 2550 ; 19 ปีที่แล้ว | GPL-3.0 [ 27 ] | [ f ] |
| เปิดตัว | บริษัท แอปเปิล อิงค์ | 10.4 | 29 เมษายน 2548 ; 21 ปีที่แล้ว | เป็นกรรมสิทธิ์เฉพาะ (เดิมคือAPSLแล้วตามด้วยAL2 ) | [ g ] |
| โอเพ่นอาร์ซี | นักพัฒนา OpenRC | 0.63.2 [ 28 ] | 13 มิถุนายน 2026 ; 9 วันที่แล้ว | เงื่อนไข BSD-2 | [ชม] |
| โปรซีด | แดเนียล โกลเล เป็นต้น[ 29 ] | 25 มีนาคม 2026 ; 2 เดือนที่แล้ว | เฉพาะ GPL-2.0 เท่านั้น | ||
| รูนิต | Gerrit Pape, นักพัฒนา runit | 2.3.1 [ 30 ] | 7 กุมภาพันธ์ 2026 ; 4 เดือนที่แล้ว | เงื่อนไข BSD-3 | [ฉัน] |
| ศูนย์จัดการบริการ (SMF) | ซัน ไมโครซิสเต็มส์ | 5.10 | 31 มกราคม 2548 ; 21 ปีที่แล้ว | ซีดีดีแอล | [ j ] |
| คนเลี้ยงแกะ | Ludovic Courtès [ 32 ]เป็นต้น[ 33 ] | 1.0.9 [ 34 ] | 3 ธันวาคม 2025 ; 6 เดือนที่แล้ว | จีพีแอล-3.0 หรือเวอร์ชันที่ใหม่กว่า | [ k ] |
| s6 | ลอเรนต์ แบร์โกต์[ 36 ] | 2.14.0.1 [ 37 ] | 24 มกราคม 2026 ; 4 เดือนที่แล้ว | ไอเอสซี | [ l ] |
| ซิสเต็มดี | เรดแฮท[ 40 ] 345 ในปี 2018 [ 41 ]รวม 2,032 [ 42 ] | 261 [ 43 ] | 19 มิถุนายน 2026 ; 3 วันที่แล้ว | LGPL-2.1-หรือเวอร์ชันที่ใหม่กว่า[ 44 ] | [ม] |
| ซิสเต็มสตาร์เตอร์ | วิลเฟรโด ซานเชซ | 10.4 | 29 เมษายน 2548 ; 21 ปีที่แล้ว | บีเอสดี | [ n ] |
| อัพสตาร์ท | บริษัท แคนอนิคอล จำกัด | 1.13.2 [ 46 ] | 4 กันยายน 2014 ; 11 ปีที่แล้ว | เฉพาะ GPL-2.0 เท่านั้น | [ o ] |
| ชื่อ | นักพัฒนา | รุ่นล่าสุด | ใบอนุญาต | หมายเหตุ | |
| เวอร์ชั่น | วันที่ | ||||
- ^สคริปต์บูตใน GoboLinux
- ^ busybox-initเหมาะสำหรับระบบปฏิบัติการฝังตัวใช้โดย Alpine Linux (ก่อนที่จะถูกแทนที่ด้วย OpenRC ), SliTaz 5 (Rolling), Tiny Core Linuxและ VMware ESXiและเคยใช้โดย OpenWrtก่อนที่จะถูกแทนที่ด้วย procd
- ^ dinit ซึ่งเป็นตัวจัดการบริการและระบบเริ่มต้น [ 21 ]
- ^ Epoch ระบบ init ของ Linux แบบเธรดเดียวที่เน้นความเรียบง่ายและการจัดการบริการ [ 24 ]
- ^ ginitd ซึ่งเป็นแพ็กเกจซอฟต์แวร์ที่ประกอบด้วยระบบ init และระบบการจัดการบริการ [ 26 ]
- ^ Initngคือฟังก์ชันทดแทน init อย่างสมบูรณ์ ออกแบบมาเพื่อเริ่มกระบวนการแบบอะซิงโครนัส
- ^ launchdคือโปรแกรมที่ใช้แทน init ใน Darwinและระบบปฏิบัติการที่ใช้ Darwin เป็นพื้นฐาน เช่น macOSและ iOSตั้งแต่ Mac OS X เวอร์ชัน 10.4 เป็นต้นไป (มันจะเรียกใช้ SystemStarter เพื่อรันกระบวนการ 'rc.local' และ SystemStarter แบบเก่า)
- ^ OpenRCคือโปรแกรมสร้างกระบวนการทำงานที่ใช้ init ที่ระบบจัดเตรียมไว้ให้ พร้อมทั้งให้การแยกกระบวนการทำงาน การเริ่มต้นแบบขนาน และการพึ่งพาบริการ ใช้โดย Alpine Linux , Gentooและระบบปฏิบัติการที่พัฒนาต่อยอดจาก Gentoo และมีให้เลือกใช้เป็นตัวเลือกใน Devuanและ Artix Linux
- ^ runitซึ่งเป็นการแทนที่ init แบบเต็มรูปแบบข้ามแพลตฟอร์มพร้อมการเริ่มต้นบริการแบบขนาน ใช้เป็นค่าเริ่มต้นใน Void Linux [ 31 ]
- ^ Service Management Facility (SMF) คือการทดแทน/ออกแบบใหม่ทั้งหมดของ init ตั้งแต่เริ่มต้นใน illumos / Solarisโดยเริ่มจาก Solaris 10 แต่ถูกเปิดใช้งานเป็นบริการเดียวโดย init แบบดั้งเดิมในรูปแบบ System V
- ^ Shepherdซึ่ง เป็นตัวจัดการบริการและเดมอน ของ GNUที่ให้การเริ่มต้นแบบอะซิงโครนัสตามการพึ่งพา เขียนด้วย Guile Schemeและมีจุดประสงค์เพื่อให้สามารถแฮ็กแบบโต้ตอบได้ในระหว่างการทำงานของระบบตามปกติ [ 35 ]
- ^ s6 ชุดซอฟต์แวร์ที่รวมระบบเริ่มต้น [ 38 ] [ 39 ]
- ^ systemdเป็นชุดซอฟต์แวร์ที่ใช้แทน init ใน Linux อย่างสมบูรณ์ ซึ่งรวมถึง daemon init พร้อมการเริ่มต้นบริการพร้อมกัน ตัวจัดการบริการ และคุณสมบัติอื่นๆ Debian (แทนที่ SysV init) และ Ubuntu ใช้ systemd รวมถึงการแจกจ่าย Linux ยอดนิยมอื่นๆ ณ เดือนกุมภาพันธ์ 2019 systemd ได้รับการนำไปใช้ในการแจกจ่าย Linux หลักๆ ส่วนใหญ่แล้ว [ 45 ]
- ^ SystemStarterคือโปรแกรมสร้างกระบวนการทำงานที่เริ่มต้นโดย init ในรูปแบบ BSD ใน Mac OS Xเวอร์ชันก่อน 10.4
- ^ Upstartซึ่งเป็นการแทนที่ init อย่างสมบูรณ์ ออกแบบมาเพื่อเริ่มกระบวนการแบบอะซิงโครนัส เริ่มต้นโดย Ubuntuและใช้งานโดย Ubuntu จนถึงปี 2014 นอกจากนี้ยังใช้ใน Fedora 9 [ 47 ] [ 48 ] Red Hat Enterprise Linux 6 [ 49 ]และ ChromeOSของ Google [ 50 ]
การสนับสนุนระบบปฏิบัติการ
| ชื่อ | ลินุกซ์ | บีเอสดี | ดาร์วิน | อื่น |
|---|---|---|---|---|
| บูตสคริปต์ | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| บัสซี่บ็อกซ์-อินิต | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| ดินิต | ใช่ | ใช่ | ใช่ | เลขที่ |
| ยุค | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| ฟินิท | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| อินิตง | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| เปิดตัว | เลขที่ | เลขที่ | ใช่ | เลขที่ |
| โอเพ่นอาร์ซี | ใช่ | ใช่ | เลขที่ | เลขที่ |
| โปรซีด | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| รูนิต | ใช่ | ใช่ | ใช่ | เลขที่ |
| ศูนย์จัดการบริการ (SMF) | เลขที่ | เลขที่ | เลขที่ | โซลาริส |
| คนเลี้ยงแกะ | ใช่ | เลขที่ | เลขที่ | จีเอ็นยู เฮิร์ด |
| s6 | ใช่ | ใช่ | ใช่ | เลขที่ |
| ซิสเต็มดี | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| ซิสเต็มสตาร์เตอร์ | เลขที่ | เลขที่ | ใช่ | เลขที่ |
| อัพสตาร์ท | ใช่ | เลขที่ | เลขที่ | เลขที่ |
| ชื่อ | ลินุกซ์ | บีเอสดี | ดาร์วิน | อื่น |
ความเข้ากันได้ อินเทอร์เฟซ และการเขียนโปรแกรม
| ชื่อ | musl เข้ากันได้กับlibc | ปราศจากการพึ่งพา | รูปแบบ สคริปต์ / บริการ | รูปแบบ บันทึกธรรมดา | การกำหนดค่า ต่อบริการ | กิจกรรม ข้ามหน่วยงาน | การเริ่มต้น บริการแบบขนาน | การกำกับดูแลกระบวนการ | ภาษาโปรแกรม | ขนาดของโค้ดเบส(บรรทัด) |
|---|---|---|---|---|---|---|---|---|---|---|
| บูตสคริปต์ | ? | ? | สคริปต์เชลล์[ 14 ] | ? | ? | ? | ? | ? | เชลล์ 66.6%; C 19.0%; ไพธอน 12.7%; อื่นๆ 1.7% [ 14 ] | ? |
| บัสซี่บ็อกซ์-อินิต | ? | ? | ? | ? | ? | ? | ? | ? | C 90.4%; สคริปต์เชลล์ 4.6%; C++ 1.7%; HTML 1.4%; แอสเซมบลี 0.8%; Make 0.5%; XML 0.2%; Perl 0.3%; Python 0.1% [ 53 ] | 319,897 [ 53 ] |
| ดินิต | ใช่ | ใช่ | การกำหนดค่า ข้อความ | ใช่ | ใช่ | ใช่ | ใช่ | พื้นเมือง | C++ 96.1%; Starlark 1.0%; C 1.0%; Shell 0.9%; Makefile 0.7%; Zig 0.2%; Go 0.1% [ 21 ] | ~25,000 |
| ยุค | ใช่ | libc, /bin/sh | ไฟล์ .conf หลายไฟล์หรือไฟล์เดียว | ใช่ | ใช่(เวอร์ชัน 1.1 ขึ้นไป) | ( การสนับสนุนขั้นพื้นฐาน, เวอร์ชัน 1.3 ขึ้นไป) | เลขที่ | ใช่ | C 98.2%; สคริปต์เชลล์ 1.8%; สร้าง 0.1% [ 54 ] | 10,546 [ 54 ] |
| ฟินิท | ? | ? | ไฟล์ .conf หลายไฟล์หรือไฟล์เดียว | ใช่ | ? | ? | ใช่ | ใช่ | C 86.7%; สคริปต์เชลล์ 9.7%; Automake 1.8%; Autoconf 1.5%; Make 0.3% [ 55 ] | 33,034 [ 55 ] |
| อินิตง | ? | ? | ? | ? | ? | ? | ? | ? | C 67.5%; Assembly 12.8%; shell script 13.2%; Python 2.7%; CMake 1.5%; Jam 1.1%; HTML 0.6%; Make 0.5%; Vim Script 0.1% [ 56 ] | 59,471 [ 56 ] |
| เปิดตัว | ? | ใช่ | พีลิสต์ | ? | ใช่ | เลขที่ | ใช่ | ใช่ | C 96.1%; สคริปต์เชลล์ 2.2%; C++ 1.3%; Make 0.4%; XML 0.1% [ 57 ] | 28,128 [ 57 ] |
| โอเพ่นอาร์ซี | ใช่ | เริ่มต้น(sysv หรือ BSD) | สคริปต์ เชลล์ | ใช่ | ใช่(ยืนยันแล้ว) | ใช่ | ปิดใช้งานโดยค่าเริ่มต้น | ผ่านเครื่องมือ ภายนอก | C 87.6%; สคริปต์เชลล์ 12.2%; Perl 0.2% [ 58 ] | 23,827 [ 58 ] |
| โปรซีด | ? | ? | สคริปต์เชลล์[ 59 ] | ? | ใช่[ 59 ] | ? | ? | ใช่[ 60 ] | C 98.8%; CMake 0.8%; สคริปต์เชลล์ 0.4% [ 61 ] | 18,832 [ 61 ] |
| รูนิต | ใช่ | ใช่ | สคริปต์ เชลล์ | ใช่ | เลขที่ | ใช่ | ผ่านโครงสร้างการ กำกับดูแล | พื้นเมือง | C 57.4%; HTML 32.1%; สคริปต์เชลล์ 6.3%; Make 4.0%; XML 0.2% [ 62 ] | 11,616 [ 62 ] |
| ศูนย์จัดการบริการ (SMF) | ? | เริ่มต้น(sysv?) | XML (+ สคริปต์เชลล์) | ใช่ | ใช่( อินสแตนซ์บริการ) | ใช่ | ใช่ | ใช่ | ซี | |
| คนเลี้ยงแกะ | ? | ? | ? | ? | ? | ? | ? | ? | Scheme 70.5%; สคริปต์เชลล์ 28.3%; Automake 0.7%; Autoconf 0.4% [ 63 ] | 6,606 [ 63 ] |
| s6 | ใช่ | เอ็กเซคไลน์ | เอ็กเซคไลน์/ เชลล์ | ใช่ | เลขที่ | ใช่ | ใช่ | พื้นเมือง | C 48.3%; HTML 46.1%; สคริปต์เชลล์ 2.8%; Autoconf 2.0%; Make 0.7%; Emacs Lisp 0.1% [ 64 ] | 31,069 [ 64 ] |
| ซิสเต็มดี | จำกัด | dbus udev dns ntp GNOME NetworkManager PipeWire ... [ 51 ] | ไฟล์หน่วย | ไม่(บันทึก) | ใช่ | ใช่ | ใช่ | ติดตั้งมาแต่ทึบแสง | C 77.9%; XML 12.5%; สคริปต์เชลล์ 3.9%; Python 3.2%; C++ 2.4%; CSS 0.1% [ 65 ] | 1,310,214 [ 65 ] |
| อัพสตาร์ท | ? | ? | ? | ? | ? | ? | ? | ? | C 93.1%; Python 2.5%; Automake 1.1%; C++ 2.4%; สคริปต์เชลล์ 0.3%; XML 0.3%; Autoconf 0.1%; สคริปต์ Vim 0.1% [ 66 ] | 126,865 [ 66 ] |
| ชื่อ | musl เข้ากันได้กับlibc | ปราศจากการพึ่งพา | รูปแบบ สคริปต์ / บริการ | รูปแบบ บันทึกธรรมดา | การกำหนดค่า ต่อบริการ | กิจกรรม ข้ามหน่วยงาน | การเริ่มต้น บริการแบบขนาน | การกำกับดูแลกระบวนการ | ภาษาโปรแกรม | ขนาดของโค้ดเบส(บรรทัด) |
ดูเพิ่มเติม
- การจัดการบริการระบบปฏิบัติการ
- ระบบจัดการเซสชัน (Session Manager Subsystem) — ระบบที่เทียบเท่าใน Windows NT
ลิงก์ภายนอก
- หน้าคู่มือการใช้งาน FreeBSD init
- เอกสารสรุปรูปแบบการเริ่มต้นระบบของ Unix (ปี 2007)
- คู่มือเริ่มต้นใช้งานอย่างรวดเร็วสำหรับ Solaris Service Management Facilityที่Wayback Machine (เก็บถาวรเมื่อวันที่ 31 ธันวาคม 2548)
- ประวัติความเป็นมาของระบบ init สมัยใหม่ (1992–2015) เก็บถาวรเมื่อ 2015-10-11 ที่Wayback Machine
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เริ่มต้น
ใน ระบบปฏิบัติการ คอมพิวเตอร์ แบบ Unix นั้น init ( ย่อมาจาก initialization ) เป็น กระบวนการ ในพื้นที่ผู้ใช้ (user-space ) แรกที่เริ่มต้นระหว่าง การบูต ระบบปฏิบัติการ init เป็น...
ศึกษาเกี่ยวกับระบบ Unix/BSD
การวิจัย Unix init เรียกใช้ สคริปต์เชลล์ เริ่มต้น ที่อยู่ใน /etc/rc , [ 2 ] จากนั้นเรียกใช้ getty บนเทอร์มินัลภายใต้การควบคุมของ /etc/ttys .
สไตล์ SysV
เมื่อเปรียบเทียบกับรุ่นก่อนหน้า ระบบ UNIX System III ของ AT&T ได้นำเสนอรูปแบบใหม่ของการกำหนดค่าการเริ่มต้นระบบ [ 9 ] ซึ่งยังคงใช้ต่อไป (โดยมีการปรับเปลี่ยน) ใน UNIX System V และจึงเรียกว่า "SysV-style init"
ระดับการวิ่ง
ระดับ การทำงาน (runlevels) ใน System V อธิบายถึงสถานะต่างๆ ของเครื่อง โดยมีลักษณะเฉพาะคือ กระบวนการและโปรแกรมเบื้องหลัง (daemon) ที่ทำงานอยู่ในแต่ละสถานะ โดยทั่วไปแล้วมีระดับการทำงานเจ็ดระดับ ซึ่งสามระดับถือเป็น "มาตรฐาน"...