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

Windows

Начну пожалуй с Windows. Это похоже первая система с которой я столкнулся в жизни. Возможно я сначала видел DOS, но не осозновал еще этого, мал был. Сейчас я счастлив, что почти нигде не вижу «окна» вокруг себя. Я перестал вообще понимать, как живет этот далекий от меня «оконный» мир. Windows добил меня в свое время очередным синим экраном. После этого месяц в консоли Linux казался раем. Да, я похоже малясь извращенец. В то время я пользовался pidgin в консольном режиме (на базе ncurces) и был в восторге от подобных интерфейсов.

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

Также шагу в сторону Unix систем поспособствовало мое воспитание. Меня всегда коребило от использования нелицензионного ПО. Это как бы сказать слегка не правильно :). Мир Open Source же открыл огромные границы для познания и развития без борьбы с моральными устоями. Я и сейчас не понимаю людей, которые работая в сфере разработки компьютерного обеспечения открыто используют «крякнутые» продукты. Мне кажется, что это сравнимо с подпиливанием ветки на которой сидишь.

Опыт программирования в Windows у меня был совсем невелик. Основное — это Delphi и немного C++. Слишком там все пестрило окошками и интерфейсами. Но почти никто не учил писать консольные или серверные приложения без GUI. Кроме того ядро системы было тесно переплетено с графической подсистемой (сейчас ведь что-то поменялось?). Вообще дикостью было открывать ужасную Windows консоль (как там она называлась?). И WinAPI я так и не познал. А строить пользовательские интерфейсы, я уже тогда понял, совсем не мое.

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

Еще один из недостатков Windows: я никогда не понимал, как там все устроено в нутрях. Если я увидел синий экран смерти, то что это значит? Как найти проблему? Где логи? Почему не запускается очередная программа? Эти вопросы были для меня загадкой. Решение большинства проблем: перезагрузка, а в худшем случае переустановка системы. Как разобраться и решить возникающие проблемы я не знал (вру конечно, как-то ведь жили). Абсолютно противоположная ситуация в Linux мире. На мой взгляд конечно.

Linux

Выше уже упоминал, как сел на Linux. Помню даже подписывался на LinuxFormat дабы познавать истину. С интернетом похоже тогда еще был напряг. Познавал Linux в консоли, больше как системный администратор (хотя таким себя никогда не считал и на подобной должности не работал). В Gentoo разбирался, что как устроено. Узнавал зачем существует определенный сервис, как раздавать интернет в домашней сети, как поднять иксы на своей древней видеокарте и зачем все же нужно это волшебное ядро. Примерно в то время я перестал играть и начал копить на Xbox.

Далее хочу рассказать несколько примеров общения с Open Source программами, которые достаточно сильно меня впечатлили. Нельзя конечно сказать, что это как-то сильно связано с Linux, но именно он дал мне возможность повернуть сознание несколько в другую сторону.

Сначала пару слов про OpenOffice. Так уж сложилось, что во время учебы многие работы необходимо было оформлять в формате Microsoft Office. Как альтернативу я начал использовать указанный выше открытый офисный продукт. В нем впечатлил подход форматирования текста, который на первый план ставит работу со стилями. Там без этого было проблематично. Да в Office от Mircosoft конечно же есть подобная функция и сейчас насколько знаю она реализована намного лучше. Но было время, когда про стили в офисе знали не многие (хотя думаю сейчас тоже ситуация не лучше). В результате мы имели гигантские файлы диссертаций отформатированные полуручным способом. OpenOffice же научил меня грамотно пользоваться стилями и не связывать контент с форматированием. Апофеозом этого подхода стала моя магистерская диссертация, которую я полностью подготовил в LaTeX. Это был мой своеобразный протест против офисных пакетов, которые на факультете использовали как универсальные инструменты в том числе для научных измерений (при этом я говорю про Word).

Во время курса программирования на C++ я опять же устроил некое подобие бунта и выполнял работу на Linux, который грузил с флешки. По-моему, эта была Fedora. Финальный проект моделирования сделал на Qt. Во время сдачи работы преподаватель спрашивал меня: «Зачем ты все делаешь в этой системе? Ты же придешь в будущем на работу и там везде будет Windows и все твои умения окажутся напрасными». На это я отвечал, что «Qt и то что было мной написано вполне себе кроссплатформенно, в отличии от того, что представляли мои однокурсники. На работе я буду пользоваться Linux. А если там будет Windows, то либо поменяем его на Linux, либо уйду на другую работу». Тадам тадам, конечно же я сейчас работаю рядышком с Linux, и как указывал выше, Windows вижу достаточно редко.

В середине обучения на физфаке на один из дней рождения мой друг Шурик подарил мне старенький офисный комп (в соседнем посте я ищу ему нового хозяина). Из этого компа я сделал нечто вроде домашнего сервачка. На нем был развернуто куча сервисов. С помощью gitolite организовано хранилище git-овых репозиториев, а до этого еще и svn. Кроме того, он представлял из себе и некую файловую помойку, доступную через samba, а также пропускал через себя весь домашний трафик и был доступен для моих нужды из внешней сети. Много я на нем игрался с различными сервисами. В итоге он стал таким пухленьким роутером, который включал в себя еще больше. Суть этого абзаца в следующем. Пока я разбирался как это все поднять и настроить, я изучил многие сетевые технологии и стеки протоколов, про которые я раньше ничего не знал. В итоге смог хорошо себя проявить на работе — фундаментальных знаний по информационным технологиям у меня было мало, но я вышел на практике.

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

Про блеск и нищету Open Source. Когда-то я любил KDE. Помню как 3-я версия двигалась к стабилизации и пришла к ней. Это был достаточно долгий путь. И я с удовольствием пользовался KDE. Я даже репортил какой-то минорный баг. Но пришла KDE 4 и тут все поплыло. Снова кучи багов, нестабильная работа. В результате я долго еще сидел на 3-ей версии. По-моему, до тех пор пока не обновил компьютер. К этому времени из портов Gentoo KDE 3 уже успели убрать. Даже пробовал форки, но что-то пошло не так. Это все к тому, что вообще говоря в этом волшебном мире свободы никто ничего не гарантирует. Да можно исправить что-то самому, но готовы ли вы сами поддерживать в одиночку целую систему? А когда захочется новых фичей все это вмержить и переписать? Печально, когда курс проекта уходит, от того, что хотелось бы именно тебе, а единомышленников ты не смог найти. Кроме того, мейтенер может просто потерять интерес к проекту, а другого разработчика просто не найтись.

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

OS X

С друзьями недавно смеялся на тему выбора очередного телефона. Будучи ярым любителем Linux и открытых систем, я около года использовал Nokia N900. На нем до кучи я установил emacs — для полного погружения. Но, не смотря на это, за время использования этого телефона я понял, что поддерживать софт телефона — очень накладно. Да, ты понимаешь кишки и устройство, но тратишь на это слишком много времени. А потом в какой-то момент не можешь взять трубку, потому что часть памяти, отвечающая за приложения телефона, ушла в swap и возникло небольшое недоразумение. Консоль на телефоне конечно впечатляла, но следующим моим телефоном был iPhone, а не Android, который казался тогда мне аналогом Maemo.

И тут я прикоснулся к миру чудесных яблочных интерфейсов и сервисов. И ощущение от использования заточенного продукта оказалось в 100 крат лучше постоянного копания в настройках телефона в попытках поднять производительность.

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

Так вот, после того как я сел за MacBook, я понял, что на подобные вещи я больше тратить время не буду. Да тут меньше возможности для кастомизации, но как раз ее я порой не люблю. OS X дает отличную (не без косяков) готовую posix совместимую операционную систему, которая отлично ложится на задачи, которые я обычно решаю за компьютером. В ней я вижу идеальный симбиоз графического интерфейса и Unix-утилит, построенный на лучшем железе. Mac позволяет лучше фокусироваться на решении задач без необходимости отвлекаться на побочные неприятности.

Но тут я хотел бы конечно заметить следующее. Если бы мне 10 лет назад, дали возможность выбрать OS X или Linux, я бы сделал тот же самый выбор в пользу открытых систем. Тогда мне необходимы были знания и Open Source, на мой взгляд, лучший источник. Сейчас я склонен решать конкретные задачи, не отвлекаясь на подпиливание системы в целом. Но я также активно использую Emacs и целевая система продуктов, над которыми я работаю, несомненно Linux.


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

  • Windows — не мое;
  • Linux — ужасные графические интерфейсы, но великолепные серверы. Как результат это выбор номер один для построения различных сервисов. Сейчас старый домашний компьютер больше работает как небольшая ферма docker контейнеров, а не по прямому назначению. А описанный выше сервак переехал в CubieBoard;
  • OS X — отличная рабочая система для десктопа. Удобство использования железа и яблочной инфраструктуры перекрывает некоторые неудобства. В последнее время в OS X не мало глюков (я тоже попал на баг с 5 Гц-вым WiFi), но надежда на светлое будущее есть.


Comments

comments powered by Disqus