กระบวนการทำงานของ Linux เริ่มตั้งแต่เปิดเครื่องจนกระทั่งพร้อมใช้งาน มีขั้นตอนหลักๆ ดังนี้

  1. BIOS/UEFI: เมื่อเปิดเครื่อง firmware (BIOS หรือ UEFI) จะทำการ POST (Power-On Self-Test) ตรวจสอบฮาร์ดแวร์เบื้องต้น จากนั้นจะค้นหา boot loader ตามลำดับที่กำหนดในการตั้งค่า firmware
  2. Boot Loader: โปรแกรม boot loader เช่น GRUB จะถูกโหลดและเริ่มทำงาน มันจะแสดงเมนูให้เลือก kernel ที่ต้องการบู๊ต จากนั้นจะโหลด kernel image และ initial RAM disk (initrd) เข้าไปในหน่วยความจำ
  3. Kernel: kernel จะถูกโหลดเข้ามาใน RAM และเริ่มทำงาน มันจะตรวจสอบและกำหนดค่าฮาร์ดแวร์ต่างๆ จากนั้นจะเมาท์ root file system และเริ่มต้น init process
  4. Init: init process (ปัจจุบันส่วนใหญ่ใช้ systemd) เป็นกระบวนการแรกที่ถูกรันโดย kernel (มี PID=1) หน้าที่หลักคือเริ่มต้นบริการต่างๆ ตามลำดับที่กำหนดไว้ ตัวอย่างบริการที่ init เริ่มต้น ได้แก่
  5. Network: บริการเครือข่ายจะถูกเริ่มต้นในขั้นตอนนี้ ไฟล์ /etc/hosts จะถูกโหลดมาใช้เพื่อแปลงชื่อ hostname เป็น IP ตามที่กำหนดไว้ในไฟล์ นอกจากนี้ nameservers ที่กำหนดใน /etc/resolv.conf ก็จะถูกเรียกใช้งานเพื่อ query หา IP จาก hostname ด้วยโพรโทคอล DNS
    1. nsswitch ย่อมาจาก "Name Service Switch" เป็นกลไกที่ Linux และ Unix-like systems ใช้ในการค้นหาข้อมูลต่างๆ
  6. Runlevel: init จะเข้าสู่ runlevel ที่กำหนดไว้ โดยจะเรียกสคริปต์ใน /etc/rc.d/rc?.d/ (? คือเลข runlevel) ให้ทำงานตามลำดับ สคริปต์เหล่านี้จะเริ่มต้นบริการ (daemon) ที่จำเป็นในการใช้งานระบบ เช่น cron, sshd, httpd เป็นต้น
  7. Login: init จะเริ่มต้น getty processes เพื่อแสดง login prompt ที่คอนโซลต่างๆ (เช่น tty1-tty6) รอให้ผู้ใช้กรอกชื่อและรหัสผ่านเพื่อล็อกอินเข้าใช้งาน ถ้ามีการล็อกอินผ่าน SSH ก็จะใช้ sshd ในการจัดการแทน
  8. Shell: เมื่อผู้ใช้ล็อกอินเข้ามา ก็จะได้เชลล์ (shell) ไว้คอยรับคำสั่งจากผู้ใช้แล้วส่งไปให้กับเคอร์เนลประมวลผล เชลล์มีหลายชนิด เช่น bash, zsh, fish
  9. Desktop Environment: ในกรณีที่ใช้งานโหมดกราฟิก (X Window) เชลล์จะเริ่มต้น X server และ desktop environment หรือ window manager ที่กำหนดไว้ใน ~/.xinitrc หรือ ~/.xsession

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