LevT
Запрет на пост | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Компьютер - это железо плюс софт. Железо - это процессор, память и периферия. Процессор исполняет софт, загруженный в память с периферийного устройства, избранного загрузчиком. В любом железе есть фирмваре (биос) - специальный софт, запускаемый процессором сразу после старта, до того, как он узнал о доступной периферии. Фирмваре хранится в постоянной памяти, обновляется программатором или спец. процедурами. Для своей инициализации оно использует конфигурацию, сохранённую в nvram (то есть конфиг оказывается прямо в памяти, для доступа к нему не требуется инициализации никаких необязательных устройств). Введём понятие предзагрузчика. Фирмваре это прошитый в железо предзагрузчик следующего загрузчика. Задача предзагрузчика - старт следующего загрузчика, более развитого (в зависимости от точки зрения, являющегося bios extender/расширителем фирмваре или мини-операционной системой). Процесс срабатывания предзагрузчика: 1) определение периферийных устройств, необходимых для доступа к следующему загрузчику (или к ОС) и к его конфигурации. 2) инициализация хранилища конфигурации и её получение. 3) доступ к хранилищу следующего загрузчика (или ОС), его загрузка, инициализация и передача ему управления. Доступ предзагрузчика к конфигурации и к телу загрузчика может осуществляться либо сразу через сетевое железо посредством сетевого протокола, либо через железо стораджа, посредством опознавания разбивки диска на разделы, выбора загрузочного раздела и минидрайвера файловой системы. Сторадж сейчас всё чаще виртуален, и также реализуется сетевым протоколом. DAS (непосредственно подключенный диск) - реликтовая технология. Современный сторадж - сетевой (NAS или SAN) Цепочка грузящих друг дружку загрузчиков оканчивается загрузкой операционной системы. Считается что полноценная ОС должна располагаться на блочном RW устройстве, чтобы сохранять конфигурацию своих сервисов - не говоря о драйверах/модулях ядра - в одном контейнере со своими исполняемыми файлами (т.е. в своей загрузочной фс с доступом на запись). Но... перечитайте последнюю фразу. Это ведь всё НЕОБЯЗАТЕЛЬНО! Тут каждая деталь - притянутое за уши наследие трудного прошлого, когда компьютеры были обособленными и могли полагаться только на локальные диски. В эпоху сетей, и особенно сетей хранения данных, это представление - дремучий атавизм, крайне обременительный в поддержке, и тем более затратный, чем больше дешёвых железок под боком требуют нашего внимания. Выводы: 1) Загрузка из сети ПРОЩЕ, ЧЕМ С ЛОКАЛЬНОГО ДИСКА - если избавиться от лишней эмуляции (блочного устройства, таблицы разделов и файловой системы раздела) при загрузке. 2) Конфигурация следующего этапа вытягивается ПОФАЙЛОВО (точнее даже посимвольно) и совершенно независимо от расположения самого загрузочного образа. Достаточно RO доступа. 3) По инерции считается, что доступ к окончательно загруженной оси должен быть блочным и RW - но ЭТО НЕОБЯЗАТЕЛЬНО, если сохранять конфигурацию её драйверов/модулей ядра и сервисов отдельно от загрузочного образа. Цена такого выбора - необходимость регулярной перестройки загрузочного образа (проблема уже решается многослойными файловыми системами и основанными на них дистрибутивами ). 4) Альтернатива многослойным ФС - сочетание подпунктов 4.1 тщательно разработанная система внешнего конфигурирования образа. 4.2 выбор наиболее подходящего образа из расположенного в сети "склада готовых изделий" или его автоматическая заказная сборка, по требованию предзагрузчика. 5) Если многослойная фс неизбежно зависит от платформы (линуксовые и PE дистры живут в параллельных мирах), то 4.1 может быть продуман, а 4.2 и реализован единообразно (платформо-независимым образом). Но и у многослойных фс есть преимущество: с такой фс можно юзать (почти) не модифицированную ОС, продолжающую думать про себя, что она грузится и берёт конфиг с единственного блочного RW загрузочного контейнера. Так что многослойные ФС - костыль на переходный период, пока не распространились модифицированные для истинно сетевой загрузки оси. 6) Длина цепочки предзагрузчиков-загрузчиков поддаётся сокращению и должна быть сокращена, без ущерба для гибкости выбора загружаемой оси и её функционала. См. (U)EFI.
| Всего записей: 17162 | Зарегистр. 14-10-2001 | Отправлено: 14:03 13-12-2009 | Исправлено: LevT, 11:15 14-12-2009 |
|