Почему FreeBSD использует GPL-лицензированный GCC?

поразрядное резервное копирование

  • Периодически, используйте "dd" для создания полной поразрядной копии / домашним разделом на моем рабочем компьютере (или возможно каждым разделом) к файлу (файлам) резервной копии на моем сервере. (Там некоторый путь состоит в том, чтобы обновить резервное использование прошлого месяца чего-то как rsync, таким образом, я не должен запускать с нуля каждый раз, ускоряя это?) (там некоторый путь состоит в том, чтобы сделать все или большинство это в фоновом режиме, в то время как я использую свой компьютер?).
    • Поместите liveCD в рабочий компьютер и перезагрузку
    • sudo dd if=/dev/hda | gzip -c | ssh -v -c blowfish davidcary@my_local_file_server "dd of=backup_2011_my_working_computer.gz"
  • сохраните все "мои" файлы в моем каталоге $HOME.
    • текстовые файлы, фотографии, файл закладки веб-браузера, и т.д. - все в корневом каталоге.
    • если я пишу сценарий пакетной обработки, который "должен" войти в некоторый другой подкаталог, сохранить основную копию где-нибудь в моем каталоге $HOME и сделать гибкую ссылку от того другого подкаталога до основной копии.
    • Если я пишу скомпилированное программное обеспечение, которое "должно" войти в некоторый другой подкаталог, сохранить основной исходный код и Make-файл в некотором подкаталоге моего каталога $HOME, и настроить Make-файл, таким образом, "делают установку", автоволшебно устанавливает двоичный исполняемый файл в том другом каталоге.
    • Если я исправляю ошибки в некотором программном обеспечении, передаю исправления ошибок в восходящем направлении.
    • сохраните список в некотором текстовом файле в моем каталоге $HOME "приложений, которые я люблю, и не был установлен по умолчанию" и "приложения, которые обычно устанавливаются по умолчанию, но мне не нравится". Посмотрите, Как Вы отслеживаете, какие пакеты были установлены на Ubuntu (Linux)? или Как Вы отслеживаете, какие пакеты были установлены на Fedora (Linux)?
  • если я покупаю программное обеспечение на CD или DVD, создаю резервную копию ISO-образа на моем файловом сервере и установки из того изображения на мой рабочий компьютер. (Поскольку мой рабочий компьютер не имеет оптического диска).

Позже, когда машина A потеряна,

  • установка последняя версия любого дистрибутива является моим фаворитом на этой неделе, включая все программное обеспечение по умолчанию, на машине C.
  • На файловом сервере B использование "монтируется" с "циклическим устройством", чтобы позволить доступу только для чтения отдельные файлы, хранившие в том файле резервной копии. (Для получения дополнительной информации о создании и монтировании сжатого образа диска только для чтения, см. https://superuser.com/questions/254261/compressed-disk-image-on-linux),

Увы, код пользователя "davidcary" на моем рабочем компьютере отличается от кода пользователя "davidcary" на моем файловом сервере - таким образом, кажется, что все эти файлы принадлежат некоторому другому пользователю. Существует ли способ зафиксировать это или предотвратить его во-первых?

  • скопируйте мой/home/каталог от того файла резервной копии до/home/каталога моей новой машины работы, так или иначе(?) перескочив через все двоичные исполняемые файлы. Это блокирует некоторые виды вирусов и троянцев от распространения до C.
  • установите другой материал вне моего корневого каталога:
    • проверьте мой список приложений, удалите материал, который я не хочу.
    • проверьте мой список приложений, установите последнюю версию материала, который я хочу. Надо надеяться, последняя версия включает исправления ошибок, которые я пасовал назад. (См. ссылки выше для способов автоматизировать этот процесс),
    • действительно "сделайте суперчистыми", и "делают установку" с каждой из скомпилированных программ, которые я записал.
    • так или иначе(?) помните, куда сценарии пакетной обработки "должны" пойти, и создавать гибкую ссылку от того местоположения до основного источника в моем/home/каталоге. (Есть ли способ автоматизировать это?)
    • так или иначе(?) помните весь материал, я имею выполнение как крон и anacron задания, и ввожу их, въезжают задним ходом снова.
    • программное обеспечение установки, которое было куплено на CD у ISO-образа на файловом сервере.
  • ... есть ли что-либо еще, что я пропускаю?

11
20.12.2011, 19:32
2 ответа

Это вероятно из необходимости. До недавнего времени BSD-лицензированные компиляторы C были, вероятно, немногими или не близко подошли к четности функции с gcc.

От целей проекта FreeBSD:

Тот код в нашем исходном дереве, которое подпадает под Генеральную общедоступную лицензию GNU (GPL) или Стандартную общественную лицензию библиотеки (LGPL), идет с немного большим количеством присоединенных строк, хотя, по крайней мере, на стороне вынужденного доступа, а не обычного противоположного. Из-за дополнительных сложностей, которые могут развиться в коммерческом использовании программного обеспечения GPL, мы действительно, однако, предпочитаем программное обеспечение, отправленное под более расслабленным авторским правом BSD, когда это - разумная опция сделать так.

8
27.01.2020, 19:57

FreeBSD 10 будет использовать BSD-лицензированный компилятор Лязга вместо GCC для 32-и 64-разрядные системы Intel x86. Единственная вещь, предотвращающая оптовую торговлю, включает все релизы FreeBSD платформ ЦП на, время разработчика и интерес.

Что касается FreeBSD 9 — который как раз собирался быть выпущенным, когда этот вопрос был сначала поставлен — был разговор о создании Лязга компилятор по умолчанию, но было достаточно проблем с ним, что они решили поставить Лязг вместе с GCC и оставить GCC значением по умолчанию для этого выпуска.

Что касается того, почему FreeBSD не попытался переместиться в non-GPL компилятор за годы до этого или возможно даже создал их собственное, причина проста: это твердо.

Любой старшекурсник, которого студент CS может записать компилятору — это может даже быть требование курса — но запись хорошего компилятора трудна. Запись хорошего компилятора более трудна все еще, когда это должно быть для языка как C или C++. Задача становится еще более трудной, когда Вы принимаете разумное решение, что новый компилятор должен, по крайней мере, обратиться к производительности и возможности GCC, который имеет ценность нескольких десятилетий разработки позади него.

Из-за этого GCC 4.2 является все еще компилятором по умолчанию на FreeBSD 9.

GCC 3.4, 4.4, 4.6, 4.7, и 4.8 находится в FreeBSD 9 деревьев Портов, между прочим, и некоторая версия GCC, вероятно, останется в Портах на много лет вперед. Существует много пакетов программного обеспечения там — многие из которых находятся в Портах FreeBSD — которые только создают с GCC.

13
27.01.2020, 19:57
  • 1
    , которым компилятор должен не только быть, по крайней мере, близко к производительности, но также и расширения языка должны поддерживаться. Разработчики часто используют их по некоторым причинам (или ни один, ;-)) –  johannes 09.11.2012, 23:32

Теги

Похожие вопросы