โฟลเดอร์ระบบคือโฟลเดอร์ที่ไม่ได้ตั้งใจให้ผู้ใช้เข้าถึง พวกมันช่วยให้แอปพลิเคชันและระบบปฏิบัติการทำงาน ให้การสนับสนุนและทรัพยากร เป็นเลเยอร์ที่ให้ผู้ใช้จัดการ Host ผ่านแอปและโปรแกรม บางอันซ่อนอยู่ บางอันไม่ แต่เกือบทุกอันเข้าถึงได้โดยผู้ใช้ในบางรูปแบบ
แต่โฟลเดอร์ระบบต่างๆ ทำหน้าที่อะไร? "bin" คืออะไร และช่วยคอมพิวเตอร์อย่างไร? เราจะตรวจสอบโฟลเดอร์ระบบที่อ้างถึงบ่อยที่สุดด้านล่าง
โฟลเดอร์ "/System" บน Mac ของคุณไม่ได้มีอะไรมาก เราจะดูเนื้อหามันก่อน แล้วค่อยไปโฟลเดอร์ระบบอื่นๆ ที่ลึกกว่า
หมายเหตุ: อย่าเพิ่ม, ลบ, หรือแก้ไขโฟลเดอร์และไฟล์ระบบ คุณสามารถ Browse ได้อย่างปลอดภัย แต่การเพิ่ม, ลบ, แก้ไขไฟล์หรือเปลี่ยนโฟลเดอร์อาจมีผลที่คาดเดาไม่ได้ – และบางครั้งทำให้ระบบเสียหาย หากคุณต้องทดลอง ให้ทำ Bootable Clone ของ Mac ก่อน
โฟลเดอร์ Library: /System/Library และ ~/Library
โฟลเดอร์ Library ใกล้ผู้ใช้ที่สุด ถูกสร้างโดยแอปพลิเคชัน และแอปเพิ่ม, ลบ, แก้ไขไฟล์ตลอดการทำงาน ตรงๆ บอกเลย กระบวนการจัดระเบียบที่นี่ค่อนข้างوض亂 แอปพลิเคชันอิสระทำ gìก็ได้ในการวางไฟล์ใน Library แต่มากกว่าตามกระบวนการที่คล้ายกัน
คุณจะพบไฟล์และโฟลเดอร์หลากหลายในทั้ง User Library Folder (ที่ "~/Library") และ System Library Folder (ที่ "/System/Library") ไฟล์เหล่านี้เก็บ Preferences, Application Databases, Metadata, Plugins, Saved Application States, System Profiles, Cookies และอื่นๆ อีกมากมาย
Application Support
โฟลเดอร์ "~/Library/Application Support" คือโฟลเดอร์ Library ที่เข้าถึงบ่อยที่สุด ที่นี่แอปพลิเคชันเก็บไฟล์ที่จำเป็นสำหรับการทำงาน ห่างจากโฟลเดอร์ข้อมูลของผู้ใช้ ไฟล์เหล่านี้ถูกแยกเพื่อป้องกันการปนเปื้อนหรือการแก้ไข
เมื่อผู้ใช้เข้าถึงโฟลเดอร์นี้ มักจะเป็นเพื่อเปลี่ยนการทำงานของโปรแกรมแบบที่ Default Settings ไม่รองรับ หรือแก้ไข Cache/Database Error การลบ Application Support Folder ของโปรแกรมเป็นวิธี Reset ให้กลับสู่ Default และเริ่มใหม่สะอาด และถ้าคุณอยาก Hack แอปพลิเคชัน คุณจะเจอ Application Support Folder ของโปรแกรมนั้นไม่นาน
ความแตกต่างระหว่าง /System/Library และ ~/Library
ทำไม macOS ต้องการ Library 2 โฟลเดอร์? System Library ใช้โดยทุก User สำหรับความต้องการระดับระบบ เข้าถึงได้ทุก User ส่วน User Library เข้าถึงได้เฉพาะ User คนนั้นเท่านั้น
โฟลเดอร์ Unix: /bin, /sbin, /usr, /var, /private
macOS สร้างบน Unix Kernel หมายความว่าฟังก์ชันลึกส่วนใหญ่ базис บน Unix Functionality ดังนั้นนอกจากโฟลเดอร์ระบบระดับสูงของ macOS แล้ว คุณจะพบโฟลเดอร์ Unix ด้วย โฟลเดอร์เหล่านี้ซ่อนหมด ต้องแสดง Hidden Files ถึงจะตามทัวร์ได้
คุณจะพบ Unix フォルダหลายอันใน Home Directory ที่โดดเด่นคือ "/bin" และ "/sbin", "/usr", "/var", และ "/private"
"/bin" และ "/sbin" ทั้งคู่เก็บ Binaries "/sbin" เก็บ Binaries ที่จำเป็นสำหรับ Boot, Restore, Recover, และ Repair ระบบแม้ไม่มี File System Mounted "/bin" เก็บ User Commands สำหรับ User ทุกคน "bin" ย่อมาจาก binaries และ "sbin" ย่อมาจาก system binaries
บน macOS Binaries ส่วนใหญ่ใน "/sbin" ที่ Mount File System เป็น Symlink ไปที่ macOS File System Plugins ใน "/System/Library/Filesystems"
"/usr" มี Binaries และ Libraries ใช้ระหว่างการทำงานปกติ ไฟล์ที่นี่ใช้หลัง Mount File System แล้ว "usr" ย่อมาจาก "user" หรือ Unix System Resources
"/var" มีไฟล์ที่ระบบเขียนตลอดการทำงาน เช่น Caches, Data Libraries, Logs Var ย่อมาจาก variable และมักถูกเขียนโดย Core-level System Apps เท่านั้น บน macOS "/var" เป็น Symlink ไป "/private/var"
"/private" มี Daemon และ Command Line Tool Configurations, Caches, Variables, Virtual Memory Swap Files, Temporary Files, และ Sleep Images บางโฟลเดอร์ Unix อย่าง "/etc" และ "/tmp" เป็น Symlink ไป Directory ชื่อเดียวกันใน /private
ถ้าอยากรู้เนื้อหาโฟลเดอร์เหล่านี้ ดูรายละเอียด Mac's Unix Folders ได้ที่นี่
Extensions
ถ้าคุณเคยสร้าง Hackintosh คุณคงรู้ "System/Library/Extensions" ย่อมาว่า "S/L/E" โฟลเดอร์นี้มี "kexts" หรือ Kernel Extensions ที่ขยายฟังก์ชันของ macOS Kernel การเพิ่ม kexts ช่วยให้ Kernel 溝通กับฮาร์ดแวร์ใหม่ได้ ถ้าคุณมาจาก Windows kexts เหมือน Drivers
การแก้ไขโฟลเดอร์นี้เป็นเรื่องลำบาก ต้องจัดการ Permissions อย่างระมัดระวัง หากอยากเพิ่ม/ลบ kexts บน macOS ให้ทำอย่างถูกต้อง
Agents และ Daemons
Daemons และ Agents ทำงานใน Background ทำงานโดยไม่มี Interaction จาก User ชื่อที่แปลก (อ่านว่า "demon") มาจาก Maxwell's Daemon
Daemons ทำ System Operations รันโดย Root ส่วน Agents รันโดย User ที่ล็อกอินอยู่ Global Agents/Daemons เข้าถึง/รันได้แทน User ใดๆ ส่วน User Agents รันได้แค่แทน User ที่เป็นเจ้าของ Library File
- "~/Library/LaunchAgents" มี User Agents รันแทน User ที่ล็อกอิน
- "/Library/LaunchAgents" มี Global Agents รันแทน User ที่ล็อกอิน
- "/System/Library/LaunchAgents" มี System Agents รันแทน User ที่ล็อกอิน
- "/Library/LaunchDaemons" มี Global Daemons รันโดย Root
- "/System/Library/LaunchDaemons" มี System Daemons รันโดย Root
คุณสามารถสร้าง Daemons ใหม่และตั้งค่าที่มีอยู่ด้วย Command Line Program launchctl
สรุป
ยังมี Non-user Folders อื่นๆ ซ่อนอยู่บน Mac แต่วันี้เป็นที่เข้าถึงบ่อยที่สุด คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการจัดระเบียบ Unix File Systems ได้จาก Filesystem Hierarchy Standard ซึ่งอธิบาย Requirements และ Guidelines สำหรับ Unix-like File และ Directory Placement