Новая модель ядра

Kernel architecture questions
  • diamond
    Программам вообще не нельзя давать доступ к портам. Надо закрыть системные порты ( PIC, PIT, PS/2, DMA, IDE, FDC, CMOS и т.п) для доступа а всё остальное разрешить. А с резервированием и ф. 46 это никак не связано.
  • Serge wrote:Надо закрыть системные порты для доступа а всё остальное разрешить.
    Не понял - предлагается вообще отменить резервирование портов и разрешить in/out в любые порты кроме системных без всяких действий проги?
    Если два экземпляра kbd или kbd+аналогичная программа (буде такая появится) полезут одновременно на один и тот же порт - точно будут глюки.
  • Разделить резервирование портов и битовую карту. Сделать ещё одну битовую карту зарезервированных портов общую для всех программ.
  • Не понимаю... Вот есть область памяти 0x920000 - 0xB28000, "TSS and IO map for (8192*8)=65536 ports". Что предлагается сделать с этой областью?
  • Нет смысла говорить о безопасности системы если доступ к портам может получить любая программа. Лучше всего когда с портами работает драйвер устройства. Это самый безопасный способ.

    С второй битовой картой не получится, но её заменяет область резервирования портов. Вариант похож на существующий но с общей битовой картой. Программа резервирует порт и если получает отказ значит он уже зарезервирован к нему не следует обращаться. Общая битовая карта будет обновляться при резервировании и освобождении портов. Да это ещё снизит надёжность системы но сэкономит 2 Мб ОЗУ.

    P.S. О безопасности.
    В документации написано что резервируется диапазон COM-портов а про IDE забыли.
    Для проверки получил доступ к 0x1F0-0x1F7.
    Напишу-ка я вирус...
  • Ктонибудь знает зачем в ядре резервируется диапазон портов 0x0 - 0xFF (см. reserve_irqs_ports)? мне например нужны порты 0xE0 и 0xE4, к irq они отношения никакого не имеют, как и большинство портов из этого диапазона.
  • Ghost
    Этот диапазон закреплён за материнской платой. Наверное поэтому.
  • И как к ним получить доступ? В обычных компах там (0xE0 и 0xE4) нет ничего, а вот на ABIT`ах там висит uGuru. Прейдётся править ядро.
  • Ghost
    Напиши драйвер. Пусть он работает не только с этими портами а со всем необходимым ему железом. А программа-клиент посылает ему команды и получает о т него готовые данные.
  • http://infinity-sound.narod.ru/kernel214.7z
    исправлены старые (не)работающие ошибки и добавлены новые:)

    Должно загружаться на старых компах с которыми были проблемы. Исправлена потенциальная ошибка с загрузкой неправильного контекста SSE. Система инициализирует по умолчанию fpu/sse для каждого создаваемого потока.

    исправлена работа ati2d в режиме 1280х1024х32. Можно устанавливать свой курсор /rd/1/user.cur. Курсор должен быть в формате WIN 32х32 16 цветов.
    В /drivers добавлена заготовка драйвера.

    Все исходники на svn.
    Для версии 214 необходимо перекомпилировать драйверы.
  • Serge
    На Cyrix останавливается загрузка после надписи Reading TSC
    На AMD64 после запуска плеера, не срабатывает выключение компьютера (перезагрузка обычная и из памяти работает), если плеер не запускать, то компер нормально выключается.
  • Mario79
    Баг с Cyrix исправлю, там пропущено определение флагов cpuid.

    Не выключается с каким ядром - 213-214 ? А раньше работало ?
  • Не выключается с тем ядром, которое ты выложил здесь.
    На ядре 207 все нормально более старшие не пробовал.
  • у меня тоже очень часто останавливается на Reading TSC :( (ядро 213). Гружусь из образа на разделе NTFS, но это не должно ни на что влиять... Пошел тестить ядро 214...
  • Who is online

    Users browsing this forum: No registered users and 8 guests