Perché FreeBSD usa il GCC con licenza GPL?


11

Perché FreeBSD usa GCC come compilatore predefinito?

Ho l'impressione che un pilastro fondamentale della filosofia di FreeBSD non sia l'uso di alcun software GNU e in particolare del codice GPL.

Eppure GCC che è sia GNU che GPL viene fornito in bundle con FreeBSD.

Perché?

Risposte:


13

FreeBSD 10 utilizzerà il compilatore Clang con licenza BSD invece di GCC per sistemi Intel x86 a 32 e 64 bit. L'unica cosa che impedisce un passaggio all'ingrosso su tutte le piattaforme CPU su cui FreeBSD rilascia è il tempo e l'interesse degli sviluppatori.

Per quanto riguarda FreeBSD 9 - che stava per essere rilasciato quando questa domanda fu posta per la prima volta - si parlava di rendere Clang il compilatore predefinito, ma c'erano abbastanza problemi con esso che decisero di spedire Clang insieme a GCC e lasciare GCC come predefinito per questa versione.

Per quanto riguarda il motivo per cui FreeBSD non ha provato a passare a un compilatore non GPL anni prima, o forse addirittura a crearne uno proprio, il motivo è semplice: è difficile.

Ogni studente CS non laureato può scrivere un compilatore - può anche essere un requisito del corso - ma scrivere un buon compilatore è difficile. Scrivere un buon compilatore è ancora più difficile quando deve essere per un linguaggio come C o C ++. Il compito diventa ancora più difficile quando si prende la ragionevole decisione che il nuovo compilatore deve almeno avvicinarsi alle prestazioni e alle capacità di GCC, che ha alle spalle un paio di decenni di sviluppo.

Per questo motivo, GCC 4.2 è ancora il compilatore predefinito su FreeBSD 9.

A proposito, GCC 3.4, 4.4, 4.6, 4.7 e 4.8 sono nella struttura delle porte di FreeBSD 9 Ports, e probabilmente una versione di GCC rimarrà nelle porte per molti anni a venire. Ci sono molti pacchetti software là fuori - molti dei quali sono nelle porte di FreeBSD - che compilano solo con GCC.


1
Il compilatore non deve essere almeno vicino alle prestazioni, ma anche le estensioni del linguaggio devono essere supportate. Gli sviluppatori usano spesso quelli per qualche motivo (o nessuno ;-))
johannes

8

È probabilmente per necessità. Fino a poco tempo fa, i compilatori C con licenza BSD erano probabilmente pochi o non si avvicinavano alla parità gcc.

Dagli obiettivi del progetto FreeBSD :

Quel codice nel nostro albero dei sorgenti che rientra nella GNU General Public License (GPL) o Library General Public License (LGPL) viene fornito con un numero leggermente maggiore di stringhe, sebbene almeno dalla parte dell'accesso forzato piuttosto che dal solito opposto. A causa delle complessità aggiuntive che possono evolversi nell'uso commerciale del software GPL, tuttavia, preferiamo il software presentato sotto il copyright BSD più rilassato quando è un'opzione ragionevole per farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.