การเริ่มต้น - มันคืออะไร?

โกลอฟนา

เบราว์เซอร์

กล่าวอีกนัยหนึ่ง “การเริ่มต้น” หมายถึงการเตรียมซอฟต์แวร์หรือฮาร์ดแวร์ก่อนดำเนินการ

การเตรียมการนี้ขึ้นอยู่กับข้อมูลเริ่มต้นของพารามิเตอร์ระบบ

สำหรับโปรแกรมการเริ่มต้น ค่าเริ่มต้นคือโปรแกรมการเปลี่ยนแปลง

การเริ่มต้นอาร์เรย์ข้อมูล

การเริ่มต้นของเทือกเขาจะช่วยลดจำนวนหลุมพราง

ประการแรก ในมิดเดิลแวร์ซอฟต์แวร์บางตัว ข้อมูลในอาเรย์จะเริ่มต้นด้วยองค์ประกอบ A เป็นศูนย์หรือด้วย A ตัวแรก โดยที่ A คือชื่อของอาเรย์

ในการเริ่มต้นอาร์เรย์ ให้รันคำสั่ง for (foreach) ลูป

มวลจะถูกเติมเต็มทีละขั้นตอน หนึ่งองค์ประกอบต่อชั่วโมงของรอบการ "วิ่ง" ของผิวหนัง

for loop สร้างการเปลี่ยนแปลงภายในเครื่องสำหรับ loop - ควบคุมจำนวนรอบ

ค่าหยาบของวงจรการเปลี่ยนแปลงอาจตรงกับองค์ประกอบแรกของอาเรย์: A หรือ A Kintseve – พร้อมจำนวนองค์ประกอบของอาเรย์

ในการจัดระเบียบการกรอกข้อมูลอาร์เรย์สองมิติด้วยข้อมูล จำเป็นต้องแทรกวงจรหนึ่งเข้าไปในอีกวงจรหนึ่ง

ในความเป็นจริง เป็นไปไม่ได้ที่จะอธิบายวิธีการเริ่มต้นคอมพิวเตอร์อย่าง "หมดจด" เนื่องจากระบบที่หลากหลายมีภาระงานน้อย ดังนั้นจึงต้องรีบูท ติดตั้งใหม่ ฯลฯ โดยพื้นฐานแล้ว Ale ดูเหมือนว่าคำสั่งที่กำลังจะเกิดขึ้น:
เมื่ออายุการใช้งานเปิดขึ้น ตรรกะของโปรเซสเซอร์จะถูกยกเลิกโดยสิ้นเชิง และโปรเซสเซอร์จะเริ่มรวบรวมชุดคำสั่งที่จัดเก็บไว้ใน ROM บนเมนบอร์ดตั้งแต่แรก

  1. ชุดสามารถแบ่งออกเป็นสามส่วนตามตรรกะ:
  2. การทดสอบตัวเองเมื่อเปิดเครื่อง (POST) - ทำงานเพียงครั้งเดียวและทันทีหลังจากเปิดเครื่อง
  3. ในระหว่างการทดสอบนี้ อุปกรณ์จะถูกตรวจสอบว่ามีความเสียหายร้ายแรงหรือไม่ (การทำงานของอุปกรณ์ล้มเหลว)

สัญญาณหนึ่งที่มองเห็นได้บนหน้าจอคือการทดสอบหน่วยความจำ

การเริ่มต้น – เริ่มต้นทันทีเมื่อติดตั้งเครื่องใหม่ (เช่น เมื่อผู้ใช้กด Ctrl-Alt-Del) – เริ่มต้นอุปกรณ์ทั้งหมดที่มีอยู่บนบอร์ดในสล็อตส่วนขยาย (ISA, PCI, AGP)
ส่วนที่สามคือ BIOS (ระบบอินพุต/เอาท์พุตพื้นฐาน) ซึ่งเป็นระบบอินพุต/เอาท์พุตพื้นฐานในระดับต่ำ

โดยทั่วไปการมี BIOS บนอะแดปเตอร์ที่แตกต่างกันจะรบกวน BIOS ของระบบเพื่อควบคุม - ในกรณีของอะแดปเตอร์วิดีโอ - เมื่อเปิดโหมด ฯลฯ ในกรณีของการ์ด Edge - การควบคุมขอบ (ในกรณีของดิสก์ รถยนต์ใหม่ - รายละเอียดเพิ่มเติม) - หากมี BIOS บนการ์ดและฮาร์ดไดรฟ์ ตัวอย่างเช่น BIOS สามารถขับเคลื่อนได้ - เราจะมีส่วนร่วมอย่างไร - จากการ์ดหรือจาก HDD จริง ?

หากมีอะแดปเตอร์ SCSI คุณจะต้องรับผิดชอบในการจัดเตรียมอุปกรณ์ของคุณ (ดิสก์ ไดรฟ์ซีดี อุปกรณ์จัดเก็บข้อมูลสตริง ฯลฯ) และอุปกรณ์ใดๆ ดังกล่าวที่พบระหว่างดิสก์ SCSI คุณจะต้องรองรับ int13 ก่อนที่ระบบจะเสียหาย สำหรับพวกเขา เหมือนกับฮาร์ดไดรฟ์ขั้นพื้นฐานที่สุด

อย่างไรก็ตาม ไม่จำเป็นต้องเริ่มต้นอุปกรณ์ SCSI - ตัวอย่างเช่น เมื่อเริ่มต้นระบบ ก็สามารถเปิดใช้งานได้ - เนื่องจากอุปกรณ์ SCSI ไม่ได้รุกราน แต่ก็สมเหตุสมผล

จากนั้น ตรวจสอบการมีอยู่ของฮาร์ดไดรฟ์ (IDE) บนคอนโทรลเลอร์ I/O ฟล็อปปี้ไดรฟ์ และอุปกรณ์ต่อพ่วงที่คล้ายกัน
แป้นพิมพ์ได้รับการตรวจสอบและหลังจากการตรวจสอบสำเร็จ จะได้ยินเสียงบี๊บเดียว ซึ่งบ่งชี้ว่าการกำหนดค่าเริ่มต้นสำเร็จ (เช่นในกรณีที่มีเสียงบี๊บ BIOS ต่างๆ) เกี่ยวกับการแก้ไขและ/หรือแจ้งเกี่ยวกับการแก้ไขเหล่านั้นบนหน้าจอ)

สามารถอธิบายสั้น ๆ ได้ดังนี้: ทุกอย่างยกเว้น SCSI, IDE, USB "มีชีวิตขึ้นมา" ในเวลาเดียวกัน - จากอะแดปเตอร์ให้ติดตั้งอะแดปเตอร์วิดีโอซึ่งจะเริ่มต้นจนกว่าจะตรวจสอบหน่วยความจำ

หลังจากเริ่มต้นแล้วและแก้ไขแล้ว เซกเตอร์แรกของแทร็กแรกของหัวแรกของฮาร์ดดิสก์จะถูกอ่านและการควบคุมจะถูกโอนไปยังเซกเตอร์ที่รับผิดชอบซึ่งจะควบคุมการดำเนินการเพิ่มเติม (หรือดูเหมือนว่า "ไม่มีระบบให้บูต" ")

หรือในลักษณะเดียวกัน ระบบจะเข้าไปยุ่งเกี่ยวกับฟล็อปปี้ดิสก์

ระบบที่เริ่มกระบวนการอื่นๆ ทั้งหมด

รันเป็น daemon และเรียกใช้ด้วย PID 1 การโทร (ขึ้นอยู่กับ Filesystem Hierarchy Standard) รันบนพาธ /sbin/init

เข้าใจถึงความสำคัญของการจัดระบบย่อยของหุ่นยนต์ในระบบปฏิบัติการ เช่น System V และระบบสไตล์ BSD

เป็นเวลานานที่สุด มันเป็นระบบย่อยการเริ่มต้นหลักใน Linux จนกระทั่งถูกแทนที่ด้วย systemd ในการกระจายส่วนใหญ่

สำหรับ Solaris 10 ตำแหน่งเริ่มต้นจะถูกตั้งค่าเป็น Service Management Facility

ระบบ Unix จำนวนหนึ่งมีทางเลือกอื่นในการเริ่มต้น: Upstart, Runit, Daemontools, Launchd, Initng, OpenRC ในกระบวนการติดตั้ง หลังจากเตรียมใช้งานเคอร์เนลแล้ว /sbin/init ควรถูกเรียกใช้งานเป็นกระบวนการแรกในโหมดระบบ และ init บ่งบอกถึงการติดตั้งระบบเพิ่มเติมซึ่งจะมีการเรียกใช้สคริปต์เริ่มต้น เช่น การตรวจสอบและการติดตั้งระบบไฟล์ การเรียกใช้ daemons ที่จำเป็น การตั้งค่าเคอร์เนล (รวมถึงการติดตั้งโมดูลเคอร์เนลด้วยฮาร์ดแวร์ที่ติดตั้ง การตั้งค่าที่อยู่ IP ตารางเส้นทาง และงานอื่นๆ) การเรียกใช้เชลล์กราฟิก ข้อมูลพื้นฐานสำหรับบัญชีของคุณอยู่ใน /etc/inittab การใช้งาน init ในรูปแบบ System V แนะนำแนวคิดของระดับการสืบทอด - ขั้นตอนของการนำระบบปฏิบัติการไปใช้ ในกรณีนี้ สถานการณ์จำลองการเริ่มต้นของระดับสกินจะอยู่ในไดเร็กทอรีตั้งแต่ /etc/rc0.d ถึง /etc/rc6.d โดยที่ตัวเลขหลัง rc ระบุจำนวนระดับของการกำหนดค่าเริ่มต้น เริ่มต้น ไฟล์ก้น /etc/inittab: รหัส:5:ค่าเริ่มต้นเริ่มต้น: ศรี::sysinit:/etc/rc.d/rc.sysinit

คำอธิบายแถวแรกมีเทอร์มินัลและการกำหนดค่าอยู่ด้านหลังการเชื่อมต่อ

  • จากจุดเริ่มต้นของไฟล์นี้ มีการอธิบายการกำหนดค่าเริ่มต้นแบบเดียวกัน
  • จากนั้นคอนโซลเสมือนจะเริ่มทำงาน
  • เรกคอร์ดการเริ่มต้นคอนโซลประกอบด้วยฟิลด์ที่คั่นด้วยกล่องคู่และมีลักษณะดังนี้:
  • 1 - หมายเลขซีเรียลของคอนโซล

2345 – หมายเลขระดับการเริ่มต้นซึ่งคอนโซลถูกเตรียมใช้งาน

เกิดใหม่ - พารามิเตอร์นี้หมายความว่า init มีหน้าที่รับผิดชอบในการรีสตาร์ทกระบวนการคอนโซลบริการหลังจากออกจากระบบเซสชันหรือในกรณีที่เกิดข้อขัดข้อง

/sbin/mingetty tty6 - โปรแกรม (ตามพารามิเตอร์ที่ระบุ) ที่ทำหน้าที่เป็นคอนโซล เกิดใหม่ - พารามิเตอร์นี้หมายความว่า init มีหน้าที่รับผิดชอบในการรีสตาร์ทกระบวนการคอนโซลบริการหลังจากออกจากระบบเซสชันหรือในกรณีที่เกิดข้อขัดข้อง ».

ด้วยวิธีนี้ คุณสามารถสร้างแถวการกำหนดค่าเริ่มต้นของคุณเอง (หมายเลข 4 หรือ 7, 8...) ได้อย่างง่ายดาย โดยเพียงแค่แก้ไขไฟล์ /etc/inittab และกรอกรายการที่จำเป็นใน /etc/rc.d/rc*.d ไดเรกทอรี SysVinitเช่นเดียวกับรุ่นก่อน AT&T UNIX System III นำเสนอรูปแบบใหม่ของการกำหนดค่าการเริ่มต้นระบบที่เก็บรักษาไว้ (พร้อมการเปลี่ยนแปลง) ใน UNIX System V และเรียกว่า "

ระบบปฏิบัติการ V จะอยู่ในตำแหน่งที่ห่างไกลตำแหน่งใดตำแหน่งหนึ่ง

ระดับการวิ่ง - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบตามกฎแล้ว คู่แข่งรายอื่นจะติดตั้งโหมดระบบเดียว (ใช้เพื่ออัปเดตระบบที่ผิดพลาด) ระบบปิด และระบบอื่นๆ

การสลับจาก Windows ระดับหนึ่งไปเป็นอีกระดับหนึ่งจะทำให้เกิดการเปิดตัวชุดสคริปต์สำหรับการเริ่มต้นระบบแต่ละระดับ เช่น การติดตั้งระบบไฟล์ การเริ่มหรือการติดตั้ง daemon การเริ่มหรือการติดตั้ง X Window System การออกจากระบบเครื่อง เป็นต้น

และผสมไพ่ทั้งหมด.

ใครจะเป็นผู้ซื้อที่แท้จริง? Daniel J. Bernstein เป็นนักคณิตศาสตร์และนักวิทยาศาสตร์วิทยาการเข้ารหัส เป็นผู้เขียน MTA qmail ยอดนิยมและโปรแกรมขนาดเล็กอื่นๆ บางโปรแกรม รวมถึง daemontools - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบสำหรับระบบการเริ่มต้นปัจจุบันส่วนใหญ่


ภูตเครื่องมือ


ตอนนี้ หากความร่วมมือของ Linux หลีกเลี่ยงการแยกผ่าน systemd ก็ถึงเวลาที่จะต้องพิจารณาว่าจะช่วยตามหลักการและปรัชญาของ Unix ได้อย่างไร

  • DJB เป็นโปรแกรมเมอร์เซนที่ผสมผสานความเรียบง่ายและความเรียบง่าย และมีมีดโกนของ Occam ติดตั้งอยู่ในคีย์บอร์ด
  • โซลูชันนี้เรียบง่ายและสวยงาม โดยจะมีซอฟต์แวร์ที่เชื่อถือได้และปลอดภัยซึ่งรักษาทรัพยากรระบบปฏิบัติการจำนวนน้อยที่สุดไว้บนรากฐาน
  • แกนของการกระทำคือลักษณะเฉพาะของรูปแบบการทำงานนี้ ไฟล์ที่ใหญ่ที่สุดของโค้ดเอาต์พุต multilog.c มากกว่า 13898 ไม่มีแถว แต่เป็นไบต์.
  • คำสั่ง wc ระบุโค้ดเพิ่มเติมอีก 617 แถว

ฟังก์ชันส่วนใหญ่ต้องการน้อยกว่า 30 แถว - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบหลักการ - ไม่มีอะไรเลย

  • อย่าเป็นคนงี่เง่า
  • หลักการคือใช้ทุกอย่างที่ OS จัดให้ และอย่าลืมเรื่องจักรยานด้วย
  • ทำไมหลักการที่ยอดเยี่ยมเช่นนี้และถึงแม้จะดูหลักการที่ผู้เขียนสนับสนุนพวกเขาอย่างคลั่งไคล้?
  • วัสดุในอนาคต

- ไดเร็กทอรี, กระบวนการ, FIFO, ไฟล์ที่จะบันทึก

สิ่งนี้ให้ข้อดีมากมายแก่การพัฒนาและโปรแกรมที่ได้รับการพัฒนาอย่างดี: - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบการทดสอบการเริ่มบริการนั้นง่ายพอ ๆ กับการปอกเปลือกลูกแพร์ - หากคุณเรียกใช้ไฟล์ ./run บริการจะเริ่มต้นขึ้น


คุณสามารถใช้ Vikorist เพื่อตั้งโปรแกรมในภาษาใดก็ได้ เช่นเดียวกับ Bash เป็นเวลานานที่สุด มันเป็นระบบย่อยการเริ่มต้นหลักใน Linux จนกระทั่งถูกแทนที่ด้วย systemd ในการกระจายส่วนใหญ่ มันจะมีประโยชน์ในการรวบรวมไบนารี่ เป็นที่ชัดเจนว่าโปรแกรมสามารถทำงานได้โดยไม่ต้องอ่านเอกสารประกอบและอ่านโค้ดเอาต์พุตจริงๆ แน่นอนว่าการแยกวิเคราะห์โครงสร้างข้อความที่แตกต่างกันเป็นสิ่งสำคัญเพื่อให้ทำงานได้อย่างชาญฉลาด ผู้เขียนมีเอกลักษณ์เฉพาะตัวในการใช้พลังลำดับชั้นของระบบไฟล์ Unix เพื่อสร้างโครงสร้างของคีย์ตัวแปร = คีย์ค่า
โต๊ะปรับระดับ DT Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า
DJB ได้ระบุไดเร็กทอรี /service, /command สำหรับโค้ดโปรแกรม และแนะนำให้สร้าง /package สำหรับเอาต์พุตโปรแกรม Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า
แม้ว่าจะได้รับความเคารพแม้ในทางที่ไม่ดีใน Unix และ Linux แต่ผู้สร้างชุดแจกจ่ายก็พยายามอย่างดีที่สุดที่จะกำจัดใครก็ตาม รวมถึงผู้ใช้ที่มีสิทธิ์รูทด้วย โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า
คุณสมบัติ Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า
ทีทีส โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า
init.d Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต Varto จ่ายส่วยให้กับโครงสร้างไดเรกทอรีนอกรีต โปรแกรมจะสร้างไดเร็กทอรีในรูทของระบบไฟล์ Unix โดยไม่ชักช้า

rc.local - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบ/บริการ


อีกจุดหนึ่งมีความซับซ้อนน้อยกว่าในแง่นั้น ซึ่งจะง่ายกว่ามากหากบริการเริ่มโดยอัตโนมัติเป็นครั้งแรก ในขณะที่ในระบบการเริ่มต้นและการจัดการบริการอื่น ๆ คำสั่งเดียวก็เพียงพอที่จะเริ่มบริการเป็นครั้งแรก


ความสามารถในการรีสตาร์ทบริการในโหมดอัตโนมัติเมื่อเสร็จสิ้นแล้วถือเป็นก้าวกระโดดที่ยิ่งใหญ่ในขณะนั้น


ณ วันนี้มันเป็น garazd แล้ว


ตำแหน่งที่สี่คือสัญญาณ - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบคำสั่ง svc ดังที่แสดงด้านล่าง อนุญาตให้บริการส่งสัญญาณ POSIX ใดๆ ก็ได้

ตำแหน่งที่เหลืออีกสองตำแหน่งดูเหมือนจะค่อนข้างลึกซึ้งและไม่ชัดเจนนัก

ต่ออายุกระบวนการเปลี่ยนเธรดอื่น - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบยังไม่ชัดเจนว่าทำไมผู้เขียนถึงไม่สนใจว่าโปรแกรมของเขาจะถูกถ่ายโอนไปยังแพลตฟอร์มอื่นอีกต่อไป


โครงสร้างดีที




ตามคำพูดของผู้เขียน:


- นี่คือชุดเครื่องมือสำหรับการรันบริการ UNIX


คุณสมบัติหลักของเครือข่ายแบบดั้งเดิม (โครงสร้างไดเร็กทอรี rcX.d, rc.d, rc.local ฯลฯ ) คือความสามารถในการรีสตาร์ทบริการในกรณีที่เกิดข้อขัดข้องและความพร้อมใช้งานของโปรแกรมสำหรับจัดการและหมุนเวียนบันทึก - multilog . - โปรดทราบว่าระดับหนึ่งถูกกำหนดโดยสถานะการทำงานปกติของระบบนอกจากนี้ multilog ยังช่วยให้คุณบันทึกเอาต์พุตของโปรแกรมโดยไม่ต้องเปลี่ยนเส้นทางเอาต์พุตไปที่ syslog


ด้วยวิธีนี้ คุณสามารถเรียกใช้โปรแกรมเป็นบริการโดยไม่ได้ตั้งใจได้อุปกรณ์ภายในของ daemontools ล้อมรอบด้วยเส้นสีแดง


ตอนนี้เล็กน้อยเกี่ยวกับการปลูกหุ่นยนต์ด้วยโปรแกรมในตอนแรก ระบบอินเทอร์เน็ตจะเปิดตัว svscanboot ซึ่งจากนั้นจะเปิดโปรแกรม svscan ในไดเร็กทอรี svscan ใหม่


ไวยากรณ์ของคำสั่ง svc และตัวเลือกแสดงอยู่ด้านล่าง


บริการตัวเลือก svc
  • -u: ขึ้น เริ่มบริการ และรีสตาร์ทบริการ
  • -D: ลง บริการความร่าเริง
  • -t: ยุติซึ่งส่งสัญญาณ TERM ไปยังบริการ
  • -k: Kill ส่งสัญญาณ KILL ไปยังบริการ
  • -p: หยุดชั่วคราวซึ่งจะส่งสัญญาณ STOP ไปยังบริการ
  • -c: ดำเนินการต่อซึ่งจะส่งสัญญาณ CONT ไปยังบริการ
  • -h: Hangup ซึ่งส่งสัญญาณ HUP ไปยังบริการ
  • -a: Alarm ซึ่งจะส่งสัญญาณ ALRM ไปยังบริการ
  • -h: ขัดจังหวะซึ่งส่งสัญญาณ INT ไปยังบริการ
  • -x: ออก ควบคุมการยุติหุ่นยนต์แบบนั้น./run หรือมิฉะนั้นให้เสร็จสิ้น
  • -o: หนึ่งครั้ง ให้เริ่มบริการ แต่อย่ารีสตาร์ทหลังจากเสร็จสิ้น

อีกสถานการณ์หนึ่งคือในไดเร็กทอรีการทำงาน supervise มีไดเร็กทอรีย่อย./log ซึ่งมี./log/run จากนั้นสำเนาของการกำกับดูแลอีกชุดหนึ่งจะถูกเปิดใช้งาน และช่องทางจะถูกสร้างขึ้นระหว่าง./run และ./log/ วิ่ง.


ลองเพิ่มบริการ sshd


#!/bin/sh # เปลี่ยนเส้นทาง stderr ไปยัง stdout exec 2>&1 # ด้วยตัวเลือก -D sshd ถูกระบุอย่างชัดเจน ด้วยตัวเลือก -e จะดีกว่าถ้าเขียนถึง stderr exec /usr/sbin/sshd -D -e

ในกรณีนี้ โครงสร้างไดเร็กทอรีอาจมีลักษณะเช่นนี้


- บริการ/ |- ngetty/ |

|- วิ่ง |


|-บันทึก/ |

|- วิ่ง |- sshd/ |

|- วิ่ง |


|-บันทึก/ |
  • |- วิ่ง |- ปลาหมึก/ |

|- วิ่ง |

|-บันทึก/ |

|- วิ่ง


หลังจากที่ svscan ผ่านรายการนี้ เราจะเห็นแผนผังกระบวนการ ซึ่งกระบวนการบริการจะติดตามบริการและบันทึก
  • -svscan-+-บริการ-+-ngetty |

`-บันทึกบริการ +-บริการ-+-sshd |

หากคุณมีโปรแกรม foo ที่ไม่เก็บบันทึก คุณสามารถใช้ multilog ได้อย่างง่ายดายโดยรวบรวม stdout และ stderr พร้อมการประทับเวลาในไฟล์แยกต่างหาก

หลังจากเสร็จสิ้นการติดตั้งเคอร์เนลซึ่งเราจัดการในการอัพเดตครั้งล่าสุด ก็ถึงเวลาเริ่มต้นระบบแล้ว

เริ่มต้นด้วยการเรียกใช้กระบวนการ init ซึ่งอยู่ในไฟล์ชื่อเดียวกัน /sbin/init

มาดูพนักงานของมันกันดีกว่า

ลำดับแรกของธุรกิจคือการตรวจสอบความสมบูรณ์ของระบบไฟล์ที่เตรียมไว้

ในขั้นแรกจะมีการตรวจสอบว่ามีบิต "คลีนไบต์" อยู่หรือไม่ ซึ่งจะถูกติดตั้งโดยอัตโนมัติในระหว่างที่เซสชั่นการทำงานก่อนหน้าเสร็จสมบูรณ์อย่างถูกต้อง

ตัวอย่างเช่น ขั้นตอนบังคับในขั้นตอนของการรันสคริปต์การเริ่มต้นคือการติดตั้ง (และการติดตั้งใหม่) ระบบไฟล์ที่จำเป็นในโหมดอ่าน/เขียน - แม้แต่ระบบไฟล์ที่จดจำจากพาร์ติชั่นด้านหน้า เมื่อไม่มีระบบไฟล์รูทเคอร์เนลที่ดำเนินการอยู่ ติดตั้งในโหมด "อ่านอย่างเดียว"

ทั้งนี้ขึ้นอยู่กับคำสั่งโดยตรง # /sbin/mount -a สั่งให้เมานต์ระบบไฟล์ทั้งหมดและเข้าสู่ที่เก็บข้อมูลของหนึ่งในสคริปต์เริ่มต้นจะอยู่ตรงไหนในระบบ และในเวลาที่เหมาะสม เราจะได้รู้ว่ามันอยู่ที่ไหนในสถานการณ์ของเรา)

และคำว่า "ทั้งหมด" หมายถึงอะไร (ชื่อตัวเลือก -a - in

  • ทั้งหมด
  • ) - นี่คือรายการอาร์กิวเมนต์ (อุปกรณ์และจุดติดตั้ง) รวมถึงตัวเลือกที่สามารถติดตั้งระบบไฟล์อื่นได้ - และตั้งค่าแทนไฟล์การกำหนดค่า /etc/fstab
  • นี่เป็นฐานข้อมูลที่เรียบง่าย แต่ละบันทึกสอดคล้องกับระบบไฟล์ซึ่งอำนวยความสะดวกในการติดตั้ง และฟิลด์ที่คั่นด้วยอักขระเว้นวรรค (ช่องว่าง) หรือการจัดทำตาราง ได้แก่:
  • ฉันจะแนบไฟล์ที่มีระบบไฟล์
จุดยึด - ไดเร็กทอรีในลำดับชั้นของไฟล์

ประเภทระบบไฟล์

ตัวเลือกการติดตั้ง (มักเป็นค่าเริ่มต้น)

ลำดับการเริ่มต้นจะมีการอธิบายไว้เมื่อดำเนินการอย่างปลอดภัย เนื่องจากไม่มีความเสียหายในทุกขั้นตอน

ปัญหาที่ร้ายแรงที่สุดเกิดขึ้นเมื่อติดตั้งระบบไฟล์ สาเหตุหลักมาจากคำอธิบายที่ไม่ถูกต้องของไฟล์ /etc/fstab (ซึ่งเป็นข้อบกพร่องเบื้องต้น) หรือขาดการสนับสนุนจากเคอร์เนล (หรือโมดูล) สำหรับระบบประเภทไฟล์ที่มีราก ของแผนผังไฟล์

เมื่อเคอร์เนลเข้าสู่ภาวะตื่นตระหนก (เรียกว่า Kernel panic) และความหลงใหลยังคงไม่สามารถเปิดเผยได้

ความล้มเหลวระหว่างการดำเนินการสคริปต์การเริ่มต้นอาจนำไปสู่ความจริงที่ว่าบริการจะไม่สามารถใช้งานได้หลังจากที่ระบบติดไวรัส เมื่อเรียกใช้สคริปต์

โปรดทราบว่าการชำระเงินในช่วงระยะเวลาการเตรียมการก่อนการลงทะเบียนนั้นไม่เป็นที่ยอมรับเช่นกัน ดังนั้นจึงทำให้การทำงานปกติเป็นไปไม่ได้

อย่างไรก็ตาม ไม่มีเหตุผลที่จะต้องตื่นตระหนกเนื่องจากความสำคัญของการระเบิด - เมื่อแกนกลางเข้าสู่ภาวะตื่นตระหนก

ปัญหาทั้งหมดเกี่ยวกับการเริ่มต้นระบบการเจียรสามารถแก้ไขได้ไม่ทางใดก็ทางหนึ่ง

ลิงก์ระบบจะได้รับตามลำดับที่กลับรายการและเตรียมใช้งาน

เริ่มต้นด้วยการพยายามดำเนินการส่วนเสริมที่ทำงานอยู่ทั้งหมดให้ถูกต้อง และหากไม่สามารถทำได้ ให้ดำเนินการให้เสร็จสิ้นโดยอัตโนมัติ

จากนั้นบริการและปีศาจเริ่มต้นทั้งหมดจะหยุดลง

แทนที่จะเป็นดิสก์แคช ไฟล์จะถูกเขียนลงในดิสก์และระบบไฟล์จะถูกยกเลิกการต่อเชื่อม หลังจากที่คุณโทร คุณจะได้รับแจ้งเกี่ยวกับความเป็นไปได้ในการปิดเครื่องที่ใช้งานอยู่อย่างปลอดภัยหรือจะปิดโดยอัตโนมัติเมื่อรีสตาร์ททุกอย่างจะถูกกู้คืนด้วยตัวเอง แต่หลังจากระบบขัดข้อง รถจะเริ่มรีสตาร์ทโดยอัตโนมัติ กระบวนการเริ่มต้นและ/หรือรีสตาร์ททั้งหมดจะถูกระบุด้วยสคริปต์ที่คล้ายกับสคริปต์การเริ่มต้นเป็นเวลาหลายปีแล้วที่กฎข้อแรกของเทคโนโลยีความปลอดภัยคือการป้องกันการเชื่อมต่อในชีวิตที่เรียบง่าย และบอกตามตรงจนกระทั่งเมื่อไม่นานมานี้สิ่งนี้เต็มไปด้วยความไม่สะดวกต่างๆอย่างไรก็ตาม เคอร์เนล Linux ปัจจุบันรองรับมาตรฐาน ACPI (การกำหนดค่าขั้นสูงและอินเทอร์เฟซพลังงาน)

สมมติว่าระบบทำงานได้อย่างราบรื่นเมื่อเชื่อมต่อเครื่อง - ระบบจะตอบสนองต่อการกดปุ่ม Power บนเคสคอมพิวเตอร์ (และโดยปกติจะไม่ตอบสนองต่อสวิตช์หน่วยจ่ายไฟหรือสายไฟ) ระบบจะตอบสนองในลักษณะเดียวกัน เกี่ยวกับการปิดระบบ -h now คำสั่ง SysVinit Zokrema ใน Zenwalk ขั้นตอนนี้เสร็จสิ้นอย่างง่ายดาย เป็นที่เข้าใจได้ว่า "การปีน" ในปัจจุบันเป็นส่วนใหญ่

เพื่อให้เข้าใจกระบวนการเริ่มต้นระบบ สิ่งสำคัญคือต้องเข้าใจ หลังจากที่คุณโทร คุณจะได้รับแจ้งเกี่ยวกับความเป็นไปได้ในการปิดเครื่องที่ใช้งานอยู่อย่างปลอดภัยหรือจะปิดโดยอัตโนมัติระดับการวิ่ง

  • - นี่เป็นหนึ่งในคำศัพท์เหล่านี้ ไม่ว่าจะเป็นการแปลภาษารัสเซียของอาคารใด ๆ เพียงแค่เอาชนะมันจาก pantelik ของ koristuvach ที่หยาบ
  • เพราะรีเลย์แบบนี้มักจะถูกไวโคไลซ์
เนื้อหาอื่น ๆ อีกมากมายถูกขายให้กับผู้สร้างการแจกจ่าย

เหตุใดเราจึงเปลี่ยนมาใช้แอปพลิเคชันของฮีโร่ของเรา ซึ่งก็คือการแจกจ่าย Zenwalk ในทันที

  • ด้วยเหตุนี้ จึงเป็นสิ่งสำคัญที่จะต้องพิจารณาไฟล์ /etc/inittab อย่างละเอียด
  • ในกรณีนี้ หลังจากลิขสิทธิ์ทุกประเภทแล้ว ระดับการรันทั้งหมดจะได้รับการพิจารณาใหม่ในขั้นต้น และจะมีการอธิบายความหมายสำหรับการแจกจ่าย Slackware เช่นเดียวกับใน Zenwalk ซึ่งเป็นไซต์โดยตรงของเขา จะมีการพูดคุยกันในรายละเอียดเท่านั้น ดังนั้นเรามาเน้นไปที่รายละเอียดเหล่านี้และด้วยความเคารพ:
  • 0 = ระบบผิดพลาด;
  • 1 = โหมดเดี่ยว;
  • 2 = ไม่ได้รับชัยชนะ แต่ปรับคล้ายกับระดับการวิ่ง 3;
  • 3 = ความคุ้มครองประกันภัยสำหรับโหมด Rich Text;
4 = ความครอบคลุมสำหรับโหมดกราฟิกที่หลากหลายพร้อมการอนุญาตผ่านตัวจัดการเซสชัน GDM

5 = ไม่ได้รับชัยชนะ แต่ปรับคล้ายกับระดับการวิ่ง 3;

แถวทั้งหมดเหล่านี้ปิดด้วยความคิดเห็นดังนั้นจึงไม่จำเป็นต้องทำให้เสร็จอีกต่อไป

และตอนนี้แถวก็เริ่มต้นขึ้น ซึ่งบ่งบอกถึงการกำหนดค่า

รูปแบบของคำสั่งใด ๆ /etc/inittab ที่น่ารังเกียจ:

  • ตัวระบุ: runlevel: action: กระบวนการที่จะรัน
  • ไม่ใช่ทุกแถวที่มีค่าที่กำหนดให้กับฟิลด์สกิน
  • สำหรับซังก็เท่ากับขั้นตอนการซัก
  • Zenwalk ซึ่งมาแทนที่ Slackware มีอันดับ "หลัก" ที่ 4 ในด้านแรงจูงใจ ซึ่งอธิบายไว้ตามลำดับต่อไปนี้:
  • Id:4:initdefault: หากคุณต้องการสลับไปใช้การเรียกดูในโหมดข้อความ (ซึ่งอาจเกิดขึ้นได้หากระบบกราฟิกล้มเหลว) ให้แทนที่แถวด้วย id:3:initdefault: ต่อไปนี้เป็นชุดแถวเพื่ออธิบายสถานการณ์ที่มีความผิด โดยเริ่มจากระดับปัญหาผิวและการดำเนินการอื่นๆ เช่น
  • การเริ่มต้นระบบ (ขึ้นอยู่กับสถานการณ์ใด ๆ โดยไม่คำนึงถึงระดับความก้าวหน้า)
  • สนใจระบอบการปกครองแบบครั้งเดียวหรือการเปลี่ยนผ่านไปสู่ระบอบใหม่ซึ่งมีผู้ประกันตนโดยผู้มั่งคั่ง
  • สนใจระบอบการปกครองที่มั่งคั่ง
“ การรวมกันด้วยสามนิ้ว” (Three Finger Salute เขียนโดย Patrick Volkrding);

ระบบปฐมภูมิ

# /sbin/init # de # - ระดับการรันที่จำเป็น

ตัวอย่างเช่น: # /sbin/init 0 ใช้เพื่อเริ่มระบบ คล้ายกับคำสั่ง # shutdown -h now command # /sbin/init 6 is restarted เช่นเดียวกับคำสั่ง # shutdown -r now และคำสั่ง # /sbin /init 1 สลับไปที่โหมดระบบเดียว - สถานการณ์ที่บางครั้งสามารถจัดการได้จริง

อย่างไรก็ตาม นี่ไม่ใช่ความพิเศษของ Zenwalk แต่เป็นพลังที่ซ่อนอยู่ของระบบ Linux ทั้งหมด

c1:1235:respawn:/sbin/agetty 38400 tty1 linux c2:12345:respawn:/sbin/agetty 38400 tty2 linux c3:12345:respawn:/sbin/agetty 38400 t3 tty4 linux c5:12345:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 ลินุกซ์

มีทั้งหมดหกคน

เหตุใด "ราวกับ" จึงชัดเจนในทันที: ระดับการวิ่งของทุกแถวได้รับการพิจารณาใหม่ ทุกระดับพร้อมใช้งานสำหรับผู้เล่น และในตอนแรกไม่มีระดับการวิ่งที่ 4 และสิ่งที่สำคัญที่สุดในเทอร์มินัลการจองเสมือนของ Zenwalk X-server และตัวจัดการเซสชัน เพื่อให้มีเทอร์มินัลเสมือนสูงสุด 5 เครื่องสำหรับชีวิตประจำวัน

อย่างไรก็ตาม ชิ้นส่วนของการวางแนวของ Zenwalk นั้นใช้ในโหมดกราฟิก ซึ่งเพียงพอแล้วอย่างสมบูรณ์

ยิ่งไปกว่านั้น เทอร์มินัลเสมือนจำนวนหนึ่งสามารถย่อให้สั้นลงได้: การทำเช่นนี้ก็เพียงพอแล้วที่จะปิดแถวรองพร้อมความคิดเห็น

หากจำเป็น อย่าบล็อกใครเลยและเพิ่มจำนวนคอนโซล: เพียงเท่านี้ก็เพียงพอที่จะเพิ่มจำนวนแถวที่ต้องการโดยไม่ลืมเปลี่ยนตัวระบุ