Linus Torvalds และระบบไฟล์ OS X


28

ย้อนกลับไปในปี 2008 Linus Torvalds กล่าวอย่างมีชื่อเสียงในการให้สัมภาษณ์ว่า "OS X ในบางวิธีนั้นเลวร้ายยิ่งกว่า Windows ที่จะตั้งโปรแกรมระบบไฟล์ของพวกเขาเสร็จสมบูรณ์ ฉันได้ดูรายละเอียดเพิ่มเติมว่าทำไมเขาถึงรู้สึกแบบนี้เกี่ยวกับระบบไฟล์ OS X (HFS + สมมุติได้) แต่ฉันไม่พบอะไรเลย

แน่นอนว่าไลนัสไม่ชอบโมเดลพื้นฐานของระบบไฟล์ Unix และฉันสงสัยว่าเขาเกลียด HFS + สำหรับการใช้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และแม้ว่าความคิดเห็นของเขาจะยั่วยุ แต่ผมก็ยังสงสัยว่ามันจะสมบูรณ์โดยไม่มีบุญ เนื่องจากความคิดเห็นอยู่ในบริบทของการเขียนโปรแกรมสำหรับ OS X ฉันสงสัยว่าความคิดเห็นของเขาอาจขึ้นอยู่กับประสิทธิภาพความทนทานส่วนต่อประสานระบบปฏิบัติการหรืออะไรบางอย่างตามสายเหล่านั้น ไม่มีใครรู้ว่าสิ่งที่ร้องเรียน Linus ยุค 2008 อาจมีกับ HFS ​​+ 2008 ยุค?


2
เขาเป็นที่รู้จักกันดีว่ามีความคิดเห็นที่ดีมากเกี่ยวกับบางสิ่งเช่นเมื่อเขาพูดเกี่ยวกับ git @ google เขาใช้เวลาส่วนหนึ่งในการพูดคุยกับระบบอื่น ๆ ดังนั้นฉันจะบอกว่าเขาอาจมีเหตุผลที่จะเชื่อในสิ่งที่เขาคิด แต่เขาก็เป็นคนที่พูดเกินจริงมากถึงแม้ว่าเขาจะเป็นอัจฉริยะ youtube.com/watch?v=4XpnKHJAok8
El Developer

3
หากคุณไม่ได้รับการตอบสนองต่อคำถามนี้ที่นี่ที่คุณคาดหวังไว้แล้วคุณอาจพิจารณาการค้นหา (และอาจจะยังขอ) ทั้งUnix และ LinuxหรือSuper User (ที่มีเว็บไซต์จำนวนมากที่มีอยู่ในขณะนี้บางครั้งก็ยากที่จะรู้ซึ่งเป็นสถานที่ที่จะถามคำถามที่ IMHO น้อย :)..
ไม่มีเหตุผลจอห์น

ฉันมักจะชนหัวกับ HFS ​​+ มากกว่าระบบไฟล์อื่น ๆ ที่ฉันพบตามปกติ ทุกวันนี้ในระบบส่วนใหญ่ฉันไม่รู้สึกว่าฉันมักจะสังเกตเห็นหรือสนใจว่าระบบไฟล์นั้นใช้อะไรอยู่ แต่ HFS + มักจะเกิดขึ้นกับบางสิ่งบางอย่าง เหมือนวันนี้ที่ฉันพบว่าตัวเองถูกเมาเพราะไม่มีความละเอียดในระดับที่สองสำหรับ modtimes นอกจากนี้ยังมีเวลาที่ฉันพบรหัส C สองบรรทัดที่อาจทำให้เกิดการหยุดชะงักในระบบไฟล์ซึ่งจะนำเครื่องทั้งหมดมาลง นั่นยังไม่ได้รับการแก้ไขแม้แต่ 10.5 ไม่แน่ใจเกี่ยวกับรุ่นที่ใหม่กว่านี้
Iguananaut

คำตอบ:


21

หลักฐานการศึกษาของ“Q & A” เซสชั่นที่ทำไลนัสแสดงความคิดเห็นสามารถใช้ได้ แต่ดูเหมือนว่าเขาไม่ได้ขอให้ทำอย่างละเอียด ฉันไม่แน่ใจว่าการวิเคราะห์เชิงลึกของความคิดเห็นของเขาที่มีต่อ HFS + ได้ถูกเขียนลงที่อื่นหรือไม่

สำหรับการวิเคราะห์ของคนอื่นคุณสามารถดูความคิดเห็น Mac OS X ของ John Siracusa โดยเฉพาะอย่างยิ่งหนึ่งสำหรับ Mac OS X Lion ซึ่งมีหัวข้อที่ชื่อว่า " มีอะไรผิดปกติกับ HFS ​​+ " ฉันคิดว่าบิตที่สำคัญที่สุดคือ (เน้นของฉัน):

การทำงานพร้อมกันเมทาดาทาที่เขียนตามลำดับไบต์ที่ถูกต้องความแม่นยำของวันที่ที่สองรองการรองรับขนาดโวลุ่มขนาดใหญ่และการรองรับไฟล์แบบเบาบางคือคุณลักษณะทั่วไปทั้งหมดของระบบไฟล์ Unix แน่นอนว่า Mac OS X นั้นสร้างขึ้นบนรากฐานของ Unix เมื่อ HFS + เป็นลางจากคลาสสิก Mac OS กับ Mac OS X ก็จำเป็นจะต้องขยายเพื่อรองรับบางชุดต่ำสุดของคุณลักษณะที่คาดหวังจากไฟล์ระบบปฏิบัติการยูนิกซ์

ฟีเจอร์บางอย่างนั้นง่ายพอสมควร แต่คุณสมบัติอื่น ๆ นั้นยากที่จะเพิ่มลงในระบบไฟล์ ตัวอย่างที่น่ากลัวอย่างหนึ่งคือการใช้งานฮาร์ดลิงก์ใน HFS + เพื่อติดตามฮาร์ดลิงก์ HFS + สร้างไฟล์แยกต่างหากสำหรับฮาร์ดลิงก์แต่ละลิงค์ภายในไดเรกทอรีที่ซ่อนอยู่ที่ระดับรากของโวลุ่ม ไดเรกทอรีที่ซ่อนอยู่นั้นค่อนข้างน่าขนลุกที่จะเริ่มต้น แต่ความหวาดกลัวที่แท้จริงเกิดขึ้นเมื่อคุณจำได้ว่ามีการติดตั้ง Time Machine โดยใช้ฮาร์ดลิงก์เพื่อหลีกเลี่ยงการทำซ้ำข้อมูลที่ไม่จำเป็น

จุดสำคัญที่นี่คือ Mac OS X ใช้ระบบไฟล์ที่ไม่ได้ออกแบบมาสำหรับระบบ Unix มันถูกออกแบบมาสำหรับ Mac OS คลาสสิกและได้รับการติดตั้งเพื่อใช้คุณสมบัติของ Mac OS X 10.0 ในขณะที่รักษาความเข้ากันได้แบบย้อนหลัง Apple ได้ใช้คุณสมบัติเพิ่มเติมที่มีอยู่ใน Mac OS X 10.7 (การทำเจอร์นัลข้อมูลเมตาเหตุการณ์ระบบไฟล์ ... ) โดยใช้วิธีการแพตช์เดียวกันแทนที่จะใช้วิธี“ ออกแบบจากพื้นดิน” ฉันไม่แน่ใจว่าจะอธิบายเรื่องนี้อย่างไรในทางเทคนิค แต่คุณสามารถพูดได้ว่าคุณสมบัติเพิ่มเติมทั้งหมดเหล่านี้วางอยู่บนพื้นฐาน Mac OS แบบคลาสสิกที่ไม่เคยออกแบบมาเพื่อรองรับพวกเขา ซึ่งหมายความว่าวิธีแก้ปัญหาไม่ดีเท่าที่ควร ตัวอย่างที่ Siracusa กล่าวถึงก็คือโซลูชันที่ Apple ต้องใช้สำหรับการเชื่อมโยงอย่างหนักในขณะที่ทำงานภายใต้ข้อ จำกัด ของ HFS + นั้นอ่อนไหวต่อความล้มเหลวของฮาร์ดแวร์ซึ่งประกอบไปด้วยข้อเท็จจริงที่ว่า HFS + ไม่เคยออกแบบมาเพื่อกังวลกับข้อมูล ความสมบูรณ์ แน่นอนว่าการคงความเข้ากันได้กับ Mac OS แบบคลาสสิกนั้นเป็นข้อ จำกัด ที่ต้องการใน Mac OS X 10.0 แต่จริงๆแล้วมันไม่ได้อยู่ใน Mac OS X 10.7 อีกต่อไป


1
ลิงค์ที่ยอดเยี่ยม; ที่ครอบคลุมสิ่งสำคัญมากมาย ขาดการสนับสนุนไฟล์กระจัดกระจายเป็นถั่วสวย Linux ext2 ทำไฟล์แบบกระจายแม้จะมีการจัดสรรแบบบล็อกบิตแมปง่าย ๆ เช่นเดียวกับที่ใช้ HFS + ฉันคิดว่าเขาทำเรื่องใหญ่เกินไปเกี่ยวกับการจัดเก็บข้อมูลเมตาใน บริษัท ใหญ่ bswapคำสั่งx86 นั้นเร็วมาก มันทำให้โค้ดมีขนาดใหญ่และน่าเกลียดยิ่งขึ้น แต่การรักษาความเข้ากันได้ของดิสก์เป็นเรื่องใหญ่ Linux XFS ยังคงจัดเก็บเมตาดาต้าบิ๊ก - เอนเดียนทั้งหมด (ยกเว้น Native-Endian ในวารสาร) เนื่องจากมีต้นกำเนิดที่ SGI บน MIPS CPU มันไม่ใช่สถานการณ์ในอุดมคติ แต่ XFS ไม่ได้รั้งท้าย
Peter Cordes

7

แม้ว่าฉันไม่ใช่ผู้เชี่ยวชาญระบบปฏิบัติการ แต่ฉันเพิ่งเริ่มใช้งาน OSX หลังจากมาจาก Windows ฉันคิดว่าตัวเองเป็น PowerUser ใน Windows และมีความสามารถพอสมควรใน Linux มาจากพื้นหลังนั้นฉันรู้สึกประหลาดใจที่ใน OS ค่อนข้างทันสมัยเช่น OSX ระบบไฟล์มีลักษณะแปลก ๆ เช่นชื่อไฟล์เป็น "mungled"

ฉันเข้าใจว่า Linus Lin มีปัญหากับ HFS ​​+ ต้นกำเนิดจากจุดเดียวกัน: จากสิ่งที่ฉันได้พบการค้นคว้าปัญหา HFS + เก็บชื่อของไฟล์โดยใช้ Unicode แต่เมื่อไฟล์ใช้อักขระ "Extended" หรืออักขระ ASCII (เช่นá, é, í, ó, ú, ñจากภาษาสเปนหรือสิ่งต่าง ๆ เช่นüในภาษาเยอรมัน) ซึ่ง Unicode ให้การเข้ารหัสชื่อ 2 วิธี OSX เงียบ "normalizes" การเข้ารหัสในเวลาเก็บข้อมูล ... ไม่ใช่ปัญหาจริงเมื่อ ไฟล์ถูกสร้างและใช้งานใน OSX แต่เมื่อคุณแบ่งปันข้อมูลกับผู้ใช้ระบบปฏิบัติการอื่น ๆ ความจริงที่ว่าชื่อของการเปลี่ยนแปลงไฟล์ทำให้เหมาะกับพฤติกรรมแปลก ๆ ...

ตัวอย่างในประเด็น: ฉันติดตาม "สิ่งประดิษฐ์" งานของฉัน (ไฟล์เอกสารและอื่น ๆ ) ในการโค่นล้มสำหรับ 8plus ปีที่ผ่านมา เมื่อย้ายไปที่ Mac ฉันได้รับไคลเอนต์ SVN สำหรับ Mac และหลังจากทำรายการ Checkout ของไดเรกทอรีที่เกี่ยวข้องฉันพบว่าไฟล์ทั้งหมดที่มีการเน้นเสียงหายไปและไฟล์ใหม่ที่มีชื่อเดียวกันปรากฏขึ้นซึ่งไม่ใช่เวอร์ชัน ปัญหาคือไฟล์ในระบบไฟล์มีการเข้ารหัสแอปเปิ้ลในขณะที่ข้อมูลในพื้นที่เก็บข้อมูลใช้การเข้ารหัส Unicode ที่สมบูรณ์ (ถูกต้องสมบูรณ์และถูกต้อง)

ฉันคิดว่านี่เป็นข้อมูลที่ "ไม่ปลอดภัย" ขั้นต้น Apple ไม่เข้าใจการเข้ารหัสชื่อไฟล์ทั้งสองรูปแบบ (การเข้าถึงส่วนแบ่งใน Windows หรือการใช้ USB stick จาก Windows จะแสดงชื่อไฟล์ที่เหมาะสม ฯลฯ ) แต่เมื่อถึงเวลาสร้างไฟล์มันตัดสินใจว่า "รู้ดีกว่า" และเพิ่งเปลี่ยนชื่อไฟล์ ..

อีกครั้งไม่ใช่สิ่งที่ผู้ใช้ส่วนใหญ่จะสังเกตเห็น - จนกว่าพวกเขาจะทำสำเนาของไฟล์หรือเปลี่ยนชื่อและนำกลับไปที่ที่ไฟล์ต้นฉบับอยู่และจบลงด้วยสองไฟล์ที่เห็นได้ชัดเหมือนกัน !!!)


1
นี่เป็นเพียงจุดเดียวและปัญหาที่แท้จริงคือระบบปฏิบัติการที่แตกต่างกันเพียงแค่ทำให้สายอักขระปกติในรูปแบบที่แตกต่างกันและแอพข้ามแพลตฟอร์มไม่ได้จัดการเรื่องนั้น การทำให้ปกติชื่อไม่น่าจะแย่กว่านี้ (คุณอาจมีสองไฟล์ที่แตกต่างกันพร้อมชื่อที่ทำให้เป็นมาตรฐานเดียวกันกับบน OS X)
Blaisorblade

4

จอห์น Siracusa และเบนจามินแดนหารือเกี่ยวกับข้อเสียของ HFS + บางอย่างในการจับผิด #

พวกเขาจัดการกับความเสียหายของข้อมูลใน HFS + และพิจารณาคุณสมบัติบางอย่างของ ZFS


9
มีวิธีใดบ้างที่คุณสามารถสรุปการอภิปรายของพวกเขาในคำตอบของคุณ? กระแสข้อมูลเสียง (ณ จุดนี้ในเทคโนโลยีปัจจุบันของเรา) ไม่สามารถค้นหาได้และยาวมาก ไม่พูดถึงมันอยู่ในเว็บไซต์อื่นดังนั้นจึงเป็นเรื่องง่ายที่จะเชื่อมโยงเน่า นี่จะเป็นคำตอบที่ดีกว่าถ้ามันมีรายละเอียดเฉพาะเกี่ยวกับการสนทนาของพวกเขา
Ian C.

1
ระบบไฟล์คุยเริ่ม 23 นาที
neoneye

1
ข้อมูลส่วนใหญ่ที่มีอยู่ในพอดคาสต์สามารถพบได้ในบทความ Ars Technicaโดย John Siracusa (หนึ่งในสองคนในพอดคาสต์)
TML
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.