ทำไม FreeBSD จึงใช้ GCC ที่มีลิขสิทธิ์ GPL


11

ทำไม FreeBSD ใช้ GCC เป็นคอมไพเลอร์เริ่มต้น

ฉันรู้สึกว่าเสาหลักของปรัชญา FreeBSD นั้นไม่ได้ใช้ซอฟต์แวร์ GNU ใด ๆ โดยเฉพาะอย่างยิ่งรหัส GPL

ยัง GCC ซึ่งเป็นทั้ง GNU และ GPL มาพร้อมกับ FreeBSD

ทำไม?

คำตอบ:


13

FreeBSD 10 จะใช้คอมไพเลอร์ Clang ที่ได้รับอนุญาต BSDแทน GCC สำหรับระบบ Intel x86 แบบ 32 และ 64 บิต สิ่งเดียวที่ป้องกันไม่ให้สวิตช์ขายส่งบนแพลตฟอร์ม CPU ทั้งหมดที่เผยแพร่ใน FreeBSD คือเวลาของนักพัฒนาและความสนใจ

สำหรับ FreeBSD 9 - ซึ่งเพิ่งจะได้รับการปล่อยตัวเมื่อคำถามนี้ถูกโพสต์ครั้งแรก - มีการพูดคุยเกี่ยวกับการทำให้ Clang เป็นคอมไพเลอร์เริ่มต้น แต่มีปัญหาเพียงพอที่พวกเขาตัดสินใจส่ง Clang ข้าง GCC และปล่อยให้ GCC เป็นค่าเริ่มต้น สำหรับการเปิดตัวครั้งนี้

สำหรับสาเหตุที่ FreeBSD ไม่ได้พยายามย้ายไปรวบรวมคอมไพเลอร์ที่ไม่ใช่ GPL เมื่อหลายปีก่อนหรืออาจสร้างด้วยตัวเองเหตุผลก็ง่าย: มันยาก

นักศึกษาปริญญาตรีทุกคนสามารถเขียนคอมไพเลอร์ได้แม้อาจเป็นข้อกำหนดของหลักสูตร แต่การเขียนคอมไพเลอร์ที่ดีนั้นยาก การเขียนคอมไพเลอร์ที่ดีนั้นยังคงยากกว่าเมื่อจำเป็นต้องใช้ภาษา C หรือ C ++ งานจะยังคงยากขึ้นเมื่อคุณตัดสินใจอย่างสมเหตุสมผลว่าคอมไพเลอร์ใหม่ต้องเข้าหาประสิทธิภาพและความสามารถของ GCC อย่างน้อยซึ่งมีมูลค่าการพัฒนาสองถึงสิบปีข้างหลัง

ด้วยเหตุนี้ GCC 4.2 จึงยังคงเป็นคอมไพเลอร์เริ่มต้นใน FreeBSD 9

GCC 3.4, 4.4, 4.6, 4.7 และ 4.8 อยู่ในทรี FreeBSD 9 Ports โดยทางและ GCC บางรุ่นน่าจะยังคงอยู่ในพอร์ตเป็นเวลาหลายปี มีแพ็คเกจซอฟต์แวร์มากมาย - หลายแห่งอยู่ใน FreeBSD Ports - ซึ่งสร้างด้วย GCC เท่านั้น


1
คอมไพเลอร์จะต้องไม่เพียง แต่ใกล้เคียงกับประสิทธิภาพอย่างน้อยที่สุด แต่ต้องมีส่วนขยายภาษาด้วย นักพัฒนามักจะใช้สิ่งเหล่านั้นด้วยเหตุผลบางอย่าง (หรือไม่มี ;-))
โจฮันเนส

8

มันอาจจะไม่จำเป็น จนกระทั่งเมื่อเร็ว ๆ BSD อนุญาตคอมไพเลอร์ C gccอาจจะน้อยหรือไม่ได้มาใกล้กับคุณลักษณะความเท่าเทียมกันด้วย

จากเป้าหมายโครงการ FreeBSD :

รหัสนั้นในแผนผังต้นกำเนิดของเราซึ่งอยู่ภายใต้สัญญาอนุญาตสาธารณะทั่วไปของกนู (GPL) หรือไลเซนส์สาธารณะทั่วไปของห้องสมุด (LGPL) มาพร้อมกับสตริงที่แนบมาอีกเล็กน้อยเล็กน้อย เนื่องจากความซับซ้อนเพิ่มเติมที่สามารถพัฒนาได้ในการใช้งานซอฟต์แวร์ GPL เชิงพาณิชย์ที่เราทำอย่างไรก็ตามต้องการซอฟต์แวร์ที่ส่งภายใต้ลิขสิทธิ์ BSD ที่ผ่อนคลายยิ่งขึ้นเมื่อเป็นตัวเลือกที่สมเหตุสมผลในการทำเช่นนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.