Модуляризация ядра

Kernel architecture questions
  • Violinier
    А ты читал исходники ядра? По-моему разноплановый код есть только в одном файле.
  • halyavin
    Конечно же читал. А как же иначе?
  • Тут еще вот такая проблема, ты же сам писал: Cтек находится по физическим адресам 0x20000-0x2ffff. Поэтому размер ядра не может превышать 128Kb, иначе стек затрет программу.

    А ядро у нас около сотни и скоро достигнет предела, если мы еще что-нибудь добавим.
  • Это уже пофиксено, стек ядра (при загрузке) сейчас находится по адресам 0x3EC00-(0x3EC00-сколько нужно). Так что на размер ядра теперь ограничение примерно в 180Kb. На данный момент используется 87Kb (размер ядра+размер неинициализированных данных).
    Violinier wrote:Конечно же читал. А как же иначе?
    Это хорошо, тогда можно говорить конструктивно. Какие именно файлы по-твоему содержат разноплановый код? Какой код было трудно найти, основываясь на именах файлов?
  • Какой код было трудно найти, основываясь на именах файлов?
    Найти код - одно, а разобраться в нем - другое.
    Например:
    При старте ядра мы переходим на метку start_of_code, находящуюся в файле BOOTCODE.INC.
    И далее работает код из этого файла.
    Мне до сих пор не понятно, куда мы переходим, когда код из файла BOOTCODE.INC закончит работу.
    Простите, если туплю.
  • Я всегда думал, мы переходим в kernel.asm на участок кода после строки "; CR0 Flags - Protected mode and Paging". Сейчас посмотрел внимательнее - оказалось, что в начале управление передается в bus/pci/pci16.inc, а затем уже в kernel.asm. Выяснить это можно взглянув на kernel16.inc - строка include "bus/pci/pci16.inc" идет после include "bootcode.inc", а сам kernel16.inc включается в файле kernel.asm перед строкой "; CR0 Flags - Protected mode and Paging".

    Действительно, не много нелогично получается... Думаю лучше поставить jmp на код в kernel.asm, а перед ним вызов процедуры из pci16.inc.
  • Действительно, не много нелогично получается...
    И таких "нелогичностей" очень много.
  • Подписываюсь на их рассылку :wink: .
  • Who is online

    Users browsing this forum: No registered users and 7 guests