Page 3 of 3

Re: Koilbri box в Фантоме

Posted: Tue Sep 27, 2011 3:52 pm
by Serge
Вызов может и изящен, а реализация точно нет. После перехода на страничную память приходится делать громоздкий ремаппинг для копирования данных. Скорее надо заново проектировать весь мезанизм IPC.

Re: Koilbri box в Фантоме

Posted: Tue Sep 27, 2011 7:56 pm
by Asper
Упаковкой/распаковкой занимается помимо ядра ещё и приложение kpack (kerpack для ядра).

Re: Koilbri box в Фантоме

Posted: Wed Sep 28, 2011 7:01 am
by Albom
Упаковкой занимается kpack, распаковкой - kunpack. Но последняя у меня есть только для винды и без исходиков. Интересно, что kpack весит 14 кил, а kunpack - всего 4.

Кстати, kunpack импортирует (из MSVCRT.dll) следующие функции:
Spoiler:
kunpack.png
kunpack.png (2.65 KiB)
Viewed 12972 times

Re: Koilbri box в Фантоме

Posted: Wed Sep 28, 2011 7:06 am
by Mario
Kpack который в Колибри как запаковывает, так и распаковывает приложения, а также упаковывает и ядро. При всем при этом занимает 15 Кб (без упаковки).
Процедура распаковки намного проще, чем процедура упаковки - достаточно посмотреть в код.

Re: Koilbri box в Фантоме

Posted: Wed Sep 28, 2011 10:22 am
by dzavalishin
Mario wrote:Kpack который в Колибри как запаковывает, так и распаковывает приложения, а также упаковывает и ядро. При всем при этом занимает 15 Кб (без упаковки).
Процедура распаковки намного проще, чем процедура упаковки - достаточно посмотреть в код.
Всё равно переписывать её на си и потом ловить баги - немаленькая война. :( Неужели в виндовых эмуляторах не было сишного распаковщика?

Re: Koilbri box в Фантоме

Posted: Wed Sep 28, 2011 11:55 am
by Serge
dzavalishin
В unpacker.inc старый lzma распаковщик из 7z. Так что если взять оригинальные исходники должно работать.

Re: Koilbri box в Фантоме

Posted: Wed Sep 28, 2011 12:53 pm
by dzavalishin
Serge wrote:dzavalishin
В unpacker.inc старый lzma распаковщик из 7z. Так что если взять оригинальные исходники должно работать.
Я правильно понимаю, что заголовок KPACK файла - это два инта - KPCK и размер непакованного файла? Идёт ли вслед за этим lzma заголовок? (В нём тоже есть размер несжатого файла...)

LZMA compressed file format
---------------------------
Offset Size Description
0 1 Special LZMA properties (lc,lp, pb in encoded form)
1 4 Dictionary size (little endian)
5 8 Uncompressed size (little endian). -1 means unknown size

Re: Koilbri box в Фантоме

Posted: Wed Sep 28, 2011 4:09 pm
by Serge
Первые два инта точно. Третий содержит байт флагов. На форуме есть пост diamond-а на эту тему. На счёт lzma заголовка не знаю. Это надо упаковщик смотреть.

Re: Koilbri box в Фантоме

Posted: Wed Oct 12, 2011 1:28 am
by dzavalishin
Kolibri/kolibri_sys_dispatcher: Unimplemented Kolibri syscall eax = -239

= FFFFFFFFFFFFFF11

что бы это значило? Калькулятор такое позвал. Хотел харакири сделать?

Re: Koilbri box в Фантоме

Posted: Wed Oct 12, 2011 1:31 am
by SoUrcerer
Повторить такое удаётся?

Re: Koilbri box в Фантоме

Posted: Wed Oct 12, 2011 10:08 am
by mike.dld
core/syscall.inc wrote:movzx eax, al

Re: Koilbri box в Фантоме

Posted: Wed Oct 12, 2011 7:07 pm
by dzavalishin
mike.dld wrote:
core/syscall.inc wrote:movzx eax, al
Ах, вот оно что! Спасибо.

Re: Koilbri box в Фантоме

Posted: Wed Oct 19, 2011 6:04 am
by Joaquin
mike.dld wrote:
core/syscall.inc wrote:movzx eax, al
Калькулятор надо подправить. В документации сказано, что номер функции нужно передавать в eax, а не в al. Хотя, да, в обработчике прерывания 0x40 есть "movzx eax, al" (но я так думаю это чтобы процесс (а в некоторых случаях и ядро вместе с ним) не падал из-за некорректного вызова, потому что размер таблицы servetable2 = 256*4 байт).

З.Ы. Если когда-нибудь будет использоваться более 256 функций (не дай бог :evil:) придётся переписывать все программы, использующие этот грязный хряк хак.

Re: Koilbri box в Фантоме

Posted: Wed Oct 19, 2011 9:47 am
by Mario
Если в старших битах гарантированно нули, то не придется, если другое - ну, ССЗБ экономия.