Page 5 of 18

Posted: Thu Jun 15, 2006 5:02 pm
by willow
ну... тогда мочи

Posted: Thu Jun 15, 2006 6:55 pm
by mike.dld
diamond
Проблема не в том, что путь будет длинным, а в том, что Tinypad использует функцию 58 (не 70). Думаю, изменения будут минимальными.

Posted: Thu Jun 15, 2006 9:24 pm
by Mario79
diamond
Никто не против удаления подфункций 12, 13, 14 функции 58? Их всех заменяет 70.5, я не знаю программ, использующих эти подфункции, кроме того, они не поддерживаются для дискет.
Давай оставим этот вопрос до того момента как перепишем все приложения под 70 функцию.
На очереди подфункция 7 - запуск файла с длинным именем. Тут есть две концептуальные трудности:
1) Переписать функции работы с файловой системой не настолько сложно, так что это решаемо.
2) Есть варианты: а) производить отсечение имени, б) переписывать все приложение. Первое быстрей и проще, второе дольше и сложней. В общем надо подумать.

Posted: Tue Jun 20, 2006 3:18 pm
by diamond
Удалены подфункции 12, 13, 14. Если какие-то приложения перестанут работать - будем разбираться.
В общем надо подумать.
Ну так давайте подумаем :P Для этого я и задал вопрос.

Posted: Tue Jun 20, 2006 5:27 pm
by Mario79
diamond
Ну, я больше склоняюсь к тому, что лучше переписать приложения использующие путь. Вроде бы кроме Tinypad написанного mike.dld других приложений нету.
Отсечение имен все же не катит.

Posted: Tue Jun 20, 2006 5:33 pm
by diamond
По поводу пути - на самом деле если имена папок укладываются в 8.3 байта, то можно использовать как 58-ю, так и 70-ю функцию. Так что частично работать будет. А вот что с именем процесса? Этот вопрос поважнее будет.

Posted: Tue Jun 20, 2006 6:45 pm
by Mario79
diamond
А почему обязательно имя процесса должно совпадать с именем файла? Можно урезать, до нужного числа символов и вообще вроде важен PID процесса, а не имя.

Posted: Tue Jun 20, 2006 6:51 pm
by diamond
Mario79
А для чего оно вообще введено? Чтобы на панели и в списке процессов можно было узнать нужный процесс. А также некоторые программы могут ориентироваться на имя и, скажем, если запущен процесс cmd, то найти его PID и далее общаться с ним по IPC.

Posted: Tue Jun 20, 2006 7:27 pm
by Mario79
diamond
Ну, а что ты сам тогда предложишь, кроме урезания имени? Переделывать всю структуру, реализованную в ядре? Хлопотное дело будет.

Posted: Tue Jun 20, 2006 7:51 pm
by diamond
Ни в коем случае! Кстати, я ничего и не предлагаю... Об урезании: что делать с расширением? В текущей реализации расширение (если есть) записывается в последние 3 (из 11) символов. Кажется, @panel на расширение забивает. Что происходит в cpu, я просто не знаю (просветите, а?)

Posted: Tue Jun 20, 2006 8:21 pm
by Mario79
diamond
Дело в том, что у исполняемых файлов нету расширения. :-)
И соответственно имя записывается, как есть.
CPU выводит ровно то, что получает от функции 9.

Posted: Tue Jun 20, 2006 8:23 pm
by diamond
Тем не менее ничего не мешает запустить файл 1.bin (конечно, если он окажется Kolibri-приложением).

Posted: Tue Jun 20, 2006 8:55 pm
by Mario79
diamond
Обычно первичная фильтрация производиться на уровне файловых приложений. Вторичная как сам понимаешь за счет проверки в ядре.
В любом случае таких вопросов ранее никто не задавал и соответственно тема не исследована.

Posted: Mon Jun 26, 2006 3:27 pm
by diamond
Теперь функция 70 умеет работать с папками на рамдиске.
Добавлена функция 70.7 запуска приложений. Замечания:
1. Путь (если он требуется) передаётся "как есть", т.е. как его передало 70-й функции запускающее приложение. При этом длина пути с учётом завершающего нуля не может превосходить 1024 символов (иначе вызов 70-й функции провалится).
2. Файл загружается целиком.
3. Гарантированно обнуляется вся память после конца файла. Для 19-й и 58-й функций неопределено состояние последнего 512-байтного блока. Т.е. если файл занимает 800 байт, то при запуске 19-й или 58-й функцией 224 байта после его конца неопределены (обычно там нули, но полагаться на это нельзя).
(Дальше следуют замечания по реализации)
4. Помещать вызов *fileread в блоки cli/sti (cli/safe_sti для рамдиска), как это сделано в старых функциях, я не стал, поскольку это вообще не нужно.
5. В newproce.inc наряду с тремя старыми функциями для rd, fd, hd появилась одна новая, унифицированная.

Posted: Mon Jun 26, 2006 5:57 pm
by Mario79
diamond
Есть вопросы по твоим пунктам:
1. Почему только 1024? ИМХО мало, надо хоть подогнать под размер сегмента тогда и сделать 4096 хотя бы.
3. Обнуляется только до конца сегмента или вся рабочая память запрошенная под приложение?