Последовательную схему загрузки ос linux. Процесс загрузки Linux. Завершение процесса загрузки

Linux - сложная операционная система, и процедура ее включения/выключения не сводится к простому нажатию кнопки питания. Следовательно, чтобы система работала корректно, выполняйте операции запуска и останова по всем правилам.

Хотя процесс начальной загрузки системы всегда был достаточно сложным, все же он был несколько проще в те дни, когда изготовители определяли буквально все аспек­ты аппаратного и программного обеспечения. Теперь, когда Linux управляет аппарат­ным обеспечением персональных компьютеров (ПК), процедура загрузки должна вы­полняться по правилам ПК. При этом приходится иметь дело с множеством возможных конфигураций.

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

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

Когда включается питание, запускается на выполнение загрузочный код, хранящий­ся в ПЗУ. Он должен запустить ядро. Ядро опрашивает состояние аппаратных устройств, а затем запускает демон init , идентификатор которого всегда равен 1.

Прежде чем на экране появится регистрационное приглашение, должен произой­ти целый ряд событий. Файловые системы должны быть проверены и смонтированы, а системные демоны - запущены. Соответствующие процедуры реализуются с помо­щью сценариев интерпретатора команд, которые последовательно запускаются демоном init. Эти сценарии часто называют rc-файлами, поскольку они имеют префикс “ rc ”. Он расшифровывается как “run command” (команда запуска) и является пережитком, оставшимся в наследство от операционной системы CTSS, существовавшей примерно в 1965 году. Конкретная структура сценариев и способ их выполнения зависят от системы.

Автоматическая и ручная загрузка

Linux-системы могут загружаться автоматически либо вручную. В первом случае система запускается самостоятельно, без какого-либо вмешательства извне. Во втором случае также все происходит автоматически до определенного момента, а перед вы­полнением основных инициализирующих сценариев управление передается оператору (человеку, сидящему за терминалом). В этот момент система входит в так называемый “однопользовательский режим”. Большинство системных процессов еще не начало вы­полняться, и вход других пользователей в систему невозможен.

В повседневной работе почти всегда применяется автоматическая загрузка. Типичная процедура загрузки на современном компьютере выглядит так: пользователь включа­ет питание и ждет (ждет, ждет, ждет...), пока система не перейдет в диалоговый режим. Системный администратор, однако, обязан не только понимать, как проходит автома­тическая загрузка, но и знать, как загрузить систему вручную. К последнему средству приходится прибегать при возникновении проблем, делающих невозможной автомати­ческую загрузку. Это может быть вызвано, например, повреждением файловой системы или ошибками в конфигурации сетевой платы.

Этапы загрузки

Типичная процедура начальной загрузки системы Linux состоит из шести этапов:

  • обнаружение и конфигурирование устройств;
  • создание процессов ядра;
  • действия оператора (только при ручной загрузке)
  • выполнение сценариев запуска;
  • работа в многопользовательском режиме.
  • Почти все этапы не требуют контроля со стороны администратора. Можно управлять загрузкой системы, редактируя сценарии запуска.

    Инициализация ядра

    Ядро Linux представляет собой программу, и первым этапом начальной загрузки является запись этой программы в память для последующего выполнения. Файл ядра обычно называется /vmlinuz или /boot/vmlinuz .

    В Linux загрузка ядра осуществляется в два этапа. Сначала в память компьютера с диска считывается (с помощью кода, записанного в ПЗУ) небольшая программа началь­ной загрузки, которая затем выполняет собственно загрузку ядра.

    Ядро выполняет тесты, позволяющие определить, сколько памяти имеется в распо­ряжении системы. Часть внутренних структур ядра имеет фиксированный размер, по­этому ядро резервирует определенный объем физической памяти для самого себя. Эта память недоступна пользовательским процессам. Ядро выдает на консоль сообщение об общем объеме физической памяти и объеме памяти, доступной пользователю.

    Конфигурирование аппаратных средств

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

    Информация об устройствах, задаваемая при конфигурировании ядра, зачастую ока­зывается неполной. В подобной ситуации ядро пытается получить необходимые сведе­ния, опрашивая устройства, подключенные к системной шине, и собирая нужную ин­формацию у соответствующих драйверов. Драйверы отсутствующих или не отвечающих на контрольный сигнал устройств отключаются. Если позднее устройство будет подклю­чено к системе, можно будет динамически загрузить или активизировать его драйвер.

    Процессы ядра

    После завершения этапа базовой инициализации ядро создает в области памяти, вы­деленной для пользовательских программ, несколько “самовыполняющихся” процессов. Это происходит “в обход” стандартного системного вызова fork .

    Количество и характер таких процессов зависят от операционной системы. В Linux это демон init (всегда имеет идентификатор 1; процесс с идентификатором 0 отсутст­вует) и различные обработчики памяти и сигналов ядра, в том числе те, которые пред­ставлены в табл. 1. Все эти процессы имеют идентификаторы с низкими номерами, а их имена в списках ps заключены в квадратные скобки (например, ). Иногда имена процессов могут содержать в конце символ косой черты и цифру, как, например, . Число указывает процессор, на котором выполняется данный процесс. Эта информация может быть полезна при настройке многопроцессорной системы.

    Таблица 1. Некоторые наиболее часто встречающиеся процессы ядра Linux

    Из этих процессов только init является полноценным пользовательским процессом; остальные фактически представляют собой части ядра, которые были сделаны процес­сами из концептуальных соображений.

    После создания перечисленных процессов ядро больше не принимает участия в про­цедуре начальной загрузки системы. К этому моменту, однако, еще не создан ни один из процессов, управляющих базовыми операциями (например, регистрацией пользователей в системе), и большинство демонов не запущено. Обо всем этом позаботится (в некото­рых случаях косвенно) демон init .

    Действия оператора (только при ручной загрузке)

    Если систему нужно запустить в однопользовательском режиме, оператор уста­навливает в командной строке специальный флаг (слово “ single ”), а ядро передает эту информацию демону init . Последний, в свою очередь, передает управление команде sulogin - специальной версии команды login , - которая выдает приглашение ввести пароль пользователя root . Если он введен правильно, запускается интерпретатор команд с правами суперпользователя. Можно не задавать пароль, а просто нажать < Ctrl+D >, после чего загрузка продолжится в многопользовательском режиме.

    В однопользовательском режиме команды выполняются почти так же, как и в пол­ностью загруженной системе. Однако в SUSE, Debian и Ubuntu обычно монтируется только корневой раздел. Чтобы можно было использовать программы, находящиеся вне каталогов /bin , /sbin или /etc , необходимо вручную смонтировать остальные файло­вые системы.

    Во многих однопользовательских средах корневой каталог файловой системы мон­тируется в режиме только для чтения. Если /tmp является частью корневой файловой системы, выполнение множества команд, которые используют временные файлы (таких как vi), будет невозможно. Чтобы выйти из положения, придется начать однопользова­тельский сеанс с повторного монтирования каталога / в режиме чтения/записи. Нужное действие выполняет команда:

    # mount -o rw,remount /

    В системах Red Hat и Fedora загрузка в однопользовательском режиме выпол­няется несколько более активно, нежели обычно. До того момента, когда на экран будет выведено приглашение интерпретатора команд, эти дистрибутивы попытаются смонтировать все локальные файловые системы. Хотя на первый взгляд такой подход кажется удобным, но при использовании недостаточно продуманной файловой системы он может порождать проблемы.

    Команда fsck , которая проверяет и восстанавливает поврежденные файловые сис­темы, обычно выполняется в ходе автоматической загрузки. Если система запускается в однопользовательском режиме, команду fsck придется вводить вручную.

    Когда интерпретатор команд однопользовательского режима завершит свою работу, система продолжит загрузку в многопользовательском режиме.

    Выполнение сценариев запуска системы

    В тот момент, когда система сможет выполнять сценарии запуска, ее уже можно на­звать Linux. Это еще не полностью загруженная система, но “загадочных” этапов про­цесса загрузки больше не осталось. Файлы сценариев представляют собой обычные ко­мандные файлы, которые выбираются и запускаются демоном init по сложному, но, в общем-то, понятному алгоритму.

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

    Работа в многопользовательском режиме

    После выполнения сценариев запуска система полностью готова к работе, за одним исключением: никто не может в нее войти. Для того чтобы с конкретного терминала (включая системную консоль) можно было зарегистрироваться в системе, должен быть запущен процесс getty , ожидающий поступления запросов от этого терминала. Демон init порождает все необходимые процессы getty , заканчивая этап начальной загрузки. Если система сконфигурирована для работы в графическом режиме, демон init также порождает соответствующие регистрационные процессы, такие как xdm или gdm.

    Не забывайте о том, что демон init продолжает играть важную роль даже по завер­шении начальной загрузки. У него есть один однопользовательский и несколько много­пользовательских “уровней выполнения”, определяющих, какие ресурсы системы будут доступны пользователю.

    Загрузка Linux на персональном компьютере

    До этого момента описывалась общая схема начальной загрузки. Теперь некоторые наиболее важные (и сложные) ее этапы необходимо рассмотреть подробнее, проанали­зировав дополнительные особенности функционирования персональных компьютеров.

    Загрузка системы на персональном компьютере - это многоступенчатый процесс. Когда включается компьютер, начинает выполняться код, записанный в ПЗУ. Точное его местонахождение и структура зависят от типа оборудования. В компьютерах, соз­данных специально для UNIX или другой коммерческой операционной системы, код “прошивается” разработчиком, который заранее задает алгоритм подключения уст­ройств, базовой инициализации сети и распознавания локальных файловых систем. Это очень удобно для системного администратора. Ему достаточно ввести лишь имя нового файла ядра, а код ПЗУ автоматически обнаружит и прочитает этот файл.

    На персональных компьютерах код начальной загрузки представлен в виде базовой подсистемы ввода-вывода - BIOS (Basic Input/Output System), которая чрезвычайно уп­рощена в сравнении с фирменным кодом UNIX-станций. В действительности в BIOS есть несколько уровней кода: для самого компьютера, для видеоплаты, для SCSI-адаптера, если таковой имеется, и, иногда, для других периферийных устройств вроде сетевых плат.

    Встроенному коду BIOS известно об устройствах, расположенных на материнской плате, в частности контроллере IDE (и жестких дисках), плате сетевого адаптера, кон­троллере клавиатуры, последовательных и параллельных портах. SCSI-адаптеры знают только об устройствах, подключенных непосредственно к ним. К счастью, за последние несколько лет сложные взаимодействия, необходимые для обеспечения совместной ра­боты этих устройств, были стандартизованы и теперь почти не требуют вмешательства оператора.

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

    В режиме конфигурирования можно выбрать, с какого устройства требуется загру­жаться, хотя выбор не так уж велик. Обычно последовательность загрузки задается в виде правила, например: “сначала - дисковод для гибких дисков, затем - дисковод CD-ROM, в последнюю очередь - жесткий диск”. К сожалению, в некоторых BIOS за­грузка ограничена возможностью загрузки с первого IDE-дисковода CD-ROM или пер­вого жесткого диска IDE. Могут также распознаваться SCSI-адаптеры.

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

    Стандартная программа, находящаяся в ГЗЗ, дает компьютеру указание извлечь за­грузчик ОС из первого раздела диска. В Linux поддерживаются более сложные програм­мы, которые могут работать с несколькими операционными системами и ядрами.

    Найдя раздел, с которого будет выполняться загрузка системы, программа ГЗЗ пыта­ется запустить загрузочную программу, связанную с этим разделом. В случае успеха этой программе передаются полномочия по дальнейшей загрузке ядра.

    Linux как и любая другая операционная система загружается в несколько основных этапов: -> Досистемная загрузка -> Первичный загрузчик Linux -> Вторичный загрузчик -> Загрузка пользовательского пространства (INIT ).

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

    Рассмотрим досистемную загрузку

    Задача досистемной загрузки — выбрать как загружать ядро операционной системы .

    То, как именно загрузить ядро пользователь может выбрать самостоятельно. Для того, чтобы выбрать нужна специальная система управления. Такую систему управления принято называть загрузчик . В Linux наиболее популярными и часто используемыми загрузчиками являются загрузчик LILO (Linux Loader) и загрузчик GRUB (Grand Unified Bootloader) . Они предоставляют пользователю возможность выбрать заранее настроенный тип загрузки. Оба эти загрузчика имеют текстовый (консольный) и графический варианты интерфейса. Основная и ключевая задача таких загрузчиков: загрузить в память компьютера ядро и всё необходимое для успешного старта системы.

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

    Таким нехитрым образом мы разобрались с «загрузчик ядра ОС Linux «!

    Linux: Полное руководство Колисниченко Денис Николаевич

    1.8. Первый запуск Linux

    1.8. Первый запуск Linux

    Если вы выбрали для входа в систему графический режим (или инсталлятор выбрал его сам, ни о чем не спросив), то вы увидите графический экран с полем ввода имени и пароля. Зарегистрируйтесь в системе (лучше под тем именем, которое завели для обычного пользователя; используйте root, только если обычных учетных записей у вас еще нет), и вы увидите рабочий стол той оконной среды, которую установили в качестве среды по умолчанию, внешне довольно похожий на рабочий стол Windows.

    Как же так, вы ведь слышали, что настоящие линуксоиды работают в среде командной строки? Сейчас найдем и командную строку.

    Вы знаете, что консолью, или терминалом (для персонального компьютера эти понятия - синонимы) называются устройства ввода-вывода, предназначенные для общения системы с пользователем, то есть клавиатура и монитор. В UNIX-подобных системах существует понятие виртуальных консолей - консолей, по очереди занимающих физически одни и те же монитор и клавиатуру. На каждой из них может быть открыт отдельный сеанс работы пользователя, запущены свои приложения, в общем, они представляют собой почти независимые друг от друга вычислительные системы.

    В большинстве дистрибутивов Linux по умолчанию обслуживается шесть текстовых виртуальных консолей, седьмая - графическая. На ней вы и находитесь. Чтобы переключиться с нее на первую текстовую консоль, нажмите комбинацию клавиш Ctrl+Alt+F1 (на шестую - Ctrl+Alt+F6).

    В ответ на приглашение программы login: введите root и нажмите <Ввод>. Потом введите пароль, и ваш сеанс работы в текстовой консоли начат.

    Информацию о сетевом имени машины, версии ОС, архитектуре можно получить по команде uname -а.

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

    #useradd < имя >

    Если вам ответили «command not found», то, значит, в вашей системе эта команда называется adduser .

    #passwd < имя >

    Теперь можно регистрироваться под новым именем на другой виртуальной консоли. Чтобы с текстовой консоли переключиться на другую текстовую, нажмите комбинацию Alt+Fn, где n - число от 1 до 6. Вы снова увидите приглашение login: .

    Зарегистрировались? Обратите внимание на строку приглашения. На той консоли, где вы зарегистрировались как root, она оканчивается символом #, а для любого обычного пользователя - символом $. Кроме этого символа, приглашение обычно состоит из имени пользователя, имени системы и текущего каталога, причем вид его можно изменить, как только вы узнаете, как это делать. В дальнейших примерах строки, начинающиеся с # или будут обозначать вводимую команду, а строки без такого символа - ее сообщения.

    Теперь убедитесь сами, что Linux - действительно многозадачная и многопользовательская система, то есть, в отличие от Windows, несколько пользователей могут работать одновременно. Спросите, кто сейчас работает в системе, введя команду who .

    Вы увидите что-то вроде:

    root tty1 <дата и время начала сеанса root>

    ivan tty2 <дата и время начала сеанса ivan>

    root:0 <дата и время начала сеанса root>

    <на графической консоли>

    ttyN - это номер виртуальной текстовой консоли.

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

    Листать экран можно комбинациями клавиш Shift+PgUp и Shift+PgDn.

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

    Если вы хотите, не сходя с этой консоли, поработать под именем другого пользователя, введите su <имя> . По умолчанию в качестве имени подставляется root. Обычно это нужно для того, чтобы быстро выполнить какое-то администраторское действие. Возвращайтесь к работе под своим именем по команде exit.

    Чтобы переключиться обратно на графическую консоль, нажмите Alt+F7.

    В графическом режиме тоже можно не только щелкать мышью по значкам, но и вводить команды. Для этого запустите виртуальный терминал (рис. 1.13) - графическое приложение, в окне которого можно работать в режиме командной строки.

    Рис. 1.13 . Окно виртуального терминала

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

    Чтобы завершить сеанс работы на виртуальном терминале или на виртуальной консоли, введите команду exit (на виртуальной консоли можно также logout) или нажмите комбинацию клавиш Ctrl+D.

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

    # shutdown -h 19:00 [Конец рабочего дня]

    При этом за несколько минут до указанного времени всем, кто работает в системе, будет разослано предупреждающее сообщение «Конец рабочего дня», после чего система будет корректно остановлена. Краткой формой этой команды служит halt , останавливающая систему сейчас же и без предупреждения. Перезагрузиться можно командой reboot.

    Из книги Мир общения: ICQ автора Леонтьев Виталий Петрович

    Первый запуск программы. Интерфейс ICQ После установки ICQ и перезагрузки компьютера в правом углу вашей панели задач появится скромный цветок с бледными лепестками – ICQ Netdetect Agent. Значок ICQВ момент вашего входа в Интернет лепестки цветка должны окраситься в ярко-зеленый

    Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

    1.1.3.1. Запуск программы установки Linux Первым делом нужно настроить компьютер на загрузку с компакт диска. Обычно при запуске компьютера вы видите на экране сообщение:Press DEL to enter SETUP или Press F2 to enter SETUPВ программе SETUP нужно настроить компьютер на загрузку с CD/DVD (рис. 1.2), Если вы

    Из книги Linux для пользователя автора Костромин Виктор Алексеевич

    Глава 3. Первый запуск ОС Linux 3.1. Загрузка ОС Linux Итак, инсталляция Linux завершена, и вы перезапускаете компьютер. Если Linux - единственная операционная система, установленная на вашем компьютере (а, значит, загрузчик LILO размещается в главной загрузочной записи - MBR), то после

    Из книги 200 лучших программ для Linux автора Яремчук Сергей Акимович

    П5. К главе 3 "Первый запуск ОС Linux" 1. На странице Алексея Махоткина (http://alexm.here.ru/manpages-ru/index.html) можно найти переводы man-страниц на русский язык. 2. Guido Gonzato, "Из DOS/Windows в Linux HOWTO", перевод Alex Ott, v1.3.2, 22 Февраля 1999 (http://linux.webclub.ru/howtorus/doswinhow/dos-win-to-linux-howto.html). Это очень полезный материал

    Из книги Видеосамоучитель монтажа домашнего видео в Adobe Premiere Pro CS3 автора Днепров Александр Г

    Запуск игр Windows под Linux Для Linux существует мало игр. Неказуальных игр, позволяющих убить время, в Linux предостаточно, при установке дистрибутива пользователь найдет их несколько десятков. Есть и проекты OpenSource, предлагающие довольно серьезные игры в самых разообразных

    Из книги Создание шаблонов Joomla автора Автор неизвестен

    Первый запуск программы Premiere Pro Установка программы Premiere Pro на компьютер производится с помощью пошагового мастера. Нужно просто следовать указаниям на экране.Запустим программу Premiere Pro и создадим новый проект, чтобы далее познакомиться с интерфейсом программы.1. Нажмите

    Из книги Цифровой журнал «Компьютерра» № 71 автора Журнал «Компьютерра»

    Первый запуск После того, как мы создали структуру директории [ПутьКJoomla!]/templates/, наш шаблон появится в соответствующей секции административной части Joomla! (Extensions | Template). Теперь его можно использовать как шаблон по умолчанию. Рис. 2: Структура директории и файлы шаблона

    Из книги Компьютерра PDA N113 (28.05.2011-03.06.2011) автора Журнал «Компьютерра»

    Первый взгляд на Fedora Linux 15 Евгений Крестников Опубликовано 30 мая 2011 года Это выпуск важен по нескольким причинам. Во-первых, Fedora - популярный дистрибутив, который использует множество людей во всем мире. Кроме того, создается он сообществом

    Из книги Как найти и скачать в Интернете любые файлы автора Райтман М. А.

    Первый взгляд на Fedora Linux 15 Автор: Евгений КрестниковОпубликовано 30 мая 2011 годаЭто выпуск важен по нескольким причинам. Во-первых, Fedora - популярный дистрибутив, который использует множество людей во всем мире. Кроме того, создается он сообществом независимых разработчиков

    Из книги Наглядный самоучитель работы на нетбуке автора Сенкевич Г. Е.

    Первый запуск Как и большинство современных антивирусных программ, AVG Anti-Virus Free является не единой программой, а пакетом, состоящим из нескольких модулей, отвечающих за различные области защиты компьютера:? Anti-Virus - антивирусный сканер, отвечает за сканирование файлов

    Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

    Первый запуск Почты Windows Live Чтобы запустить установленную почтовую программу, нажмите кнопку Пуск и в открывшемся меню выберите пункт Почта Windows Live (1).Если этот значок в меню отсутствует, щелкните на пункте Все программы. В списке программ щелкните на пункте Windows Live -

    Из книги Photoshop CS4 автора Жвалевский Андрей Валентинович

    Первый запуск Windows Media Для запуска проигрывателя Windows Media нажмите кнопку на Панели задач или выберите в меню кнопки Пуск пункт Все программы|Проигрыватель Windows Media. При первом запуске проигрывателя предлагается выполнить некоторые его настройки. Установите переключатель

    Из книги Вопросы истории: UNIX, Linux, BSD и другие автора Федорчук Алексей Викторович

    Запуск Firebird на Linux/UNIX Суперсервер Каталог инсталляции по умолчанию /opt/firebird. В каталоге /bin находится в двоичном формате сервер Firebird fbserver (ibserver для Firebird 1.0.x), который запускается как процесс-демон в Linux/UNIX. Он запускается автоматически после инсталляции посредством RPM или

    Из книги автора

    Установка Photoshop CS4 и первый запуск Системные требования для Photoshop CS4 таковы: процессор с тактовой частотой не ниже 1,8 ГГц; операционная система Windows XP с Service Pack 2 (желательно Service Pack 3) или Windows Vista; не менее 512 Мбайт оперативной памяти (рекомендуется 1 Гбайт); 16-разрядная

    Из книги автора

    Slackware: первый шаг к Linux’у для всех Итак, дистрибутив SLS умер. Но душа его жила. Ещё в период его активного развития Патрик Фолькердинг принял SLS за основу своей Linux-системы, названной Slackware, первая версия которой была обнародована 17 июля 1993 года и с тех пор успешно развивается

    Из книги автора

    IPLabs Linux Team: начало русского Linux’а Следующая веха на пути русского Linux’а – 1998 год, когда фирма IPLabs (точнее, ее подразделение – IPLabs Linux Team) совместно с Институтом логики (на самом деле это были одни и те же люди – Алексей Новодворский, Алексей Смирнов и Юрий Девяткин с

    вторичного загрузчика схему с картой размещения . Это делает работу с LILO занятием, требующем повышенной аккуратности, так как изменение процедуры загрузки не атомарно : сначала пользователь изменяет ядро или его модули, потом - редактирует файл /etc/ lilo .conf , в котором содержатся сведения обо всех вариантах загрузки компьютера, а затем - запускает команду lilo , которая собирает таблицы размещения для всех указанных ядер и вторичного загрузчика и записывает первичный и вторичный загрузчик вместе с картами в указанное место диска. Первичный загрузчик LILO (он называется LI ) можно записывать и в MBR , и в начало раздела Linux.

    Простейший файл lilo .conf может выглядеть так:

    Boot=/dev/hda map=/boot/map image=/boot/vmlinuz-up root=/dev/hda1 Пример 10.1. Простейшая настройка LILO: пример файла lilo.conf

    Такая настройка LILO определяет только один вариант загрузки: первичный загрузчик записывается в начало первого жесткого диска (строчка boot=/dev/ hda ), карту размещения утилита lilo записывает в файл /boot/map , ядро добывается из файла /boot/vmlinuz-up , а запись root=/dev/hda1 указывает ядру , что корневая файловая система находится на первом разделе первого диска.

    Одна из машин, за которыми случалось работать Мефодию, использовалась иногда для запуска единственной программы, написанной для MS-DOS. Исходные тексты этой программы давно потерялись, автор - тоже, поэтому на машине пришлось устанавливать и MS-DOS и Linux. В результате lilo .conf оказался таким:

    # cat /etc/lilo.conf boot=/dev/hda map=/boot/map default=linux-up prompt timeout=50 image=/boot/vmlinuz-up label=linux-up root=/dev/hda5 initrd=/boot/initrd-up.img read-only image=/boot/vmlinuz-up label=failsafe root=/dev/hda5 initrd=/boot/initrd-up.img vga=normal append=" failsafe noapic nolapic acpi=off" read-only other=/dev/hda1 label=dos other=/dev/fd0 label=floppy unsafe Пример 10.2. Настройка LILO на двухсистемной машине

    Здесь Linux была установлена на пятый раздел диска (о нумерации разделов в IBM-совместимых компьютерах будет рассказано в лекции 11), а на первом находится MS-DOS. Кроме загрузки MS-DOS предусмотрено два варианта загрузки Linux и еще один - любой операционной системы с дискеты. Каждый вариант загрузки помечен строкой label=вариант . При старте LILO выводит простейшее 3Если установлен графический вариант интерфейса, то окно может быть сколь угодно изукрашенное. окошко, в котором перечислены все метки (в данном случае - " linux-up ", " failsafe ", " dos " и " floppy "). Пользователь с помощью "стрелочек" выбирает нужный ему вариант и нажимает Enter . При необходимости пользователь может вручную дописать несколько параметров , они передадутся ядру системы. Если пользователь ничего не трогает, то по истечении тайм-аута выбирается метка, указанная в поле default .

    Еще несколько пояснений. Метки linux-up и failsafe в примере используют одно и то же ядро (vmlinuz-up ), но во втором случае перенастраивается режим графической карты и добавляются параметры, отключающие поддержку необязательных для загрузки аппаратных расширений (многопроцессорность, автоматическое управление электропитанием и т.п.). Строчку, стоящую после append= , пользователь мог бы ввести и самостоятельно, это и есть параметры ядра . Поле initrd= указывает, в каком файле находится стартовый виртуальный диск (ему посвящен раздел " Стартовый виртуальный диск и модули" этой лекции), а внушающая некоторые опасения надпись " unsafe " (для метки floppy ) означает всего лишь, что дискета - съемное устройство, поэтому бессмысленно во время запуска lilo проверять правильность ее загрузочного сектора и составлять карту .

    Наконец, записи вида other=устройство говорят о том, что LILO неизвестен тип операционной системы , находящейся на этом устройстве, а значит, загрузить ядро невозможно. Зато ожидается, что в первом секторе устройства будет обнаружен еще один первичный загрузчик , LILO загрузит его и передаст управление по цепочке. Так и загружается MS-DOS на этой машине: первичный загрузчик берется (по метке dos ) из начала первого раздела первого диска.

    GRUB

    Подсистема загрузки GRUB устроена более сложно. Она также имеет первичный загрузчик , который записывается в первый сектор диска или раздела, и вторичный загрузчик , располагающийся в файловой системе . Однако карта размещения в GRUB обычно используется только для так называемого "полуторного" загрузчика ("stage 1.5") - по сути дела, драйвера одной определенной файловой системы . Процедура загрузки при этом выглядит так. Первичный загрузчик загружает полуторный по записанной в него карте размещения . Эта карта может быть очень простой, так как обычно полуторный загрузчик размещается непосредственно после первичного в нескольких секторах 4Т.е. на нулевой дорожке нулевого цилиндра, начиная с сектора 2. Эта область диска часто не используется под файловые системы (см. лекцию 11). подряд, или в ином специально отведенном месте вне файловой системы . Полуторный загрузчик умеет распознавать одну файловую систему и находить там вторичный уже по имени (обычно /boot/ grub /stage2 ). Наконец, вторичный загрузчик , пользуясь возможностями полуторного, читает из файла /boot/ grub /menu.lst меню, в котором пользователь может выбирать варианты загрузки так же, как и в LILO . Таким образом, обновление и перенастройка установленного GRUB не требует пересчета карт размещения и изменения чего-то, кроме файлов в каталоге /boot/ grub .

    По требованию Мефодия Гуревич установил на двухсистемную машину GRUB . При этом файл /boot/ grub /menu.lst получился таким:

    # cat /boot/grub/menu.lst default 0 timeout 50 title linux-up kernel (hd0,4)/boot/vmlinuz-up root=/dev/hda5 initrd (hd0,4)/boot/initrd-up.img title failsafe kernel (hd0,4)/boot/vmlinuz-up root=/dev/hda5 failsafe noapic nolapic acpi=off initrd (hd0,4)/boot/initrd-up.img title floppy root (fd0) chainloader +1 title dos root (hd0,0) chainloader +1 Пример 10.3. Настройка GRUB на двухсистемной машине

    Разница между lilo .conf только в синтаксисе, да еще в том, что жесткие диски и разделы на них GRUB именует по-своему, в виде (hdномер_диска , номер_раздела ), причем нумеровать начинает с нуля. Метки (" title ") тоже нумеруются с нуля, так что запись default 0 означает, что по истечении тайм-аута будет загружена самая первая конфигурация (по имени " linux-up ").

    Изучая руководство по GRUB , Мефодий обнаружил гораздо более важное отличие от LILO . Оказывается, в GRUB не только параметры, но и сами файлы (ядро , стартовый виртуальный диск и т.п.) распознаются и загружаются в процессе работы. Вместо пунктов меню можно выбрать режим командной строки , подозрительно похожий на bash , в котором можно заставить GRUB загрузить какое-нибудь другое, не предписанное конфигурацией, ядро , посмотреть содержимое каталогов файловой системы , распознаваемой полуторным загрузчиком , и даже содержимое этих файлов, невзирая ни на какие права доступа: система-то еще не загружена. Мало того, можно по-своему перенастроить загрузчик и записать результаты настройки. Так и не успев насладиться неожиданной свободой, Мефодий в один прекрасный день обнаружил, что выход в командную строку защищен паролем.

    Действия ядра Linux в процессе начальной загрузки

    Итак, проходит в три этапа.

    1. Загрузчик из ПЗУ определяет, с каких устройств можно грузиться и, возможно, предлагает пользователю выбрать одно из них. Он загружает с выбранного устройства первичный загрузчик и передает ему управление.
    2. Первичный загрузчик определяет (а чаще всего - знает), где находится вторичный загрузчик - большая и довольно интеллектуальная программа. Ему это сделать проще, чем программе из ПЗУ : во-первых, потому что для каждого устройства первичный загрузчик свой, а во-вторых, потому что его можно легко изменять при изменении настроек загружаемой системы. В схеме, предлагаемой LILO и GRUB , первичный загрузчик не вступает в разговоры с пользователем, а немедленно загружает вторичный и передает ему управление.
    3. Вторичный загрузчик достаточно умен, чтобы знать, где находится ядро системы (возможно, не одно), предложить пользователю несколько вариантов загрузки на выбор, и даже, в случае GRUB , разрешает задавать собственные варианты загрузки. Его задача - загрузить в память ядро и все необходимое для старта системы (иногда - модули, иногда - стартовый виртуальный диск ), настроить все это и передать управление ядру .

    Ядро - это и мозг, и сердце Linux. Все действия, которые нельзя доверить отдельной подзадаче (процессу) системы, выполняются ядром . Доступом к оперативной памяти, сети, дисковым и прочим внешним устройствам заведует ядро . Ядро запускает и регистрирует процессы, управляет разделением времени между ними.

    Linux обычно ставят после Windows так, чтобы GRUB затер загрузчик Windows и отображал во время загрузки обе системы. По умолчанию сначала идет Linux, в конце - Windows. Кого-то такое порядок может не устраивать . Есть и другой важный параметр - время ожидания.

    Обычно приходится ждать 10 секунд, и только потом грузится первая ОС. Этот параметр можно легко изменить .

    Все, что нужно сделать, - это отредактировать файл «grub.cfg» . Чтобы обезопасить себя, будем работать с копией файла на рабочем столе. Чтобы изменения можно было сохранить, файл нужно открыть от имени администратора - для этого используем консоль .

    1 . Заходим в папку «boot/grub/ » и копируем файл «grub.cfg » на рабочий стол. Это можно делать через консоль или через файловый менеджер .


    Если выбираете консоль, то введите команду: «sudo cp /boot/grub/grub.cfg /home/kij/Desktop/ » .


    «kij» - это имя пользователя, у вас оно наверняка другое.

    2 . Открываем файл «grub.cfg » на рабочем столе в текстовом редакторе. Делаем это через консоль: «sudo kate /home/kij/Desktop/grub.cfg »

    «kate » - это текстовый редактор Linux Mint KDE 15. Если у вас другой дистрибутив, то и редактор, скорее всего, другой, например, «gedit ».

    3. Обращаем внимание на строку «set default=0 ».

    Каждый пункт в GRUB имеет свой номер:

    Linux - 0;

    Linux...recovery mode - 1;

    Memory test - 2;

    Memory test (другая модификация) - 3;

    Windows 7 - 4.


    У вас может быть немного по-другому. В моем случае показатель default должен равняться 4, тогда по умолчанию будет грузиться Windows.

    4. Теперь изменяем временный параметр. Ищем в том же «grub.cfg » строку «set timeout=... ».


    Выставляем, сколько нужно. Если компьютер используют несколько пользователей, выставляем длительный таймаут - секунд 30. Если постоянно загружаете одну ОС, то ставьте 2-3 секунды.

    5. Сохраняем изменения. Закрываем редактор.

    6. Копируем файл с рабочего стола обратно в системную папку. Используем команду «sudo cp /home/kij/Desktop/grub.cfg /boot/grub/ ».


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

    Понравилось? Лайкни нас на Facebook