Лучше чем linux gnu

Лучше чем linux gnu

61

Linux и система GNU

Там действительно есть Linux, и эти люди используют ее, но это только часть системы, которой они пользуются. Linux — это ядро — системная программа, которая выделяет ресурсы машины другим программам, которые вы запускаете. Ядро — важная часть операционной системы, но само по себе оно бесполезно; оно может функционировать только в составе полной операционной системы. Linux обычно применяют в комбинации с операционной системой GNU: вся система представляет собой в основном GNU с добавлением Linux, то есть GNU/Linux. Все так называемые дистрибутивы “Linux” на самом деле являются дистрибутивами GNU/Linux.

Многие пользователи не понимают, в чем разница между ядром, то есть Linux, и целой системой, которую они также называют “Linux”. Неоднозначное употребление названия не способствует пониманию этого. Эти пользователи часто думают, что Линус Торвальдс разработал целую операционную систему в 1991 — году, ему только немного помогли.

Программисты, в сущности, знают, что Linux — это ядро. Но поскольку они нередко слышали, как всю систему тоже называют “Linux”, они часто представляют себе историю, которая оправдала бы наименование всей системы по ядру. Например, многие думают, что как только Линус Торвальдс написал Linux (ядро), его пользователи оглянулись вокруг в поисках других свободных программ, чтобы работать с ним, и обнаружили, что (без какой бы то ни было особой причины) почти все необходимое для построения системы типа Unix уже под рукой.

Цель большинства проектов по созданию свободных программ — разработка определенной программы для определенной задачи. Например, Линус Торвальдс решил написать Linux, ядро типа Unix; Дональд Кнут решил написать TeX, программу верстки текста; Боб Шейфлер решил разработать оконную систему (систему X Window). Естественно измерять вклад такого рода проекта по конкретным программам, которые пришли из этого проекта.

Читайте также:  Лучшие линуксы для новичков

Если бы мы попытались измерить таким образом вклад проекта GNU, к какому бы выводу мы пришли? Один из поставщиков компакт-дисков установил, что в их “дистрибутиве Linux” программы GNU — самый крупный единый массив — около 28% всего исходного текста; в их состав входят некоторые существенные компоненты, без которых системы не могло бы быть; собственно Linux составляет около 3%. (В 2008 году пропорции сходны: в разделе “main” gNewSense Linux составляет — 1,5%, а GNU — 15%.) Итак, если бы вы собирались выбрать название системы на основании того, кто написал программы в этой системе, наиболее подходящим выбором одного компонента было бы “GNU”.

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

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

Читайте также:  Linux apt get ошибки

Заставить их как следует работать вместе не было простой задачей. Некоторые компоненты GNU[3] требовали существенных изменений, чтобы они работать с Linux. Объединение в полную систему в едином дистрибутиве, который работал бы “без подгонки”, было тоже большой работой. Это требовало решения вопросов, связанных с установкой и загрузкой системы — проблема, за которую мы тогда еще не ухватились, потому что у нас дело до этого пока не дошло. Таким образом, люди, разработавшие различные дистрибутивы системы, проделали большую и важную работу. Но это было работой, которую, по самой природе вещей, обязательно кто-нибудь выполнил бы.

Проект GNU поддерживает системы GNU/Linux так же хорошо, как саму систему GNU. ФСПО финансировал доработку расширений библиотеки C GNU, связанных с Linux, так что теперь они хорошо пригнаны друг к другу, и самые новые системы GNU/Linux используют текущий выпуск библиотеки без изменений. ФСПО финансировал также на ранней стадии разработку Debian GNU/Linux.

Пользуетесь вы GNU/Linux или нет, пожалуйста, не вводите общественность в заблуждение двусмысленным употреблением названия “Linux”. Linux — это ядро, одна из необходимых составляющих системы. Система в целом — это в основном система GNU с добавлением Linux. Когда вы говорите об этом сочетании, пожалуйста, называйте его “GNU/Linux”.

Если вы хотите сослаться для справок на “GNU/Linux”, эта страница и https://www.gnu.org/gnu/the-gnu-project.html — хорошие примеры. Если вы упоминаете Linux (ядро) и хотите добавить ссылку для справок, http://foldoc.org/foldoc/linux — хороший адрес для этого.

Дополнения

Кроме GNU был еще один проект, который независимо произвел свободную операционную систему типа Unix. Эта система известна как BSD, она была разработана в Калифорнийском университете в Беркли. Она была несвободной в восьмидесятые, но стала свободной в начале девяностых. Любая из свободных операционных систем, существующих сегодня,[4] почти наверное является либо вариантом системы GNU, либо разновидностью системы BSD.

Читайте также:  Поиск последних измененных файлов linux

Иногда спрашивают, является ли BSD тоже версией GNU, подобно GNU/Linux. Разработчики BSD сделали свои программы свободными, следуя примеру проекта GNU, и открытые призывы активистов GNU помогли убедить их, но в исходных текстах программ мало общих мест с текстами GNU. Сегодня системы BSD используют некоторые программы GNU, точно так же, как система GNU и ее варианты пользуются некоторыми программами BSD; однако в целом это две различных системы, которые развивались отдельно. Разработчики BSD не добавили ядро в систему GNU, разработав его, так что название типа “GNU/BSD” не подошло бы к ситуации[5].

Примечания

  1. Эти не впечатляющие, но существенные компоненты включают ассемблер (GAS) и редактор связей (GLD), которые сейчас оба входят в пакет GNU Binutils, GNU tar, и другие.
  2. Например, Bourne Again SHell (BASH), интерпретатор языка PostScript Ghostscript и библиотека C GNU не являются средствами программирования. Так же, как и GNUCash, GNOME и GNU Chess.
  3. Например, библиотека C GNU.
  4. С тех пор, как были написаны эти строки, была разработана почти полностью свободная операционная система, подобная Windows, но с технической точки зрения она совсем не сходна с GNU или Unix, так что на самом деле это к делу не относится. Ядро Solaris по большей части сделали свободным, но если бы вы захотели сделать из этого свободную систему, кроме замены недостающих частей ядра, вам потребовалось бы также обратить ее в GNU или BSD.
  5. С другой стороны, за годы, прошедшие со времени написания этой статьи, библиотека C GNU была перенесена на несколько версий ядра BSD, что позволило прямо соединять систему GNU с этим ядром. Точно так же, как в случае с GNU/Linux, это действительно варианты GNU и потому называются GNU/kFreeBSD и GNU/kNetBSD, в зависимости от ядра системы. Обычные пользователи типичных настольных компьютеров с трудом могут отличить GNU/Linux от GNU/*BSD.

Источник

Оцените статью
Adblock
detector