Каковы основные вклады GNU в операционную систему GNU/Linux?

Каковы основные вклады GNU в операционную систему GNU/Linux?

Я прочитал вЧасто задаваемые вопросы о GNU/Linux, что одна из причин, по которой они просят всех называть всю систему GNU/Linux, заключается в следующем:

  • Основной и важнейший вклад GNU в разработку операционной системы.

Это заставило меня задуматься, какой основной вклад внесла GNU в разработку операционных систем GNU/Linux?

Другими словами, каковы основные компоненты GNU в операционной системе GNU/Linux?

решение1

Наиболее важными частями являются компилятор GCC, библиотека C glibc, основные инструменты Unix coreutils и binutils, а также, вероятно, оболочка bash и среда рабочего стола Gnome (если вы их используете).

Только количество строк исходного кода не учитывает относительную важность. Если взять, например, полный набор программного обеспечения Debian или Fedora, большинство людей не устанавливают даже больше его части. И (если вы не очень организованы), есть вероятность, что у них установлено много пакетов, потому что они заинтересовались, установили их, чтобы проверить, и забыли о них. Так что даже статистика по загруженным пакетам (которую, как я полагаю, поддерживает Debian) не является справедливым описанием.

Добавлено позже:Я только что наткнулсяэта страницаО'Рейли (с прилагающимся постером, демонстрирующим вклад в систему Linux).

решение2

В дополнение к ответу фонбранда, давайте не будем забывать, что основным вкладом в ОС GNU/Linux является то, что многие компоненты GNU уже существовали, функционировали как целая экосистема и были доступны бесплатно по лицензии с открытым исходным кодом, когда стартовал проект Linux (ядра).

Не следует забывать и о том, какова была изначальная цель проекта GNU, а именно создание свободного клона Unix. Unix был и в настоящее время является набором спецификаций, содержащих все API, команды и функции, которым должна соответствовать операционная система. Этот стандарт чрезвычайно полезен разработчикам для создания переносимых приложений.

GNU libc и GNU coreutils/binutils как раз и предоставляют эти API и команды большинству ОС на основе ядра Linux. Они формируют основу, на которой может быть построено все остальное.

Независимо от их полезности и сложности, остальные компоненты являются необязательными и не определены стандартами Unix, поэтому технически не являются частью операционных систем Unix и их клонов.

Вот почему я считаю, что нет особого смысла называть дистрибутив Linux Linux/GNU/TeX/X11/Python/ISC/Apache и т. д., поскольку только Gnu и Linux образуют ядро, которое обеспечивает общую основу, ожидаемую всей экосистемой Unix/Linux.

TEX/X11/Gnome/KDE/Perl/Python/ISC/Apache/Tomcat/LibreOffice/Mozilla/Chromium/что угодно, какими бы полезными они ни были, не являются частью Unix/Linux.

решение3

Рекомендую прочитать статьюLinux и система GNU&Проект GNUчтобы получить идею для вклада GNU.


Ниже приводится цитата изLinux и система GNU:

  • Обзор вклада:

    Если бы мы попытались измерить вклад проекта GNU таким образом, к какому выводу мы бы пришли? Один поставщик CD-ROM обнаружил, что в их «дистрибутиве Linux»,программное обеспечение GNUбыл самым большим отдельным контингентом, около 28% от общего исходного кода, и это включало некоторые из основных основных компонентов, без которых не было бы системы. Сам Linux составлял около 3%. (Пропорции в 2008 году были похожи: в «главном» репозитории gNewSense Linux составляет 1,5%, а пакеты GNU — 15%.) Поэтому, если бы вы собирались выбрать название для системы на основе того, кто написал программы в системе, наиболее подходящим отдельным выбором было бы «GNU».

  • Уточнение цели:

    Но это не самый глубокий способ рассмотреть вопрос. Проект GNU не был и не является проектом по разработке определенных программных пакетов. Это не был проектразработать компилятор C, хотя мы это и сделали. Это не был проект по разработке текстового редактора, хотя мы его и разработали. Проект GNU был направлен на разработку полностью свободной Unix-подобной системы: GNU.

  • Декларация основных компонентов:

    Многие люди внесли большой вклад в свободное программное обеспечение в системе, и все они заслуживают признания за свое программное обеспечение. Но причина, по которой это интегрированная система, а не просто набор полезных программ, заключается в том, что проект GNU поставил себе цель сделать ее таковой. Мы составили список программ, необходимых для создания полной свободной системы, и мы систематически находили, писали или находили людей, которые писали все в списке.Мы написали необходимое, но неинтересное(1)компоненты, потому что без них не может быть системы. Некоторые из наших системных компонентов, программные инструменты, стали популярными сами по себе среди программистов, но мы написали много компонентов, которые не являются инструментами(2).Мы даже разработали шахматную игру GNU Chess, потому что полноценной системе нужны и игры.


Из статьи Википедии оGNU>Компоненты:

В состав основных компонентов системы входят:Коллекция компиляторов GNU(ССЗ),Библиотека GNU C(глибк) иОсновные утилиты GNU(coreutils),[8]но также и отладчик GNU (GDB),Двоичные утилиты GNU(binutils),[38]оболочка GNU Bash[33][39]иГНОМсреда рабочего стола.[40]

Также посетитеСписок пакетов GNU>Базовая системаиз википедии.


Итак, основные компоненты можно перечислить следующим образом:

  1. GNU Binutils
  2. GNU Coreutils
  3. Библиотека GNU C
  4. Коллекция компиляторов GNU(первоначальное название: GNU C Compiler)
  5. GNU-тар
  6. GNU-баш
  7. ГНОМ

И многое другое.


Кроме того, изЧасто задаваемые вопросы:

На Линуса Торвальдса частично повлияла речь о GNU в Финляндии в 1990 году. Возможно, что даже без этого влияния он написал бы ядро, подобное Unix, но оно, вероятно, не было бы свободным программным обеспечением. Linux стал свободным в 1992 году, когда Линус перевыпустил его под лицензией GNU GPL.


Также обратите внимание, что они не хотят просить нас называть GNU/Linux только из-за их самого большого вклада в систему, но более важным является внедрение, сохранение и поощрение идеализма и цели GNU, которые объясняются наПочему GNU/Linux?

Связанный контент