Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт мар 28, 2017 3:33 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 44 сообщения ]  На страницу Пред. 1 2 3
Автор Сообщение
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Вт сен 27, 2011 3:52 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Вызов может и изящен, а реализация точно нет. После перехода на страничную память приходится делать громоздкий ремаппинг для копирования данных. Скорее надо заново проектировать весь мезанизм IPC.


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Вт сен 27, 2011 7:56 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 971
Упаковкой/распаковкой занимается помимо ядра ещё и приложение kpack (kerpack для ядра).


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср сен 28, 2011 7:01 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
Упаковкой занимается kpack, распаковкой - kunpack. Но последняя у меня есть только для винды и без исходиков. Интересно, что kpack весит 14 кил, а kunpack - всего 4.

Кстати, kunpack импортирует (из MSVCRT.dll) следующие функции:
Спойлер: Показать
Вложение:
kunpack.png
kunpack.png [ 2.65 КБ | 4696 просмотров ]


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср сен 28, 2011 7:06 am 
Kpack который в Колибри как запаковывает, так и распаковывает приложения, а также упаковывает и ядро. При всем при этом занимает 15 Кб (без упаковки).
Процедура распаковки намного проще, чем процедура упаковки - достаточно посмотреть в код.


Вернуться к началу
   
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср сен 28, 2011 10:22 am 
Не в сети

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

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


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср сен 28, 2011 11:55 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
dzavalishin
В unpacker.inc старый lzma распаковщик из 7z. Так что если взять оригинальные исходники должно работать.


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср сен 28, 2011 12:53 pm 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
Serge писал(а):
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 в Фантоме
СообщениеДобавлено: Ср сен 28, 2011 4:09 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Первые два инта точно. Третий содержит байт флагов. На форуме есть пост diamond-а на эту тему. На счёт lzma заголовка не знаю. Это надо упаковщик смотреть.


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср окт 12, 2011 1:28 am 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
Kolibri/kolibri_sys_dispatcher: Unimplemented Kolibri syscall eax = -239

= FFFFFFFFFFFFFF11

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


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср окт 12, 2011 1:31 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Повторить такое удаётся?


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср окт 12, 2011 10:08 am 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
core/syscall.inc писал(а):
movzx eax, al

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср окт 12, 2011 7:07 pm 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
mike.dld писал(а):
core/syscall.inc писал(а):
movzx eax, al

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


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср окт 19, 2011 6:04 am 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
mike.dld писал(а):
core/syscall.inc писал(а):
movzx eax, al

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

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


Вернуться к началу
 Заголовок сообщения: Re: Koilbri box в Фантоме
СообщениеДобавлено: Ср окт 19, 2011 9:47 am 
Если в старших битах гарантированно нули, то не придется, если другое - ну, ССЗБ экономия.


Вернуться к началу
   
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 44 сообщения ]  На страницу Пред. 1 2 3

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB