การกำหนดให้โปรแกรมทำงานทันทีหลังเปิดเครื่อง
ปรกติ administrator จะสามารถ
แก้ไขขบวนการ bootstrap
โดยการแก้ค่า
config ของ
startup script ซึ่งจะขออธิบาย การทำงาน ดังนี้
การทำงานของ
Kernel initialization
เมื่อระบบเริ่มทำงานคือ จ่ายไฟให้ cpu
จะมีการอ่านค่าจาก rom
ซึ่งจะบรรจุคำสั่งให้ไปอ่านข้อมูลจากที่กำหนดไว้ในซึงอาจจะเป็น
ฮาร์ดดิส หรือ เอสดีการ์ด
ตามที่ต้องการมาเก็บไว้ในเมโมรี ขบวนการนี้
เรียกว่า บูทโหลดเดอร์ (boot
loader) ข้อมูลที่อ่านมานี้เรียกว่า
Kernel ซึ่งจะทำการตรวจสอบ
หา พื้นที่ ram แล้ว
จองส่วนหนึ่งไว้สำหรับ ตัว
kernel เอง
และพิมพ์รายงานว่ามีเมโมรีในระบบเท่าไร
สำหรับ user process จากนั้นจะสำรวจ
hardware ที่เชื่อมต่อกับระบบ
โดยทำการ load driver ต่างๆ
เพื่อให้สามารถสั่งงานและสื่อสารกับ
hardware ขบวนการนี้เรียกว่า
hardware configuration
เมื่อกำเนิด
Kernel (เมล็ด)
แล้ว
จะมีการสร้าง ขบวนการที่เรียกว่า
init (โดยการใช้
fork()) แตกกิ่งก้านสาขาออกมา
ขบวนการ init จะเป็น
parent ของทุก
โพรเซส(process) หรืออีกนัยหนึ่ง
กล่าวว่า init จะมี
process ID 1 โดยที่
process init นี้จะทำงานตลอดเวลาจนกว่า
จะปิดเครื่อง (แม้นแต่
superuser ก็ไม่สามารถ
kill โพรเซสนี้ได้)
เมื่อถึงขั้นนี้
startup script จะทำงาน
เรียกโปรแกรม ต่างๆที่จะใช้เริ่มขบวนการ
Daemon processes โดยปรกิตdaemon
จะทำงานแบบ
background โดยมาก
daemon process มักถูกสร้างขึ้นในช่วงต้นของ
system boot และจะทำงานจนกว่า
ระบบ shut down (ถ้าไม่โดนสั่งปิด)
การที่จะเรียกใช้
process ไหน
ขึ้นกับค่า run levels (run
levels คือระดับขั้นของการเรียกใช้งาน
เช่น run leves 2 = single user , run
level 3-5 = multi-user )
ในช่วงนี้เอง
จะเกิดขบวนการ startup
Files แบ่งได้
เป็น 3 ประเภท
คือ
1 ขบวนการเริ่มกำเนิดของระบบSystem-wide
startup files
2 ขบวนการ
ล๊อกอินLogin initialization files
3 ขบวนการกำหนดเชลล์
Shell initialization files บางครั้งเรียกว่า
environment files
บทความต่อจากนี้จะกล่าวเฉพาะ
Bash ซึ่งเป็น
เชลล์ที่ใช้ใน RPI
(รายละเอียดตำแหน่งและชื่อของไฟล์
จะแตกต่างกันไปจาก Kron
Shell (ksh) , C Shell, TC Shell) ขบวนการกำหนด
System-wide จะทำการอ่าน
startup files ที่
ตำแหน่ง
/etc/.profile
(เครื่อหมาย
จุด ที่อยู่หน้า profile
เพราะ
เป็น control hidden file
เรียกดูด้วยคำสั่ง
ls -l )
ขั้นตอนต่อจากนั้น
bash จะทำการอ่าน
ไฟล์ในไดเร็คทอรี home
แล้วตรวจหาและทำงานตามสคริป
อันใดอันหนึ่งที่พบก่อน
เพียงไฟล์เดียว โดยหาตามลำดับดังนี้
.bash_profile
.bash_login
.profile
ในไฟล์ทีพบก่อน
สคริปจะถูกอ่าน แล้วทำการ
login initialization
และเมื่อทำตามคำสั่งเสร็จแล้ว
bash จะไปค้นหาใน
ไดเร็คทอรี home
เพื่อหา
สคริปที่อยู่ใน
.bashrc
เพื่อทำงานตามคำสั่งที่อยู่ในสคริปที่พบ
และกำหนด shell initialization
ต่อไป
No comments:
Post a Comment