CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.11.2021

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Движение Open Source :: История

Свободная система для свободных людей

Страницы: предыдущая :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: ... :: 39 :: следующая

GNU, Free Software и Open Source

Операционная система Unix – это только один из двух главных предшественников Linux. Второй существенный предшественник – проект GNU Ричарда Столлмана (Richard Stallman) и его последователей.

Рис. 3. Ричард Столлман.

История проекта GNU началась в сентябре 1983 года. Основоположник проекта GNU, Ричард Столлман (Richard M. Stallman) работал в это время в лаборатории искусственного интеллекта Массачусетского Технологического института (Massachusetts Institute for Technology, MIT, in Cambridge, Massachusetts). Э.Реймонд называет Столлмана одним из самых выдающихся программистов нашего времени. В той среде, к которой принадлежал Р.Столлман, было принято свободно обмениваться программами и их исходными кодами.

В 1982 году для лаборатории искусственного интеллекта была приобретена коммерческая ОС, и Р.Столлман впервые близко столкнулся с ситуацией, когда такой обмен категорически воспрещался. Приобретение коммерческого ПО означало автоматическое заключение "соглашения о неразглашении", которое фактически провозглашало следующее: если вы поделились программой с соседом - вы пират! А когда один из программистов отказался предоставить Столлману исходные коды управляющей программы для принтера (что практически лишало возможности пользоваться этим принтером), Столлман был поставлен перед выбором: либо признать законность соглашений о неразглашении, либо попытаться доказать, что программное обеспечение должно свободно копироваться и модифицироваться, что позволит значительно ускорить процесс его разработки. Ведь лицензия на Unix от AT&T, к примеру, стоила 40 000 долларов. Позволить себе купить ее могли только достаточно крупные фирмы. А без такой лицензии программист не имел права использовать исходные коды системы в своих разработках. Да просто не имел этих исходных кодов! Это препятствовало обмену идеями в сфере программирования и сильно тормозило процесс создания программ, поскольку вместо того, чтобы позаимстовать готовый кусок кода для решения той или иной задачи, разработчик программы был вынужден писать эту часть кода заново.

И Столлман решил изменить это положение вещей в программировании. В 1983 году он объявил о начале разработки проекта GNU, целью которого было создание полностью открытой операционной системы. На следущем листинге вы видите первое объявление о начале разработки проекта GNU.

Листинг 1. Объявление о проекте разработки GNU

Полный текст этого объявления вы можете найти по следующей ссылке: http://www.gnu.org/gnu/initial-announcement.html

Как писал позже сам Столлман: "Аббревиатура GNU расшифровывается как "GNU - это не UNIX" (GNU - Not UNIX). Основная идея, заложенная в процесс разработки системы GNU - это ее полное отличие от UNIX. UNIX всегда была и остается несвободным ПО, то есть она лишает своих пользователей свободы сотрудничества, а также контроля над своими компьютерами. Для того, чтобы стать сообществом, свободно пользующимся своими компьютерами, нам нужна была свободная операционная система. У нас не было достаточной суммы, чтобы выкупить и сделать свободной какую-либо из существовавших систем, но у нас было достаточно знаний и умений, чтобы создать новую. Создание GNU было грандиозной работой. Мы сделали ее во имя нашей свободы, и вашей тоже."

Чтобы МТИ не мог предъявить права собственности на результаты работы и навязать свои условия распространения разработанного ПО, Столлман в январе 1984 года ушел из МТИ и полностью посвятил себя проекту GNU. На первом этапе он поставил перед собой задачу создания многоязыкового, многоплатформенного компилятора. Но, чтобы написать любую программу, надо как минимум иметь текстовый редактор. Поэтому первой программой, созданной в рамках проекта GNU, стал текстовый редактор Emacs. Столлман начал работать над GNU Emacs в сентябре 1984 года, а в начале 1985-го уже имел работоспособную версию. Редактором Emacs заинтересовались другие программисты и это дало Столлману возможность получения небольшого заработка: он стал за 150 долл. отсылать по почте ленту с Emacs любому, кто захотел ее иметь.

В 1985 году Р.Столлман написал свой знаменитый Манифест GNU (он был опубликован в мартовском номере журнала "Dr. Dobb's Journal" за 1985 год) и основал Free Software Foundation (FSF) - благотворительный фонд для разработки свободно распространяемого ПО. Фонд взял на себя распространение лент с Emacs; позже он стал поставлять и другие свободно распространяемые программы (созданные как в рамках Проекта GNU, так и вне его), а также продавать руководства к ним. Это давало средства для разработки проекта GNU. FSF принимал пожертвования, но большая часть доходов всегда поступала от продаж копий свободно распространяемого ПО и связанных с ним услуг.

Разработка свободно распространяемого ПО была очень важным шагом, но еще большей заслугой Р.Столлмана следует признать создание Стандартной Общественной Лицензии GNU (GNU General Public License, или GPL). На русский язык это название разные авторы переводят по разному - Универсальная общественная лицензия, Обобщенная Публичная Лицензия и т.п. Но считается, что юридическую силу имеет только английский вариант этой лицензии. Основная идея GPL состоит в том, что пользователь должен обладать следующими четырьмя правами (или четырьмя свободами):

  • Правом запускать программу для любых целей (свобода 0)
  • Правом изучать устройство программы и приспосабливать ее к своим потребностям (свобода 1), что предполагает доступ к исходному коду программы.
  • Правом распространять программу, имея возможность помочь другим (свобода 2).
  • Правом улучшать программу и публиковать улучшения, в пользу всего сообщества (свобода 3), что тоже предполагает доступ к исходному коду программы.

Программное обеспечение, распространяемое под этой лицензией, можно как угодно использовать, копировать, дорабатывать, модифицировать, передавать или продавать модифицированные (или немодифицированные) версии другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией GPL. Последнее условие — самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно. Одно из требований этой лицензии состоит в том, что продавая ПО под лицензией GPL, вы должны предоставить исходные коды этого ПО каждому, кто захочет получить к ним доступ. Говоря словами создателей FSF, лицензия GPL "делает ПО свободным и гарантирует, что оно останется свободным".

Первая версия GPL датирована февралем 1989 г. Вторая вышла в июне 1991-го, в настоящее время идет работа над 3-ей версий.

Все программное обеспечение GNU выпускается под этой лицензией или менее ограничивающим ее вариантом, LGPL. Для документации прокта GNU была разработана специальная "Лицензия GNU на свободную документацию". Поскольку лицензированные традиционным способом программы часто обозначали значком авторского права "copyright", программы, выпущенные под лицензией GPL, стали обозначать как "copyleft".

Главная цель, которую преследует GPL, - защитить свободное программное обеспечение от "приватизации". Но нужно заметить, что она сконструирована таким образом, чтобы разрешить все "честные" способы заработка денег на свободных программах, Это очень существенный момент, на который необходимо обратить особое внимание. При первом знакомстве с GPL может сложиться ошибочное представление о том, что эта лицензия вообще запрещает какие-либо способы заработать на программном обеспечении или его разработке. На самом деле GPL в частности и FSF вообще прямо поощряют бизнес, связанный с оказанием сопутствующих услуг, - обучение, консультации, и коммерческое тиражирование ПО. Это позволяет привлечь к сотрудничеству и корпорации и людей, для котоых материальный интерес важнее моральных стимулов.

Важной особенностью GPL является то, что использование GPL не требует согласия с идеологией Столлмена (она довольно радикальна - по-видимому, Столлмен не приемлет любой софтверный бизнес, основанный на эксплуатации ограничений, предоставляемых авторским правом). На практике ее находят удобным инструментом для достижения своих целей и большинство программистов, не разделяющих достаточно радикальную позицию FSF, и даже многие коммерческие предприятия. C другой стороны, GPL обычно считают приемлемым инструментом и те, кто не хотел бы, чтобы на их вкладе "делали деньги". Это не случайная особенность. GPL намеренно составлена так, чтобы быть приемлемой для максимально широкого круга людей.

К 1990 году в рамках проекта GNU было создано большинство компонент, необходимых для функционирования свободной операционой системы. Помимо текстового редактора Emacs, Столлман создал компилятор gcc (GNU C Compiler) и отладчик gdb. Будучи выдающимся программистом, Ричард Столлман в одиночку сумел создать эффективный и надежный компилятор, который превосходит по своим качествам продукты коммерческих поставщиков, создаваемые целыми группами программистов. Поскольку изначально при его создании ставилась задача обеспечения переносимости, сегодня существуют версии этого компилятора практически для всех операционных систем. Позже были созданы компиляторы для других языков программирования, включая C++, Pascal и Fortran. Поэтому сейчас аббревиатура GCC расшифровывается как GNU Compiler Collection.

Сотрудники Free Software Foundation разработали множество других программных пакетов. Из них стоит особо отметить два: библиотеку Си и оболочку shell. Библиотека функций языка Си была разработана сотрудником FSF Роландом Макграсом. Оболочка BASH (Bourne Again Shell), обеспечивающая взаимодействие пользователя с операционной системой, создана еще одним сотрудником FSF Брайаном Фоксом.

Как пишет Р.Столлман "К 1990 году система GNU была практически закончена; не хватало только одного из базовых компонентов - ядра." Ожидалось, что ядро (оно получило название HURD) будет реализовано как набор серверных процессов, работающих на Mach - микроядре, создаваемом в университете Карнеги-Меллона, а затем в университете штата Юта. Начало разработки откладывалось в ожидании выпуска Mach, которое, как было обещано, будет выпущено в виде свободно распространяемого программного обеспечения. Но его появление все откладывалось, и тут появилось ядро, разработанное финским студентом Линусом Торвальдсом, и получившее название Linux.

С технической точки зрения Linux представляет собой только ядро Unix-подобной операционной системы, отвечающее за взамодействие с аппаратной частью компьютера и выполнение таких задач, как распределение памяти, выделение процессорного времени различным программам и так далее. Кроме ядра операционная система включает в себя множество различных утилит, которые служат для организации взаимодействия пользователя с системой. Одна из важнейших утилит такого рода в Unix-системах - оболочка или shell. Кроме оболочки пользователю нужны утилиты, позволяющие управлять файловой системой (просматривать файлы и каталоги, создавать новые файлы, удалять ненужные), нужны утилиты, позволяющие работать с текстом (в том числе с текстами программ) и многое другое. В Unix при создании таких утилит применялся принцип минимальной достаточности: каждая утилита должна была уметь выполнять только одну маленькую задачу, но зато выполнять ее хорошо. А для решения более сложных задач применялся принцип конвейера: выход, полученный от одной утилиты, направлялся на вход другой. В результате можно было реализовать сложные процедуры обработки данных. Такой подход позволял уменьшить число ошибок в коде и обеспечить высокую стабильность системы при сохранении относительной простоты ее поддержки.

Успех Linux как операционной системы во многом обусловлен тем, что к 1991 году в рамках проекта GNU уже было разработано множество утилит, свободно распространяемых в Интернет. Проекту GNU не хватало ядра, а ядро, скорее всего, осталось бы невостребованным, если бы отсутствовали необходимые для работы утилиты. Линус Торвальдс оказался со своей разработкой в нужном месте в нужное время. И Ричард Столлман прав, когда настаивает на том, что операционную систему следует называть не Linux, а GNU/Linux. Но название Linux исторически уже закрепилось за этой ОС, поэтому мы тоже будем называть ее просто Linux (не забывая о заслугах Р.Сталлмана и его сподвижников).




Страницы: предыдущая :: 1 :: 2 :: 3 :: 4 :: 5 :: 6 :: ... :: 39 :: следующая

Комментарии

аноним, Sun Dec 13 13:09:43 2009:
Виндовс - говно, линукс - ОС будушего. Это легко понять если сравнить например Windows 3.1 и Ubuntu 9.10. Кто это не понимает просто быдло!
аноним, Sun Dec 13 03:49:50 2009:
Хмм удивительно то что MS когда-то раздавали шрифты.
Я считал что они пожизни были пропиетарны и распространялись строго в составе дистрибутивов.
Кстати как вспомню какие корявым был набор шрифтов
в майкрософтовском офисе 2.0 - это ж просто уму
не постижимо...
Виктор Коновалов, Sun Dec 13 03:46:27 2009:
Ах, по сабжу. Статья вобщем полезная и для новичков
интересная. Мне действительно жаль, что фанатизм помешает многим правильно понять её.
Виктор Коновалов, Sun Dec 13 03:44:19 2009:
О... новый повод для знатного срача. Господи,
ну когда этот идиотизм закончится?
аноним, Sun Dec 13 02:56:56 2009:
Что было, когда Linux еще не было

не было красноглазия
аноним, Sun Dec 13 01:13:34 2009:
В осле полным полно книг.
аноним, Sun Dec 13 00:31:13 2009:
а скачать книги эти где можно???

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds