กว่าเครื่องคอมพิวเตอร์จะเปิดได้มันต้องทำอะไรบ้าง
By Arnon Puitrakul - 19 กุมภาพันธ์ 2026
เคยสงสัยกันมั้ยว่า หลังจากที่เรากดปุ่มเปิดเครื่องคอมพิวเตอร์แล้ว จนถึงวินาทีที่ Desktop โผล่ขึ้นมาให้เราเมาส์ไถเล่น เบื้องหลังฉากหน้าที่สวยหรู มันเกิดความชิบหายทางวิศวกรรมอะไรบ้าง
สำหรับ User ทั่ว ๆ ไปมันคือ การนั่งรอหมุน ๆ ไม่กี่ว่านาที แต่สำหรับนักคอมพิวเตอร์มันคือ ช่วงเวลาที่น่าตื่นเต้นมาก ๆ ในการที่ปลุก Silicon ที่ตายสนิทให้ตื่นขึ้นมาคุยรู้เรื่อง รันหลายพันล้านคำสั่งภายในเสี้ยววินาที วันนี้เราจะพาไปงัดแงะกระบวนการ Boot เครื่องคอมพิวเตอร์แบบจริงจัง ตั้งแต่ไฟฟ้าวิ่งเข้าบอร์ดยัน Kernel ยึดอำนาจเบ็ดเสร็จ มาดูกันว่ากว่าจะได้เล่นเกม หรือเขียน Code คอมพิวเตอร์มันจะต้องสู้ชีวิตขนาดไหน
Phase 0: จ่ายไฟ ! Power Good
จุดเริ่มต้นของการเปิดเครื่องคอมพิวเตอร์ไม่ได้เริ่มจาก CPU ก่อน แต่อยู่ที่ระบบไฟฟ้า ทันทีที่เรากดปุ่ม Power Switch จะส่งสัญญาณไปให้ PSU เริ่มทำงาน แต่มันก็ไม่ได้จ่ายไฟทันทีนะ เพราะถ้าไฟยังไม่นิ่ง อุปกรณ์ที่เราใส่ไว้ในเครื่องแพง ๆ อาจจะสู่ขิตได้
ช่วงแรกที่ PSU ทำงาน ไฟที่มันจ่ายออกมาอาจจะยังไม่เสถียรมากเท่าไหร่ แต่เมื่อรันไปสักแว่บนึง มันจะนิ่งละ เป็นจุดที่มันส่งสัญญาณเรียกว่า Power Good (PWR_OK) เพื่อบอก Mainboard ว่า โอเคไฟนิ่งแล้ว เริ่มทำงานได้เลย
Chipset บน Mainboard จะสั่งให้ VRM (Voltage Regulator Modules) เริ่มจ่าย VCore เข้า CPU และสั่งให้ Clock Generator เริ่มส่งสัญญาณนาฬิกาลูกแรก ไปกระตุ้นหัวใจของ CPU ให้มันเริ่มเต้น ถ้าขั้นตอนนี้ล่ม ก็คือ อาการเงียบกริบ ที่ช่างคอมกลัวสุด
Phase 1: ตื่นมาแบบ งง ๆ
เมื่อ CPU ตื่นมา มันออกอาการงังเงี่ยอยู่ จะให้มันทำงานแบบที่เราเข้าใจเลยมันยังเป็นไปไม่ได้ เพราะมันตื่นมาด้วยสภาพ ความจำเสื่อม Register ทุกตัวว่างเปล่า และความตลกคือ มันตื่นมาทำงานบน Real Mode หรือการทำงานแบบ 16-bits
ใช่แล้ว อ่านไม่ผิดหรอกครับ 16-bit แบบที่เราใช้งานกันใน Intel 8086 จากเมื่อปี 1978 เพื่อรักษา Backward Compatibility เอาไว้ แล้วทีนี้ถามว่า CPU รู้ได้ยังไงละว่า มันต้องทำอะไรต่อ ในเมื่อ RAM ยังไม่มีข้อมูล คำตอบคือ Reset Vector
โดยธรรมชาติของสถาปัตยกรรม x86 พอไฟเข้าปุ๊บ Instruction Pointer (IP) ของ CPU มันจะถูก Hard-Wired ให้ไปชี้ที่ Address 0xFFFFFFF0 เสมอ ซึ่งตำแหน่งนี้มันถูก Map ตรง ๆ ไปหา SPI Flash Memory ที่เก็บ Firmware ที่เมื่อก่อนเรียกว่า BIOS หรือปัจจุบันเราขยับมาใช้ UEFI แล้วนั่นเอง
Phase 2: หลอกให้ CPU ไปใช้ Cache แทน RAM
ปัญหาคือ เมื่อเรารัน UEFI แล้ว จะรันยังไง เมื่อเรายังไม่มี RAM ใช้ อยู่ ๆ เราจะเรียก RAM ขึ้นมาทำงานเลยมันก็ไม่ได้ เพราะการจะเรียกมันขึ้นมาทำงาน มันเรื่องมากกว่าที่เราคิด ตั้งแต่ การ Training ไฟ, ตั้งค่า Timing และ Refresh Rate ให้เป๊ะ ๆ ก่อนถึงจะใช้งานได้
วิศวกร Intel กับ AMD เขาเลยแก้เกมด้วยท่าพิศดารที่เรียกว่า Cache-as-RAM (CAR) มันคือการเขียน Assembly Code หลอก CPU ว่า ไม่ต้องมองหา RAM หรอก เอา L3 Cache ในตัวมาสมมุติว่าเป็น RAM ไปก่อนละกัน นี่แหละคือความเจ๋งของ System Design เราใช้ Cache มาเก็บ Stack และตัวแปรปกติชั่วคราวเพื่อรัน Code สำหรับ Memory Training พอจูน RAM เสร็จ เราค่อยย้ายข้อมูลลง RAM แล้วเลิกใช้ CAR ตรงขั้นตอนของการทำ Memory Training นี่แหละ ที่ทำให้กว่า Server จะเริ่มทำงานได้มันค่อนข้างช้ามาก ๆ เพราะ Server ส่วนใหญ่มี RAM ขนาดใหญ่ และมี RAM หลาย Stick มาก ๆ เลยต้องใช้เวลาเยอะหน่อย
Phase 3: ส่งไม้ต่อให้ Bootloader
พอ Hardware พร้อม RAM ก็พร้อมแล้ว จะเข้าสู่ช่วง DXE (Driver Execution Environment) ช่วงนี้คือมันจะโหลดพวก Driver ของการ์ดจอ, USB และ Storage ทีนี้แหละ มันเห็น Storage แล้ว มันจะเริ่มวิ่งหา EFI System Partition เพื่อเรียก Bootloader ถ้าเป็นฝั่งพวก Linux ก็จะเป็น GRUB หรือฝั่ง Windows มันจะมี Windows Boot Manager ขึ้นมาทำงานแทน
จังหวะนี้แหละ คือจุดสำคัญแล้ว Bootloader จะสั่งให้ CPU กลายร่างจาก Real Mode ทำงานแบบ 16-bit ไปสู่ Protected Mode (32-bit) และจบที่ Long Mode (64-bit) แล้วเปิดใช้งาน Paging System ทำให้มองเห็น RAM ได้เกิน 4 GB และเข้าถึงชุดคำสั่งแบบ 64-bit ได้เต็มรูปแบบ พร้อมแล้วที่จะส่งไม้ต่อให้ OS
ก่อนจะออก UFEI จะรันคำสั่งสุดท้ายที่ชื่อว่า ExitBootServices() เหมือนเป็นการบอกว่า หมดหน้าที่ชั้นละนะ เชิญ OS จัดการต่อเลย แล้วอำนาจการควบคุมก็จะถูกโยนให้ Kernel ทำงานต่อทันที
Phase 4: Kernel เริ่มทำงาน กำเนิด Process หมายเลข 1
เมื่อ Kernel ได้อำนาจในมือมา สิ่งแรกที่มันทำคือ การล้างบาง มันจะสร้างตาราง IDT (Interrupt Descriptor Table) ขึ้นมาใหม่ เพื่อดักจับทุกเหตุการณืที่เกิดขึ้นในเครื่องตัวเอง โดยไม่ต้องพึ่งพา BIOS หรือ UEFI อีกแล้ว) จากนั้นก็จะโหลด Driver ของจริง และทำการ Mount Disk จริง ๆ ขึ้นมาใช้งาน เมื่อทุกอย่างพร้อมแล้ว Kernel จะให้กำเนิน Process ตัวแรกของระบบ PID1 ถ้าเป็นพวก Linux มันจะใช้ชื่อว่า systemd หรือ init หรือถ้าเป็น Windows จะเป็น smss.exe
Process พวกนี้คือ โคตรพ่อของทุกโปรแกรม มันมีหน้าที่ไปปลึก Service ให้ตื่นขึ้นมาทำงาน ไม่ว่าจะเป็นพวก Audio, Network และส่วนสำคัญสุด ๆ ของ OS ที่มี GUI Desktop คือ Display Server หรือตัวจัดการ GUI นั่นเอง
Phase 5: สู่ User Space
สุดท้าย เมื่อทุกอย่างพร้อมแล้ว ระบบ Boot จะเสร็จแล้ว ก่อนมันจะส่งไม้ต่อให้ User ทำงานได้ มันจะทำการ Switch ตัวเองจาก Kernel Space พื้นที่ ๆ ห้ามคนนอกเข้าไปสู่ User Space ที่เป็นพื้นที่สำหรับ User อย่างเรา
ทันทีที่ Login Screen โผล่ขึ้นมาในหน้าจอ นั่นคือสัญญาณแห่งชัยชนะ มันหมายความว่า เราเดินทางผ่าน Transistor นับล้านตัว การแปลงโหมด CPU ไปมา และการเริ่มต้นการทำงานของ Hardware ที่ซับซ้อนได้เสร็จสมบูรณ์แล้ว สำหรับระบบที่มี Disk Encryption เมื่อเรา Login มันจะทำอีกขั้นตอนนึงคือ การถอดรหัสข้อมูลใน Disk ให้เราสามารถใช้งานได้
เห็นมั้ยว่า กว่าคอมพิวเตอร์จะทำงานได้ มันไม่ใช่เรื่องเล่น ๆ เลย มันคือ ศิลปะของการจัดการ Resource และ Architecture ที่ออกแบบมาอย่างบ้าคลั่งแต่ลงตัวสุด ครั้งหน้าที่เปิดคอมแล้วรู้สึกว่า ทำไมช้าจังวะ ก็ใจเย็น ๆ ให้เวลากับมันหน่อย มันกำลังวิ่งอย่างเต็มที่แล้วแหละ



