Board.KolibriOS.org
https://board.kolibrios.org/

Koilbri box в Фантоме
https://board.kolibrios.org/viewtopic.php?f=7&t=1936
Page 3 of 3

Author:  Serge [ Tue Sep 27, 2011 3:52 pm ]
Post subject:  Re: Koilbri box в Фантоме

Вызов может и изящен, а реализация точно нет. После перехода на страничную память приходится делать громоздкий ремаппинг для копирования данных. Скорее надо заново проектировать весь мезанизм IPC.

Author:  Asper [ Tue Sep 27, 2011 7:56 pm ]
Post subject:  Re: Koilbri box в Фантоме

Упаковкой/распаковкой занимается помимо ядра ещё и приложение kpack (kerpack для ядра).

Author:  Albom [ Wed Sep 28, 2011 7:01 am ]
Post subject:  Re: Koilbri box в Фантоме

Упаковкой занимается kpack, распаковкой - kunpack. Но последняя у меня есть только для винды и без исходиков. Интересно, что kpack весит 14 кил, а kunpack - всего 4.

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

Author:  Mario [ Wed Sep 28, 2011 7:06 am ]
Post subject:  Re: Koilbri box в Фантоме

Kpack который в Колибри как запаковывает, так и распаковывает приложения, а также упаковывает и ядро. При всем при этом занимает 15 Кб (без упаковки).
Процедура распаковки намного проще, чем процедура упаковки - достаточно посмотреть в код.

Author:  dzavalishin [ Wed Sep 28, 2011 10:22 am ]
Post subject:  Re: Koilbri box в Фантоме

Mario wrote:
Kpack который в Колибри как запаковывает, так и распаковывает приложения, а также упаковывает и ядро. При всем при этом занимает 15 Кб (без упаковки).
Процедура распаковки намного проще, чем процедура упаковки - достаточно посмотреть в код.

Всё равно переписывать её на си и потом ловить баги - немаленькая война. :( Неужели в виндовых эмуляторах не было сишного распаковщика?

Author:  Serge [ Wed Sep 28, 2011 11:55 am ]
Post subject:  Re: Koilbri box в Фантоме

dzavalishin
В unpacker.inc старый lzma распаковщик из 7z. Так что если взять оригинальные исходники должно работать.

Author:  dzavalishin [ Wed Sep 28, 2011 12:53 pm ]
Post subject:  Re: Koilbri box в Фантоме

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

Author:  Serge [ Wed Sep 28, 2011 4:09 pm ]
Post subject:  Re: Koilbri box в Фантоме

Первые два инта точно. Третий содержит байт флагов. На форуме есть пост diamond-а на эту тему. На счёт lzma заголовка не знаю. Это надо упаковщик смотреть.

Author:  dzavalishin [ Wed Oct 12, 2011 1:28 am ]
Post subject:  Re: Koilbri box в Фантоме

Kolibri/kolibri_sys_dispatcher: Unimplemented Kolibri syscall eax = -239

= FFFFFFFFFFFFFF11

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

Author:  SoUrcerer [ Wed Oct 12, 2011 1:31 am ]
Post subject:  Re: Koilbri box в Фантоме

Повторить такое удаётся?

Author:  mike.dld [ Wed Oct 12, 2011 10:08 am ]
Post subject:  Re: Koilbri box в Фантоме

core/syscall.inc wrote:
movzx eax, al

Author:  dzavalishin [ Wed Oct 12, 2011 7:07 pm ]
Post subject:  Re: Koilbri box в Фантоме

mike.dld wrote:
core/syscall.inc wrote:
movzx eax, al

Ах, вот оно что! Спасибо.

Author:  Joaquin [ Wed Oct 19, 2011 6:04 am ]
Post subject:  Re: Koilbri box в Фантоме

mike.dld wrote:
core/syscall.inc wrote:
movzx eax, al

Калькулятор надо подправить. В документации сказано, что номер функции нужно передавать в eax, а не в al. Хотя, да, в обработчике прерывания 0x40 есть "movzx eax, al" (но я так думаю это чтобы процесс (а в некоторых случаях и ядро вместе с ним) не падал из-за некорректного вызова, потому что размер таблицы servetable2 = 256*4 байт).

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

Author:  Mario [ Wed Oct 19, 2011 9:47 am ]
Post subject:  Re: Koilbri box в Фантоме

Если в старших битах гарантированно нули, то не придется, если другое - ну, ССЗБ экономия.

Page 3 of 3 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/