Page 2 of 2

Re: Предложения по коррекции программного интерфейса ядра

Posted: Fri Sep 21, 2012 9:05 pm
by FireWall
Ещё раз о , так скажем, eax -> al

Цитата: "не будет этого, аминь."

На самом деле только сейчас имеется (недокументированная!) возможность использовать старшие байты eax для чего-то ещё. Если задокументировать ситуацию de facto (как я рекомендовал ранее), то такая возможность пропадёт, ибо макрос mcall может быть изменён так, что в программах в старших байтах eax начнёт храниться мусор. Документировать это de facto всё равно надо, однако в документацию некоторых функций надо будет внести примечание: "Для будущей совместимости надо обнулять старшие байты eax, например, посредством "xor eax, eax", ибо в будущем ah может быть использован для номера подфункций." Первая кандидатура : SysFn9 (смело снизить требуемы размер буфера до 128 байт, против нынешних 1024)

P.S.

Надо ещё подумать - нет ли каких-то неучтённых "подводных камней" - спасибо art_zh за блестящую интуицию!

Re: Предложения по коррекции программного интерфейса ядра

Posted: Sat Sep 22, 2012 7:13 pm
by FireWall
Провёл экспресс поиск по дистрибутиву на предмет использования "устаревших" системных функций:

Hdread использует SysFn58. (Наконец, одно приложение найдено :) )

Ghost Monitor (./Gmon) использует SysFn46 (зарезервировать, освободить группу портов).
Hdd_info также использует SysFn46

./Network/Tftpc использует SysFn6 (чтение из RAM-диска). (Можно предположить, что её используют и другие сетевые приложения - я их просто не протестировал в режиме чтения/записи файла)

Приложения, использующие SysFn64:
./3d/Cubeline
./3d/Gears
./3d/View3ds
./Demos/Life2
./File managers/Kfm
./Games/Kosilka
./Games/Megamaze
./Games/Rforces
./Games/Xonix

Re: Предложения по коррекции программного интерфейса ядра

Posted: Tue Sep 25, 2012 9:55 am
by Ghost
Извиняюсь, я тут многое пропустил, ткните пальцем почему
Функция 46 - зарезервировать/освободить группу портов ввода/вывода. Объявлена устаревшей!

Re: Предложения по коррекции программного интерфейса ядра

Posted: Tue Sep 25, 2012 10:15 am
by art_zh
Привет,

если еще не в курсе, то за прошедшие без тебя 3 года наметились две четкие тенденции: одни люди пилят ядро в сторону десктопа, другие (хотя о них несколько нескромно говорить во мн. числе) - затачивают Колибри для встраиваемых приложений.

1-я генеральная линия предусматривает повсеместное введение ACPI, глухой системной защиты и других печенек. При таком подходе от пользователя закрываются не только порты, но и PCI-сервис и еще многое другое. Всё - в драйверы.

2-й подход можно выразить как "ничего лишнего, и ближе к железу!". Предполагается, что пользователь не идиот и понимает чего нельзя делать с конфигурационным пространством, портами, MMIO, и DMA. Все в его руках.

Очевидно, что ни первым, ни вторым 40-е функции нафиг не нужны.

Re: Предложения по коррекции программного интерфейса ядра

Posted: Tue Sep 25, 2012 11:10 am
by FireWall
Что-то я не могу найти исходники Hdread ... :(

Re: Предложения по коррекции программного интерфейса ядра

Posted: Tue Sep 25, 2012 12:03 pm
by Mario
Автор их никогда не выкладывал.