Знакомство с Linux или «по одёжке встречают»

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

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

Знакомство начинается примерно вот с этого. И тут мы скажем что все эти линуксы совершенно одинаковые: тут же все понятно, шарик сплюснутый нарисован, здесь написана какая-то ерунда, потом нужно написать пароль, после чего нам радостно показывают рабочий стол и вот весь ваш линукс - мы уже знаем, что это такое, осталось найти на этом линуксе свои любимые программы и можно спецкурс считать законченным. Вот я вижу какую-то панель, на ней значки, рабочий стол, на нем иконки, с которыми мы уже знакомы, короче говоря, если бы наш разговор происходил лет 10 назад, то дикий шок вызвало бы отсутствие кнопки пуск на экране. А мы все равно знаем, что надо нажать на левый нижний угол. Тут находится нечто, нажимаешь на него - появляется меню, там приложения - да, все линуксы устроены одинаково.

Правда тут нас начинает преследовать неприятная такая пользователям особенность: в свежеустановленном линуксе оказывается куча каких-то программ. Другое дело другие системы - ставишь ее, а там у тебя ничего нет, только wordpad и косынка. А тут как-то всего дохрена: одних игр штук 5-8-10, короче говоря - это раздражает. Зачем мне вообще все эти программы? Они ж небось дорого стоят!

А с другой стороны, к вам на встречу приходит опытный человек и говорит: это же такое удобство! У вас уже все программы предустановлены, пользуйтесь ими. Давайте и мы воспользуемся, например, браузером. Найдя в этом прекрасном меню приложений не найдя в этом прекрасном меню приложений ни одного своего любимого браузера, за исключением firefox, но найдя изрядно доставши своего товарища линуксоида вопросами «а где здесь ворд? а где здесь фотошоп? а где здесь винамп?», который нам говорит - ну, вместо ворда вот это запусти (Libre Office) - почти так же будет... Короче говоря, найдя много всего интересного пользователь начинает пытаться разобраться со всем, что здесь происходит. И здесь его подстерегают удобства. Одно из главных удобств, которое я продолжаю рекламировать - виртуальные рабочие столы. Вот у меня есть несколько окон открытых, они все на одном рабочем столе. А я хочу на другом рабочем столе, скажем, файловый менеджер открыть. Рабочих столов можно сколько угодно делать и даже окошки перемещать, если захочется. (тем временем я забыл запустить скринкаст). Повторю, что я успел сделать: успел потыкать в меню, обнаружил там приложения и собрался говорить про виртуальные рабочие столы как отличительную черту типичных линукс систем. Повторюсь: у нас есть 2 экрана, их может быть сколько угодно, например 4, и внизу появилось опять 4 квадратика, на которых можно раскрывать окошечки, чтобы иметь столы, которые не может видеть босс - где можно в игрушки играть, например. Это, пожалуй, единственное, что пользователь видит и не желает этим пользоваться, видя окружение нетипичное для не-линукс-среды, тем не менее это очень удобно - дико раздражает, когда на экране куча-куча окошек. Современные люди изобрели аппаратную замену виртуальным рабочим столам: 2 монитора, подключающихся к одному компьютеру. Тем не менее, я продолжаю утверждать, что первоначальное знакомство с линуксом показывает, что тут все такое же, как и везде. Ну надписи "пуск" нету, иконки странные, выглядит немножко по другому , какой-то файловый менеджер, каталоги, но в целом ……

Вопрос: каталоги или директории?

Ответ: каталоги. Директории - система управления государством. Я других слов не знаю, хотя зачем-то люди используют слово "директории" вместо слова "каталог".

Все это очень здорово, какие-то файлы в файловой системе… то есть все хорошо, все вроде понятно, но уже на этапе знакомства со всем этим безобразием начинает нарастать некий шок, связанный с недопониманием того, что мы привыкли считать совершенно нормальным.  Ощущение от этой неполной имитации начинает только нарастать в процессе разбора со всем вот этим вот. Например хотим мы что-то настроить, приложений у нас для этого целая гора, лезем в раздел настроек, и там мы видим совершенно какую-то неорганизованную солянку. И почти во всех линукс-дистрибутивах всегда будет так.  Вообще, мы что-то такое уже видели - какая-то панель, тут есть уже какие-то штуки, какие-то настройки каких-то частей системы: экран, рабочий стол, обои можно поменять…о! (Нашел картинку "не болтай") Ой мамочки (слишком большая) Откуда брать-то эти, обои черт бы их брал? В чем идея. Идея в том, что есть какое-то место, где лежат ваши собственные файлы, и, как выясняется, есть еще место, где лежат файлы системные и их там этих системных файлов какое-то немерянное количество. Вот все эти каталоги, опять начинается мутность. Попытки взаимодействия с этим вашим линуксом путем нажатия на какие-то кнопочки вроде как работают, но могут привести к каким-то непоняткам. (Тем временем Георгий Владимирович открыл командную строку и написал путь вручную). (нашел обоину) Отчаявшись что-то сделать с этими кнопочками и заранее не подготовившись, я вместо этого взял и просто залез туда, где я знаю лежат эти изображения, подложил их в нужный каталог и вот пожалуйста. Это творение нашего дизайнера. Вон, видите, ранец. И зачем-то коробочка с красным крестиком. Окей. Запомните этот момент: человек, разбиравшийся с линуксом очень долго вместо кнопочек быстро загрузил все с помощью элементов командной строки.  Мутность нарастает, когда вы пытаетесь настроить что-то, чего не написано в настройках. Где, например, настройки сети?! Нет настроек сети в диспетчере . О, нашел. Какая-то настройка сети, которую можно как-то настроить… здесь мы сделаем паузу, только заметим, что при тщательном рассмотрении выясняется, что настройки, которые сгруппированы в одну кучку, как правило - настройки самого рабочего стола: всякая всякая муть типа картинки, экраны и т.д. То есть с этим можно много играться, получать массу удовольствия, но это же настройка того, чего вам не нужно, вы же понимаете. Это никак не повлияет на дальнейшую работу. Настройка того, что, собственно, относится к операционной системе, скорее всего, вынесена в одно или несколько мест. И дай бог у вас есть какое-то управление этими настройками. Настройка операционной системы находится в совершенно других местах, чем в настройках рабочего стола. Поставим паузу, потому что то, что я открыл - настройка ОС - во всех линуксах будет разной, поскольку нет никакой программы центра управления операционной системой. Управление операционной системы - это редактирование при помощи текстового редактора. К этому мы придем к концу семестра, когда будем хорошо в этом разбираться, а пока повесим это утверждение: графический интерфейс линукс с помощью этой штуки настраивать без гарантий - что-то будет, что-то не будетКазалось бы, все хорошо, все прекрасно, нас преследуют мутные штуки, но что поделать, не все системы так идеальны.

Вроде бы разобрались с этим самым линуксом. Я просто хочу по быстрому показать какой-нибудь другой вариант оформления рабочего стола. Так. Давайте подключим какой-нибудь сидюк другой к нему. Вот мы его вынем, а другой подключим.. не пробовал делать то, что сейчас делаю. Если кто не заметил - я запустил виртуалку: сейчас на экране стартовая загрузка компьютера в виртуальной машине и загружаю я его, собственно, с сидюка. Внимание, один большой бонус связанный с линуксом. Представьте: у вас есть компьютер с вашей любимой операционной системой и вам нужно поработать с линуксом чуть-чуть. Надо поставить как-то этот линукс с нелинуксом. А если он убьет операционную систему? А если у меня на диске С много места, линукс туда встанет? Короче, для того чтобы более или менее сознавая то, что ты делаешь разобраться с установкой операционной системы в качестве второй операционной системы на компьютер, надо знать что это такое. И тут нас спасает вот эта кнопочка  LIVE - когда устанавливать ос не требуется, она запускается с сидюка. Нажимаем кнопочку. Как выяснилось, я вставил не тот диск. Запустим другой. Сейчас я его выключу и запущу, поехали. О, работает, отлично. Ничего не знаю о том, что сейчас получится. Как видите, сама загрузка другая, бекграунд другой - загрузка конкретно этой рабочей среды требует хорошего графического процессора, что соблюсти в рамках виртуальной машины не так-то легко. Сейчас увидим. Интересно-то выйдет.

Оно уже, загрузилось, так, причем обратите внимание, что вроде бы все так же, внизу какая-то панель, правда, вместо кнопки "пуск" меню какое-то другое и тут какие-то странные штуки. Короче, Федот, да не тот. Все, что мы так радостно изучали в предыдущей версии нашего линукса, оказалось, делает в этом все то же самое совершенно по-другому. Изучаем меню, понимаем, что оно похоже, приложения все как были, так и остались, но если вы рассчитывали увидеть то же самое, но другого цвета - вас ждет совершенное разочарование: данный рабочий стол выглядит совсем по другому. И это мы еще не настраивали виртуальные рабочие столы. Короче говоря, мы приходим к выводу, что внешний вид и способ работы конкретный, и всякие эффекты, и организация самого меню от линукса к линуксу могут различаться. Образуется желание найти что-то общее : так называемый инвариант. Что же нам изучать, если линукс все время разный? Это вопрос, на который стоит поискать ответ.

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

Дальше - больше.

Что у меня есть еще более извращенного?… Вы спрашиваете, это тоже линукс? Да, тоже, но линуксоиды ответят - нет, это вообще нелинукс. А покажи мне еще линукс. Хорошо.

Вот, кстати, начальный загрузчик виртуалочки, вот загружается что-то такое (не очень быстро все-таки это работает). Вот вам очередной входной экран покажется и все вроде как обычно. И мы, пока не логинясь в этого пользователя «тест юзер2», обнаружим, что тут есть несколько вариантов рабочих столов по умолчанию. Выберем опенбокс. Так, пароль, юзер, иии? Где мой рабочий стол? Да нигде, ответит линуксоид! Это и есть ваше рабочее окружение, работайте!! 

Давайте, чтобы было понятно: вот. Что дальше-то делать, где кнопки? Правильный ответ - ну есть правая кнопка, она вызовет меню. Тут какие-то игры, приложения, все на английском. Боже как неудобно. А зачем тебе кнопки? Запускай терминал. Иии? Дальше-то что? Работай! Окна есть? Да, все приложения можешь запустить сам. Вот один из браузеров - хромиум, его можно было бы запустить из раздела меню из правой кнопки, его можно запустить из командной строки. Короче просто браузер. Вместо того, чтобы искать его где-то здесь в меню, тем более, что поди выясни, где он, можно просто вызвать программу из командной строки по ее имени. Кстати, эта штука поддерживает рабочие столы. А как же вот эта волшебная картинка? Которая переключает рабочие столы? А кто вам сказал, что эта картинка - свойство линукса? Окей, но можно настроить тут что-нибудь хотя бы? Ну, только цвет окошек.  Таким образом, получаем минималистическое окружение, где мы подбираем то, что мы хотим. И кнопка - просто окно. Окей, нам так неудобно, мы хотим, чтобы было все сразу. Ладно!

А я продолжу издеваться над вопрошанием «покажи мне линукс» и покажу еще один линукс. Загружаем.  Упс? Это что?? Что это??? Что за волшебные какие-то штуки?? Да все нормально, это линукс, он вам загрузился! Все на месте, работайте! Где моя кнопка старт? Нет ее! А есть разные программы и инструмент их запуска. Я загрузил специальный инструмент - рескью диск, в состав которого входит изрядное количество всяких штук для починки файловой системы. Короче говоря, это тоже линукс, в нем тоже можно работать, вот ваша файловая система. Ну и так далее. И это тоже линукс. Вот, закроем-ка его.

Наконец, последнее, что я хотел показать - вот такую штуку. Сейчас я выдам несколько волшебных команд, но дальше все будет более менее понятно.

Как связана вот эта черная страшная штука, именуемая консоль, и графическая подсистема, в которую мы в обычных случаях попадаем? Графическая система - обычная программа, и все эти виджеты, рабочий стол, панель - тоже такая программа, и, в принципе, мы можем, вообще говоря, не запускать никакой вот этой вот графической подсистемы изначально, регистрироваться в консоли как пользователь, получать всё ту же командную строку и из командной строки уже запускать графическую подсистему. Вот так, например. Узнаете брата Колю ? Вот она. Только у нас тут не настроено ничего, ни бекграунд, ничего, но в принципе.. а тут, кстати, вообще не настраивается бекграунд. Бекграунд отдельная программа делает. Тем не менее… Можно отсюда выйти и запустить какой-нибудь вот. Это уже больше похоже на то, что мы видели. Из командной строки мы запустили тот самый рабочий стол, который запускался из графического интерфейса. Короче говоря, возникает подозрение первое относительно инварианта, который собственно имеет смысл изучать, изучая линукс. Вот это все (графическая оболочка) имеет смысл изучать, так как вы тут будете работать. Но если вы хотите узнать, как работает система в целом - конечно, вам не сюда.

Выходим из рабочего стола - и опа - попадаем в консоль. Выключим ее. Да, маленькая вкусняшка - что это такое? Я запустил компьютер, который находится на моем рабочем месте в другой аудитории. Вот эта программа - виртуал бокс, как и всякие ее разные виртуалочки, запускались на другом компьютере, а картинку выбрасывало сюда. Это совсем другой компьютер, этот слишком старый.

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

Прежде чем взять шире давайте проверим тот факт, что на самом деле все кнопочки - это программы, которые запускаются.  Вот есть кнопочка, которая запускает firefox. Закроем браузер и убедимся в том, что кнопочка его запускает. Она делает это не очень быстро, но запускает. Посмотрим, как устроена вот эта кнопочка. Я уже запутался, неудобно -  я так не люблю, все эти кнопочки.. вот смотрите. Что там внутри? А там название этой кнопочки, программа, которая будет запускаться, а также значок, который можно нарисовать. Давайте еще одну кнопочку добавим, назовем ее, ммм, не знаю, как-нибудь, вот. Нашли. Здесь яд есть? Есть. Окей Сделаем кнопочку. Значок без значка. И вот вам пожалуйста, создали значок, который просто запускает программу. Запустили программу яд. Автор русский, поэтому он знал, как программу назвать.. точно так же все вот эти вот штуки (кнопочки) - суть запуск каких-то программ. Все даже еще проще. Скажем, есть значок на рабочем столе, который запускает firefox. А сама штука лежит в каталоге «рабочий стол». Давайте на него посмотрим. Ничего более сверхъестественного, чем название, иконка и программа - ничего другого в этом деле нету. Тут мы вдаемся в такую штуку, которую изучать прямо сейчас смысла особо нету, тем не менее, послать вас туда чтобы посмотреть, как это вообще происходит, я бы позвал. Эта штука называется freedesktop.org, которая прописывает стандарты того, как должен выглядеть рабочий стол. Про эти проекты разговор бессмысленный, пока мы не разберемся.

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

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

Еще одна проблема, кстати, которая будет вас преследовать: проблема состоит в том, что приложений очень много и им сложно договориться, кто за что твечает. Вот на этом компьютере ненамеренно за файлы .txt по умолчанию отвечает ноутпад. Понятно, все это можно поменять, но может так случиться, что вы что-нибудь измените,  на самом деле то же самое происходит с другими операционными системами. Работа с линукс системой в силу свободности дистрибутива провоцирует такой исследовательский способ обращения с приложениями - поставил, не понравилось - удалил, поставил 10 - попробовал - забыл удалить - так 10 и стоят. 

Прежде чем перейти к этой теме окончательно:

  1. инвариант - программа.
  2. структура файловой системы, скорее всего, всегда одинаковая, и то, что мы видим вот здесь - не случайный набор каталогов. И то, что рабочий стол - рабочий стол - тоже не случайно, просто такой каталог.

Перейдем к установке программ - то, что придет к нам в голову, если у вас вдруг появится необходимость что-нибудь поставить и линукс вам понравится. И мы опять упираемся в ситуацию, когда для разных линуксов все разное. Вот я запустил какой-то менеджер пакетов - это из раздела настройки. Пакет - это еще один инвариант для подавляющего большинства дистрибутивов сегодня. Это такая единица, которую можно установить в систему или удалить. Именно из пакетов состоят хранилища. Коротко про это можно почитать устанавливая меджик и синаптикс. И тут мы внезапно замечаем, что.. Кстати сказать, вот эти 50 тысяч приложений, установленных на моем компьютере, не смотря на то, что они категоризированы - то, что их так много, обычно пользователя отпугивает. 50000? Ок, покажите мне среди них те, которые мне нужны. Поэтому обычная практика работы с пакетами - попробовать поискать что-нибудь, что вы хотите установить.  Просто покажу, как .. 2000 пакетов содержат в описании и названии слово «граф».  Найдем калькулятор. Всего 63 штуки, из них даже какой-то уже стоит. О, супер-программа, давайте попробуем. Нажмем применить. Ставим. Загрузил, поставил, все, готово. Вопрос: куда он тут прилез? Запустили. Обратите внимание, что я не очень хорошо умею разбираться в этой программе, потому что практически ей не пользуюсь, мне проще из командной строки. Но может так случиться, что тот линукс, который вы будете использовать, будет иметь эту программу, называющуюся по разному. И, конечно же, наименее шумное - использование установочных пакетов из командной строки, по моему мнению. Та же самая операция которую мы выполнили там - выполнили тут. Все эти программы - они все свободные, поэтому их установка выглядит так: скачать и установить. Приложение с установкой приносит тип файлов, который умеет открывать и ньюэнтри..кстати, пока я удаляю, в современных дистрибутивах вы можете (например в убунту) можете встретиться с концепцией не пакета, а приложения, и их там не 50000, а всего 1000. Угадайте с трех раз как это реализовывается.

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

Вопрос: А правда, что если ввести просто apt-get, то там появляется какая-то коровья суперсила? 

Ответ: да, вот она. Вот вы смеетесь, а наши сертификаторы проверяли дистрибутив на наличие недокументированных возможностей. Звонили нам и спрашивали - у вас есть возможность такая, что пакетный менеджер рисует корову?..

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

Главный вопрос человека, который запутался в убунте и хочет ее удалить: почему у меня ничего не обновляется? 

Итак, резюме

Есть как бы 3 общие тенденции для неофита, который начинает работать с линуксом:

  1. все рядом: есть куча приложений
  2. ничего до конца не понятно - то ли удалилось, то ли нет, то ли закрылось, то ли нет
  3. очень много вещей отличаются от линукса к линуксу и очень хочется изучать те вещи, которые не меняются от линукса к линуксу и похожи на структуры.

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

LecturesCMC/LinuxSoftware2017/01_FirstLook/Conspect (последним исправлял пользователь AslanAshabokov 2017-12-28 01:54:44)