Введение в POSIX'ивизм

       

Как же заработать на Open Sources?


Тут я постараюсь - несколько сгладить мрачно апокалиптическую картину, нарисованную мною в предыдущем параграфе, относительно перспектив коммерческого использования свободного софта. Но для этого нам придется вернуться к тому, кому и зачем нужен Linux (буду говорить так для краткости, но на самом деле все сказанное относится и к FreeBSD, и к другим BSD-системам).

Однажды на одном из форумов я затеял опрос - для чего пользователи переходят на Linux и прочие свободные ОС POSIX-семейства. И, как и ожидалось, смысл большей части ответов можно резюмировать так: чтобы получить надежную и устойчивую систему, идеально заточенную под конкретные задачи данного пользователя.

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

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

Реально ли это? Мой личный опыт показывает - более чем. Может ли это выполнить каждый отдельно взятый пользователь (не имеющий, напомню, специального образования и специфических навыков) на отдельно стоящем персональном компьютере? Теоретически - ну конечно же, может.
Для этого только что и нужно, как прочитать несколько толстых книжек по Linux и, особенно, Unix (объемом в какие-нибудь тысячу с небольшим страниц каждая), пару сотенок мануальников и HOW-TO'ев (с побочной пользой - практикой в английском), научиться сочинять простенькие шелл-скрипты и макросы для текстового редактора, ну и освоить еще несколько мелких дел.

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

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

И вот тут наступает Час POSIX'ивиста. Именно его может позвать наш бухгалтер/переводчик/геолог для оборудования своего рабочего места. Которое будет включать в себя не просто установку системы, а полный комплекс по ее обработке (рашпилем там, или алмазным надфилем - это уже зависит от задач и субстрата, сиречь исходного дистрибутива). Причем в той степени, какая потребуется, чтобы избавить пользователя от необходимости приобретать хоть какие-то знания о внутреннем устройстве системы.

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


перечисленное выше). Отвечаю: именно в POSIX- системе такое возможно. Потому что обычно индивидуальный пользователь ее - не просто пользователь, но и сам себе админ. То есть он вынужден устанавливать и настраивать систему, устанавливать и обновлять прикладной софт, и так далее.

Здесь же речь идет о создании некоего комплекса, того, что именовалось на заре советской компьютеризации Автоматизированным Рабочим Местом - АРМом бухгалтера, переводчика, геолога. То есть - монофункциональной системы с сознательно урезанными до необходимого уровня возможностями. Пользователь такой системы не должен в сущности даже иметь root-акаунта: все, что от него требуется - это уметь включить питание, элементарным нажатием двух-трех клавиш запустить пару-тройку приложений или утилит с требуемыми опциями (а создание скриптов, обеспечивающих такую возможность - одна из задач нашего POSIX'ивиста) и выйти с сохранением данных и корректным завершением сеанса (например, по нажатию сакраментальной комбинации из трех пальцев, а уж о корректности всего остального должен позаботиться POSIX'ивист).

И устанавливать программы такому пользователю не придется. Весь комплекс необходимого для его задач софта будет установлен единовременно. Обновления? А нужны ли они, если комплекс этот будет тщательно продуман изначально, подогнан как под задачи, так и под железо? Ведь классические программы в стиле Unix way меняются мало (в смысле качества - давно уже лучше некуда, а в смысле функциональности - в том-то и суть Unix way, чтобы не прикручивать к утилите find системы заварки кофе). По настоящему (не удовлетворения любопытства для) необходимость в обновлениях связана а) с обеспечением безопасности и б) появлением нового оборудования, не поддерживаемого наличным софтом. Но в данном случае ни то, ни другое не актуально: о безопасности можно позаботиться заранее, а оборудование в таком АРМе не меняется до полной физической амортизации.

А, вообще говоря, все описанное в предыдущих абзацах, - опять-таки не более, чем изобретение велосипеда.


Именно по такой схеме начиналась всеобщая PC'фикация всей страны (тогда еще - Советов). То есть: IBM PC/XT с "черным" DOS'ом (необходимости в NC "по делу" - не возникает) и программой бухучета (или там учета кадров), запускаемой batch-файлом, вызываемым нажатием клавиши Any Key:-). Правда, реализация этого, как правило, оставлял желать лучшего, но речь сейчас - об идее. И представьте, как это может быть реализовано на базе современного "железа" - раз, и с полной возможностью лишить пользователя возможности (пардон за тавтологию) совершить потенциально опасное действие в принципе - два.

Конечно, создание такой системы (при качестве реализации выше среднего уровня) - весьма кропотливая работа. Ее, в сущности, можно сравнить с ружьем штучного разбора (да еще и с ручной высокохудожественной гравировкой). И много ли заработает наш POSIX'ивист-индивидуал на столь же индивидуальных пользователях?

Скорее всего, не очень. Потому что вопрос этот адресован не ко мне. И упирается в повышение материального благосостояния советского (пардон, российского) гражданина - а тут уже Unix way бессилен. Однако...

Однако все сказанное относится не только к обеспечению трудящегося-индивидуала. А имеет силу и для любого трудового коллектива - будь то частная фирма или госпредприятие. И даже, я бы сказал, большую силу. Потому что функционально ограниченные АРМы (на которых, в частности, невозможно резаться в tetris или linе, смотреть порнографию по Сети и заниматься прочими увлекательными занятиями) востребованы скорее в служебной, нежели домашней, обстановке. А тут уже:

  • совершенно другие масштабы - это понятно;


  • совершенно другие объемы кропотливой ручной работы - ведь АРМы для ста банковских операционисток, выполняющих одинаковую работу, будут практически идентичными, и достаточно отрихтовать руками один экземпляр;


  • совершенно иные условия работы - ведь все эти сто АРМов можно единовременно инсталлировать по локалке;


  • и, как следствие совершенно иные соотношения трудозатрат/трудоооплат.




  • Впрочем, для последних более существенна проблема спроса - есть ли он? Ну, во-первых, отсутствие спроса в настоящее время прямо связано с отсутствием предложения (часто ли в советских магазинах спрашивали черную икру? - спросом не пользовалась...). А во-вторых, даже несмотря на отсутствие предложения, спрос есть.

    Предвижу возражение и с другого фланга: а не является ли идея таких АРМов профанацией идеи свободного софта? Одним из краеугольных камней которого (и это пройдет лейтмотивом всей этой книги), является свобода выбора. В какой-то мере - да, но по сути - нет. Потому что начинающий пользователь свободной POSIX-системы все равно свободы выбора не имеет: он просто в силу отсутствия знаний не в силах выбрать адекватный почтовый клиент или текстовый редактор из того легиона программ, который лежит на полудюжине сидюков любого т.н. user-ориентированного дистрибутива Linux. Свободу эту он получит только тогда, когда изучит их все, то есть превратится в POSIX'ивиста, - но мы договорились, что это в его задачи не входит, не так ли?

    Тем не менее, у него есть свобода выбора другого - заниматься созданием собственного АРМа самому или предоставить это дело тому, кто может это осуществить по уровню знаний и должностной инструкции, то есть тому же нашему POSIX'ивисту. А вот у последнего эта самая свобода выбора сохраняется в полном объеме - и, более того, он имеет не только право, но и реальную возможность ею воспользоваться.

    Более того, рискну высказать крамольную с точки зрения абстрактного свободолюбия мысль: существует немало сфер человеческой деятельности, где свобода выбора не только не полезна, но и просто противопоказана. И пример с банковскими операционистками тут далеко не единственный...

    Итак, "кратко резюмирую сегодняшний базар". Будущее коммерческого использования свободных POSIX-систем - не в дистрибуции Linux на десктоп каждой секретарши на смену Windows-десктопу, дабы она могла им управлять, как кухарка - государством. А в создании специализированных монофункциональных систем на базе некоего дистрибутива общего назначения.


    Содержание раздела