Добро пожаловатьмобильная версиявход
В Мир Информационных Технологий
ЛЕНТА
ЧЗВ (FAQ)
КАРТИНКИ
ОБ АВТОРЕ
КУЗНИЦА
веб
игры
наука
остальное
путешествия
разработка
софт
технологии
устройства
Почему «Linux not a live»? Или опыт использования Linux в реальном мире
2016-12-08 00:34 | | комментарии - 0софт
Так уж сложилось, что в этом мире есть мое мнение и есть мнение окружающих и в ряде случаев они не совпадают. И когда это происходит, я стараюсь разобраться почему люди думают по другому и кто из нас неправ. Например, когда я был молод, я искренне не понимал почему люди покупают автомобили марки Toyota, ведь формально эти автомобили проигрывают немецким производителям во всем (комфорт, динамика, дизайн и т. д.), но со временем все стало на свои места.

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

Моей первой операционной системой была Window 98, у нее был ряд "особенностей работы", были проблемы со стабильностью (которые в принципе можно было решить), но в целом каких либо критических замечаний ни к Window 98, ни к Windows в принципе у меня не было тогда и нет сейчас. И в тоже время местные гуру повторяли как мантру "Windows must die" и что то в духе "Linux will win". Мне любой такой гуру мог легко объяснить, что Linux гораздо стабильнее, у него более правильная архитектура, он менее требователен к ресурсам, есть возможность выбора интерфейса и т. д. и т. п.

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

Linux как desktop платформа

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

Установка дистрибутива в целом прошла без проблем, несколько напрягло только 2 момента:
  1. Установщик предложил разметить диск, и вот в Windows все просто и понятно, есть диск C:, D: и т. д. Это просто секции на диске, которые разделены на разделы чтобы было удобнее. Но в линукс тебе предлагают какую-то непонятную иерархию с какимито непонятными разделами (из всего того, что написано на экране понятно только swap)
    /dev/sda
    /dev/sda1
    ->
    /
    /dev/sda2
    ->
    /home
    /dev/sda3
    ->
    swap
    Какие мне разделы нужны? Какие им определить размеры? Как мне сделать диск C: для системы и программ, диск D: для рабочих материалов и диск E: для всего остального? В общем ничего не понятно, ладно оставим по умолчанию, надеюсь потом разберусь.
    Также спрашивают, какую файловую систему поставить Ext3 или Ext4? Странный вопрос непосвященному пользователю, наверное Ext4, у нее ведь номер побольше, значит она по новее.
  2. Установщик предлагает выбрать необходимые программы и пакеты. Смутил просто огромный список с невнятным, либо отсутствующим описанием.

Также напрягает постоянный диалог в духе:
Я: Хочу добавить "программу 1"
Установщик: Для данной программы необходимо дополнительно установить "пакет 1", "пакет 2", "пакет 3" ...
Я: Ок установи
И так для каждой программы из списка. Что это за пакеты? Зачем? Как непосвященному пользователю, об этом знать?

ОС установлена, меня встречает графический интерфейс Gnome и сразу же обращает на себя внимание некоторое подлагивание интерфейса, задержка где-то 0,25 - 0,5 сек на любые действия. Т. е. кликнул мышкой в меню, а оно открывается не мгновенно, и так работают фактически все элементы интерфейса.

Первое что пытаюсь сделать, так настроить интернет. Нахожу необходимый пункт в меню настроек, интерфейс несколько непривычен, но вроде все есть, выбираем тип подключения (на тот момент использовалось PPPoE соединение), вводим логин/пароль и странно, нет кнопки "подключить", только ОК и Cancel. Ну ладно, жмем ОК и ... ничего не происходит, интернета нет. Пытаемся разобраться в этом деле самостоятельно, но безрезультатно потратив какое-то время, беру второй ноутбук и пытаюсь загуглить, что же я делаю не так? И тут внезапно оказывается, что никому и в голову не пришло пользоваться графическим интерфейсом. Целая гора инструкций как это сделать в консоли и ни одной про графический интерфейс. Ладно, берем команды из мануалов, пытаемся выполнить и ... нет, у текущего пользователя нет необходимых прав доступа, гуглим далее. Через часик, другой, я уже имею базовые знания о системе прав в Linux, знаю что такое eth0, владею базовым набором консольных команд, несколько подустал, но интернет у меня появился.

Запускаю браузер и обращаю внимание, что он несколько старше чем, тот который у меня был на Windows ноутбуке, пытаюсь найти привычную кнопку "обновить", но ее нет, перехожу на сайт Mozilla чтобы скачать актуальную версию браузера, ищу подходящую версию и вижу надпись в духе "версию для Ubuntu Linux качайте с официального сайта Ubuntu". OK, перехожу на сайт Ubuntu и вижу, что самая свежая версия доступная на данный момент это именно та, которая сейчас установлена.

Далее, запускаю файловый менеджер. В Windows оно как, смотришь, папка System и понимаешь что здесь системные файлы, или Program Files - файлы установленных программ, и все понятно, не надо читать документацию чтобы разобраться. В Linux меня встречает целый ряд папок с очень выразительными названиями opt, var, mnt, proc, etc, var и т. д. Что это? Для чего они? Где мне хранить документы? А где музыку?

Читаю документацию, что-то проясняется, что-то нет (например, непонятно зачем разделили /bin и /sbin? или зачем разделили программы и их конфигурации в разные папки?), но главный вопрос "где мне хранить документы и музыку?" остается открытым. А самое главное, как мне обеспечить безопасность моих данных, в случае непредвиденной переустановки системы? Например в Windows я никогда не храню данные на диске C: и в случае чего, могу без проблем его отформатировать. Как мне добиться такого эффекта в Linux? Как минимум не очевидно. Ладно, создаю личную папку на рабочем столе, потом разберусь.

В повседневной работе я привык пользоваться двухпанельным файловым менеджером, и в принципе альтернатива для Linux была найдена достаточно быстро (точно не помню, но вроде как это был Krusader). Но выбранного мной файлового менеджера не было в репозитории Ubuntu и соответственно, как это принято в Unix, мне надо было его собрать из исходников. Качаю архив, нажимаю на скачанном файле правой кнопкой мыши, читаю пункты меню ... и не нахожу ничего связанного с "распаковать", "скомпилировать", "установить". Неужели это такая нетипичная операция? Почему отсутствуют такие пункты в меню файлового менеджера? Ведь в итоге мне пришлось ввести в консоль весьма тривиальные команды типа:
$ gunzip file.tar.gz
$ tar -xvf file.tar
$ ./configure
$ make
$ make install
Еще вопрос вдогонку, почему архив *.tar.gz нельзя распаковать одной командой (я уже и не мечтаю о пункте контекстного меню)? Ведь этот тип архивов в Unix среде является самым популярным и существует еще со времен первых динозавров. Неужели требуется тысячи лет эволюции чтобы внедрить в систему какие-то банальные вещи?

На очереди текстовый редактор, на тот момент я использовал SciTE (и единственная причина почему я в дальнейшем от него отказался это проблемы с поддержкой UTF-8). Этот редактор был разработан для Unix и в дальнейшем портирован в Windows, соответственно я никаких подводных камней не ожидал. Я даже нашел его в репозитории Ubuntu, но без странностей не обошлось и тут. Когда я ввел в текстовом поиске по репозиторию "SciTE" мне в результатах выдало 3 записи. Сейчас я уже не вспомню точный текст, но было не очевидно что из этого собственно программа, а что сопроводительные пакеты (из описания это тоже было не очевидно). Устанавливаю первый пункт, установилось, программа нигде не появилась. Устанавливаю второй пункт, выскочило сообщение что нужно заодно установить и 3-й пункт, одобрил, установилось, программа появилась в списке программ. Почему нельзя разделить сопроводительные пакеты и программы? Зачем обычному пользователю разгадывать эти загадки? Почему в репозитории отсутствует внятное описание?

Далее последовала установка офисного пакета, музыкального плеера и много еще чего. И в целом все необходимые программы были найдены, но все они как триал версии Windows программ (мне так и не удалось найти хорошей альтернативы Winamp или AIMP с поддержкой глобальных клавиш), каких-то функций нет, какие-то тормоза интерфейса, глюки и т. д.

Также очень сильно драконила необходимость выполнения ряда операций через консоль с использованием su + password.

И в таком режиме я проработал в среде Unix около полугода. В результате пришел к выводу что юзабилити системы просто удручающая (несмотря на то что был установлен Wine и ряд Windows программ, типа Winamp). После сноса Linux и установки Windows, возникло такое ощущение, что мне вначале отрезали руку, а потом пришили ее обратно (непередаваемая эйфория).

Таким образом я похоронил Linux как ОС для desktop, но осталась мысль "может быть все таки Linux раскрывает себя в полный рост в серверном окружении?".

Linux как серверная платформа

Прошло какое-то время, у меня появился проект который надо было реализовывать в Unix окружении. Проект надо было сделать в среде HP Unix. Но пожалуй, не буду сосредотачиваться на одной системе, а поговорю про Unix/Linux окружение в серверной среде.

Перед тем как описывать систему, расскажу что такое проекты на удаленных серверах крупных клиентов (я обычно работаю именно с такими). Итак, клиент, как правило, предоставляет чистую систему с установленным минимумом ПО (СУБД, бизнес инструменты, системы ETL и т. д.) и не позволит устанавливать какое либо другое ПО (файловые менеджеры, текстовые редакторы и т. д.). Поэтому, обычно приходится работать с инструментами, которые встроены в ОС.

Итак, с чего начинается проект на сервере клиента? Как правило, с копирования наработок. Как это происходит на Windows сервере?
  1. Подключаемся к серверу по RDP
  2. Открываем 2 окна Explorer
  3. Прокликиваем нужный путь (в RDP клиенте можно шарить локальные файловые ресурсы серверу)
  4. Через CTRL выбираем нужные файлы и папки
  5. CTRL + C / CTRL + V, небольшая пауза и все готово
Операция занимает считанные минуты.
Как это происходит на Unix сервере?
  1. Подключаемся к серверу через PuTTY (и нас приветствует жизнерадостная черно-белая консоль)
  2. Вводим ручками:
    1. "cd /нужная/целевая/директория/"
    2. "sftp user@source_host"
    3. "password"
    4. "get -r /нужная/директория/с/исходными/файлами"
  3. В случае, если нам необходимо скопировать только отдельные файлы/папки проекта, то повторяем п. 2.4. необходимое количество раз
В общем ничего сложного, пол часика - часик и все готово (главное найти подходящий SFTP сервер для трансфера).
Т. е. те базовые операции (такие как копирование/правка/архивирование/распаковка файлов, навигация по файловой системе, конфигурирование и т. д.), на которые в Windows вообще не обращаешь внимание в среде UNIX занимают большую часть времени (в моем случае, достаточно дорогого времени).

А если вдруг тебе захочется скопировать что нибудь большое (например файл на несколько терабайт), то тебя ждет еще один сюрприз, который называется таймаут. Т. е. ты набрал команду "cp ..." и ждешь завершения, тут возникает такая ситуация, где-то минут через 30 (зависит от конфигурации таймаута) твой клиент говорит что соединение разорвано по таймауту, твоя сессия завершается и соответственно копирование файла прерывается. И тогда надо применять различные костыли типа "nohup ...", что конечно же очень удобно и функционально.

Так-же, по моему мнению, отдельной похвалы заслуживает стандартный для Unix текстовый редактор VI. Это просто содомия здравого смысла, если бы я принимал участие в конкурсе, где надо было бы разработать самый худший текстовый редактор, я бы безоговорочно проиграл бы разработчикам этого чуда. А ведь когда-то давно, когда я учился IT наукам, мне приходилось работать с редактором MS DOS Edit, и я тогда был недоволен, что мне было неудобно, не функционально, а он походу был очень даже ничего.

Если кратко, то VI это такой текстовый редактор, в котором все общение с программой происходит посредством команд, причем, если вы склонны к опечаткам, то случайно можно призвать вполне реального демона. Сам редактор всегда находится в одном из 2-х режимов (режим команд и режим редактирования) и не дай бог по ошибке начать набирать текст в режиме ввода команд (вызванные демоны резко мутируют во всадников апокалипсиса). И, как вы уже наверное догадались, без мануала вы не сможете даже пустой файл создать.

Также новичков ждет немало сюрпризов (в духе команда "kill PID" в таком виде не работает, надо "kill -9 PID"), которые заставят читать тонны мануалов. Причем в Windows всех этих проблем просто нет (вот тебе графический интерфейс, вот тебе перечень потенциальных опций, вот тебе интерактивные подсказки).

Еще, при работе в консоли Linux/Unix, лично меня никогда не покидает ощущение что я разминирую бомбу (несмотря на годы опыта). Вполне реально, например, вместо "vi filename" ввести "rm filename" и вуаля, твой обычный рабочий день превратился в увлекательную игру по поиску решений внезапно появившихся проблем.

P. S.
Этой статьей я не предлагаю "давайте откажемся от Linux и все дружно перейдем на Windows", даже наоборот, ИМХО абсолютная монополия Windows приведет к весьма печальным последствиям. Просто мне очень жаль что программная платформа с весьма неплохим потенциалом уже много лет эволюционирует в каком угодно направлении, но только не в аспекте юзабилити. И что-бы Linux стал широкораспространенным его необходимо еще очень много обрабатывать напильником. С другой стороны, коммерческая разработка под Linux весьма сомнительное мероприятие, соответственно, перспективы увидеть дружелюбный пользовательский интерфейс в Linux весьма туманны (как только этим начинают заниматься серьезные компании, так сразу Linux превращается в Android, Mac OS, Firefox OS ... во все что угодно, но только не остается Linux-ом).

P. P. S.
Если бы вдруг завтра Windows куда-то бы исчез, я конечно же поставил бы себе Linux вместо.
linix os unix автор авторский материал
комментарии - 0
от новых к старым | от старых к новымрегистрация/вход
<1>