Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.
Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (
) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».
Материалы, представленные в этой книге, также доступны в Интернет на странице
на условиях Свободной лицензии ГНУ на документацию (GNU FDL). Все прочие права сохраняются за автором.
Введение. Зачем программам быть свободными?
На сегодня в школе, как и в некоторых других сегментах рынка, преобладают «альтернативные», нестандартные операционные системы и платформы (такие, как «МС-ДОС», «Майкрософт Уиндоуз», «Майкрософт Уиндоуз НТ», «МакОС» версий до X). Пользование ими описывается в учебниках, на них ориентируются авторы отечественных учебных программ.
В течение долгого времени «цена вопроса» просто не становилась поводом для сколько-либо серьезного анализа — ни для кого не секрет, что доля контрафактного ПО в российских школах очень высока, а общественное мнение, увы, пока склонно считать «легальность» программного обеспечения вопросом скорее отвлеченно-академическим, нежели насущно-практическим, а уж там, где дело касается зарубежных правообладателей, — относиться к нему не как к «пиратскому», а как к «трофейному» (что, впрочем, также имеет свои основания).
Имеются очень, на наш взгляд, веские причины, чтобы постепенно отказаться от этой недоброй традиции и вернуться в русло, более соответствующее магистральным линиям развития информационных и коммуникационных технологий:
нестандартные системы ненадежны и небезопасны. С распространением в школах компьютеров и особенно сетей (включая доступ к региональным и глобальным сетям) ущерб от вирусов, несанкционированного доступа к информации и т.п. станет заметной статьей издержек информатизации;
нестандартные системы дороги. Практически для всех стандартных технологий имеются свободные реализации (или, по крайней мере, конкурентный рынок реализаций), в то время, как ожидать появления свободной реализации, допустим, интерфейса той же «Майкрософт Уиндоуз» в обозримом будущем не приходится, и цены будут оставаться монопольно завышенными. Мы не сторонники «экономии на детях», но, право же, выделяемые на информатизацию школы деньги можно расходовать гораздо более разумно — от их вложения в перспективные разработки до повышения окладов учителей и обслуживающего персонала;
0.1 Право и экономика ПО
Поскольку существует изрядная путаница с терминологией, имеет смысл привести определения далее используемых терминов. Это особенно уместно, когда мы говорим о программах в школе, ведь свободное ПО пока очень слабо проникло в эту важнейшую сферу применения компьютеров.
Свободными
называются программы, автор (или иной обладатель имущественных авторских прав) которых опубликовал (обнародовал) их в сопровождении так называемой «свободной лицензии», или, если следовать терминологии отечественного законодательства, публичного авторского договора, передающего приобретателю права: 0)
пользоваться программой
для любых целей (в рамках российского законодательства это тавтология, так как у правообладателя нет правомочия ограничивать цели, в которых собственник экземпляра программы может ее применять) и на неограниченном количестве компьютеров или мест в сети; 1) беспрепятственно
получать доступ к ее исходным кодам
; 2) изготовлять (производить) неограниченное количество дополнительных ее экземпляров, как для собственного пользования, так и для
распространения
или сдачи в прокат/аренду на тех же условиях, возмездно или безвозмездно (по своему выбору); 3)
модифицировать
ее как для собственного пользования, так и для распространения на тех же условиях.
Конкретная «лицензия» (условия конкретного договора) могут предоставлять приобретателю дополнительные правомочия, безусловно или на определенных условиях, и это не делает программу несвободной.
Несвободной
является программа, распространяемая на условиях, ограничивающих вышеперечисленные права приобретателя.
Свободные программы (free software) не следует, как это часто делают, путать со «свободно распространяемыми» (shareware, иногда почему-то называемыми у нас «условно-бесплатными») или «бесплатно лицензируемыми» (freeware).
Также следует иметь в виду, что, хотя термин «программы с открытыми исходниками» (open source software) часто используется как синоним «свободных программ», им иногда злоупотребляют.
0.2 Применимость СПО при реализации «Обязательного минимума...»
Информатика, будучи относительно молодым предметом в школьной практике (особенно в сравнении с учебными предметами, чей «возраст» превышает две тысячи лет), с неизбежностью вызывает споры среди теоретиков педагогики и практикующих учителей о своем содержании. Спорят и о том, прагматическая (знакомство с миром компьютерных технологий) или теоретическая (основы компьютерных наук) ориентация должна превалировать в школе, и о том, стоит ли программирование делать частью общего школьного образования, и даже о том, должна ли информатика развиваться в виде отдельного предмета. Периодически этот спор выплескивается за рамки профессионального педагогического сообщества на страницы печати, что также вполне понятно.
Мы попытаемся в данном случае уклониться от участия в этом споре и не заявлять свою позицию. Возможно, это не вполне соответствует традициям русского интеллигентского общества, в котором не принято, не решив ряда «последних вопросов» (в том числе, кто виноват, что делать и, главное, чему и как учить), предпринимать какие-либо действия. Но рамки у этой книги вполне прагматические, и можно только надеяться, что данные в таких рамках ответы окажутся в достаточной степени инвариантными для ответов на вопросы более глубокие (и, охотно согласимся, в конечном итоге более важные), и что-то полезное для себя в изложенном материале найдут партизаны самых разных точек зрения по этим глубоким и важным вопросам.
Упомянутые прагматические рамки заключаются в следующем. Если для освоения грамотности и счета школьнику неплохо бы овладеть ручкой и карандашом и понять, чем одна от другого отличается (вне зависимости от того, выделяется ли чистописание в отдельный учебный предмет, как это было принято ранее, или же, как сейчас, освоение инструментов письма идет на тех же уроках, где ученик знакомится с буквами и их чтением), то уж наличие в «Обязательном минимуме содержания образования по информатике»
[81]
списка приложений компьютера («информационных технологий»), с которыми стоит познакомить школьников, протестов у нас не вызывает.
Среди них:
создание и редактирование текстов (в широком смысле),
0.3 Логика и последовательность освоения СПО
Логика и последовательность изложения материала в этом курсе существенно отличается от логики, в которой написано большинство книг, посвященных СПО.
Чаще всего авторы исходят из того, что последовательность внедрения программ и пакетов, относящихся к различным категориям, будет соответствовать последовательности построения информационной системы (например, школьной сети). Это вполне оправдано в случае разработки и реализации такой системы «с нуля», однако может вызвать существенные сложности в ситуациях, когда система уже существует, развернута на базе несвободного (и, как следствие, почти всегда нестандартного) ПО, нужна поддержка ее роста и развития, и администрация учебного заведения обращается к СПО именно как к средству обеспечения такого развития.
«Сплошная миграция», при которой администрации необходимо внедрять (а всем пользователям, включая учителей и учащихся, осваивать) и системное, и прикладное (а в случаях, если проводятся какие-то свои разработки, и инструментальное) ПО одновременно, — объективно очень сложный и болезненный процесс. Если говорить об учебном заведении, то он сложен вдвойне, поскольку слишком неодинаков уровень пользователей различных категорий. Если говорить о школах, где единственный преподаватель информатики — сам себе и учитель, и методист, и системный администратор, и лаборант (а не большинство ли наших школ таковы?), миграция по этому сценарию требует, без преувеличения, героических усилий, ожидать которых в массовом порядке не вполне разумно.
Однако поскольку значительная часть свободного прикладного программного обеспечения портирована (перенесена), в том числе, и в несвободное окружение (включая получившие широкое распространение в наших школах операционные среды «Майкрософт Уиндоуз» и «МакОС»), миграцию можно облегчить, проведя ее в два этапа (которым в учебном заведении могут соответствовать два академических года): сначала прикладная часть, а затем — системная.
В настоящей небольшой книге мы ограничились кратким введением в открытые операционные системы (глава 1) и обзором наиболее универсальных свободных
Глава 1. Краткое введение в открытые ОС
Традиционно существовало два жанра введений в ОС: введение в архитектуру ОС с точки зрения программиста, и введение в пользование ОС с точки зрения оператора. Как правило, такие книги освещают также элементы администрирования (чаще — какой-то конкретной ОС).
В последнее десятилетие появился специфический третий жанр. Он предполагает «полное погружение» студента в материал, и в нем параллельно вводятся сведения, необходимые для оператора и для администратора. Появление этого жанра связано с массовым введением в эксплуатацию открытых ОС на весьма капризном «персонально-компьютерном» оборудовании и с тем, что во все возрастающем количестве новые пользователи открытых ОС осваивали их самостоятельно.
В последние годы ситуация опять изменилась: сегодня доступно множество дистрибутивов свободных ОС, позволяющих в большинстве случаев получить по крайне мере базовую стандартную функциональность «из коробки», и продается достаточное количество компьютеров «персонального» и «домашнего» класса с предустановленной ОС «ГНУ/Линукс». Поэтому новичок может совершенно спокойно освоить сначала основы пользования системой, а затем, при необходимости, ее администрирование.
Предлагаемый в настоящем разделе курс подпадает под определение второго из перечисленных жанров, а его отличительными особенностями являются:
компактность (в случае необходимости в жертву приносились «технические» аспекты в пользу «гуманитарных», т.е. сведениям, необходимым для понимания литературы и общения на заданную тему, отдавалось предпочтение перед сведениями, необходимыми для осуществления тех или иных действий),
1.1 Операционные системы
Существуют две группы определений операционных систем: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.
Есть приложения вычислительной техники, для которых ОС излишни. Например, встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом) и т.п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без ОС, запуская по включении программу, записанную на вставленном в устройство «катридже» или компакт-диске.
(Многие встроенные компьютеры и даже некоторые игровые приставки на самом деле работают под управлением своих ОС. Мы не будем подробно останавливаться на этих классах вычислительных систем. Тем не менее, ответ на вопрос, почему это так, к концу этого раздела должен быть в общих чертах понятен).
Операционные системы, в свою очередь, нужны, если:
вычислительная система используется для различных задач, причем программы, исполняющие эти задачи, нуждаются в обмене данными. Из этого следует необходимость в универсальном механизме хранения данных; в подавляющем большинстве случаев ОС отвечает на нее реализацией
файловой системы
. Современные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы со вводом другой, минуя относительно медленные дисковые операции;
1.2 Практическая интеграция
Сильными техническими сторонами открытых ОС, выгодно отличающими их от любых альтернатив в плане практической интеграции (разворачивания, поддержания в работоспособном состоянии, непротиворечивого расширения и наращивания), являются:
поддержка широкого спектра
аппаратных платформ
(самыми «всеядными» являются системы на основе ядра «Линукс»);
поддержка различных
топологий
многопользовательских систем: от совокупности независимых рабочих станций до многотерминальных систем, в том числе, включающих компьютеры на разных аппаратных платформах.
В качестве существенной проблемы, сдерживающей стандартизацию во многих категориях систем, часто называют сложности с поддержкой многих устройств «потребительского» класса, ориентированных на архитектуры «IA-32» (IBM PC-совместимые) и «PowerPC» («Макинтоши»). Поставщики таких устройств нередко утаивают важные технические параметры и другую информацию, необходимую для разработки драйверов для своих видеокарт, модемов и пр.
Мы склонны считать это скорее проблемой в политике закупок, чем проблемой открытых ОС. Помимо всего прочего, владельцы таких изделий сплошь и рядом сталкиваются со сложностями и при смене версий ОС, поддерживаемых их поставщиками (производитель может прекратить свое существование или поддержку конкретного устройства или поссориться с разработчиком самой такой ОС). При приобретении оборудования, которое будет эксплуатироваться длительное время, всегда следует обращать внимание на доступность технической документации
[6]
, а не только «пользовательских инструкций».
1.3 Почему командная строка?
Существует широко распространенное заблуждение, согласно которому графический интерфейс якобы представляет собой высшую и последнюю стадию развития пользовательских интерфейсов, а «командная строка» — это нечто примитивное и малополезное, если не устаревшее.
На самом деле, эта «иерархия» отражает не что иное, как порядок, в котором с двумя основными метафорами организации пользовательских интерфейсов познакомились пользователи персональных компьютеров. Вплоть до начала девяностых ПК были простыми и маломощными, поддержка графики и возможность комфортной работы с оконными графическими системами появилась на них недавно (даже в масштабе стремительно развивающейся информационно-технологической отрасли).
Однако за годы до этого графические интерфейсы уже широко применялись на рабочих станциях — конечно, более дорогом, редком и специализированном оборудовании. Если быть точными, то обе концепции в их более или менее современном виде сформировались примерно в одно время.
В 1967-68 гг. Дуг Энгельбарт представил прототип т.н. WIMP-интерфейса, т.е. интерфейса, использующего понятия окон (windows), пиктограмм (icons), меню (menus) и указателей (pointers), являющихся ключевыми и для сегодняшних графических пользовательских сред.
В 1968-69 гг. Кен Томсон и Деннис Ричи представили первый релиз ОС UNIX, по сути, явившейся прототипом артикулированной системы современных понятий практической информатики, таких, как процессы и файлы, и содержащей непротиворечивый, логичный и лаконичный язык работы с соответствующими им сущностями, который спустя полтора десятка лет стал стандартным пользовательским интерфейсом ОС.
1.4 Сеанс работы и команды
Интерфейс оператора ОС представляет собой интерпретирующий язык, конструкции которого могут выполняться непосредственно при их вводе оператором (интерактивный режим) или из файлов (режим выполнения сценариев).
Как и любой язык, язык оболочки команд и ОС нуждается в изучении. Как и при изучении любого языка — естественного или искусственного — первые шаги достаточно трудны. Однако изучить его легче, чем любую развитую систему научной нотации (математической или химической) даже в объеме средней школы, и неизмеримо легче, чем иностранный язык. Вводные курсы в открытые ОС успешно прошли миллионы человек.
Загрузка и разгрузка системы
Изначальный запуск программ, составляющих операционную систему, называется
загрузкой
ОС, их завершение — ее
разгрузкой
, а загрузка сразу вслед за разгрузкой —
перезагрузкой
.
Эти действия относятся к административным, то есть для их выполнения нужно обладать соответствующими полномочиями.