Mengapa FreeBSD menggunakan GCC berlisensi GPL?

11

Mengapa FreeBSD menggunakan GCC sebagai kompiler default?

Saya mendapat kesan bahwa pilar inti dari filosofi FreeBSD adalah tidak menggunakan perangkat lunak GNU dan khususnya, kode GPL.

Namun GCC yang merupakan GNU dan GPL dibundel dengan FreeBSD.

Mengapa?

JasonH
sumber

Jawaban:

13

FreeBSD 10 akan menggunakan kompiler Clang berlisensi BSD sebagai ganti GCC untuk sistem Intel x86 32-dan 64-bit. Satu-satunya hal yang mencegah peralihan grosir pada semua platform CPU yang dirilis FreeBSD adalah waktu dan minat pengembang.

Adapun FreeBSD 9 - yang baru saja akan dirilis ketika pertanyaan ini pertama kali diajukan - ada pembicaraan tentang menjadikan Dentang sebagai kompiler default, tetapi ada cukup masalah dengan itu sehingga mereka memutuskan untuk mengirim Dentang bersama GCC, dan meninggalkan GCC sebagai default untuk rilis ini.

Mengenai mengapa FreeBSD tidak mencoba pindah ke kompiler non-GPL bertahun-tahun sebelumnya, atau bahkan membuatnya sendiri, alasannya sederhana: sulit.

Siswa CS sarjana muda dapat menulis kompiler - bahkan mungkin persyaratan kursus - tetapi menulis kompiler yang baik sulit. Menulis kompiler yang baik masih lebih sulit ketika perlu untuk bahasa seperti C atau C ++. Tugas menjadi lebih sulit ketika Anda membuat keputusan yang masuk akal bahwa kompiler baru perlu setidaknya mendekati kinerja dan kemampuan GCC, yang memiliki beberapa dekade pengembangan di belakangnya.

Karena itu, GCC 4.2 masih merupakan kompiler default di FreeBSD 9.

GCC 3.4, 4.4, 4.6, 4.7, dan 4.8 berada di pohon FreeBSD 9 Ports, omong-omong, dan beberapa versi GCC kemungkinan akan tetap di Ports selama bertahun-tahun yang akan datang. Ada banyak paket perangkat lunak di luar sana - banyak di antaranya ada di FreeBSD Ports - yang hanya dibuat dengan GCC.

Warren Young
sumber
1
Kompiler tidak hanya harus paling dekat dengan kinerja tetapi juga ekstensi bahasa harus didukung. Pengembang sering menggunakan itu untuk beberapa alasan (atau tidak ada ;-))
johannes
8

Kemungkinan karena kebutuhan. Sampai baru-baru ini, kompiler C berlisensi BSD mungkin sedikit atau tidak mendekati fitur parity gcc.

Dari Tujuan Proyek FreeBSD :

Kode di pohon sumber kami yang berada di bawah GNU General Public License (GPL) atau Library General Public License (LGPL) hadir dengan ikatan yang sedikit lebih banyak, meskipun setidaknya di sisi akses yang dipaksakan daripada sebaliknya. Karena kompleksitas tambahan yang dapat berkembang dalam penggunaan komersial perangkat lunak GPL, kami lebih memilih perangkat lunak yang diserahkan dengan hak cipta BSD yang lebih santai ketika itu merupakan pilihan yang masuk akal untuk melakukannya.

Brian Cain
sumber