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

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

Версия от 16:54, 3 февраля 2008; ESyr01 (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

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

Лектор жалуется на... он сейчас в вечерней матшколе преподаёт линукс для 10-классников, это идея совершенно пустая, так как чтобы преподавать линукс, надо сначала надо преподать всё остальное, пришло 30 человек, у всех есть компьютер, у всех есть интернет, из них процентов 90 только слышали слово Линукс. На второе занятие пришло ва 2.5 раз меньше народу. видимо, люди хотели узнать, что такое Линукс, узнали, и всё. Проблема в следующем: для того, чтобы знать про Линукс, надо знать много. Рассказывать про то, как он устроен невозможно без определённого количества опыта знаний.

Содержание

[править] Пути освоения %s

В прошлый раз мы построили правильный и неправильный путь освоения Линукса, на самом деле это путь освоения чего угодно.

Неправильно: попал дистрибутив --- надо засунуть в компьютер (есть конфетка --- надо засунуть в рот; когда игрушку в винду вставляешь, он самозапускается и самоработает) и возникает вопрос, как его установить? надо ответить на разные вопросы, его переразметить (что такое разметить? что такое раздел?) --- в результате либо выясняется, что это за раздел, либо этот вопрос становится неактуальным --- поставился --- и что теперь? а зачем он нужен?

Для того, чтобы ответить на вопрос, что такое линукс, надо знать, что это такое? Немногие доходят до этого. А ещё надо вернуться назад.

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

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

/* Байка про установку компакта 3.0 и чёрным экраном */

После этого надо отвечать на вопрос «как установить». Это вопрос дистрибутивоспецифичный.

Последний пункт --- что ещё можно делать --- приступать к изучению.

По этому пути мы и будем проводить все наши дальнейшие разговоры.

На вопрос, что такое Линукс, лектор уже ответил.

[править] Зачем изучать

Вообще, для того, чтобы изучать линукс, может быть три причины:

  • Для изучения
  • Для повышения квалификации. В Линукс вложено очень много мозгов, и там нет-нет и наткнёшься на какую-нибудь серьёзную теорию.
  • Для решения повседневных задач. Достаточно неудобно полчаса в неделю изучать в линукс, а повседневные задачи решать в других ОС.

Для того, чтобы изучать, нужно, чтобы было, что изучать. Например, для наладонных устройств и мобильных телефонов на Линукс там Линукс только ядро, а не ОС, и из свободных проектов есть только OpenMoko, полностью свободный. /* Кроме openmoko есть ещё xanadux (xda-developers.com) и family-linux --- eSyr */

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

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

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

Карьерные вопросы. Как себя внутри позиционировать? Будете ли вы востребованы после изучения? Знание наизусть всех опций оптимизаций при сборке никого не впечатлит.

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

[править] Дистрибутивы

Верчение телом Новелл в сторону Микрософта, Линспайр тоже вляпался...

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

Лектор собрал программу-конструктор Лего.

Совет на будущее: не экономьте на создании удобного окружения.

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

Если есть целевое желание устройства линукс-инженером в неопределённым местом,то есть смысл смотреть на Ред Хат и Мандриву. Если есть желание оказаться в окружении профессиональных линуксоидов, то стоит выбирать Дебиан. Там высокий порог вхождения, но оно для того нужно. Альт всё это совмещает, и, кроме того, у него большое русскоязычное сообщество.

[править] Установка

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

Как вообще происходит установка системы: для начала,надо загрузиться с чего-нибудь. Надо загрузить линукс (его установщик),и оттуда запустить установку. На этом, в принципе, дело можно прекратить, так как существуют LiveCD. Но это медленно и плохо, так как нет свопа. Тем не менее, это тоже вариант.

Если же таки ставить, то начинается установка и подготовка устройства хранения. Она интересна потому, что именно в этот момент происходят ситуации «ваш линукс убил мою виндовз». И именно здесь нужно наибольшее количество знаний.

Установка. Есть программа -установщик, она что-то устанавливает. Хорошо, если вопросов она не задаёт.

После установки происходит первоначальная настройка. Вот мы подготовили жёсткий диск, изменили размер партиции, в свободное место создали ext3-партицию, поставили туда файлы, записать загрузчик, чтобы дальше грузиться не с CD, а с УХ.

  • Вопрос: как загрузиться?
  • Вопрос относительно УХ: как размечаются/переразмечаются диски?
  • Как и что устанавливать?
  • Как и что настраивать?

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

[править] Загрузка

Когда только компьютер включается, то, естественно, он ни про какие диски и интерфейсы не знает. В BootROM написано, какие устройства могут быть, ..., и с какого из них загружаться. BootROM может немногое, он что может: определить какие внешние устройства, определить их тип (винчестер), и загрузить с него один сектор (boot block). Если у него нет первого сектора, то с него, видимо, не надо загружаться.

Boot Block --- кусок кода размером в один сектор или меньше. Он лежит на первом секторе или в ПЗУ Сетевой карты. Это уже код, который приехал с винчестером, и он уже может знать, что тут не один сектор, а много, он даже может загрузить несколько секторов и передать им управление. Он считывает Boot Prog.

Boot Prog --- программа предположительно любого размера. Откуда BootBlock знает, что она там? Это было указано при записи его. Функциональность:

  • Загрузить и настроить ядро и, возможно, модули ОС

Чем это хорошо: каждый делает своё дело. Boot ROM знает о загрузке первосектора и поиске железа. Boot Block знает о своём диске, а Boot Prog уже может знать про разные ОС и ФС.

проблема в чём: Boot Block имеет очень маленький размер, и для загрузки и возможности выбора ОС нужно заниматься очень экстремальным программированием. Им занимаются в freeBSD, и там на этапе BootBlock можно выбрать, с какого превичного раздела грузиться.

Загрузчик Linux на примере LILO (Linux Loader)

  • Есть первичный загрузчик, LI, который умеет загружать вторичный и всё. Есть карта размещения, и в ней написано, где разбросан вторичный
  • LO занимается в Линуксе выбором того, с чего загружать. Проблема в том, что это всё равно слишком тупая программа. То есть, это последовательность комманд, которая умеет разбирать все ФС, которые использует Linux, умеет оттуда загружать любой произвольный файл, и, возможно, не один (например, загрузили ядро, а в нём поддержки харда нет, она отдельным модулем). Этим путём пошёл grub. Ребятам из lilo помогли линуксоиды, которые сказали, что это полуторный загрузчик, который в ФС не разбирается, но умеет, например, загружать вторичные загрузчики других ОС, а в случае загрузки линукса загружает ядро и останавливается. Соответственно, ядро нужно собирать со всеми необходимыми модулями. И надо тогда сразу пересобрать ядро под данную машину. Естественно, это не есть хорошо, и было решено кроме ядра подгружать модули.


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 января: информация, конспект, быстрые вопросы


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

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