НАЧАЛЬНАЯ ЗАГРУЗКА ОПЕРАЦИОННОЙ СИСТЕМЫ РАЗДЕЛЬНЫМИ СТАДИЯМИ
INITIAL DOWNLOAD OF OPERATING SYSTEM IN SEPARATE STAGES

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Запоминающее устройство является очень ценным ресурсом во встроенных системах. Многие встроенные устройства не включают в себя накопители на жестких дисках, поскольку они являются дорогостоящими, и, во многих случаях, первыми из основных компонентов выходят из строя. Замена накопителя на жестком диске может также быть дорогостоящей из-за стоимости создания образа нового логического диска, так же как и разборки и повторного конфигурирования, требуемого для устройства. По существу, многие встроенные устройства требуют начальную (т.е. при (пере)запуске) загрузку через механизм сетевой начальной загрузки. Обычно используется стандарт среды исполнения перед начальной загрузкой (PXE) фирмы Intel, но он имеет очень ограниченную сетевую платформу и поддержку аутентификации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Данное изложение сущности изобретения предусмотрено для того, чтобы в упрощенной форме представить набор идей, которые дополнительно описываются ниже в подробном описании. Это изложения сущности изобретения не предназначено для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявляемого изобретения, а также не предназначено для того, чтобы быть использованным в качестве помощи при определении объема заявляемого изобретения.
Вычислительное устройство конфигурируется так, чтобы собрать и выполнить начальную загрузку операционной системы постадийно с помощью раздельных образов операционной системы. Каждый последующий образ операционной системы, который получен, строится на последнем образе, и когда образы операционной системы объединяются, они создают завершенную операционную систему. Первичный загрузочный образ, который получается первым для устройства, включает в себя достаточную функциональность операционной системы, чтобы поддерживать основные возможности работы в сети. После того как получен первичный загрузочный образ, либо посредством удаленной загрузки ("скачивания"), либо из локального запоминающего устройства в устройстве, первичный загрузочный образ загружается, чтобы запустить клиента работы в сети. После того как клиент работы в сети активируется, процесс начальной загрузки устройства приостанавливается. Это предоставляет возможность аутентифицировать клиент, сервер и возможного пользователя, и затем один или более вторичных образов операционной системы скачиваются устройством с помощью более мощной сетевой платформы, предоставленной первичным загрузочным образом. Эти вторичные образы операционной системы сцепляются с первичным загрузочным образом, тем самым, создавая единую/связную операционную систему. Каждый из этих вторичных образов операционной системы строится на функциональности предыдущей стадии.
ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует примерную вычислительную архитектуру, которая включает в себя операционную систему, которая загружается раздельными стадиями;
Фиг.2 показывает примерную файловую систему, которая выполнена с возможностью поддерживать начальную загрузку операционной системы раздельными стадиями;
Фиг.3 показывает разбитую на фазы временную шкалу начальной загрузки устройства раздельными стадиями; и
Фиг.4 показывает процесс начальной загрузки операционной системы раздельными стадиями.
ПОДРОБНОЕ ОПИСАНИЕ
Ссылаясь теперь на чертежи, на которых одинаковые ссылочные номера представляют одинаковые элементы, описаны различные варианты осуществления изобретения. В частности, фиг.1 и соответствующее обсуждение предназначены для того, чтобы предоставить краткое общее описание подходящего вычислительного окружения, в котором могут быть реализованы варианты осуществления изобретения.
Как правило, программные модули включают в себя алгоритмы, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Могут быть использованы другие конфигурации вычислительных систем, включая карманные устройства, микропроцессорные системы, построенную на микропроцессорах или программируемую бытовую электронную аппаратуру, миникомпьютеры, универсальные компьютеры и т.д. Также могут быть использованы распределенные вычислительные окружения, в которых задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенном вычислительном окружении программные модули могут размещаться и на локальных, и на удаленных устройствах хранения данных.
Обращаясь теперь к фиг.1, будет описана иллюстративная архитектура компьютера 100, используемого в различных вариантах осуществления, которая включает в себя операционную систему, которая загружается раздельными стадиями. Архитектура компьютера, показанная на фиг.1, может быть сконфигурирована как мобильное вычислительное устройство и/или традиционное вычислительное устройство. Например, вычислительное устройство 100 может быть сконфигурировано как интеллектуальный телефон (смартфон), PDA, настольный компьютер, сервер, планшет, портативный компьютер и т.п. Вычислительное устройство 100 может также быть сконфигурировано как встроенное вычислительное устройство.
Как проиллюстрировано, компьютер 100 включает в себя центральный процессор 5 ("CPU"), системную память 7, включающую в себя оперативное запоминающее устройство 9 ("RAM") и постоянное запоминающее устройство ("ROM") 11, и системную шину 12, которая связывает память с CPU 5. Системная память 7 может быть любой комбинацией энергонезависимой памяти и энергозависимой памяти. Базовая система ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в компьютере, как, например, во время запуска, хранится в ROM 11. Компьютер 100 может включать в себя устройство 14 массовой памяти для хранения операционной системы 16, которое содержит (после получения) первичный загрузочный образ 26 и один или более вторичных образов 34 операционной системы.
Операционная система 16 загружается постадийно. При запуске устройства 100 первичный загрузочный образ 26 может быть извлечен из запоминающего устройства в устройстве 100, или он может быть скачан из местоположения в сети, например с сервера 34. Например, первичный загрузочный образ 30 может быть получен с сервера 34 посредством использования стандарта PXE, чтобы скачать первичный загрузочный образ 30. Первичный загрузочный образ включает в себя достаточную функциональность операционной системы 16, чтобы поддерживать базовую работу в сети. После того как получен первичный загрузочный образ, либо посредством скачивания, либо из запоминающего устройства в рассматриваемом устройстве, первичный загрузочный образ 26 загружается в устройстве 100, чтобы начать работу устройства 100 в сети.
После того как сетевой клиент в устройстве 100 активирован, процесс начальной загрузки устройства 100 приостанавливается, и один или более вторичных образов 32 операционной системы скачиваются устройством (34). Каждый вторичный образ операционной системы 16, который получен, строится на последнем образе операционной системы, который был принят. Эти вторичные образы 17 операционной системы формируют цепочку с первичным загрузочным образом 26, чтобы создать единую/связную операционную систему 16. Согласно одному варианту осуществления образы (17 и 26) операционной системы хранятся как отдельные образы в устройстве 14 массовой памяти, но выглядят для приложений в устройстве 100 как единая, связная файловая система (см. фиг.2 и относящееся к ней обсуждение). Операционная система 16 может быть сконфигурирована, чтобы последовательно продолжать загружать каждый образ операционной системы, после того как он сцеплен с предыдущим образом. Альтернативно, любая комбинация образов операционной системы может быть сцеплена, и затем стадия начальной загрузки продолжается. Каждый последовательный образ операционной системы строится на функциональности предыдущего образа операционной системы. Пока другие устройства могут загружать операционную систему постадийно, они не используют одну и ту же операционную систему на всем протяжении процесса. Как правило, эти системы выполняют критическую функциональность в BIOS или вторичной операционной системе, чтобы изначально загрузить устройство, и затем заменяют эту функциональность с помощью замещения операционной системы.
Устройство 14 массовой памяти подключено к CPU 5 посредством контроллера массовой памяти (не показан), подключенного к шине 12. Устройство 14 массовой памяти и ассоциированные с ним машиночитаемые носители обеспечивают энергонезависимое хранение для компьютера 100. Хотя описание машиночитаемых носителей, содержащееся в данном документе, ссылается на устройство массовой памяти, такое как жесткий диск, накопитель DVD-ROM или накопитель CD-ROM, могут быть доступны другие типы машиночитаемых носителей, к которым можно осуществлять доступ посредством компьютера 100.
В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные носители данных и среды связи. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя (но не только) память по технологии RAM, ROM, EPROM, EEPROM, флэш-память или память другой твердотельной технологии, CD-ROM, универсальный цифровой диск (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитный диск или другие магнитные устройства хранения, либо любые другие носители, которые можно использовать для хранения нужной информации и к которым можно обращаться с помощью компьютера 100.
Согласно различным вариантам осуществления компьютер 100 может работать в объединенном в сеть окружении, используя логические соединения с удаленными компьютерами по сети 18, например Интернет. Компьютер 100 может подсоединяться к сети 18 по сетевому интерфейсному блоку 20, подключенному к шине 12. Cетевой интерфейсный блок 20 может также использоваться для подсоединения к другим типам сетей и удаленным компьютерным системам. Соединение может быть проводным и/или беспроводным соединением.
Как кратко упомянуто выше, ряд программных модулей и файлов данных могут храниться в памяти компьютера 100, включая себя операционную систему 16, подходящую для управления работой вычислительного устройства. Вычислительное устройство 100 может быть встроенной системой, которая включает в себя встроенную операционную систему, так же как и другие встроенные данные, файлы и приложения.
Согласно одному варианту осуществления вся или некоторая часть памяти может быть флэш-памятью или другой подходящей памятью для встроенных систем. Устройство 14 массовой памяти и RAM 9 могут также хранить один или более программных модулей.
Фиг.2 показывает примерную файловую систему, которая сконфигурирована, чтобы поддерживать начальную загрузку операционной системы раздельными стадиями. Как иллюстрировано, файловая система 200 включает в себя приложение 202, запросы 204 файловой системы, виртуальную файловую систему 230, которая содержит драйвер 234 начальной загрузки и опорную файловую систему 232, содержащую первичный образ 236 и вторичный образ(ы) 238.
Когда приложение 202 запрашивает данные, которые должны быть прочитаны или записаны из присоединенного тома, через запрос 204 файловой системы, запрос передается виртуальной файловой системе 230, реализованной драйвером 234 начальной загрузки.
Драйвер 234 начальной загрузки позволяет образам операционной системы (первичному образу 236 и вторичному образу(ам) 238) выглядеть как связная файловая система перед любым приложением, таким как приложение 202. Каждый образ операционной системы (первичный образ 236 и вторичный образ(ы) 238), который хранится независимо как раздельные файлы, может быть загружен как оверлей и предстать для системы как единый набор файлов внутри виртуальной файловой системы 230. Образы операционной системы могут храниться в опорной файловой системе 232 и/или в RAM, в таком случае драйвер 234 начальной загрузки обращается к операционным системам непосредственно из памяти.
Согласно одному варианту осуществления при загрузке образа завершенной операционной системы драйвер 234 начальной загрузки грузит каждый из образов операционной системы, которые присутствуют в RAM и/или в опорной файловой системе, и формирует цепочку образов операционной системы. Сцепление первичного загрузочного образа 236 со вторичным образом(ами) 238 операционной системы позволяет операционной системе осуществить начальную загрузку из множественных файлов. Согласно одному варианту осуществления драйвер 234 начальной загрузки исследует конфигурационную информацию, чтобы идентифицировать подходящий работающий образ, чтобы изначально загрузиться из него. Если конфигурационная информация недоступна или не найдена, драйвер 234 начальной загрузки ищет загрузочный файл в корневом уровне опорной файловой системы 232. Как обсуждалось выше, первичный образ 236 сконфигурирован так, чтобы предоставить минимальный набор сетевой функциональности, так что вторичный образ(ы) 238 может быть получен с помощью стандартных протоколов работы в сети.
Фиг.3 показывает разбитую на стадии временную шкалу начальной загрузки устройства раздельными стадиями. Как иллюстрировано, временная шкала разделена на POST/DHCP-фазу 310, PXE-фазу 320, фазу 330 скачивания первичного загрузочного образа, фазу 340 скачивания вторичного образа и конечную фазу 350 начальной загрузки. Каждая фаза процесса отмечена конкретным событием вместе с основным описанием задач и событий, идентифицированных в каждой фазе.
Согласно одному варианту осуществления, после того как устройство включается, выполняется самоконтроль при подаче питания (POST). Согласно одному варианту осуществления, когда POST завершается, сетевая интерфейсная плата (NIC) устройства отправляет сообщение обнаружения DHCP, чтобы получить IP-адрес устройства. DHCP-запрос включает в себя информацию, чтобы запросить информацию о PXE-загрузке, а также чтобы запросить местоположение PXE-сервера.
Во время PXE-фазы 320 устройство запрашивает и принимает информацию о PXE-загрузке и скачивает сетевую программу самозагрузки и загрузчик операционной системы, такой как OS Loader. Другие конфигурационные данные начальной загрузки и информация также могут быть получены. Например, может быть получено местоположение первичного загрузочного образа и информация о том, скачивать ли первичный загрузочный образ с сервера или получать его из локального устройства хранения большой емкости. Как обсуждалось выше, первичный загрузочный образ может быть сохранен в устройстве. Когда первичный загрузочный образ сохранен в устройстве, PXE-фаза 320 и фаза 330 скачивания первичного загрузочного образа могут быть пропущены. Когда устройство уже не включает в себя первичный загрузочный образ, устройство отправляет PXE-запрос серверу.
Согласно одному варианту осуществления TFTP используется для того, чтобы скачать PXE-программу начальной самозагрузки (startrom), загрузчик операционной системы (OS Loader), конфигурационные данные начальной загрузки и другие файлы, как определено в PXE-ответе. После того как эти компоненты скачаны, процесс переходит к фазе 330 скачивания первичного загрузочного образа, где устройство грузит OS Loader, который согласно одному варианту осуществления: создает RAM-диск и скачивает первичный загрузочный образ с помощью TFTP и кладет этот образ в RAM-диск.
OS Loader начинает процесс начальной загрузки и использует протокол одноадресной передачи (TFTP), чтобы скачать первичный загрузочный образ. После скачивания эти основные компоненты операционной системы, включающие в себя ядро, сетевой клиент, драйверы и т.д., грузятся устройством.
Первичный загрузочный образ представляет значительную функциональность перед тем, как загрузится вся полная операционная система. Согласно одному варианту осуществления компоненты первичного загрузочного образа включают в себя: управление RAM-диском; клиент многоадресной передачи; приложение идентификации устройства; и приложение состояния. Во время фазы 330 скачивания первичного загрузочного образа скачивается определение для оставшегося образа операционной системы, изменяется размер RAM-диска, чтобы принять вторичный образ(ы), и скачиваются любые пакеты идентификации/состояния устройства (с помощью протокола одноадресной передачи для эффективности).
Согласно одному варианту осуществления затем запускается собственный клиент многоадресной передачи, и запрос отправляется серверу многоадресной передачи. Если сервер многоадресной передачи не является "широковещательным", он начнет трансляцию соответствующего вторичного образа(ов). Если он уже транслирует вторичные образы операционной системы, он ставит в очередь запрошенный образ для этого клиента. Устройство затем начинает "слушать" многоадресную трансляцию, принимает данные, которые указаны в определении образа, и повторно собирает или обрабатывает вторичный образ на RAM-диске. Когда повторная сборка завершена, применяется информация идентификации и состояния устройства, и процесс начальной загрузки устройства возобновляется. Альтернативно, образы операционной системы могут быть получены с помощью протокола одноадресной передачи. Вторичный образ(ы) операционной системы скачивается, чтобы улучшить функциональность операционной системы посредством перехода от упрощенной, универсальной работающей в сети операционной системы к полностью сконфигурированной операционной системе, такой как операционная система MICROSOFT WINDOWS корпорации MICROSOFT Редмонд, штат Вашингтон.
На конечной фазе 350 начальной загрузки процесс начальной загрузки продолжает использовать ту же основу операционной системы, которая использовалась на этапе самозагрузки, без необходимости перезагрузки системы.
Обращаясь теперь к фиг.4, будет описан иллюстративный процесс начальной загрузки операционной системы раздельными стадиями. При прочтении описания представленных в данном документе процедур следует принимать во внимание, что логические операции различных вариантов осуществления реализуются (1) как последовательность машинореализованных действий или программных модулей, исполняющихся в вычислительной системе, и/или (2) как взаимосвязанные машинные логические схемы или модули схем в рамках вычислительной системы. Эта реализация зависит от требований к производительности вычислительной системы. Следовательно, логические операции, проиллюстрированные и составляющие варианты осуществления, описанные в данном документе, упоминаются в различных случаях как операции, структурные устройства, действия или модули. Эти операции, структурные устройства, действия и модули могут быть реализованы в программном обеспечении, в микропрограммном обеспечении, в специализированных цифровых логических средствах и в любой их комбинации.
Фиг.4 показывает процесс 400 начальной загрузки операционной системы раздельными стадиями. После стартовой операции процесс переходит к операции 405, где получают первичный загрузочный образ. На этапе 410 принятия решения определяют, сохранен ли первичный загрузочный образ на диске, или сохранен ли первичный загрузочный образ в сетевом местоположении.
Когда первичный загрузочный образ сохранен на диске или в другом местоположении памяти устройства, процесс переходит к операции 420, где первичный загрузочный образ получают из устройства.
Когда первичный загрузочный образ сохранен в сетевом местоположении, процесс переходит к операции 415, где первичный загрузочный образ получают из сетевого местоположения. Как обсуждалось выше, первичный загрузочный образ включает в себя достаточные возможности для работы в сети, чтобы создать экземпляр сетевого клиента в устройстве. После того как первичный загрузочный образ получен, процесс начальной загрузки начинается в операции 425.
Во время первоначальной загрузки сетевой клиент загружается в операции 430. После того как клиент для работы в сети загружен, процесс начальной загрузки для устройства приостанавливается в операции 435. Процесс может перейти к операции 438 аутентификации, которая предоставляет возможность аутентифицировать одно или более из следующего: клиент, сервер и пользователя. Неудача в аутентификации одного из указанных выше может вызывать прерывание процесса аппаратной загрузки. Когда устройство аутентифицировано, процесс начальной загрузки продолжается в операции 440, так что могут быть получены один или более вторичных образов операционной системы. Вторичный образ(ы) предоставляет больше функциональности операционной системе. Сетевой клиент может использовать протоколы безопасности, чтобы скачать вторичный образ(ы), так же как и предоставить поддержку многоадресной передачи.
Переходя к операции 445, недавно полученный вторичный образ операционной системы сцепляется с предыдущим образом. В случае, когда получен первый вторичный образ операционной системы, он сцепляется с первичным загрузочным образом. Сцепление образов создает логический образ единой операционной системы, как обсуждалось выше относительно фиг.2.
Двигаясь к этапу 450 принятия решения, делают определение того, существуют ли какие-либо еще вторичные образы операционной системы для получения. Операционная система может содержать любое число вторичных образов операционной системы. Например, одна полная операционная система может включать в себя два вторичных образа операционной системы, в то время как другая полная операционная система может включать в себя три или более вторичных образов операционной системы.
Когда больше не существует вторичных образов операционной системы для загрузки и сцепления, процесс переходит к продолжению операции 455, где процесс начальной загрузки продолжается, чтобы добавить функциональность вновь сцепленных образов операционной системы. Хотя продолжение процесса 455 иллюстрируется после того, как все вторичные образы операционной системы получены, процесс начальной загрузки альтернативно может продолжаться после того, как получен каждый вторичный образ. Процесс затем переходит к операции окончания и возвращается к обработке других действий.
Упомянутые ранее описание, примеры и данные предоставляют полное описание изготовления и использования состава изобретения. Поскольку многие варианты осуществления изобретения могут быть выполнены без отступления от духа и объема, объем изобретения определяется прилагаемой формулой изобретения.