เบราว์เซอร์
กล่าวอีกนัยหนึ่ง “การเริ่มต้น” หมายถึงการเตรียมซอฟต์แวร์หรือฮาร์ดแวร์ก่อนดำเนินการการเตรียมการนี้ขึ้นอยู่กับข้อมูลเริ่มต้นของพารามิเตอร์ระบบ
สำหรับโปรแกรมการเริ่มต้น ค่าเริ่มต้นคือโปรแกรมการเปลี่ยนแปลง
การเริ่มต้นอาร์เรย์ข้อมูล
การเริ่มต้นของเทือกเขาจะช่วยลดจำนวนหลุมพราง
ประการแรก ในมิดเดิลแวร์ซอฟต์แวร์บางตัว ข้อมูลในอาเรย์จะเริ่มต้นด้วยองค์ประกอบ A เป็นศูนย์หรือด้วย A ตัวแรก โดยที่ A คือชื่อของอาเรย์ในการเริ่มต้นอาร์เรย์ ให้รันคำสั่ง for (foreach) ลูป
มวลจะถูกเติมเต็มทีละขั้นตอน หนึ่งองค์ประกอบต่อชั่วโมงของรอบการ "วิ่ง" ของผิวหนังfor loop สร้างการเปลี่ยนแปลงภายในเครื่องสำหรับ loop - ควบคุมจำนวนรอบ
ค่าหยาบของวงจรการเปลี่ยนแปลงอาจตรงกับองค์ประกอบแรกของอาเรย์: A หรือ A Kintseve – พร้อมจำนวนองค์ประกอบของอาเรย์
ในการจัดระเบียบการกรอกข้อมูลอาร์เรย์สองมิติด้วยข้อมูล จำเป็นต้องแทรกวงจรหนึ่งเข้าไปในอีกวงจรหนึ่ง
ในความเป็นจริง เป็นไปไม่ได้ที่จะอธิบายวิธีการเริ่มต้นคอมพิวเตอร์อย่าง "หมดจด" เนื่องจากระบบที่หลากหลายมีภาระงานน้อย ดังนั้นจึงต้องรีบูท ติดตั้งใหม่ ฯลฯ โดยพื้นฐานแล้ว Ale ดูเหมือนว่าคำสั่งที่กำลังจะเกิดขึ้น:
เมื่ออายุการใช้งานเปิดขึ้น ตรรกะของโปรเซสเซอร์จะถูกยกเลิกโดยสิ้นเชิง และโปรเซสเซอร์จะเริ่มรวบรวมชุดคำสั่งที่จัดเก็บไว้ใน ROM บนเมนบอร์ดตั้งแต่แรก
- ชุดสามารถแบ่งออกเป็นสามส่วนตามตรรกะ:
- การทดสอบตัวเองเมื่อเปิดเครื่อง (POST) - ทำงานเพียงครั้งเดียวและทันทีหลังจากเปิดเครื่อง
- ในระหว่างการทดสอบนี้ อุปกรณ์จะถูกตรวจสอบว่ามีความเสียหายร้ายแรงหรือไม่ (การทำงานของอุปกรณ์ล้มเหลว)
สัญญาณหนึ่งที่มองเห็นได้บนหน้าจอคือการทดสอบหน่วยความจำ
การเริ่มต้น – เริ่มต้นทันทีเมื่อติดตั้งเครื่องใหม่ (เช่น เมื่อผู้ใช้กด 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;
5 = ไม่ได้รับชัยชนะ แต่ปรับคล้ายกับระดับการวิ่ง 3;
แถวทั้งหมดเหล่านี้ปิดด้วยความคิดเห็นดังนั้นจึงไม่จำเป็นต้องทำให้เสร็จอีกต่อไป
และตอนนี้แถวก็เริ่มต้นขึ้น ซึ่งบ่งบอกถึงการกำหนดค่า
รูปแบบของคำสั่งใด ๆ /etc/inittab ที่น่ารังเกียจ:
- ตัวระบุ: runlevel: action: กระบวนการที่จะรัน
- ไม่ใช่ทุกแถวที่มีค่าที่กำหนดให้กับฟิลด์สกิน
- สำหรับซังก็เท่ากับขั้นตอนการซัก
- Zenwalk ซึ่งมาแทนที่ Slackware มีอันดับ "หลัก" ที่ 4 ในด้านแรงจูงใจ ซึ่งอธิบายไว้ตามลำดับต่อไปนี้:
- Id:4:initdefault: หากคุณต้องการสลับไปใช้การเรียกดูในโหมดข้อความ (ซึ่งอาจเกิดขึ้นได้หากระบบกราฟิกล้มเหลว) ให้แทนที่แถวด้วย id:3:initdefault: ต่อไปนี้เป็นชุดแถวเพื่ออธิบายสถานการณ์ที่มีความผิด โดยเริ่มจากระดับปัญหาผิวและการดำเนินการอื่นๆ เช่น
- การเริ่มต้นระบบ (ขึ้นอยู่กับสถานการณ์ใด ๆ โดยไม่คำนึงถึงระดับความก้าวหน้า)
- สนใจระบอบการปกครองแบบครั้งเดียวหรือการเปลี่ยนผ่านไปสู่ระบอบใหม่ซึ่งมีผู้ประกันตนโดยผู้มั่งคั่ง
- สนใจระบอบการปกครองที่มั่งคั่ง
ระบบปฐมภูมิ
# /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 นั้นใช้ในโหมดกราฟิก ซึ่งเพียงพอแล้วอย่างสมบูรณ์
ยิ่งไปกว่านั้น เทอร์มินัลเสมือนจำนวนหนึ่งสามารถย่อให้สั้นลงได้: การทำเช่นนี้ก็เพียงพอแล้วที่จะปิดแถวรองพร้อมความคิดเห็น
หากจำเป็น อย่าบล็อกใครเลยและเพิ่มจำนวนคอนโซล: เพียงเท่านี้ก็เพียงพอที่จะเพิ่มจำนวนแถวที่ต้องการโดยไม่ลืมเปลี่ยนตัวระบุ