Лекция для школьников старших классов «Движение Open Source»
Эпиграф
Сначала они вас игнорируют,
потом смеются над вами,
потом они борются с вами,
а потом вы побеждаете.
Махатма Ганди
Задача:
Дать понятие о закрытых (проприетарных) и открытых (Open Source) исходниках.
Рассказать о философии и об истории появления движения Open Source.
Сформулировать преимущества Open Source программ перед закрытыми программами.
Исходный текст программы - это текстовый файл, написанный на каком-либо языке программирования. Обычно исходный текст программы преобразуется в машинные коды при помощи программы-компилятора. После компиляции программы, если программист оставляет исходники у себя, закрывая их, и отдает только исполняемые файлы, то такие программы называют закрытыми или проприетарными. Но есть и другой путь – вместе с исполняемыми файлами отдавать и исходники. Этот путь – Open Source («открытые исходники»)!
Open Source - программное обеспечение с открытыми исходными текстами, копии которого можно свободно распространять, использовать в любых целях, исходные коды программы доступны и их можно изменять, после изменения коды производных программ тоже должны оставаться открытыми и свободными. Когда мы говорим о открытом, свободном ПО, мы имеем в виду свободу, а не цену.
В Средние века каждый ремесленник ревностно хранил свои секреты, которые он узнал на практике или дошел до них, рассуждая логически, возможно знания достались по наследству от отца. Эти секреты давали ему некоторое преимущество перед другими ремесленниками и это преимущество легко "превращалось" в звонкую монету.
Но часто люди умирая, уносили свои секреты с собой в могилу. И нужная всем людям информация терялась. Потом позже, люди снова изобретали утерянное и снова теряли. И «изобретение велосипеда» происходило вновь и вновь.
То что ремесленник не хотел делится своими знаниями-секретами еще можно понять с точки зрения коммерции, но с точки зрения блага для всех людей - очевидная глупость.
И люди нашли выход из данной ситуации, придумав "патентное бюро". Теперь вы рассказываете о своем секрете всем, а взамен получаете единоличное право пользоваться в течении многих лет этими знаниями и извлекать из этого прибыль. Теперь нужная информация не терялась и служила людям. Создание патентных бюро стало толчком к научно-техническому прогрессу. Можно сказать, что люди наконец-то научились не терять информацию.
А теперь переключимся на людей, которые на основе знаний получают новые знания – на ученых. Разве ученые закрывают информацию? Кто-нибудь видел «закрытые» законы Ньютона, для которых нужно получать лицензию на использование? Научные традиции поощряют открытие и опубликование научных работ, чтобы другие ученые сделали свои выводы и в свою очередь либо признали работу, либо отвергли ее из-за ошибок. Благодаря такой открытой схеме, одни учёные опираются на труды других учёных, но в свою очередь подставляют плечи для третьих.
В современном мире программного обеспечения есть также программы, которые закрыты. Они подобны испечённой булочке, у которой секрет её выпечки не известен. Вы покупаете программу-булочку, как обычный товар, оплачивая стоимость ее лицензии. А есть открытые программы, это когда вместе с булочкой вам отдают рецепт её приготовления. И никто не запретит вам по рецепту сделать вашим знакомым булочек столько сколько вы захотите. Вы даже сможете улучшить рецепт и вам только скажут спасибо.
История «свободных программ» начинается с одного человека — Ричарда Столлмана (Richard Stallman). Именно он впервые употребил термин «free software» (свободное программное обеспечение) и чётко объяснил его значение. Однако он не считал, что создаёт некую принципиально новую концепцию. До конца 70-х годов значительная часть программного обеспечения разрабатывалась в научных учреждениях — университетах. Университетские традиции редко поощряют сокрытие информации друг от друга. Поэтому программы передавались и модифицировались свободно.
Так было и в лаборатории искусственного интеллекта Массачусетского технологического института (MIT AI Lab), где работал молодой талантливый программист Ричард Столлман. Однажды, в 1980 году, произошло событие, перевернувшее не только жизнь Столлмана, но, возможно, и будущее развитие рынка программного обеспечения.
Фирма Xerox подарила лаборатории лазерный принтер новой модели. У этого принтера обнаружился небольшой дефект, который можно было легко обойти, изменив программный драйвер. Ричард уже не раз решал подобные проблемы, но на этот раз исходные тексты драйвера оказались недоступны. Более того — когда Ричард связался с работником другого университета, у которого эти тексты были, тот отказался ими поделиться, сославшись на соглашение о нераспространении информации с фирмой Xerox.
По нынешним временам это было бы обычное коммерческое решение. Понять такой ход со стороны фирмы Xerox вполне можно — принтер был, скорее всего, достаточно простым, его программный интерфейс многое говорил о его способе работы, и потому изучение драйвера могло бы в чём-то помочь конкурентам при разработке их принтеров. Но для Столлмана это был отказ от многолетней традиции свободного обмена информацией, при котором каждый программист мог вносить в чужие программы улучшения для общего блага.
Тенденция к закрытости программ, их недоступности для просмотра и изменения другими программистами, сразу показалась Столлману чрезвычайно опасной. И за следующие несколько лет опасность подтвердилась. Всё больше бывших коллег Столлмана теперь работали в коммерческих компаниях, и многие из них закрывали свои программы, делали их, по выражению Столлмана, «собственническими», несвободными. В любой программе используется много наработок других программистов, но теперь использование прошлых работ коллег стало невозможным из-за «авторских прав».
Вот как описал эту ситуация сам Ричард Столлман: «Я считаю, что золотое правило требует: если мне нравится программа, то я должен поделиться ею с другими, кому она тоже нравится. Продавцы программного обеспечения хотят разделить пользователей и подчинить их себе, делая так, чтобы каждый из них соглашался не делиться с другими. Я отказываюсь нарушать солидарность с другими пользователями таким образом. Я не могу с чистой совестью подписать соглашение о не раскрытии или лицензионное соглашение по программному обеспечению. Во время моей работы в Лаборатории Искусственного Интеллекта я сопротивлялся этим тенденциям и другим препонам, но в конце концов они зашли слишком далеко: я не мог оставаться в институте, где за меня делаются такие вещи против моей воли.»
Когда Столлман решил бороться за изменение ситуации в мире небыло свободных операционных систем. Даже популярная система UNIX была на тот момент закрытой. В 1983 году он начал проект GNU — создание полноценной свободной операционной системы. Операционной системы, которая будет полностью доступна для копирования, изучения и модификации. И хотя продукты GNU приобрели широкую известность, конечная цель «операционная система» оставалась далёкой.
В 1991 году началась разработка ядра операционной системы. Линус Торвальдс, студент университета Хельсинки (Финляндия), решил получше разобраться в работе процессора и для этого создать ядро Unix-подобной операционной системы, которое работало бы на этом процессоре. Он использовал инструментарий, созданный командой GNU; таким образом, проект GNU стал основой для работы Линуса. Ядро, созданное Линусом, стало называться Linux (хотя первоначально он не планировал столь «эгоистичное» название).
Через небольшое время Линус Торвальдс, по предложению Столлмана, стал использовать для распространения Linux лицензию GPL. Эта лицензия и отличное умение Линуса общаться по интернету стали причинами того, что очень скоро над Linux работало немало программистов из многих стран. Уже в 1992 году появились вполне работоспособные версии. Инструменты GNU и ядро Linux вместе составили полную свободную операционную систему.
Работа над Linux стала примером нового способа создания программного обеспечения — совместной работы многочисленных программистов, взаимодействующих через интернет, без какой-либо мощной центральной власти (так называя технология «Базара», в противоположность традиционной централизованной технологии «Собора»).
На протяжении 80-х годов Столлман и некоторые его единомышленники работали над системой GNU. Было создано несколько важных и качественных программ, в частности, качественный компилятор языка C — GCC (GNU C Compiler).
Не менее важной разработкой, чем программы, стало рождение Универсальной Общественной Лицензии, так называемая лицензия GPL. Она была призвана использовать механизм авторских прав на программы, чтобы защитить их от превращения в «собственнические». GPL допускает любое использование и распространение программы и любых её модификаций — включая и коммерческое; однако она требует сохранять свободными все модификации программы, предоставляя их на условиях той же лицензии GPL и делая доступными исходные тексты.
Лицензия GPL гарантирует свободу ПО и далее, гарантирует, что те усилия, которые разработчики вложили в свой продукт не пропадут для них и остальных людей даром - они всегда будут доступны. Проще говоря, GPL делает свободу «защищенной».
К этому моменту благодаря широкому распространению Windows позиции фирмы MicroSoft стали очень крепкими, и многие конкурирующие фирмы-разработчики программного обеспечения оказались в тяжёлой ситуации, из-за того что фирма MicroSoft внедряла в MS Windows все больше и больше программ, нарушая тем самым антимонопольное законодательство США, делая программы конкурентов не нужными. Многие специалисты считают что продукты фирмы MicroSoft технически несовершенны, а теперь противниками MicroSoft стали и почти поверженные конкуренты. Это противостояние стало причиной начала нового этапа в развитии свободных программ.
Фирма Netscape — создатель программных продуктов для интернета, наиболее известный из которых — WWW-браузер Netscape. К началу 1998 года этот браузер потерял ведущие позиции — лидером стал MicroSoft Internet Explorer, который стал неотделимой частью Windows. Фирма Netscape оказалась под угрозой банкротства. Проект Mozilla — версия браузера Netscape с открытыми исходниками — стал первым, но не последним Open Source проектом, выросшим из коммерческого продукта.
Фирма Sun открыла свою операционную систему Solaris и исходные тексты офисного пакета StarOffice; на его основе создан полноценный свободный пакет OpenOffice. Программный пакет OpenOffice - это свободный пакет, который распространяется вместе с исходными текстами. Пакет OpenOffice содержит в себе текстовый редактор Writer по функциональности не уступающий Word и читающий закрытый формат Word'а *.doc. Табличный редактор Calc по функциональности не уступающий Excel и читающий закрытый формат Excel'а *.xls. Присутствует программа-аналог MS PowerPoint для создания презентаций под названием Impress. Также в пакет OpenOffice входит программа для создания векторных изображений - OpenDraw. Базы данных Base альтернатива MS Access.
Многие корпорации стали заявлять о поддержке Open Source движения. Такие корпорации как IBM, Oracle открыли часть своих проектов и стали финансировать некоторые сторонние Open Source проекты. Google (главный компьютер Земли) построил свой бизнес на Open Source проектах и впоследствии стал помогать своей информационной и финансовой поддержкой.
В рассуждениях о программном обеспечении не следует путать понятия открытость и бесплатность. Закрытые программные продукты бывают платные и бесплатные, программы Open Source тоже делятся на платные и бесплатные.
Следует уяснить, что из термина открытые исходники не следует бесплатность ПО.
Лицензия GPL, под которой распространяется большинство Open Source проектов, допускает любое использование и распространение программы и любых её модификаций — включая и коммерческое.
Часто в статьях можно видеть термин freeware, этот термин обычно используют в обозначении закрытых бесплатных программ. Открытые бесплатные программы чаще называют свободным ПО.
Закрытые платные программы называют «коммерческое ПО» (shareware). Открытые платные обычно никак не называют или просто пишут
«ПО с открытыми исходными текстами».
Когда мы говорим Free Software, то мы имеем ввиду свободу программного обеспечения, а не его цену.
Open Source Software — «свободные» программы, распространяемые без ограничений вместе с исходными текстами, без защиты от копирования, обязательной оплаты лицензии на использование и т.п.
Достоинства продуктов Open Source:
Безопасность. Линусу Торвальдсу приписывают слова: «От тысячи глаз не скроешь ошибку» (Given enough eyeballs, all bugs are shallow). Поскольку благодаря открытости для огромного количества пользователей-специалистов ошибки и проблемы быстро находятся и устраняются, свободные программы оказываются весьма надёжны и защищены (в частности, от несанкционированного доступа).
Независимость от поставщика. Полноценная поддержка открытых программ, включая внесение требуемых изменений, может производиться любой группой достаточно квалифицированных специалистов, поэтому пользователь не оказывается зависим от «милостей» одной-единственной фирмы; поддержку можно поручить сотрудникам собственного предприятия (если оно может себе это позволить) или же заказать у компании, которая не будет столь далека и малодоступна, как MicroSoft или другая зарубежная корпорация.
Надежность. В области серверов, используемых в бизнесе — серверов баз данных, почты, файловых серверов и т.д. — позиции свободных программ непоколебимы. Заметим, что обеспечение стабильной работы серверов под большой нагрузкой требует от программного обеспечения значительной степени надёжности и безопасности. Популярность свободных программ в этой области доказывает, что они способны обеспечить надёжность работы, приемлемую для корпоративных задач.
Свобода. Наконец, за пределами США свободные программы нередко воспринимаются как возможность избавления от зависимости от американских корпораций. Это стало одной из причин интереса правительств и государственных деятелей к таким программам.
Гибкость и модульность. Open Source можно сравнить с шариками и палочками, с помощью которых на уроках химии собирают молекулы. Причем шарики-атомы – это программы, а палочки-связи – это языки программирования или просто параметры конфигурационного файла. Такая гибкость Open Source может для бизнеса составить из атомов-программ любую молекулу, которая позволит развиваться этому бизнесу. Это достигается благодаря понятным выходным форматам данных, модульности программ, да в конце концов – доступным исходникам.
Скорость. В мире Open Source процесс создания из исходников исполняемых файлов может происходить на компьютере, на котором и будет работать данная программа. Компилятор «затачивает» программу под компьютер во время компиляции и в дальнейшем программа будет использовать все технологии процессора, показывая при своей работе бОльшую производительность.
И последнее. Помните, что даже если вы не готовы перейти сегодня на одну из свободных ОС, значительная часть свободных программ имеет Windows-версии. Так что не надо сразу кидаться в воду, можно входить в неё постепенно. Но освежающий результат всё равно гарантирован.