Сборка своего ядра windows

Сборка своего ядра windows

Доброго времени суток.
Странно что мало кто интересовался сборкой собственного ядра под Windows.
Кажется мало кто вчитывался в документацию к среде PE и дополнительных сред,совместными силами попробуем разобраться в возможности сборки собственного ядра системы Windows.
Структура операционной системы
Перед изучением структуры операционных систем следует рассмотреть режимы работы процессоров.
Современные процессоры имеют минимум два режима работы – привилегированный (supervisor mode) и пользовательский (user mode).
Отличие между ними заключается в том, что в пользовательском режиме недоступны команды процессора, связанные с управлением аппаратным обеспечением, защитой оперативной памяти, переключением режимов работы процессора. В привилегированном режиме процессор может выполнять все возможные команды.
Приложения, выполняемые в пользовательском режиме, не могут напрямую обращаться к адресным пространствам друг друга – только посредством системных вызовов.
Все компоненты операционной системы можно разделить на две группы – работающие в привилегированном режиме и работающие в пользовательском режиме, причем состав этих групп меняется от системы к системе.
Основным компонентом операционной системы является ядро (kernel). Функции ядра могут существенно отличаться в разных системах; но во всех системах ядро работает в привилегированном режиме (который часто называется режим ядра, kernel mode).
Термин «ядро» также используется в разных смыслах. Например, в Windows термин «ядро» (NTOS kernel) обозначает совокупность двух компонентов – исполнительной системы (executive layer) и собственно ядра (kernel layer) .
Существует два основных вида ядер – монолитные ядра (monolithic kernel) и микроядра (microkernel). В монолитном ядре реализуются все основные функции операционной системы, и оно является, по сути, единой программой, представляющей собой совокупность процедур. В микроядре остается лишь минимум функций, который должен быть реализован в привилегированном режиме: планирование потоков, обработка прерываний, межпроцессное взаимодействие. Остальные функции операционной системы по управлению приложениями, памятью, безопасностью и пр. реализуются в виде отдельных модулей в пользовательском режиме.

Ядра, которые занимают промежуточные положение между монолитными и микроядрами, называют гибридными (hybrid kernel).

Примеры различных типов ядер:
монолитное ядро – MS-DOS, Linux, FreeBSD;
микроядро – Mach, Symbian, MINIX 3;
гибридное ядро – NetWare, BeOS, Syllable.

Добавлено через 58 минут 42 секунды
Несколько примеров можно взять тут http://www.intuit.ru/en/studies/cour. e/16572?page=1

Добавлено через 1 час 2 минуты 49 секунд
Документация по wrk Оффтоп

Сборка своего ядра windows

Мануал по сборке ядра на примере Motorola Quench XT5, GSmart 1305, Commtiva Z71, Orange Boston

Маленькая ремарка: так как я использую Ubuntu — cоответственно и все пункты инструкции будут написаны с учётом использования этого дистрибутива.

Читайте также:  Lit wreaths in windows

| Внимание! Увага! Attention! Achtung!
Статье уже больше 5 лет и я больше не интересуюсь сборкой прошивок/ядер. Убедительная просьба — не нужно задавать мне вопросы по статье в ЛС .
Спросите в этой теме, авось кто-то поможет.

Статья подразумевает, что у вас должен быть какой-никакой опыт работы в ОС GNU/Linux, потому что если у вас возникнут трудности, например, с перемещением между папками из консоли — то разбираться вам прийдется с этим самостоятельно. Если опыта нет, но очень хочется попробовать — добро пожаловать на сайт Убунтология, учитесь работать с ОС, а потом уже будем ядра собирать.

Так же — статья не затрагивает работу с программами fastboot и adb, копание в исходных кодах и работу с git — репозиториями.
Последние два — огромнейшие темы, которые я описать не в силах. Учитесь программировать, читайте документацию и всё получится. Некоторые ссылки есть в статье. А первый пункт мне просто лень описывать. 😀

| Подготовка для компиляции ядра

Итак, для начала неплохо было бы произвести с системой манипуляции, описанные в пунктах «Installing the JDK» и «Installing required packages» по ссылке — ТЫЦ.

Создайте папку aosp и папку aosp/prebuilt в домашней директории, командами

/aosp
mkdir prebuilt
cd prebuilt

Скачаем большой пак файлов с помощью команды

В последней команде точка и должна быть, это не опечатка.

Сборка исследовательского ядра Windows и работа с отладчиком

Задание 1. Установить операционную систему Microsoft Windows Server 2003 SP1 на виртуальную машину Microsoft Virtual PC 2007 SP1.

Указания к выполнению.

1. Скачайте и установите программу виртуализации Microsoft Virtual PC 2007 SP1, доступную по адресу:

2. Создайте в программе Microsoft Virtual PC 2007 SP1 виртуальную машину со следующими параметрами:

  • оперативная память – не менее 256 Мб (желательно 512 Мб);
  • жесткий диск не менее 3 Гб.

Информация по созданию виртуальной машины и установке операционной системы на виртуальную машину доступна по адресу:

3. Установите на виртуальную машину операционную систему Microsoft Windows Server 2003 SP1.

Замечание. Обратите внимание, в операционной системе обязательно должен быть установлен Service Pack 1 (SP1), поскольку исследовательское ядро Windows WRK поставляется именно для этой версии Windows .

В дальнейшем компьютер , на котором установлена программа Microsoft Virtual PC 2007 SP1, будем называть «физический компьютер «, а виртуальный компьютер с операционной системой Microsoft Windows Server 2003 SP1 будем называть «виртуальной машиной».

Задание 2. Осуществить сборку исследовательского ядра Windows (Windows Research Kernel, WRK).

Указания к выполнению.

1. Загрузите с сайта Windows Academic Program исходные коды Windows Research Kernel :

Для загрузки потребуется наличие подписки Microsoft Developer Network Academic Alliance ( MSDN AA) или подтверждение статуса преподавателя.

2. Сборку ядра можно осуществить двумя способами: при помощи командного файла Build .bat и в среде Microsoft Visual Studio. Рассмотрим оба способа.

Читайте также:  Windows forms как связать формы

3. Сборка при помощи Build .bat.

В папке WRK-v1.2 находится файл Build .bat. Запустите его – должно открыться консольное окно и начаться сборка ядра:

Сборка продолжается несколько минут. В результате в папке WRK v1.2\ base \ntos\ BUILD \EXE появится файл ядра wrkx86.exe, а также файл с отладочной информацией wrkx86.pdb. Файл wrkx86.exe – это аналог файла ntoskrnl.exe для WRK.

4. Сборка при помощи Microsoft Visual Studio.

В папке WRK-v1.2 содержится файл решения WRK.sln – файл решения (solution) Microsoft Visual Studio 2008. Если на вашем компьютере установлена Microsoft Visual Studio версии не ниже 2008, вы можете открыть данный файл . При этом если установленная версия Visual Studio выше 2008, будет предложено сконвертировать решение в более новый формат, и после конвертации с решением можно будет работать.

Выберите конфигурацию x86 и платформу Win32:

В меню Построение выберите Построить решение ( Build – Build Solution). Результат построения должен быть такой же, как при использовании Build .bat – в папке WRK v1.2\ base \ntos\ BUILD \EXE появится файл ядра wrkx86.exe.

Замечание. Рекомендуется при изучении лекций и выполнении лабораторных работ для просмотра исходного кода WRK использовать либо Visual Studio, либо HTML документацию по WRK (см. лекцию 5 «Исследовательское ядро Windows «).

Сборка исследовательского ядра Windows и работа с отладчиком

Задание 4. Установить отладчик Windows – WinDbg (Windows Debugger).

Указания к выполнению.

1. Скачайте Windows Software Development Kit ( SDK ) for Windows 8 по следующему адресу:

Замечание. Данный дистрибутив предназначен для работы на операционных системах Windows 7 и Windows 8.

Загрузится программа инсталлятор (sdksetup.exe) размером около 1 Мб, после чего следует её запустить. Откроется следующее окно:

Выберите пункт Install the Windows Software Development Kit to this computer , нажмите кнопку Next .

При желании можете поучаствовать в программе улучшения продуктов Microsoft на основе опыта пользователей ( Customer Experience Improvement Program) или отказаться от участия в ней:

На следующем шаге, если на вашем компьютере не установлен . NET Framework 4.5, программа инсталлятор предупредит, что без его наличия компонент . NET Framework 4.5 SDK не установится. Нам он не нужен, поэтому можно пропустить этот шаг (нажмите Next ):

Прочитайте лицензионное соглашение и, если согласны с ним, нажмите Accept.

В следующем окне уберите все галочки, кроме Debugging Tools for Windows и нажмите Install :

Во время установки должно работать соединение с Интернетом.

После завершения установки программу WinDbg можно запустить (в Windows 7) из меню Пуск – Все программы – Windows Kits – Debugging Tools for Windows ( X86 ) – WinDbg ( X86 ).

Задание 5. Настроить отладчик WinDbg для отладки ядра.

Указания к выполнению.

1. Сначала необходимо задать настройки виртуальной машины.

В меню Action выберите пункт Settings. В левой панели выберите пункт COM1, в поле Named pipe введите следующий текст:

Нажмите кнопку ОК.

2. Установите пути к отладочным символам в настройках отладчика WinDbg.

Читайте также:  Как запустить mac os после установки windows

Запустите отладчик WinDbg. В меню File выберите пункт Symbol File Path (или просто нажмите Ctrl+S). Откроется окно Symbol Search Path , в которое нужно ввести пути к файлам с отладочными символами. Введем два пути:

  • путь к файлу отладочной информации WRK – wrkx86.pdb (например, C:\WRK-v1.2\base\ntos\BUILD\EXE);
  • путь к файлам с отладочными символами других компонентов Windows – можно указать отладчику скачать эти данные с сайта Microsoft и сохранить их в папке на жестком диске, например C:\Symbols.

В окне Symbol Search Path введите следующий текст:

c:\WRK-v1.2\ base \ntos\ BUILD \EXE;

SRV*c:\symbols*http://msdl. microsoft . com /download/symbols

Обратите внимание, что текст должен идти без пробелов и переносов строк:

3. Установить путь к исходному коду WRK в настройках отладчика WinDbg.

В меню File выберите пункт Source File Path (или нажмите Ctrl+P). Откроется окно Source Search Path , в которое нужно ввести путь к исходным файлам WRK, например, C:\WRK-v1.2\ base :

4. Установить соединение отладчика WinDbg с виртуальной машиной.

В меню File выберите пункт Kernel Debug (или нажмите Ctrl+K). Откроется окно Kernel Debugging .

Установите следующие значения на вкладке COM в этом окне:

  • Baud Rate: 115200
  • Port: \\.\pipe\debugPipe
  • Pipe: отметить
  • Reconnect: отметить
  • Resets: 0

Нажмите кнопку OK, при этом начнется процесс подключения к виртуальной машине по COM порту. На вопрос о сохранении информации ( Save information for workspace ) можете ответить Yes.

Запустите виртуальную машину. В меню загрузки выберите Windows Research Kernel [ debugger enabled ]. В процессе загрузки в окне Command отладчика должна появиться следующая информация :

5. Узнать информацию о загруженных модулях.

Остановите процесс выполнения виртуальной машины, нажав кнопку на панели инструментов отладчика, или выбрав в меню Debug пункт Break , или нажав Ctrl+ Break .

Отладчик перейдет в режим ввода команд (внизу окна Command сделается активной строка для текстового ввода с подсказкой kd>):

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

В строке команд отладчика введите команду:

где заглавная буква D – параметр команды lm, отображающей список загруженных модулей.

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

Обратите внимание на информацию об отладочных символах справа от модулей ntdll и nt.

Если щелкнуть по названию модуля nt (или ввести команду lmDvmnt), то отобразится более подробная информация о данном модуле:

Чтобы продолжить работу виртуальной машины нажмите F5, или нажмите кнопку на панели инструментов отладчика, или введите команду g в окне команд.

Вопросы и ответы

Добрый день. Не работают ссылки для скачивания на начальном этапе первой самостоятельной работы. Возможно и далее встречаются старые ссылки. Как быть с этим?

Может есть какой-то более новый несложный курс по устройству windows c практическими заданиями? Заранее спасибо.

«1. Скачайте и установите программу виртуализации Microsoft Virtual PC 2007 SP1, доступную по адресу:

» Microsoft Windows Server 2003 SP1 » также не находится.

Оцените статью