А что такое Linux?
Linux -- это ядро ОС. Можно было бы учиться собирать ядро. Но если человеку нужно початиться, то умение собирать ядро не очень поможет. Чтобы отличать ядро ОС, от ОС и дистрибутива ОС, когда говорится о дистрибутиве будет использоваться обозначение GNU Linux(линукс).
Существует ли ОС GNU Linux? Нет. Даже дистрибутива с таким названием нет. Дистрибутивов чёртова прорва. На сайте distrowatch несколько десятков только живых (обновляемых) дистрибутивов. Все они по разному называются. Все они основаны на ядре Linux. Все они, за исключением резко специфичных(влезающих на одну дискетку), в качестве базовых утилит используют GNU coreutils, binutils и т.д. В названии курса проделали обобщение. Существует много ОС, мы будем рассматривать те, что являются линуксами. Но между разными линуксами существует вплоть до соперничества. 5-10 лет назад люди могли подраться из-за того, какой дистрибутив более правильный.
Это довольно забавный социальный эффект, связанный с тем, что у любого сообщества должен быть большой внешний враг( опасность борьбы с внешними врагами как формирующая сила), так и равновеликий враг. Эппл-майкрософт в качестве больших врагов, соседний дистрибутив как внутренний враг. На внешнего врага можно списать большие неудачи, на внутренних списываются ежедневные неурядицы.
Уточнять, что такое "дистрибутив ОС Linux" мы будем весь оставшийся семестр.
Будет еще отдельная лекция, как поставить Linux на свой компьютер. Это ненулевой набор знаний. Когда установка совсем не самая простая, надо звать гуру. Но чтобы сделать двухсистемную установку, необходимые знания можно рассказать.
Первое, что видит человек, когда включает компьютер, это процедура загрузки системы. Если человек не очень хорошо знает, что такое загрузка и что такое система, то он видит сущую тарабарщину. Последние модные веяния велят прикрывать сообщения о загрузке системы картинкой. Говорят, пользователи пугаются. Некоторые правда сердятся, не видя их, но таких меньше.
Предположим, ОС загружена и функционирует в штатном режиме. Первое что встречает пользователя -- это интерфейс. На сегодня изучение интерфейса -- наиболее популярный способ познать ОС. Виноват в этом, как обычно, внешний враг -- Майкрософт и Эппл. Но это не совсем так, виновата компьютеризация жизни. Это началось с тех пор, как с компьютером стали люди получать удовольствие способами, не имеющими отношения к красноглазому хакерству. Попытка познакомиться с линуксом изучением интерфейса останавливает добрую половину желающих познакомиться. Когда вы начинаете работать с Linux машиной, вы видите desktop environment (DE) -- окружение рабочего стола. Оно состоит из
- графической подсистемы(того, что умеет рисовать) -- xorg
- окновод (window manager). Это инструмент, позволяющий простейшую функциональность графической подсистемы сильно расширить. Нарисовать рамочки, декораторы, кнопочки, двигать, изменять размер. Прибавляются свистелки и.. и.. и свистелки. Инструментарий организации интерфейса.
- утилиты типа xkill
- дисциплина использования DE. Немаловажная составляющая, определяет, как именно вы будете пользоваться.
Графическая система, по факту, одна. Всего остального -- десятки, если не сотни. Способы организации и работы разные. Попытка это изучать трагична, потому что иногда обновление версии приводит к абсолютно полному изменению внешнего вида и дисциплины работы. На зубок выучив структуру графического окружения KDE3, вы, поставив KDE4, получаете всё это совершенно новое.
Принципы работы ОС соблюдают некоторую статичность, то что касается рабочих столов, в них такой статичности нету. Тот же Эппл не боится применять новые интерфейсные решения, и им это сходит с рук, и, соответственно, поскольку Эппл считается наиболее продвинутым в плане юзабилити, многие пытаются под него косить и тоже не боятся революций.
Короче говоря, пытаться изучать интерфейс можно, это увлекательное занятие, но это не подвинет нас к линуксам, а если и подвинет, то странным боком.
Какие существуют инварианты? Не совсем правильный термин, но остановимся на нём. Что остаётся неизменным при работе с линуксом? Вы окончательно запутались в этих окошках, и хотите что-то сделать. Вы звоните или как-то связываетесь с гуру. Гуру спрашивает:
- Что у вас? - Gnome 3. - Ой яяя, -- говорит гуру, -- Запусти терминал.
Первый инвариант с которым сталкиваются -- консоль. Одна из причин неудач перволинуксоидов. Поизучали цвета кнопочек, потом открылась консоль, и им стало плохо.
Другой инвариант -- понятие о процессах. Это довольно важное знание, которое приходится эксплицировать даже на начальных курсах, при обучении учительниц зоологии работе на компьютере с линуксом. Если вы закрыли окно -- это не значит, что убили процесс. Если окна нет, не значит, что нет процесса (те же кейлоггеры).
Итого, улов не богат.
ДЗ. А существует ли какие-то инврианты в DE? На низком уровне -- кнопочки, менюшки, чекбоксы, но это инварианты не DE, а библиотек графических. Приёмы использования. Кнопка закрытия окна.
Что еще нам может попасться на глаза при использовании линукс? Программное наполнение. Вы установили дистрибутив линукс и каким-то способом обнаружили, что вам доступно некоторое количество программ. Дистрибутив это достаточно нашпигованная полезными программами ОС. Там будут браузер, службы мгновенных сообщений, почтовый клиент, клиент для файлопомойки, набор офисных программ, какие-то игрушки, в общем, много чего там будет. Можно попытаться составить себе представление о линукс изучая, какие программы в него включены. Это гораздо более плодотворный путь[нежели чем изучение графического интерфейса], но у него есть некоторые особенности. С одной стороны -- предустановленных программ очень много. Когда вы ставите виндовс, программ вы видите с пяток. Может побольше. Но прикладных программ мало. В любом дистрибутиве линукс из коробки довольно много предустановленного ПО. Его настолько много, что когда работали со школьными учителями, пришлось убирать из меню лишние программы -- учителя жаловались. Или у лектора на компьютере открываешь игры -- и скрол-скрол-скрол. Вы не подумайте, что он в них играет. Он их собирает. Но протестировать-то нужно...
Это ещё одна заявка на инвариант. Предустановленное ПО не похоже на то, чем привыкли пользоваться пользователи виндовс. Прикладуха будет примерно одинакова во всех дистрибутивах, будь там сколь угодно разные DE. Вплоть до того, что если вы используете дистрибутив с маломощным рабочим окружением, у него не будет собственного файлового менеджера, его можно будет взять из другого рабочего окружения. Сетевых браузеров тоже не так уж много.
Ещё отдельная штука:"а где там мне сказали, что в линуксе есть шикарная программа, а у меня ее нету.". Знакомый отвечает: " да доставь ее из репозитория!". Это тоже инвариант -- можно доставить программу из репозитория.
Когда вы работаете с линукс дистрибутивом, подавляющее число того, что вы ставите -- это программы свободно распространяемые или под свободной лицензией. То есть, специальный тип программ.
Пакеты и их установка -- ещё один инвариант. Когда вы устанавливаете ПО в линукс-систему, вы не запускаете инсталлятор, специфический для ПО. Вы просто говорите -- хочу то-то, то-то и то-то. Напоминает установку компонентов самого виндоуса, когда можно было выбрать ставить или не ставить аутлук экспресс, или вебсервер вин98, или набор всех языков. В линуксе это свойство всего предоставляемого по. В репозитории Debian около 20 тысяч пакетов. Факт пакетирования -- это инвариант. Способы и технические детали -- нет.
Несомненным отличительным свойством линукс является то, что все программы, которые вы можете поставить, сложены в одно (или в небольшое число) крупных хранилищ.
Под виндоус можно, конечно, реализовать идею -- инсталлятор с рутрекера. Но запросто может понадобится еще, скажем, piratebay. У этого явления -- оно называется репозиторий или хранилище много интересных технологических составляющих, поэтому про него надо говорить. Часто встречаются пользователи Ubuntu, которые понатыкали в хранилища десяток непонятных мест, и у них все встало враскоряку, и не ставится вообще ничего. Так что тема хранилищ она важная.
Итак, потыкали мы наш компьютер палочкой, и обнаружили несколько удивительных вещей. И интересуемся, а что же там есть? У нас целый диск, что на нём есть?
Следующий пункт нашего рассмотрения -- файловая система. В этом плане линукс еще более плодотворно дает повод себя поизучать, потому что ФС стандартизованная, упорядоченная и вам ничего нельзя никуда записывать. Куча разных каталогов, а вы писать туда не можете. А иногда и читать. Крестик на них, или замочек в файловом браузере. Неожиданное открытие -- упорядоченное дерево каталогов, которое вы не можете изменить, и которые нельзя изменить. Это не инвариант, это наблюдение. Некоторые пользователи говорят, что это плохо. А лектор считает, что это очень хорошо, что изменить в системе ничего нельзя без специальных средств. Сейчас уже нет таких, кто удаляет программу из системы путем удаления каталога? Впрочем, там и из под администраторов работают... В линуксе в этом смысле все выпрямлено -- обычный пользователь не может модифицировать систему напрямую, ему даются средства. Двух видов. Первый вид -- конфигураторы. Утилиты с графическим интерфейсом, меняющие работу системы. Второго рода инструмент это суперпользователь -- все права и редактирование любых файлов. Обычный совет гуру: "войди в рута, найди файл, поставь туда то-то".
ФС состоит из одинаковых каталогов в разных линуксах. Если вы пользуетесь не Ubuntu, а чем-нибудь другим, вам будет часто нужна такая специальная сущность, как "пароль рута" (password for root). С помощью этой волшебной сущности вы можете избежать невозможность изменения вашей системы. Вводите пароль рута и модифицируете что хотите, как вам заблагорассудится.
А вот файловые менеджеры, в отличие от структуры каталогов, они разные. Потому что они часть интерфейса. Полный, полный, этот, раздор.
Права доступа. То самое, что обычному пользователю не дает возможность модификации, а необычному дает. Доступ процесса к файлу -- это и есть реализация прав доступа.
В какой-то момент компьютер понадобится как-то настроить. Здесь нас ожидает много разных наблюдений. Если попытаетсь это сделать из конфигуратора, то увидите, что настройки бывают двух видов. Очень много настроек рабочего окружения и подозрительно мало настроек непосредственно системы. Например, настроек сети нет -- есть иконочка в трее, из неё можно настроить vpn и wi-fi. Через телефон может предложить подключиться. Или ещё хуже -- есть кнопочка "настроить сеть", вы её нажимаете -- а там всё другое. Вообще всё. В разных семействах дистрибутивов конфигураторы системы будут выглядеть абсолютно по разному. Кто во что горазд. Настройщики разнообразны и неполны. Что значит неполны? Если это нормальный дистрибутив, вы сможете настроить всё то же самое, что и в виндоусе. Был товарищ, пытался настроить VPN через Ethernet с WPA ключом. Если надо сделать что-то извращённое, то вы звоните гуру, а он оттуда говорит: "открываем консоль, заходим в рута... "
Настройка сводится либо к нажатию кнопок, либо к редактированию конфигурационных файлов. Возможность управлять системой редактированием конфигов имеет хорошее теоретическое обоснование. Наличие конфигурационных файлов -- инвариант.
Эти файлы текстовые, они осмысленны и поддаются чтению.
Отдельно важно стоящая тема это сообщество.
- Если вы не знаете как что-то сделать, вы обращаетесь к знакомому линуксоиду. Свойства сообщества
- Централизация информационных ресурсов. Если форум, то один. Если качественную информацию -- то в список рассылки. Если сайт(вики) посвящённый интересам сообщества, то тоже один. Сообществу выгодно, чтобы информационный ресурс содержал как можно больше информации про сообщество. Форумы, irc, jabber-конференции.
- "Линуксоид". С завидным постоянством выясняется, что линуксом, в плане склада ума, знаний, занимаются люди не то чтобы одинаковые, но среди них достаточно высокий процент коммуникабельных и готовых помочь. Это происходит по двум причинам. Во-первых, потому что это тусовка. Правда, это скорее относится к молодому поколению, когда социализация важнее профессионализации. Так что про то, как вести себя в сообществе и общаться в списке рассылки мы поговорим. Это немножко выходит за рамки минимального использования линукс, это переходит в тематику второго семестра, когда мы будем говорить о профессиональном использовании компьютера для компьютерных же вещей.