Обо мне

Я - программист и администратор Linux-систем.

Хотелось бы пояснить моё отношение к Linux и другим операционным системам (ОС), свободному программному обеспечению и вообще, зачем нужен этот блог.

Под Linux я подразумеваю Unix-подобные операционные системы. Я знаю, что Linux - это только ядро. Просто большинство людей понимает под Linux ОС. Так коротко и ясно.

Сразу хочу отметить, что я не фанат пересаживать кого-то с Windows на Linux или куда-то ещё - всё зависит от конкретных задач, стоящих перед человеком, и способности быстро и качественно решать эти задачи с наименьшими затратами. Для моих задач лучше всего подходит Debian Linux. Мне в нём очень комфортно.

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

Зато я являюсь фанатом открытых стандартов передачи и хранения данных. Что мне не нравится в закрытом платном ПО, так это тот факт, что такое ПО навязывает пользователю закрытые и патентованные форматы. В результате пользователь, во-первых, сам становится жертвой производителя ПО, а, во-вторых, жертвой становятся получатели данных этого пользователя. Самый яркий пример относится, конечно же, к продукции фирмы Microsoft. Пользователи, построившие свой документооборот на формате .doc, не имеют возможности не только сменить поставщика ПО, но и даже операционную систему. Openoffice, как показывает практика, спасает в этом случае не всегда. А уж если вам прислали документ в формате Microsoft Visio, то для работы вам только и остаётся - купить Microsoft Visio. Россия вообще увязла в круговой поруке Microsoft-форматов. Поэтому первым шагом в борьбе за открытость стандартов передачи и хранения данных должны быть, по моему мнению, прямое наложения запрета на использование закрытых форматов в государственных структурах РФ, а не запрет Microsoft или протекция свободного ПО. Именно гос. структуры, как локомотив, должны сделать нормой использование открытых стандартов данных в обществе. А уж использовать Word, OpenOffice, Windows, Linux или Mac - это личное дело каждого (или организации).


Как я познакомился с Linux?

Это произошло в 1998 году - в руки попала толстенная книга о Linux (автора не помню), к которой прилагался диск Red Hat 4. Книга хотя и была с жуткими ошибками (как я понял позднее, это явно была книга по Sun Solaris с исправленным названием Solaris на Red Hat), тем не менее, позволила начать приобщаться к Unix-подобным ОС с открытым исходным кодом. Многие вещи понравились сразу. Могу перечислить, что понравилось тогда в первую очередь:

  • Всякий дистрибутив Linux включает в себя компилятор, достаточный для работы в этой системе. Его не нужно покупать - без такой опции я не считаю ОС полноценной (привет Windows!). Предметом купли продажи могут быть программные библиотеки или более качественные компиляторы;
  • Linux является готовой средой для разработки ПО. Поначалу напугал тот факт, что компилятор работает из командной строки. Но порадовало, что в системе есть система помощи man - которая "знает" всё о функциях установленных языков программирования. В ОС есть масса редакторов на разные вкусы. Всё помогут собрать в единую среду настройка своего любимого редактора и освоение утилиты make (а программисту стыдно не знать, что такое make). Многие редакторы позволяют вызвать make прямо из редактора и показывать ошибки в тексте по результатам вывода make, а так же вызывать man прямо из редактора по функции в положении курсора. Хотя многие довольствуются совсем примитивными редакторами/настройками и просто работают в нескольких окнах: одно окно для вызова make, другое - для редактора, третье для man. Кстати, "окна" могут быть не только в графическом режиме. В текстовом режиме (а ля MS-DOS) есть несколько способов переключать экраны с разными программами. Это и стандартные tty-консоли, но и, к примеру, утилита screen, позволяющая не только создавать текстовые "окна", но и оставить текстовое приложение в фоне и отключиться от компьютера, а затем подключиться с другого компьютера и продолжить работу;
  • В систему входит масса утилит, которые под MS DOS и Windows ещё нужно установить (а иногда и заплатить). К примеру, у меня был файл, который не входил на дискету, и мне требовалось разбить его на части, а затем склеить на другой системе. Я уже прочитал где-то о Unix-way и поэтому просто набрал на клавиатуре man split (split по-английски значит "разбить") и (о чудо!) я увидел, что такая утилита в системе есть и она делает то, что мне нужно. Как склеивать я подсмотрел в ранее упомянутой книге. Так-называемый Unix-way - это когда ПО разрабатывается небольшими кирпичиками, каждая программа делает свою часть, но максимально хорошо. Операционная система должна "склеивать" эти программы. Так, например, чтобы сжать набор файлов, в MS-DOS и Windows вы ставите программу-архиватор, которая и собирает файлы в один блок и архивирует. На самом деле, это две разные задачи, два кирпичика. В Linux стандартно входят такие программы как tar, gzip, bzip2 и подобные. Tar собирает набор каталогов и файлов в один блок - tar-файл, без сжатия. Получившийся tar-файл вы можете упаковать любым архиватором на свой вкус. Утилиты gzip и bzip2 умеют упаковывать только один файл. Gzip делает это быстро, а bzip2 сжимает лучше. Тут может возникнуть вопрос, зачем мне вызывать несколько программ, когда я под Windows ставлю одну программу, которая делает то же самое одним движением? Тут фокус в том, что и  в Linux вы всё это делаете одним движением. Например, tar умеет сам вызывать и gzip и bzip2 - он просто передаёт функцию упаковки другому приложению. В графической среде Gnome вы можете использовать приложение file-roller (в русском варианте его можно найти в меню "Программы->Стандартные" под именем "Менеджер архивов"), которое самостоятельно вызовет требуемые программы архивирования по расширению архива, который вы создаёте;
  • Linux имеют чёткую структуру, которая может варьироваться в различных дистрибутивах, но в целом позволяют легко менять поставщика операционной системы без лишних затрат;
  • Linux отлично подходит для изучения, как устроена операционная система. За пару лет до знакомства с Linux, в 1996 году я программировал на Delphi и мне попалась опять же толстая книга, к сожалению, забытого мной автора, основным посланием которой было такое сообщение: Use code Luke! - переделка фразы "Используй Силу, Люк!" из "Звёздных войн". Т.е. чтобы понять, как написать программу, загляни в исходный код библиотек. Не знаю как сейчас, а в то время к Delphi-1 и Delphi-2 прилагались исходники библиотек. И это здорово помогало писать программы на Delphi. Вот откуда, наверное, моя любовь к открытому коду (хотя и без фанатизма). Открытость Linux позволила мне не только программировать, но и подстраивать систему под себя, делать то, что не предусмотрел поставщик дистрибутива. Часто в Windows требуется написать программу, чтобы получить решить поставленную задачу, а в Linux достаточно подстроить систему - подредактировать доступные скрипты. Видимо, такое понимание, понимание системы привело к тому, что я по долгу службы не только программист, но и админ.

Зачем я веду этот блог?

Честно говоря, точно не знаю. Наверное, для себя. Просто хочу сбросить часть мыслей на твёрдый носитель, чтобы освободить голову для чего-то другого, полезного. Чтобы не возвращаться мысленно к пройденному. Почему тогда пишу в открытый блог, а не в закрытый дневник? Наверное, потому, что считаю не высказанную мысль пропавшей и забытой. Я высказался - значит, я мыслю. Я мыслю - значит я существую :-)

2 комментария: