вторник, 30 декабря 2008 г.

"Почему".

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

Итак: как я пришел в мир *nix? Надо ли упоминать, что окончив школу и отучившись дальше, я вышел в мир вполне себе "зеленым" нифига не смыслящим "специалистом". Думаю что многие через это прошли. ;) Ну да, изучал я компьютеры. Ну да, вымуштровали нас так, что разбудив меня посреди ночи и попросив отрисовать схему на любых логических элементах можно было получить ее минут за 5 практически без ошибок, а я бы улегся спать дальше. :) Но толку? Компьютеры, в сегодняшним понимании, я не знал! Можно, пожалуй, опустить то, как я работал слесарем КИПиА, а так же электриком пожарно-охранной сигнализации, в связи с отсутствием работы по специальности, а так же не желанием (ну кому нужен зеленый юнец?) брать меня на работу. Ибо прямого отношения к данной теме это не имеет. В общем в один прекрасный день я встретил своего школьного учителя информатики Василия Петровича. В те счастливые времена я нашел в журнале "моделист-конструктор" схему персонального компьютера "специалист" и угрохал кучу родительских денег, невов и задолбал Василия Петровича вопросами в тщетных попытках собрать это чудо электронной техники. :) Благодаря этому мой учитель меня и запомнил. К тому времени он с друзьями и коллегами создал совместное предприятие и эта встреча стала поворотным пунктом в моей судьбе: видимо в память о моих "вопросах", иного предположить не могу, ибо как специалист я был "никакой" ;) меня взяли на работу.

Для начала кабельщиком. Там я узнал что-такое сети и впервые сел за винду. Это была win 3.10 и запускать ее я умел только одним способом: нажав F2 в меня нортона и выбрав пункт "windows". :) О том, что это можно сделать еще и набрав win в командной строке я узнал позже. ;) Вот с тех времен все и началось. Со временем я узнал что такое 7-ми уровневая модель OSI, узнал о разных протоколах, о серверах, о том, что в мире есть не только винда и DOS, но и другие OS. Правда тогда мой кругозор захватывал лишь Personal NetWare от Novel и позже все "нетвари" вплоть до 3.12. Хорошие надо сказать были системы... Жаль, что в свое время novell совершила несколько досадных "промахов", которые стали для нее фатальными. Ну да ладно, речь не о том. В итоге моя работа все больше сводилась к настройке серверов на Win и настройке активного сетевого оборудования от cisco и 3com. В свое время я даже планировал сдать на MCSE, но потом забил на это. ;) Даже, было дело, я читал курсы по MSSQL! Бррр... Гадость какая. :) Но это тоже не важно. В общем пришло время, когда я знал винду на столько, что мог в ответ на выкрики о ее кривости смело орать: "Вы не любите кошек потому, что не умеете их ее готовить настраивать!" :))) Да, я так говорил. И более того: я так думал. Я умею признавать свои ошибки, поэтому я говорю сейчас: я ошибался. Но этот период тоже был, можно сказать, поворотным. Ибо тогда я сел за SoftIce.

Нет, не могу сказать, что у меня была жестокая необходимость что-то сломать. Хотя и это видимо тоже. Меня в первую очередь интересовало, как это все сделано внутри. Программировать я любил еще с учебы в МАТУГА, первом моем учебном заведении, после школы, и писал много всякой фигни. По большей части только мне нужных мелочей. Большого и серьезного не было ничего. Когда я добрался до программирования под "окна", я перепробовал много всякого: от написания на чистом C, до новеловского графического билдера. Тогда меня немного удивило, что написав одну и ту же прогу на том и на том (для чистоты эксперимента это было создание окна с надписью... ну вы поняли ;) Нет! Не @@@, "hello world!"), я получил в первом случае полтора килобайта, а во втором 300 кило. Ничего, разобрался потом где, как говорится, собака порылась. ;) Это все было довольно хорошей школой в дальнейшем понимании ассемблерного кода, выдаваемого softice-ом. В общем не вдаваясь в подробности я провел несколько лет лопатя код. Много программ было взломано, много dll-ей перепахано вдоль и поперек. В том числе и всякие kernel32.dll и иже с ними. И спустя какое-то время начало приходить осознание, что так дальше жить нельзя...

Стало многое понятно. Понятно почему для установки драйверов порой приходится плясать с бубном 3 часа. Чем занята система добрый час не шурша винтом и не подавая признаков жизни при инсталяции. Почему приходится вести диалог аля:

-А ты уверен?
-Да
-Точно???
-ДА!
-Не, нет тут на диске драйвера.
-Как нет?!!! Я ж вот положил!
-Нету. И вообще нет у тебя видюхи.
-(пользователь оторопело) А что есть?
-Джойстик!
-Оба на... А я его хотел пойти купить...


:) В двух словах этот код можно назвать одним словом... нет, двумя: ПОЛНАЯ ЖОПА! Да, я не программист. Не профессиональный программист. Я любитель. "Чайник", я бы даже сказал. Но даже я ТАК бы не написал. Не могу сказать за все компоненты системы, но большая часть представляет из себя именно те два слова. И тогда я задал себе вопрос, вполне логичный в данных обстоятельствах: "Папа, а где же альтернатива?" - "Утки." (хороший был анекдот, но я отвлекся) :) В общем я начал искать альтернативу. Новел был хорош, но это не десктоп, это серверная ОС. А нужно было что-то в замен win. И альтернатива нашлась.

BeOS. Первое, что меня поразило - это инсталяция. Ну ладно, быстро - это мы опустим. Но она сказала, что у нее нет драйвера под мою видюху! И что она будет работать в generic или что-то в этом духе. Я скис. Ну кто ставил винду, тот меня поймет. Ибо если нет драйвера, то у винды на экране будет 640x480 и 8 цветов. :( Такой балет нам не нужен, решил я... "Буду работать в generic, выставляю 1024x768 при 16536 цветов! Больше не могу." - радостно объявила система. "Ни@@@ себе!" - обрадовался я. :) Это впечатляло. Ну почему так не могла винда? Ответ кроется опять же в двух заветных словах относительно ее кода. ;) Далее было все радостнее и радостнее: работала beos намного шутрее, 10 открытых окон с видео работали только так (хотя даже 3 под виндой на той же машине уже тормозили), был найден quake2, который даже в софтвере летал как шальной, проги, благодаря API были очень маленькими, даже офис занимал ВСЕГО 8 мег!... В общем все бы ничего, если бы не несколько НО:

  • Система была платная. Да, посмотрев на нее, я был готов платить. Но увы: в борьбе бабла со злом, победило бабло. BeOS просто не выдержала конкуренции с виндой. :(
  • Офис был, но был очень сырым, хотя и вполне мог работать с вордовыми и экселевскими файлами.
  • Набор софта оставлял желать лучшего. Мало было софта. Хотя народ и пытался писать, писать и писать.
  • С драйверами была полная засада. Да, я смог найти дрова под все тогдашнее железо, но было понятно, что если ничего не поменяется - система не выживет. Так и случилось...
В общем мне откровенно было жаль эту систему. Но сделать было ничего нельзя...

К тому времени, когда я решил попробовать линукс, появился уже RH5.0. Довольно сырой, плохо поддающийся русификации и вообще имеющий массу проблем. Мои дни, проведенные с ним можно сосчитать по пальцам двух рук. :) Но не смотря на это, я почувствовал, что я на верном пути, хотя и иду еще с завязанными глазами и плохо чувствую под ногами землю. И тут на горизонте появилась FreeBSD.

"Фряху" я поставил на машину скорее из чувства противоречия: слишком много народу говорило мне "ставь линукс!". Да, знаю, есть у меня такая дурная черта: делать порой что-то на перикор тому, что говорят. Но я не пожалел о тогдашнем перикоре. По началу все шло медленно и со скрипом: cli, после "интуитивно понятного и супер удобного" интерфейса давался с трудом. Но со временем я заметил, что ключи практически везде одни и те же, что обрабатывать текст гораздо проще и удобнее, чем тыкать сотни кнопок, что шелл (во фряхе по умолчанию используется tcsh) позволяет сплетать из команд чудеса, и прочее прочее прочее... И я проникся!... (к стати мне понравилось, как написал один товарищ в bsd-шной конфе по поводу интерфейса: "Со временем cli становится простым и интуитивно понятным. Правда есть побочный эфект: становится совершенно не понятным виндовый интерфейс.") :)

Переход на новую систему не был гладким. Сначала она была поставлена в эмуляторе под виндой. Усиленно искались аналоги привычных прог (один только переход с любимого bred2 на vim чего стоил!), пробы, ошибки, тесты... Дома я переходил с винды около 3-х месяцев. Примерно после этого у меня заработало все, что мне надо. Я окончательно освоил систему портов, сборки, начал сам пачить проги, делать порты с линуксовых прог... В городе было поставлено довольно большое колличество серверов. В том числе и моя гордость: проект "попкорн".

Система автоматизации для кафе "кукуруза". Изначально там хотели поставить пару машин на зале с 1С. И с этой идеей обратились ко мне и моему другу, который был хозяином маленькой фирмы. Я сразу сказал, что это будет полная @@@@. :) Ибо вирусы и шаловливые ручки клиентов/персонала будут регулярно создавать проблемы. По итогу система будет сплошным геморроем. "Тогда скажи как сделать!" И мы сказали. :) Длилось это примерно год. В итоге в зале были установлены текстовые (rs232) терминалы, (менюшки а-ля нортон для официантов), принтера на кухне, в баре и бухгалтерии, графическая оболочка в бухгалтерии (для ввода меню и прочего). Официанты принимали заказ, выбирали все нужное в меню, то что нужно было готовить - выходило в принтере на кухне, что наливать - на барном принтере, по итогу администратор закрывал столик со своего терминала и выдавал готовый чек. Начальство модемом коннектится из дому и в реальном времени смотрит через веб интерфейс что происходит в зале. На сколько я знаю, все до сих пор работает. :) И это при том, что сервер на фряхе не обслуживает ни кто уже почти 10 лет! (ну ладно, немного покривил душой: пару раз там меняли железо, а один раз даже материнку) :) При этом все "крутилось" на пентиум 2 266МГц. Поставте туда висту. Какое железо вам понадобиться? А сколько раз в месяц надо будет ее перегружать? А сколько раз в год переставлять? А сколько раз чистить от вирусов? А сколько... Ну да и этого уже достаточно. ;) А тут "второй пень" вполне справляется с задачей просто на ура. В последствии были планы пересести терминалы но PDA с "голубым зубом", что бы официантки принимали все вообще не отходя от столики и дальше шли к следующему. В общем было здорово и интересно. Но увы: плохая договоренность внутри коллектива разработчиков системы сиграла плохую шутку... Но это уже совсем другая история... А потом у меня появился ноут.

Нет, это не охладило мою любовь к новой ОС, но создало много проблем: хибернейт не работал, с драйверами была проблема (хотя и не такая, как на BeOS), многие проги, писанные под линукс переносились с таким скрипом, что становилось плохо. А проги были нужны. В частности были большие проблемы с видео монтажом и еще чем-то в этом роде, хотя это уже вопрос не столько к ноуту, сколько к самой системе. И тут на горизонте появился gentoo linux.

О! Увидив этот дистрибут - я проперся. :) Во первых это был тот еще конструктор, а конструкторы я всегда любил. :) Во вторых он унаследовал все прелести портов bsd улучшив их в своих портеджах. Ну и в третьих это был линукс, что снимало кучу проблем с поддержкой железа как на буке, так и на моих десктопах. И так повозившись с ним, сделав полный дамп с дисков, я поставил себе gentoo. Со временем дампы фряхи были удалены, так как я понял, что останусь на новой системе. FreeBSD осталась только на серверах.

В общем и целом на этом можно было бы и поставить точку. Потому что мой переход с gentoo на ubuntu было довольно прост и банален: я устал "пересобирать" каждое обновление, тем более на 4-х машинах с разной конфигурацией (на буке, на буке у жены, на десктопе и на рабочем десктопе). Меня это утомило. А тут как раз "нарисовался" на горизонте новый дистр: ubuntu, от которого все пищали. Я попробовал. И он мне понравился: достаточно хорошая стабильность, частота обновлений, качество сборки пакетов, удобство debian-овской системы пакетов (еще с первого rh не люблю rpm!). В общем сменив gentoo на ubuntu теперь так и живу. :) Стар стал видимо, ленив... ;)