UNИX, осень 2007, 04 лекция (от 26 октября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Официальная страница: http://uneex.cs.msu.su/uneex/LecturesLinuxSoft2007/03_DontDoIt

Обширная область знаний требуется для двухсистемной установки. Знание эти не очень большие, но владеет ими далеко не всякий, и говорили про две вещи: про то, как диск делится на разделы, и как эти разделы именуются, и про то, как происходит последовательность начальной загрузки. Кроме того, не было рассказано про сеть и про понятие пользователя. Сегодня будем говорить про это, и про то, что получит пользователь в результате установки,и подведём базу про миф о том, что Линукс это безумно сложно и документации нет...

Содержание

[править] Деление жёсткого диска на разделы

Тема весьма мутная, поэтому лектор расскажет как она есть, а всякие истории про то, что будет, если не придерживаться этого, лектор опустит.

Жёсткий диск выглядит как: он выглядит как диски, покрытые магнитными поверхностями, и пакет головок, которые движутся по дискам, которые с бешеной скоростью вращается. Получается геометрия диска в терминах CHS (Цилиндр-головка-сектор). Адресуются данные в таком случае так же, и сектор --- минимальная единица чтения. Чтобы не заморачивать голову, лектор скажет, что существует прямая адресация, от единицы до бесконечности, то есть, от 1 до N. В этом случае не надо заморачиваться и чего-то умножать. Первый сектор --- первый сектор 0-го цилиндра нулевой головки (секторы нумеруются с 1, а головки и цилиндры --- с нуля). В первом секторе содержится MBR и HD Partition Table. Partition Table состояит из 4 записей. Структура: начало-конец в нотации CHS, тип раздела. Это --- первичные записи (Primary partition). Если не хватает разделов, а их иногда не хватает (это особо часто бывает в линуксе, в котором существует культура деления на разделе), то напрямую расширить не возможно. Можно сделать следующим образом: от 1 до 3 разделов будут первичные, а отдельный раздел --- Extended, это указатель на дополнительную таблицу, в которой тоже 4 записи, но то, что 4, обычно никто не использует, обычно используют 1 или 2, в первом хранится ссылка на раздел, а во втором --- ссылка на ещё один partition table.

С точки зрения линукса разделы диска нумеруются крайне причудливым образом: первичные разделы имеют номера от 1 до 4, даже пустые, а все остальные --- нумеруются по сквозному принципу, причем нумеруются только реальные записи, начиная с 5. С другой стороны, этот странный способ разбиения не дает отклониться от предложенной схемы, и это значит, что мы гарантированы от неприятностей в будущем при использовании разных нестандартных систем. Чтобы служба мёдом не казалась, лектор добавит одну вещь: количество цилиндров, головок и секторов строго ограничено, ограничено такими номерами, которые лет 10 не используют. Например, 255 головок, 1024 цилиндра, 63 сектора на дорожку. Если всё это умножим, то получим 2 гигабайта /* а не полгига */ На самом деле, столько головок не бывает, обычно их 2 или 3, и всё это враньё. И в реальности всё обстоит не так, как на самом деле. Тем не менее, этими данными пользуются разные программы для работки с дисками, и тут начинается настоящая чёрная магия. Более того. Предположим, у нас такой контроллер, который умеет читать большими блоками сразу (LBA), и для него подойдёт не всякая геометрия, а только близкая к физической, чтобы при чтении не было конца одной дорожки и начала другой. Поэтому в биосе есть выбор режима работы диска CHS, Large, LBA. Более того, стоял там виндовз 9-какой-то-там... Линукс сделал как надо... Умный биос...

[править] Последовательность загрузки

Мы не можем рассчитывать, что программа, записанная в ПЗУ, сразу загрузит ОС. Поэтому существует:

  • Загрузчик в БИОс (Boot ROM). Он пользуется результатами теста оборудования и выбирает из них те, с которых можно загрузиться, и выбирает. Из-за простоты своего устройства загрузчик не может загрузить произвольное количество сектором с диска, и грузит только первый, Boot Block, он же первичный загрузчик.
  • Первичный загрузчик (Boot Block) Это очень тупая программа, она умеет только загружать вторичный загрузчик. Так как бут блок лежит на жёстком диске, то он умеет грузить не один сектор, а много.
  • Вторичный загрузчик. (Boot Prog) Это уже достаточное количество секторов, которые хранятся в виде карты размещения (но это только в случае лило). Он уже достаточно большой, чтобы выбрать, загрузить ядро, и как-то его настроить.

Возникает вопрос конфигурирования, ядра, передачи, параметров, подгрузки драйвера hdd.

Как грузилась система в первый раз, когда ещё надо было пересобирать ядро --- грузилось generic-ядро со всевозможными драйверами и подсистемой разрешения конфликтов. Так до сих пор делает BSD и офтопик.

Потом: LO имел карту размещения ядра и виртуального диска initrd со всем необходимым. Для работы initrd нужен только драйвер для работы с диском в виртуальной памяти.

Что ещё нужно знать перед началом установки: всякую мелочь

[править] Пользователь и суперпользователь

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

Почему лектор про это говорит? Потому что ни с того, ни с сего у вас спросят «а введите имя пользователя и пароль». К этому надо быть готовым. И второе, вас попросят ввести пароль администратора, суперпользователя, и к этому надо тоже быть готовым.

Ещё одна вещь, которую надо знать, но которую лектор ни сегодня, ни в ближайшее время рассказывать не будет: настроить сеть. Автоматического конфигурирования сети не существует, существует протокол DHCP, который может сообщать компьютерам настройки, преимущественно сетевые. У нас на факультете именно так и делается.

К сожалению, лектор до сих пор считает, что неправильно автоматически раздавать адреса, и надо раздавать полотно, в котором написано открыть вкладку входящие окна исходящие..., и там ни слова не будет про линукс. Для настройки сети нужно знать:

  • IP-адрес
  • Сетевую маску. Если вам про неё не сказали, то админы тоже не очень понимают, что это такое, и обычно это 255.255.255.0
  • Адрес маршрутизатора --- куда отправлять пакеты, если они в другую сеть.
  • Адрес DNS-сервера. Он преобразует доменные имена в IP-адреса.

Сейчас не будет рассказывать, как настраивать подключение с помощью модема, pptp, pppoe... Это делается после установки. Исключение составляет стрим, когда покупается железка в виде маленького маршрутизатора, из которого лезет DHCP.

[править] Изменение размера диска

Древняя слака умела ставиться в fat-партицию.

Уменьшение размера партиции с виндой может привести к проблемам и шаманством с рекавери-диском.

[править] После установки

Допустим, установка прошла успешно, и виден рабочий стол. Это не линукс, это одно из приложений под линукс, это графическая оболочка. Те кнопки, которые вы нажимаете, это не средства управления системой. Все те сообщения, которые лезут, человечки, которые машут, графики, которые рисуются, не имеют отношения к операционной системе, это приложения под неё. В этот момент есть два пути:

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

Лектор выкинул про то, как устроен десктоп.

Сегодня ужасный список из 16 пунктов.

[править] Как достать гуру, или верный путь достижения сатори

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

  • У меня нет нужной иконки на рабочем столе.
    • Иконка это иконка, десктоп-файл, который где-то зарегистрирован и лежит. И когда ты говоришь, что тут не 2000 программ, а двадцать, которые лежат в меню, ты не учитываешь команды.
  • Что такое пункт меню и как запустить команду?
    • Пункт меню --- десктоп-файл, в котором написано, как запускать программу, к нему приделана иконка.
  • Кто зарегистрировал десктоп-файл?
    • Они регистрируются при установке пакета.
  • Как устанавливать пакет и что это такое?
    • Существует программа aptitude, synaptic, emerge, apt-get, вот там список пакетов, их можно устанавливать и удалять.
  • Что такое пакет?
    • Это список программ и файлов, которые запакованы в архив, и при распаковке они копируются и выполняется установочный сценарий по регистрации в системе. И после этого появляется иконка. Если автор не добавил этого автоматом, то иконки не будет.
  • А где эти программы? Как запустить программы, если её нет в меню?
    • Запускаешь из командной строки
  • А что такое командная строка и где она?
    • Вот запускаешь одно из приложений, терминал, и вот она командная строка.
  • Запустили терминал, там какие-то буковки. Что это за буковки?
    • Запустился шелл, он выполняет вводимые команды
  • Что такое шелл? Как мне посмотреть список всех команд?
    • Шелл это такая штука, вы вводите текстовые команды, а шелл их интерпретирует и выполняет. Команды бывают двух сортов: команды языка программирования Shell и имена программ
  • Что такое плейнтекст?
    • Простой, неразмеченный текст
  • То, что я пишу в ворде, это плейнтекст?
    • Плейнтекст это то, что вводишь в командной строке, до свидания. Что такое программы --- вот они лежат в специальном стандартном каталоге, их там несколько тысяч штук.
  • А что такое специальный каталог? Как мне увидеть список программ?
    • Ну, вот, /usr/bin/, увидеть их командой ls
  • Как пользоваться ls?
    • RTFM!
  • Что такое RTFM?
    • ... >_<

Человек не дошёл до конца, а всё потому, что гуру смотрит с одной стороны, а человек смотрит со своей.

[править] На самом деле

На самом деле, есть всего четыре вопроса:

  • Надо представлять, что такое шелл и командная строка --- это такое место, куда вводишь команды руками, это либо операторы самого шелла, либо являются названиями программ, и по называнию команда запускается.
  • Где найти терминал? Это такое место, где запускается шелл..
  • Что такое пакет
  • Иметь смутное представление о том, что все каталоги стандартные.

Считается, что этих сведений достаточно для начала работы с линуксом после общения с виндовсом.

Последний пункт связан с ПО. Нужно понимать, что пакет можно ставить и удалять.

Первые два пункта относятся к командной системе.

После этого можно спокойно тыкать в пункты меню, можно узнать, что тут уже есть куча всего, даже редактор векторной графики.

Даже если пакет установлен, но его нет в меню, то его может показать список пакетов. Тот же синаптик это всё показывает, в том числе и описание пакетов, то есть, установленного ПО.

Лектор перевернул всё с головы на ноги, то есть, разговор с гуру начался с конца. А нужно сначала сформулировать задачу: хочу понять, как пользоваться линукс.

Всё это --- вопросы, открытые для изучения.

Какие открытые вопросы должны вас волновать? Что такое RTFM, куда вас послали. Это Read This Fu..nny Manual. Это чисто линуксовая штука, когда пользователь может решить свою проблему чтением документации, то именно так он и должен сделать. Это хорошо, потому что в следующий раз он гарантированно может решить, это экономит время админа. На самом деле, это значит, что это простая проблема. Вопрос в том, где и чего читать.

Может лектор устроен так, но в офтопике он не мог ничего найти, так как там интуитивно понятный интерфейс, а документация описывает пункты интуитивно понятного интерфейса. В линуксе всё не так, и там вся необходимая информация находится в информационном массиве вокруг него.

Сейчас линукс достиг такого уровня, что им можно пользоваться без чтения документации и убунту это подтверждает, но потом без ртфм будет трудно и сложно.

Далее: поизучаем ос, точнее приложения, рабочий стол.


UNИX, осень 2007


01 02 03 04 05 06 07 08 09 10 11


Календарь

Октябрь
05 12 19 26
Ноябрь
02 09 16 23 30
Декабрь
07 14

Экзамены
21 декабря: информация, конспект
11 января: информация, конспект, быстрые вопросы


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы