Лекция 15. Загрузка системы
Запуск системы не является, конечно, самой впечатляющей частью ОС Lion, но и он, несомненно, важен. Компания Apple совершенствует процессы запуска и времени выполнения с каждой новой версией Mac OS X. Когда все работает правильно, процесс загрузки компьютеров Мае на базе процессоров Intel выполняется менее чем за 30 секунд. Очевидно, что система должна запускаться быстро и правильно, а пользователи - не беспокоиться о том, что происходит во время запуска.
Однако когда при запуске что-то идет неправильно, многие зачастую боятся худшего. Неопытные пользователи могут предположить, что если Мае не загружается, они потеряют важные документы. Но запуск системы может пойти неправильно по множеству причин, которые, скорее всего, не приведут к утрате каких-либо данных. Поэтому важно точно диагностировать проблемы с запуском, чтобы можно было вернуть работоспособность Мае или как минимум попытаться восстановить данные.
В этом уроке рассматривается процесс, через который проходит Мае с момента нажатия кнопки питания и до открытия приложения Finder. Сначала мы идентифицируем файлы и процессы, требуемые для успешного запуска ОС Lion, что позволит вам эффективно диагностировать проблемы с загрузкой и входом в систему.
Последовательность загрузки.
главные этапы процедуры загрузки системы Lion. Они могут быть выделены в категории инициирование системы (system initiation) - процессы, которые требуются для запуска операционной системы, и пользовательский сеанс (user session) - процессы, которые требуются для инициализации рабочей среды пользователя. На каждом этапе Мае выдает звуковой или визуальный сигнал, показывая состояние хода процесса загрузки. Обсуждаемые здесь сигналы выводятся пользователю в ходе типичной загрузки.
Четыре основных этапа инициализации системы ОС Lion.
Прошивка. На этом этапе проверяется и инициализируется оборудование компьютера Мае, находится и запускается загрузчик. Успешное завершение этого этапа сопровождается мелодией запуска и яркой вспышкой индикатора питания, весь экран заполняется светло-серым фоном.
Загрузчик. Его главная работа состоит в загрузке в основную память ядра системы и основных драйверов оборудования, известных как расширения ядра (kernel extension, КЕХТ); затем ядро берет на себя управление системой. Этап загрузчика сопровождается темно-серым логотипом Apple на основном экране.
Ядро. Оно обеспечивает функционирование системы и загружает дополнительные драйверы и базовую систему BSD UNIX. На это указывает темно-серая вращающаяся звездочка ниже логотипа Apple на основном экране.
Системный процесс launchd. Когда базовая операционная система загрузится, она запускает первый, не относящийся к ядру процесс, launchd, который отвечает за загрузку оставшейся системы. Этот этап
обозначается исчезновением темно-серой вращающейся звездочки и белым фоном на всех мониторах. При успешном завершении этого этапа открывается либо окно входа в систему, либо приложение Finder, если пользователь настроил автоматический вход в систему.
Три основных этапа рабочей среды пользователя в ОС Lion.
► loginwindow. Этот процесс отвечает за предоставление экрана входа в систему и вход в нее пользователя. Успешное завершение этого этапа приводит к инициализации рабочей среды пользователя, то есть могут запускаться пользовательские приложения.
► Пользовательский процесс launchd. Этот процесс работает вместе с процессом loginwindow для инициализации рабочей среды пользователя и запуска любых пользовательских процессов или приложений.
► Рабочая среда пользователя. Это «пространство», в котором существуют пользовательские процессы и приложения, когда пользователь находится в системе. Очевидно, что рабочая среда пользователя обслуживается процессами loginwindow и пользовательским launchd.
Инициализация системы: прошивка
Прошивка Мае,-называемая также BootROM, находится в микросхемах флэш-памяти, встроенных в материнскую плату компьютера. В этом случае при включении питания Мае, даже до запуска «реальной» операционной системы, прошивка действует как минимальная операционная система, обладающая необходимым для выполнения своей задачи набором возможностей. А именно: прошивка выполняет проверку и инициализацию оборудования, а затем находит и запускает загрузчик операционной системы.
Прошивка в компьютерах Мае на базе процессоров Intel основывается на технологии Extensible Firmware Interface (EFI) компании Intel. Помимо поддержки оборудования процессора Intel, EFI позволяет компьютеру Мае загружать Lion, Windows или любую другую совместимую с процессорами Intel операционную систему.
Самотестирование при включении питания
Прошивка Мае при включении питания в первую очередь выполняет самотестирование (POST, Power-On Self-Test). POST тестирует встроенные аппаратные компоненты, такие как процессоры, системную память, сетевые и периферийные интерфейсы. Когда Мае проходит POST, вы слышите мелодию запуска и видите светло-серый фон на всех мониторах. После успешного теста POST прошивка начинает искать файл загрузчика.
Если Мае не сможет пройти POST, монитор останется пустым или выключенным, и вы сможете получить коды ошибок оборудования. В зависимости от возраста и модели компьютера, коды ошибок могут проявляться как звуковые сигналы или последовательности вспышек индикатора внешнего источника питания или же могут загореться внутренние диагностические индикаторы. Можно также увидеть комбинацию этих индикаторов. Независимо от кода ошибки, все они указывают на проблемы с оборудованием за пределами контроля ОС Lion.
Выбор загрузчика
По умолчанию прошивка выберет файл системного загрузчика, который ранее был указан в окне настроек Загрузочный том (Startup Disk) в Lion или на панели управления Boot Camp в Windows. Расположение файла загрузчика сохраняется в долговременной памяти (NVRAM) и остается там при перезагрузках системы. Если файл загрузчика будет найден, EFI инициирует процесс загрузчика и Lion начнет запускаться. На это указывает темно-серый логотип Apple в центре основного экрана.
Если прошивка не может найти файл загрузчика, вы увидите мигающий значок папки со знаком вопроса.
Инициализация системы: загрузчик
Загрузчик запускается прошивкой Мае и отвечает за загрузку ядра ОС Lion и ряда ключевых расширений ядра, достаточных для того, чтобы оно могло взять управление системой на себя и продолжить процесс загрузки. Прошивка Мае также передает все специальные инструкции режима запуска, такие как нажатие пользователем клавиши I Shift |. Это говорит о том, что Lion должна запускаться в безопасном режиме (Safe Mode). Сам по себе процесс загрузчика находится в файле /Система/Библиотеки/ CoreServices/boot.efi (/System/Library/CoreServices/boot.efi).
Для ускорения процесса запуска загрузчик будет загружать кэширо- ванные файлы везде, где только возможно. Кэшированные файлы содержат оптимизированное ядро и КЕХТ-расширения, которые загружаются значительно быстрее, чем если бы система загружала их с нуля. Эти кэши находятся в папке /Система/Библиотеки/Caches/com.apple.kernel.caches (/System/Library/ Caches/com.apple.kernel.caches). Если система обнаруживает проблему или вы загружаете Lion в безопасном режиме, кэши будут проигнорированы и процесс загрузки ядра займет гораздо больше времени.
Как говорилось ранее, загрузчик обозначает себя при запуске темно- серым значком Apple в центре основного экрана. Если загрузчик успешно загружает ядро, он подтверждает это с помощью темно-серой вращающейся звездочки под значком Apple.
Если Мае настроен на загрузку с сервера NetBoot и прошивка успешно находит файл загрузчика на сервере NetBoot, вы снова увидите темно-серый значок Apple. Однако в этом случае загрузчик и кэшированная информация ядра должны загружаться с сервера NetBoot. Данный процесс обозначается небольшим темно-серым вращающимся значком земного шара под значком Apple. Когда ядро успешно загрузится с сервера NetBoot, значок земного шара заменится стандартным значком вращающейся звездочки.
Инициализация системы: ядро
Когда загрузчик успешно загрузил ядро и основные КЕХТ-расширения, ядро берет управление процессом загрузки на себя. Теперь загружено достаточно расширений ядра, чтобы прочитать всю файловую систему, и ядро загружает любые дополнительные КЕХТ-расширения, а также запускает базовую систему BSD UNIX. Вращающийся серый значок звездочки под значком Apple указывает на ход процесса запуска ядра. Наконец, ядро запускает первый обычный процесс (не ядро) - системный процесс launchd, являющийся родительским для всех других процессов. Появление индикации на белом загрузочном экране с логотипом Apple является подтверждением того, что ядро полностью загружено и процесс launchd запускает другие объекты.
В большинстве случаев ядро загружается загрузчиком из кэширо- ванных файлов. Однако оно расположено также на системном томе в /mach_kernel. Этот файл обычно скрыт от пользователей в графическом интерфейсе пользователя, поскольку им не надо к нему обращаться. Системе BSD UNIX требуются и многие другие скрытые файлы и папки в корне системного тома, но среднему пользователю не нужен доступ к этим объектам. Как говорилось в уроке 8, КЕХТ-расширения располагаются в папках /Система/Библиотеки/Extensions (/System/Library/Extensions) и /Библиотеки/Extensions (/Library/ Extensions).
64-разрядный режим ядра
Наконец, если загрузчик не сможет загрузить ядро, то вместо значка Apple появится темно-серый запрещающий значок. О том, как устранить эту По умолчанию ОС Lion запускает ядро в 64-разрядном режиме на оборудовании, которое его поддерживает. Однако 64-разрядное ядро Lion не позволит использовать 32-разрядные КЕХТ-расширения. Многие КЕХТ- расширения поддерживают только 32-разрядный режим. Как рассматривалось в уроке 8, приложение /Программы/Утилиты/Информация о системе (Applications/Utilities/System Information) позволяет узнать, какие из установленных КЕХТ-расширений поддерживают 64-разрядный режим.
Чтобы разрешить проблему с КЕХТ-расширениями, которые поддерживают только 32-разрядный режим, можно принудительно загрузить ядро Lion в 32-разрядном режиме, удерживая при загрузке нажатыми клавиши (3) и (2). Как и в случае со всеми модификаторами запуска, это не постоянное решение. Чтобы заставить Lion постоянно загружаться в 32-разрядном режиме ядра, понадобится использовать команду systemsetup. А именно, в командной строке нужно ввести команду sudo systemsetup-setkemelbootarchitecture 1386. И, наоборот, чтобы вернуть обратно стандартное 64-разрядное ядро, нужно ввести команду sudo systemsetup- setkernelbootarchitecture х86_64. Наконец, можно убедиться, что Мае работает с 64-разрядным ядром, открыв приложение Информация о системе (System Information) и выбрав категорию ПО (Software).
(System Information) и выбрав категорию ПО (Software).
Инициализация системы: системный launchd
Когда ядро загружено и работает, Мае готов запускать процессы от лица системы и в конечном счете от имени пользователей. Первым обычным (не ядро) запускаемым процессом является системный процесс launchd, расположенный в /sbin/launchd, который запускается от имени пользователя root и которому присваивается идентификатор процесса с номером 1. В терминах UNIX системный процесс launchd - это первый родительский процесс, который порождает все другие дочерние процессы, а те, в свою очередь, порождают следующие.
Первая задача для системного процесса launchd - завершить инициализацию системы, запустив все остальные системные процессы. В предыдущих версиях Mac OS X показывалось диалоговое окно Welcome to Mac OS X (Добро пожаловать в Mac OS X) с индикатором хода выполнения для обозначения состояния инициализации системы в процессе загрузки различных системных процессов. Однако в Mac OS X 10.5 процесс launchd был значительно оптимизирован, поэтому инициализация системы занимает только несколько мгновений и обозначается белым фоном на всех мониторах. Когда отображается белый фон, процесс launchd запускает процесс WindowServer, который отвечает за прорисовку пользовательского интерфейса Lion, и это явный признак того, что все идет хорошо.
Процесс launchd ускоряет инициализацию системы, запуская несколько системных процессов одновременно, где это только возможно, и инициируя сначала только самые важные системные процессы. После запуска системный процесс launchd по мере необходимости автоматически запускает и останавливает дополнительные системные процессы. Динамически управляя системными процессами, launchd повышает эффективность и быстродействие Мае.
Объекты системного процесса launchd
Как было рассмотрено в уроке 4, процесс launchd управляет системными процессами, как задано в файлах настроек launchd в папке /Система/ Библиотеки/LaunchDaemons (/System/Library/LaunchDaemons). Процессы сторонних поставщиков также могут управляться этим процессом, если они описываются файлами настроек процесса launchd в папке /Библиотеки/ LaunchDaemons.
Компания Apple рекомендует разработчикам использовать систему launchd для всех автоматически запускаемых процессов. Но системный процесс launchd также поддерживает устаревшие процедуры автоматического запуска. К ним относятся поддержка выполнения традиционного сценария UNIX /etc/rc.local в ходе инициализации системы (если он присутствует), хотя по умолчанию данный сценарий не включен в состав Lion. Системный процесс launchd запускает также процесс /sbin/SystemStarter, который управляет устаревшими объектами запуска Mac OS X. Lion не включает никаких встроенных объектов запуска, но процесс SystemStarter все равно проведет поиск сторонних объектов запуска в папках /Система/Библиоте- ки/StartupItems (/System/Library/Startupltems) и /Библиотеки/Startupltems (/Library/Startupltems).
Инициализация системы: прошивка, загрузчик, ядро, системный launchd
Основная литература:1 [23-26], 2 [5-92], 3[801-815]
Дополнительная литература:6
Контрольные вопросы:
1. Назовите основные этапы инициализации системы и инициализации рабочей среды пользователя в Lion. В каком порядке они идут?
2. Какие существуют визуальные и/или звуковые признаки этапов инициализации системы?
3. Какова функция прошивки? Что такое POST?
4. Какую роль выполняет системный процесс launchd в процессе загрузки системы?
5. Какие объекты запускаются автоматически системным процессом launchd в ходе инициализации системы?
6. Какую роль играет процесс loginwindow в загрузке системы?
7. В чем разница между демонами запуска, объектами запуска, агентами запуска и объектами входа в систему?
8. Что происходит во время выхода пользователя из системы?
9. Что происходит во время выключения системы?
10. В чем различие между режимами Безопасная загрузка (Safe Boot), Безопасный режим (Safe Mode) и Безопасный вход в систему (Safe Login)?
11. Какие объекты не загружаются во время безопасной загрузки Lion?
12. Какие клавиатурные комбинации используются для безопасной загрузки Lion?
13. Как решить проблемы, которые обходит загрузка в безопасном режиме?
Дата добавления: 2015-09-18; просмотров: 680;