เหตุใด Apple จึงเปลี่ยน Default Shell เป็น Zsh

Hetu Di Apple Cung Peliyn Default Shell Pen Zsh



Shell เป็นโปรแกรมพื้นฐานที่มาพร้อมกับระบบปฏิบัติการเพื่อสื่อสารกับฮาร์ดแวร์และจัดเตรียมฟังก์ชันการทำงานที่ต้องการ เชลล์เป็นอินเทอร์เฟซบรรทัดคำสั่งหรือที่เรียกว่าเทอร์มินัลรับคำแนะนำจากผู้ใช้เป็นอินพุตและให้เอาต์พุตตามนั้น มีกระสุนประเภทต่าง ๆ รวมถึง bash ซึ่งเป็นกระสุนที่มีชื่อเสียง C-shell (ซีเอช) , และ Z-เชลล์ (Zsh) . เชลล์เหล่านี้มีความคล้ายคลึงกันหลายประการ แต่แตกต่างกันในแง่ของการทำงาน ลักษณะที่ปรากฏ และที่สำคัญที่สุดคือใบอนุญาต

Apple ใช้ bash shell เป็นเชลล์เริ่มต้นใน macOS แต่เพิ่งเปลี่ยนเป็น zsh . สำหรับผู้ใช้ Mac หลายคน เป็นเรื่องที่คาดไม่ถึง อะไรทำให้ Apple ดำเนินการตามขั้นตอนนี้ และอะไรคือข้อกังวลหลักที่อยู่เบื้องหลังการเคลื่อนไหวนี้ บทความนี้จะอธิบายการตัดสินใจล่าสุดของ Apple ในการเปลี่ยนเชลล์เริ่มต้นจาก bash เป็น zsh . เอาล่ะ:

การเปลี่ยนแปลงข้อตกลงใบอนุญาตของ GNU

Apple เป็นที่รู้จักในด้านนโยบายและปฏิบัติตามนโยบายดังกล่าว Apple ใช้ bash เป็นเชลล์เริ่มต้นใน macOS มาเป็นเวลานาน Apple แทบจะไม่เปลี่ยนนโยบาย การเปลี่ยนอย่างรวดเร็วทำให้ผู้ใช้ Mac ไม่ค่อยเชื่อ เวอร์ชัน bash ปัจจุบันใน macOS X คือเวอร์ชัน 3.2 ในขณะที่เวอร์ชันล่าสุดของ bash คือ 5 Apple ไม่สามารถอัปเดตเวอร์ชัน bash ได้เนื่องจากปัญหาความขัดแย้งของข้อตกลงสิทธิ์การใช้งานระหว่าง GNU และ Apple







ข้อกำหนดในการให้บริการใบอนุญาต GPLv3 มีการเปลี่ยนแปลงซึ่งไม่สามารถใช้ได้กับนโยบายของ Apple และในการใช้ bash เวอร์ชันล่าสุดซึ่งเป็น 5.0 นั้น Apple จะต้องยอมรับใบอนุญาต GPLv3



GPLv3 ได้ทำการแก้ไขข้อตกลงสิทธิ์การใช้งานและ Apple ไม่เต็มใจที่จะเห็นด้วยเนื่องจากเป็นข้อจำกัดสำหรับบริษัทเช่น Apple ดังนั้น Apple จึงตัดสินใจเปลี่ยนเชลล์เริ่มต้นจาก bash เป็น zsh ตั้งแต่ macOS Catalina, Big Sur เป็นต้น







ทำไมต้อง Zsh?

เหตุผลหลักในการเปลี่ยนจาก bash เป็น zsh คือ zsh ค่อนข้างคล้ายกับ bash ดังนั้นใครก็ตามที่ยังใหม่กับเปลือกนี้จะไม่ประสบปัญหาใด ๆ

ฉันยังคงใช้ Bash บน macOS ได้หรือไม่

ได้ สามารถใช้ bash บน macOS ได้ แต่จะเป็นเวอร์ชัน 3.2 ของ bash แทนเวอร์ชัน 5 แม้ว่า bash เวอร์ชัน 3.2.57 จะเก่า แต่ Apple อนุญาตให้เผยแพร่ภายใต้ใบอนุญาต GPLv2



ความแตกต่างระหว่าง bash และ zsh

ข้อแตกต่างที่สำคัญระหว่าง bash และ zsh คือ zsh สามารถปรับแต่งได้สูง การทำให้คำสั่งเสร็จสิ้นนั้นดีกว่ามากใน zsh ในทางกลับกัน สคริปต์ที่เขียนด้วย bash มีความหลากหลายมากกว่าเนื่องจากความเข้ากันได้ดีกว่า เนื่องจากความแตกต่างในการทำงาน สคริปต์ zsh อาจไม่ทำงานในสภาพแวดล้อมแบบแบช

ความคิดสุดท้าย

การตัดสินใจล่าสุดของ Apple ในการละทิ้ง Borne Again Shell (bash) จาก macOS เป็นการตัดสินใจที่ลึกลับซึ่งเกิดขึ้นหลังจากข้อตกลงใบอนุญาต GNU เปลี่ยนไป จากข้อมูลของ Apple ข้อกำหนดใหม่คือเงื่อนไขของ GPLv3 ที่เข้มงวดและยากที่ Apple จะปฏิบัติตาม ดังนั้น Apple จึงไม่ดำเนินการต่อด้วย bash และเปลี่ยนเป็น zsh อีกต่อไป zsh ค่อนข้างคล้ายกับ bash และปรับแต่งได้สูง แต่ผู้ใช้ Mac ที่ยังสนใจใช้ bash สามารถเปลี่ยนไปใช้ bash ได้ แต่จะไม่สามารถใช้ bash เวอร์ชันล่าสุดได้