Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Свободные программы в офисе и дома

Автор: А. А. Ракитин

Введение

Некоторые базовые понятия

Компьютер - это всего лишь инструмент. По своему назначению он не отличается от глиняных табличек, папируса, пергамента или бумаги. Все эти изобретения, как и компьютер в наши дни, использовались людьми для фиксации информации, ее преобразования и предоставления по мере необходимости.

Заметка на полях На бумаге можно сохранить почти все то же самое, что и на компьютере. С изобретением алфавита, а было это примерно 3500 лет назад, запись текста стала простейшей задачей. Рисование появилось даже раньше, чем сама бумага.

Составление на любой ровной поверхности разного рода таблиц и проведение математических расчетов тоже имеет очень давнюю историю.

Подобный носитель информации может содержать в себе даже мультимедиа. Музыку стало возможным записать с появлением в XVII веке нотной грамоты. Видео получается из многих быстро сменяющих друг друга рисунков, которые обычно сделаны опять же на бумаге. Все знают еще со школы - чем толще тетрадь, тем дольше длится фильм.

Разница заключается в используемых технологиях. С помощью компьютера блоки информации легко дробятся, комбинируются, укрупняются и тиражируются - в зависимости от задачи. Процесс выглядит очень просто, если не вдаваться в детали. Намного проще, чем при работе с бумагой или другими подобными видами носителя. Кроме того, обмен такой информацией происходит удобно, быстро и даже расстояния здесь не помеха.

Конечно, работа компьютера основана на сложных физических процессах и управляется не менее сложными программами. Но все они находятся "под капотом" и при нормальной работе не требуют участия того, кто сидит за монитором. Человек может сосредоточится на результате. Ему требуется только понять, как этот результат может быть получен. Для этого все же потребуются некоторые знания, как и при работе с любым другим инструментом.

В основном нужно иметь представление о тех соглашениях, которые приняты в компьютерной области вообще и в используемой операционной системе в частности. Вот небольшой обзор таких соглашений, знание которых можно считать достаточным минимумом для работы на компьютере.

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

Каждая программа понимает только определенные виды файлов и это надо учитывать. В книге эти вопросы рассматриваются в конце каждого раздела применительно к сохранению результата работы. Кроме того, в приложении имеются описания некоторых форматов файлов, а в главах - сравнение их свойств и рекомендации по выбору.

Другой момент связан с тем, что необходимо ориентироваться в файловой системе своего компьютера. Все файлы можно разделить на общесистемные и пользовательские. Речь идет о второй категории. Это те файлы, которые принадлежат пользователю и находятся в полной его власти. Они могут быть созданы с нуля, получены по электронной почте, скопированы со съемного носителя или могут появиться каким-то другим способом.

В книге этот вопрос не рассматривается, потому что место, где располагаются пользовательские файлы, зависит от типа операционной системы - Linux, Windows, Android и т.д. Но разобраться в этом нужно.

Далее, требуется иметь представление о единицах для измерения объемов информации. Дело даже не в том, что можно столкнуться с ситуацией, когда места на диске становится недостаточно для записи файла, хотя и такое бывает. Непонимание в этом вопросе часто приводит к курьезам и даже к ситуациям с достаточно неприятными последствиями. Вот пример.

Офисный документ содержит несколько страниц текста. Сам по себе этот текст имел бы объем 20 килобайт, что совсем не много. Но в него вставлены четыре цифровые фотографии, сделанные популярной камерой "Canon 600D". Фотографии не были обработаны для уменьшения их размера, поэтому каждая имеет объем 8 мегабайт. Размер итогового файла получился более 32 мегабайт. Это не проблема для среднего офисного компьютера. Но по электронной почте файл может не пройти.

Между тем, ничего сложного в использовании "компьютерных" единиц измерения нет. В наше время язык не поворачивается назвать их специальными, то есть предназначенными только для специалистов. Ведь никто не считает, что такие единицы измерения как метр или килограмм нужны только специалистам. Почему же байт или мегабайт остаются магическими заклинаниями смысл которых широкой публике неясен?

Единицей измерения информации является бит. Чтобы представить себе 1 бит, надо взять какое-либо устройство, которое может находиться в одном из двух устойчивых состояний. Например, обычный электрический выключатель. Он может быть либо включен, либо выключен. Такое устройство может хранить количество информации объемом 1 бит. Говорят также, что оно имеет информационную емкость 1 бит. Посмотрев на выключатель можно "считать" с него информацию - узнать, в каком состоянии он находится.

Заметка на полях Реальные компьютеры и устройства памяти состоят из множества элементов, каждый из которых похож на описанный выключатель. Два устойчивых состояния отмечаются как "да" и "нет" соответственно (или как 1 и 0, что то же самое). Система счисления, основанная на двух цифрах, называется двоичной.

Понятие "бит" для обозначения одного двоичного разряда ввел в 1946 году американский ученый-статистик Джон Тьюки как сокращение от BInary digiT, двоичное число.

В 1948 году в статье Математическая теория связи американский математик Клод Шеннон впервые использовал в расчетах бит как единицу измерения информации.

По современным представлениям ученых 1 бит - это минимально возможное количество информации. Оно, это количество, не может быть меньше.

Следующая, более крупная единица, получила название байт. 1 байт = 8 бит.

Для обозначения еще более крупных единиц используют привычные кратные приставки:
1 килобайт = 1024 байт
1 мегабайт = 1024 килобайт
1 гигабайт = 1024 мегабайт
1 терабайт = 1024 гигабайт
и т.д.

Вот, собственно и все, что нужно знать о единицах измерения информации.

К сожалению, в реальности все достаточно запутано. Иногда множитель 1024 округляют до 1000, как у килограмма. Особенно это любят делать производители жестких дисков и флэш памяти, потому что при этом емкость устройства, указанная на упаковке, сразу становится больше. Международный стандарт рекомендует во избежании путаницы пользоваться другими приставками - киби, меби, гиби, теби и т.д. Но на практике они встречаются редко так как их произношение на любом языке совершенно неудобно. Да и мало кто знает, что это такое.

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

Для того, чтобы лучше ориентироваться в компьютерной метрологии, можно рекомендовать сравнить размер типичных файлов, содержащих текст, цифровые изображения, музыку, видео. Такие файлы всегда найдутся на любом компьютере. Очень полезно соотнести размер файла с его реальным содержимым - количеством страниц текста или минут записи мультимедиа. И затем сопоставить все это с емкостью жесткого диска в целом и с емкостью свободного пространства на нем. После такого погружения в мега- и гигабайты обычно приходит понимание того, как соотносятся между собой все эти величины.

Вот собственно и все, что требуется для того, чтобы перейти к работе с программами и начать создавать свой уникальный контент.

Пора отбросить тот штамп, что созидательная работа на компьютере доступна только специалисту. Это всего лишь неверное мнение, хотя и достаточно распространенное. Кроме того, человек, освоивший основные приемы работы на компьютере, почувствует себя намного свободнее - почти в любом виде деятельности он будет способен на большее, чем другие.

Однако, при попытке начать действовать появляются уже другие сложности, которые слишком многих превращают в соляной столб, как только речь заходит о том, чтобы сделать конкретную работу:
  • Не всегда ясно, какой программой лучше всего воспользоваться. Вот пример: даже для такой простой вещи как набор текста многие назовут ту единственную, всем известную программу. И не обязательно будут правы, потому что многое зависит от ситуации.
  • Если программа все-таки выбрана, то бывает сложно разобраться в том обилии ее функций, которыми она обладает. Особенно учитывая, что для выполнения конкретной работы нужна только малая их часть. Но, неизвестно какая. И все это - в условиях нехватки времени, что бывает достаточно часто.
  • Даже когда ясно, какие из возможностей программы нужно использовать, может возникнуть проблема с ее интерфейсом. Все компьютерные программы имеют этот зыбкий контекстно-зависимый интерфейс. Назначение клавиш и значков как правило меняется в зависимости от того режима, в котором находится программа. Да и от других факторов тоже, например от предыдущего действия человека. Попробуйте при редактировании текста нажать клавишу Ins на клавиатуре. Она так меняет поведение программы, что мало не покажется (не забудьте нажать ее еще раз для возврата в обычный режим редактирования текста). Только представьте себе, что было бы, если бы в автомобиле или в самолете использовались такие клавиши. Вместо тормоза - газ, вместо выпуска шасси - включение фар, ну и так далее... К счастью, пока там все еще в ходу контекстно-НЕзависимый интерфейс. В основном...

В подобной ситуации может оказаться любой, в том числе и опытный профессионал. Человек вдруг застревает на рутинной части работы, когда не получается проставить номера всех страниц документа кроме титульной или не удается правильно расположить рисунок, составить таблицу. Разрешить подобные трудности поможет эта книга.

О компьютерах, программах и о связанных с ними неприятностях

Как уже говорилось, компьютер - это всего лишь инструмент. Но это самый интеллектуальный инструмент из всех созданных человечеством. Люди даже одушевляют его. Многие разговаривают со своими компьютерами, гладят их, снабжают талисманами и даже просят прощения, когда проливают кофе на клавиатуру. Но, как правило, все это не помогает...

На самом деле весь псевдоинтеллект компьютера заложен в него инженерами в виде простых правил реагирования на нажатие кнопок мыши и обработку программных ситуаций. В компьютере содержится не больше разума, чем в автомобиле или холодильнике. Впрочем, с автомобилями некоторые люди тоже разговаривают.

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

Заметка на полях Термин "глюк" пришел в жизнь нормальных людей из сленга наркоманов. Но те, кто имеет дело с компьютерами тоже постоянно сталкиваются с этим явлением. Викисловарь определяет глюк как недокументированную особенность работы программы, приводящую к сбою в работе вычислительной системы. И следом добавляет: "Так называемые глюки Windows не являются ошибками в прямом смысле этого слова". Дожили.

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

Удивительно, как тихо и незаметно изменились, даже можно сказать сдулись амбиции человечества в отношении компьютеров. Какие были надежды! Искусственный интеллект, голосовое общение при полном отсутствии языкового барьера, объемные изображения, удобный и всем понятный интерфейс, мгновенный доступ к любой информации. Увы - все это пока существует только в воображении писателей-фантастов. Идеи так и остались нереализованными.

Заметка на полях Первый в мире компьютер на электронных компонентах, ENIAC, построен в 1946 году в США.

В 1973 году компания Xerox представила первый в мире компьютер с графическим интерфейсом - Xerox Alto.

В 1981 году начат выпуск первого персонального компьютера, как мы его представляем сегодня - IBM 5150. Это было знаковое событие.

Ключевым отличием от других подобных разработок стала открытая архитектура компании IBM. Производители комплектующих и программного обеспечения для IBM PC получили доступ к спецификациям и не обязаны были лицензировать свою продукцию. Это обеспечило платформе успех и сделало компьютеры, совместимые с IBM PC, самыми массовыми.

Реальность такова, что персональный компьютер практически не меняется уже более 30 лет. Это по-прежнему довольно большой и часто шумный железный ящик. От момента включения до окончания загрузки операционной системы, как и раньше, проходит довольно много времени. Управляется это устройство все теми же клавиатурой и мышью. Какой там голосовой ввод! Даже текст с собственного экрана компьютер скорее всего не прочитает, а если и прочитает, то лучше бы он этого не делал. Качество машинного перевода с одного языка на другой вызывает только досаду. А поиск нужной информации не идет дальше текстового и практически бесполезен в более сложной ситуации. И никаких следов искусственного интеллекта. Даже программы на экране монитора выглядят так же, как и 20 лет назад, разве что уголки у окон стали не прямоугольные, а скругленные.

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

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

Да, вычислительная мощность процессоров возросла. Даже не очень современный смартфон, а это - тоже компьютер, производительнее, чем бортовой вычислитель космического корабля "Аполлон". Но что это дает? Почти вся мощность уходит на обслуживание собственной операционной системы, основной программы компьютера с чисто служебными функциями. Компьютерная эра еще в самом начале ввела в обиход такие слова как "подтормаживает" и "зависает", и они используются людьми все шире.

Человека в общем то не интересуют ни быстродействие процессора, ни размер оперативной памяти, ни другие подобные характеристики собственного компьютера. Не все в этом разбираются. Важно, чтобы на компьютере можно было выполнить требуемую работу. Это главный показатель. А он зависит в первую очередь от программной составляющей. И здесь есть о чем задуматься.

Если оборудование для компьютеров создается множеством компаний из разных стран, то программное обеспечение на 90 процентов привязано к единственной операционной системе - Windows. Монополизм - это всегда плохо. Инновации в этой области в значительной мере контролируются небольшим количеством компаний. Отсутствие конкуренции приводит к застою.

Но мир компьютеров постепенно меняется. Появление и все большее распространение альтернативных программных решений свидетельствует о том, что монополии приходит конец. Пользователи активно голосуют за Android собственными бумажниками. А компании и организации, которые не используют у себя Linux, сегодня выглядят по меньшей мере странно и архаично.

Дробление рынка программных продуктов обязательно должно оздоровить этот сектор экономики и принести в него множество инноваций. Да, при этом появится проблема выбора из большего количества вариантов, чем прежде. Но в конечном счете в выигрыше будут пользователи.

Все эти изменения происходят уже достаточно давно, по крайней мере не менее 15 лет. И сейчас, и раньше, во времена абсолютной монополии Windows, свободные программы всегда оставались источником тех самых инноваций, которые так нужны всем. Поэтому есть смысл рассмотреть этот феномен подробнее.

Свободные программы

Они были всегда, с того самого момента, как появились компьютеры. Программисты создавали программы, обменивались ими, вносили улучшения, снова обменивались. Чаще всего - безвозмездно. Это была свобода в чистом виде. Пока ее не запретили сверху. Зачем отдавать просто так, то что может принести выгоду? Продавать программы казалось очень соблазнительным. Для производства программ не требуются материалы и станки. Да и самой программы как бы нет. Это всего лишь какие-то виртуальные нули и единицы. Но деньги совершенно реальные. Так появились закрытые программные разработки, для обозначения которых часто используют термин "проприетарное программное обеспечение". Примером может служить всем известная операционная система Windows любой версии.

Запрет на свободный обмен программами объективно вреден. Он приводит к дублированию работы программистов, сложностям при внедрении инноваций, понижению качества программного кода и к другим негативным вещам. Но монополиста все это не интересует.

Логично, что когда распространение программ стали ограничивать, требуя для их использования покупки дорогой и кабальной по своему смыслу лицензии, люди попытались найти выход из такого положения. И, по крайней мере, два решения были найдены. Правильное и неправильное, как это почти всегда и бывает в жизни.

Множество людей во всем мире стало пользоваться нелицензионным программным обеспечением. Существуют и другие названия подобного продукта, раскрывающие суть - пиратское, крэкнутое или просто краденое. Этот процесс затронул все страны. Порядочные люди, иногда сами того не подозревая, маргинализировались, да и элементарно нарушали закон. В какой-то степени к этому процессу приложили руку и корпорации, действуя по принципу "первая доза - бесплатно".

Однако, были и те, кто не пошел на такую сделку. Одним из первых был Ричард Столлман. Когда он столкнулся с невозможностью использовать закрытое программное обеспечение, то понял, что эта ситуация ограничивает его свободу как человека. Столлман не только увидел решение проблемы, но и начал действовать - создавал и пропагандировал свободное программное обеспечение.

Заметка на полях Ричард Мэтью Столлман (Richard Matthew Stallman, RMS) - американский программист, в 1983 году основал проект GNU, а затем фонд Free Software Foundation, идеолог и соавтор Copyleft-лицензии на программное обеспечение (и не только) GNU GPL.

По Столлману (цитата из "Interview with Richard Stallman: Four Essential Freedoms", 19 декабря 2007 г.) "социальные условия использования программного обеспечения жизненно важны - важнее даже, чем его технические характеристики. Свободная программа уважает вашу свободу и солидарность общества с четырьмя основными правами:

0. Правом использовать программу по своему усмотрению.

1. Правом изучать исходные коды программы и изменять их по своему усмотрению, заставляя программу работать как вам угодно.

2. Правом распространять точные копии программы когда вам угодно.

3. Правом распространять копии измененной вами программы когда вам угодно."

Р. Столлман - личность интересная, он широко известен в мире и в России. Несколько раз приезжал с лекциями в Москву, Петербург и другие города. В Интернете можно найти записи этих и многих других выступлений, а также интервью.

А как же деньги? Ведь работу программистов нужно оплачивать, нужно получать прибыль, иначе теряется смысл.

Свободы Р. Столлмана нисколько не мешают зарабатывать на программах. Да, они обеспечивают доступ к программам всем желающим. Но не предполагают их бесплатности. Можно продавать свободные программы (как это ни странно, но покупатели находятся) или оказывать платное сопровождение программного продукта. Важно, что в любом случае защищаются права и разработчика и пользователя программ.

Для такой защиты была разработана лицензия GNU General Public License (GNU GPL), одним из основных понятий которой стала идея "авторского лево", Copyleft. Любые изменения программы, лицензированной на условиях GNU GPL, должны оставаться свободным программным продуктом. Другими словами принцип Copyleft требует, чтобы модификация свободной программы тоже оставалась свободной. Название составлено по тому же принципу, что и Copyright, "авторское право".

Идеи фонда Free Software Foundation несут в себе явную идеологическую нагрузку. По своей сути они направлены на защиту свобод как отдельного человека, так и общества в целом. Но не все могут такую нагрузку вынести. Часть людей, в целом согласная со Столлманом, приняла решение несколько понизить планку. В 1998 году они начали движение за программы с открытым исходным кодом, Open Source Movement. С технической точки зрения такие программы очень близки к свободным. Но вопрос собственно свободы здесь отодвинут на второй план. Программы с открытым исходным кодом могут содержать в себе несвободные части и это делает их также несвободными. В понимании Столлмана, конечно, хотя не все с ним согласны в этом вопросе. Однако, в реальном, сегодняшнем мире такие программы являются тем недостающим звеном, без которого трудно получить нужный результат. Взять хотя бы ядро Linux. В своей канонической версии оно содержит несвободный программный код. Но без таких включений ядро не получило бы того широкого распространения, как сейчас. И уж конечно, использование этого ядра гораздо ближе к идеям освобождения пользователей компьютеров, чем использование полностью закрытой Windows.

Кто же создает свободные программы и как все это работает?

Прежде всего над ними работают люди, которые имеют стимул для решения подобной задачи. А самыми мощными стимулами для любого человека являются, как известно, его желания. Все другие мотивы, в том числе деньги или угроза наказания, намного слабее. Если человек чего-то сильно захочет, то обязательно добьется, это всего лишь вопрос времени.

К такому увлеченному человеку как правило присоединяются единомышленники, современный уровень развития коммуникаций это позволяет. Средства для совместной удаленной работы дают возможность участвовать в развитии проекта людям, которые никогда даже не встречались лично.

Такая модель разработки не похожа на то, что происходит внутри корпораций. Она почти полностью децентрализована, очень устойчива и эффективна. Этот феномен порожден стремлением людей к творчеству и к свободе. Он использует естественное, изначально заложенное природой стремление человека развиваться.

Заметка на полях Работу над ядром Linux начал в 1991 году Линус Торвальдс, тогда студент финского университета в Хельсинки.

5 января 1991 года он купил в кредит, на свои "рождественские" деньги IBM PC 386, а 17 сентября уже опубликовал первую версию ядра Fгеах, которое тогда состояло из 10 000 строк программного кода. Его тут же переименовали в Linux и стали тестировать. Появились положительные отзывы, образовалось сообщество.

Вопрос с распространением тоже был решен. Вот как пишет об этом Линус Торвальдс в своей книге "Ради удовольствия":

"Я не хотел получать деньги по целому ряду причин. Когда я впервые выложил Linux в свободный доступ, я чувствовал, что иду по стопам всех тех ученых, которые столетиями строили свои теории на базе других - на плечах гигантов, говоря словами Исаака Ньютона. Я хотел не просто дать людям возможность воспользоваться плодами моих трудов, но и получить от них обратную связь (ну хорошо - и признание тоже). Мне казалось неправильным брать деньги с тех, кто мог бы помочь мне в улучшении программы. ...

В любом случае я не хотел продавать Linux. И не хотел терять своей власти над ней, то есть не хотел, чтобы ее продавал кто-то другой. Это я четко сформулировал в уведомлении об авторских правах, помещенном в файл COPYING первой версии, которую выложил еще в сентябре. Благодаря принятой в 1800-х годах Бернской конвенции тебе принадлежит авторское право на все созданное тобой до тех пор, пока ты это право не продал. Как владелец авторского права я должен был сформулировать правила: операционную систему можно использовать свободно, пока ты ее не продаешь, а если ты внес какие-то исправления или улучшения, то должен сделать их всеобщим достоянием в виде исходников (в отличие от бинарников, которые недоступны). Кто не согласен с этими условиями, тот не имеет права ни копировать, ни изменять программу."

Бизнес по достоинству оценил и модель и результаты. Многие крупные компании используют этот опыт, а для небольших это один из лучших способов развития. Отдача обществу тоже есть. Разработки таких компаний часто становятся свободными и пополняют общую копилку.

К настоящему времени созданы сотни тысяч свободных программ разной степени сложности и предназначенных для решения самых разных задач. Иногда они содержат мощные инновации, иногда скромно следуют идеологии платных аналогов. Здесь нет правил. Скорее действует принцип естественного отбора. Интересные и качественные проекты имеют больше шансов для выживания и в результате остаются лучшие.

Имеется еще один аргумент в пользу свободных программ, который почему-то часто забывают. Проприетарные программы, что бы об этом ни говорили, пишутся с единственной целью - получить прибыль. Это становится намного проще, если на соответствующем рынке программа принадлежит монополисту в этой области. А свободные программы создаются для того, чтобы делать то, что от них ожидают, и делать это хорошо. Это основной мотив, и это меняет все. К счастью, людей, которые вносят свой вклад в эту общую копилку, много.

Одним из самых успешных примеров, можно сказать примером хрестоматийного уровня в области создания свободного программного обеспечения, является ядро Linux. Без преувеличения можно сказать, что это лучшее ядро операционной системы, которое у нас есть сегодня. Оно является основой множества дистрибутивов Linux, как универсальных, так и специализированных. Ядро Linux работает на любом оборудовании начиная с микроконтроллеров для встраивания в бытовую технику и кончая самыми мощными суперкомпьютерами.

Усилия энтузиастов, а теперь и больших корпораций тоже, принесли обильные плоды. Свободное программное обеспечение уверенно доказало свою полезность, а во многих случаях и незаменимость.

Оглавление   Следующий раздел: Глава 1. Текстовые документы