Чому FreeBSD використовує ліцензовану GPL ліцензію GPL?


11

Чому FreeBSD використовує GCC як свій компілятор за замовчуванням?

Я маю враження, що основний стовп філософії FreeBSD - це не використовувати будь-яке програмне забезпечення GNU, зокрема GPL-код.

І все ж GCC, який є і GNU, і GPL, постачається в комплекті з FreeBSD.

Чому?

Відповіді:


13

FreeBSD 10 використовуватиме BSD-ліцензований компілятор Clang замість GCC для 32- та 64-розрядних систем Intel x86. Єдине, що перешкоджає оптовому переключенню на всіх процесорних платформах, на які 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 - які створюються лише за допомогою GCC.


1
Компілятор повинен бути не тільки наближеним до продуктивності, але також повинні підтримуватися розширення мови. Розробники часто з тих чи інших причин використовують (або немає ;-))
johannes

8

Це, мабуть, неможливо. До недавнього часу ліцензовані компілятори C, що мають ліцензію на BSD, були, ймовірно, мало або не наближались до паритету gcc.

З цілей проекту FreeBSD :

Цей код у нашому вихідному дереві, що підпадає під загальну публічну ліцензію GNU (GPL) або General Public License (LGPL), має додані трохи більше рядків, хоча принаймні на стороні примусового доступу, а не на звичайному протилежному. Однак у зв'язку з додатковими складностями, які можуть розвиватися в комерційному використанні програмного забезпечення GPL, ми, однак, віддаємо перевагу програмному забезпеченню, поданому під більш спокійні авторські права BSD, коли це є розумним варіантом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.