Page 10 of 31

Posted: Fri Nov 17, 2006 3:52 pm
by diamond
Идея насчёт одной битовой карты разрешения ввода-вывода для всех задач мне не нравится. Во-первых, это снижает безопасность системы, во-вторых, может породить глюки, когда две задачи лезут на один порт, не проверив возвращаемое значение у функции 46.

Posted: Fri Nov 17, 2006 5:05 pm
by Serge
diamond
Программам вообще не нельзя давать доступ к портам. Надо закрыть системные порты ( PIC, PIT, PS/2, DMA, IDE, FDC, CMOS и т.п) для доступа а всё остальное разрешить. А с резервированием и ф. 46 это никак не связано.

Posted: Fri Nov 17, 2006 5:14 pm
by diamond
Serge wrote:Надо закрыть системные порты для доступа а всё остальное разрешить.
Не понял - предлагается вообще отменить резервирование портов и разрешить in/out в любые порты кроме системных без всяких действий проги?
Если два экземпляра kbd или kbd+аналогичная программа (буде такая появится) полезут одновременно на один и тот же порт - точно будут глюки.

Posted: Fri Nov 17, 2006 5:22 pm
by Serge
Разделить резервирование портов и битовую карту. Сделать ещё одну битовую карту зарезервированных портов общую для всех программ.

Posted: Fri Nov 17, 2006 5:32 pm
by diamond
Не понимаю... Вот есть область памяти 0x920000 - 0xB28000, "TSS and IO map for (8192*8)=65536 ports". Что предлагается сделать с этой областью?

Posted: Sat Nov 18, 2006 9:58 am
by Serge
Нет смысла говорить о безопасности системы если доступ к портам может получить любая программа. Лучше всего когда с портами работает драйвер устройства. Это самый безопасный способ.

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

P.S. О безопасности.
В документации написано что резервируется диапазон COM-портов а про IDE забыли.
Для проверки получил доступ к 0x1F0-0x1F7.
Напишу-ка я вирус...

Posted: Sat Nov 18, 2006 9:31 pm
by Ghost
Ктонибудь знает зачем в ядре резервируется диапазон портов 0x0 - 0xFF (см. reserve_irqs_ports)? мне например нужны порты 0xE0 и 0xE4, к irq они отношения никакого не имеют, как и большинство портов из этого диапазона.

Posted: Sun Nov 19, 2006 1:44 am
by Serge
Ghost
Этот диапазон закреплён за материнской платой. Наверное поэтому.

Posted: Sun Nov 19, 2006 3:16 pm
by Ghost
И как к ним получить доступ? В обычных компах там (0xE0 и 0xE4) нет ничего, а вот на ABIT`ах там висит uGuru. Прейдётся править ядро.

Posted: Sun Nov 19, 2006 3:26 pm
by Serge
Ghost
Напиши драйвер. Пусть он работает не только с этими портами а со всем необходимым ему железом. А программа-клиент посылает ему команды и получает о т него готовые данные.

Posted: Mon Nov 20, 2006 10:22 am
by Serge
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 необходимо перекомпилировать драйверы.

Posted: Tue Nov 21, 2006 11:36 am
by Mario79
Serge
На Cyrix останавливается загрузка после надписи Reading TSC
На AMD64 после запуска плеера, не срабатывает выключение компьютера (перезагрузка обычная и из памяти работает), если плеер не запускать, то компер нормально выключается.

Posted: Tue Nov 21, 2006 2:57 pm
by Serge
Mario79
Баг с Cyrix исправлю, там пропущено определение флагов cpuid.

Не выключается с каким ядром - 213-214 ? А раньше работало ?

Posted: Tue Nov 21, 2006 4:55 pm
by Mario79
Не выключается с тем ядром, которое ты выложил здесь.
На ядре 207 все нормально более старшие не пробовал.

Posted: Tue Nov 21, 2006 8:07 pm
by Wildwest
у меня тоже очень часто останавливается на Reading TSC :( (ядро 213). Гружусь из образа на разделе NTFS, но это не должно ни на что влиять... Пошел тестить ядро 214...