Прикладные свободные программы и системы в школе
Прикладные свободные программы и системы в школе читать книгу онлайн
Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.
Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».
Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL). Все прочие права сохраняются за автором.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном (пользовательском) режиме и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, ее ядро) управляет оборудованием.
Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов (часть из которых должна реализоваться только в определенных классах систем; например, в системах «реального времени») и около двухсот команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относительно способов их реализации.
Стандарт, кроме этого, определяет способ адресации файлов в системе, локализацию (установки, касающиеся национально-специфических моментов, таких, как язык сообщений или формат даты и времени), совместимый набор символов, синтаксис регулярных выражений, структуру каталогов в файловой системе, формат командной строки и некоторые другие аспекты поведения ОС.
В определении состава ОС значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав ОС включается и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков). Операциональной замкнутостью обладают системы, удовлетворяющие «разработческому» профилю в терминах стандарта.
Краткая история открытых ОС
К концу шестидесятых годов XX в. операционным системам как классу программного обеспечения шел уже второй десяток. Были разработаны больше сотни различных ОС для разных компьютеров, из них полтора десятка находились в «боевой» эксплуатации. На рубеже шестидесятых и семидесятых в одном из исследовательских подразделений американской телекоммуникационной монополии «Эй-Ти-энд-Ти» была выполнена разработка, ставшая важнейшей вехой в истории ОС: система «Юникс».
Задуманная и реализованная Кеном Томсоном при участии нескольких коллег, она вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих ее от большинства предшественниц:
компонентная архитектура: принцип «одна программа – одна функция» плюс мощные средства связывания различных программ для решения возникающих задач;
минимизация ядра (кода, выполняющегося в привилегированном режиме процессора) и количества системных вызовов;
независимость от аппаратной архитектуры и реализация на языке высокого уровня (язык программирования С стал «побочным продуктом» разработки «Юникс»).
«Юникс», благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и в отрасли, получившей прототип единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, быстро и с минимальными усилиями перенесена на вновь разработанную аппаратную архитектуру.
Одним из центров развития «Юникс» стал Университет Калифорнии в Беркли, там было создано множество средств, дополняющих систему и развивающих ее концепцию. В конце концов, в Беркли создали свой вариант ОС той же архитектуры, получивший название «БСД».
Задачу разработать независимую (от авторских прав «Эй-Ти-энд-Ти») реализацию той же архитектуры поставил и Ричард Столлмен, основатель проекта «ГНУ» (характерно, что аббревиатура расшифровывается как GNU’s Not Unix, т.е. «ГНУ – это не “Юникс”»). В ходе разворачивания проекта (1980-90е гг.) было создано множество утилит и инструментальных средств, которые сегодня активно используются в «БСД» (входя в систему) и «Юникс» (как правило, распространяемые в качестве дополнений), а также являющихся основой операционных систем на основе ядра «Линукс», разработка которого была запущена и возглавляется с начала девяностых Линусом Торвальдсом.
Таким образом, на сегодня существует три семейства открытых операционных систем, концептуально происходящих от «Юникс», но реализованных независимо:
основанные на «Эй-Ти-энд-Ти Юникс» (в разнообразных фирменных вариантах, таких как AIX (компания IBM), «Солярис» (компания Sun Microsystems) и т.п.),
«БСД» (в него входят FreeBSD, OpenBSD, NetBSD, а также Darwin, являющаяся основой MacOS X),
«ГНУ/Линукс» (в различных вариантах, или дистрибутивах, таких как Debian GNU/Linux, RedHat Linux, Linux-Mandrake и пр.)
Системы, содержащие код, изначально написанный в AT&T, несвободны [5], а «БСД» и «ГНУ/Линукс» разрабатываются под свободными лицензиями.
Благодаря конкурентности реализаций архитектура открытых ОС стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического (свежая версия принята Международной организацией стандартизации (ISO) в 2001 г.).
Стандартизация ОС означает возможность безболезненной замены самой ОС или оборудования при развитии вычислительной системы или сети и дешевого переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения иногда все же необходимы, но перенос программы между открытыми системами на порядки дешевле, чем между альтернативными), а также преемственности опыта пользователей.
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание сетей Интернет в девяностых годах.
Вытеснение открытыми ОС альтернативных архитектур – медленный и сложный процесс. Хотя открытые системы сегодня существуют для вычислительных систем практически всех типов – от встроенных и карманных компьютеров до суперсерверов и мэйнфреймов – доля их в разных сегментах рынка неодинакова. Открытые ОС уверенно доминируют в серверном сегменте (особенно в сетевых приложениях), но распространены на ПК и рабочих станциях нижнего уровня пока менее широко, чем альтернативные.
Роль свободных операционных систем
В последние 5-7 лет рост пользовательской базы открытых ОС в основном происходит за счет распространения их свободных вариантов – «БСД» и «ГНУ/Линукс» – причем темп задает сейчас «ГНУ/Линукс».
Спецификой рынка свободных ОС, особенно, основанных на ядре «Линукс», является их существование в виде «популяции» параллельно развивающихся вариантов, называемых «дистрибутивами» (от англ. distributive kit – «распространяемый комплект»). Обычно дистрибутив включает в себя, помимо системных программ, большое количество прикладных программ и пакетов.
Несвободные открытые операционные системы
Свое значение сохраняют и несвободные открытые операционные системы, такие как «Солярис», «AIX», «Тру64 Юникс». Как правило, они применяются в сочетании с соответствующими аппаратными платформами, сопровождаются и поддерживаются производителями последних. Большинство свободных прикладных программ и пакетов перенесены или легко переносятся на такие ОС.
Альтернативные операционные системы
Большинство альтернативных (нестандартных) операционных систем вытеснены сегодня в ниши и не претендуют на универсальность. Ниже рассмотрены исключения.
«Майкрософт Уиндоуз НТ» («Майкрософт Уиндоуз 2000», «Майкрософт Уиндоуз Экс-Пи»). ОС этой серии позиционируются компанией «Майкрософт» как альтернатива стандартным (открытым) ОС и получили широкое распространение в сегменте однопользовательских настольных микрокомпьютеров («ПК») архитектуры x86/IA-32. «НТ» – дальний потомок ОС «Ар-Эс-Экс» и «Ви-Эм-Эс» корпорации «Диджитал», вытесненных в свое время открытыми ОС с миникомпьютеров.
Для «Майкрософт Уиндоуз НТ» существуют специальные пакеты (Cygwin, UWIN, UNIX Services for Windows), эмулирующие системные вызовы, оболочку и утилиты открытых ОС на платформе этой ОС, так же, как и реализации стандартной графической платформы («Оконной системы Икс»). Кроме того, для многих программ и пакетов с графическим интерфейсом существуют «родные» переносы в «НТ» (т.е. с заменой стандартной графики на интерфейс Win32).