Новая модель ядра
-
Идея насчёт одной битовой карты разрешения ввода-вывода для всех задач мне не нравится. Во-первых, это снижает безопасность системы, во-вторых, может породить глюки, когда две задачи лезут на один порт, не проверив возвращаемое значение у функции 46.
diamond
Программам вообще не нельзя давать доступ к портам. Надо закрыть системные порты ( PIC, PIT, PS/2, DMA, IDE, FDC, CMOS и т.п) для доступа а всё остальное разрешить. А с резервированием и ф. 46 это никак не связано.
Программам вообще не нельзя давать доступ к портам. Надо закрыть системные порты ( PIC, PIT, PS/2, DMA, IDE, FDC, CMOS и т.п) для доступа а всё остальное разрешить. А с резервированием и ф. 46 это никак не связано.
Не понял - предлагается вообще отменить резервирование портов и разрешить in/out в любые порты кроме системных без всяких действий проги?Serge wrote:Надо закрыть системные порты для доступа а всё остальное разрешить.
Если два экземпляра kbd или kbd+аналогичная программа (буде такая появится) полезут одновременно на один и тот же порт - точно будут глюки.
Разделить резервирование портов и битовую карту. Сделать ещё одну битовую карту зарезервированных портов общую для всех программ.
Не понимаю... Вот есть область памяти 0x920000 - 0xB28000, "TSS and IO map for (8192*8)=65536 ports". Что предлагается сделать с этой областью?
Нет смысла говорить о безопасности системы если доступ к портам может получить любая программа. Лучше всего когда с портами работает драйвер устройства. Это самый безопасный способ.
С второй битовой картой не получится, но её заменяет область резервирования портов. Вариант похож на существующий но с общей битовой картой. Программа резервирует порт и если получает отказ значит он уже зарезервирован к нему не следует обращаться. Общая битовая карта будет обновляться при резервировании и освобождении портов. Да это ещё снизит надёжность системы но сэкономит 2 Мб ОЗУ.
P.S. О безопасности.
В документации написано что резервируется диапазон COM-портов а про IDE забыли.
Для проверки получил доступ к 0x1F0-0x1F7.
Напишу-ка я вирус...
С второй битовой картой не получится, но её заменяет область резервирования портов. Вариант похож на существующий но с общей битовой картой. Программа резервирует порт и если получает отказ значит он уже зарезервирован к нему не следует обращаться. Общая битовая карта будет обновляться при резервировании и освобождении портов. Да это ещё снизит надёжность системы но сэкономит 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 необходимо перекомпилировать драйверы.
исправлены старые (не)работающие ошибки и добавлены новые:)
Должно загружаться на старых компах с которыми были проблемы. Исправлена потенциальная ошибка с загрузкой неправильного контекста SSE. Система инициализирует по умолчанию fpu/sse для каждого создаваемого потока.
исправлена работа ati2d в режиме 1280х1024х32. Можно устанавливать свой курсор /rd/1/user.cur. Курсор должен быть в формате WIN 32х32 16 цветов.
В /drivers добавлена заготовка драйвера.
Все исходники на svn.
Для версии 214 необходимо перекомпилировать драйверы.
Serge
На Cyrix останавливается загрузка после надписи Reading TSC
На AMD64 после запуска плеера, не срабатывает выключение компьютера (перезагрузка обычная и из памяти работает), если плеер не запускать, то компер нормально выключается.
На Cyrix останавливается загрузка после надписи Reading TSC
На AMD64 после запуска плеера, не срабатывает выключение компьютера (перезагрузка обычная и из памяти работает), если плеер не запускать, то компер нормально выключается.
Mario79
Баг с Cyrix исправлю, там пропущено определение флагов cpuid.
Не выключается с каким ядром - 213-214 ? А раньше работало ?
Баг с Cyrix исправлю, там пропущено определение флагов cpuid.
Не выключается с каким ядром - 213-214 ? А раньше работало ?
Не выключается с тем ядром, которое ты выложил здесь.
На ядре 207 все нормально более старшие не пробовал.
На ядре 207 все нормально более старшие не пробовал.
у меня тоже очень часто останавливается на Reading TSC
(ядро 213). Гружусь из образа на разделе NTFS, но это не должно ни на что влиять... Пошел тестить ядро 214...
Who is online
Users browsing this forum: No registered users and 8 guests