Page 1 of 1

Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Mon Jul 04, 2022 11:39 am
by EAX
Какое-то простое решение вроде:

eax - номер функции
ebx - формат что-то вроде dword ' png'
edx - ссылка на буффер ... байт для декодирования
esi - адрес источника
edi - адрес для раскодированного изображения

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Mon Jul 04, 2022 11:49 am
by Leency
Сделать это на уровне ядра будет не правильно.
Конвертирование в PNG/BMP с ограничениями есть в библиотеке libimg.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Mon Jul 04, 2022 11:56 am
by EAX
Обращение к библиотеке скорее всего занимает много байт машинного кода.
Хотелось бы простое решение в ассемблерном стиле типа int 40 и menuet os.
В конце концов есть же функции для от рисовки прямоугольников, линий и прочих мелочей.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Mon Jul 04, 2022 1:46 pm
by Leency
Одно дело примитивы, другое дело высокоуровневые вещи.
Это не будет сделано в ядре.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Mon Jul 04, 2022 3:28 pm
by EAX
Ядро может также ссылаться на библиотеку.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Mon Jul 04, 2022 3:31 pm
by EAX
Ну ладно, тогда ничего спонсировать не буду.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Tue Jul 05, 2022 10:43 am
by Doczom
вот объясните зачем это в ядре, ядро на мой взгляд итак перегружено достаточно бесполезными вещами а тут ещё и добавление декодирование туда добавить хотите.
Аргументы против: так как это будет в ядре, использоваться SSE MMX инструкции точно не будут, для того чтобы всё на пентиуме первом работало, при декодировании это займёт больше времени чем при использовании библиотеки(это связано с переключением контекста), это может стать потенциальной проблемой безопасности, из за которой ядро станет нестабильным
Аргументы за: Проще для ассемблерных программ

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Tue Jul 05, 2022 2:40 pm
by rgimad
EAX wrote:Обращение к библиотеке скорее всего занимает много байт машинного кода.
Хотелось бы простое решение в ассемблерном стиле типа int 40 и menuet os.
В конце концов есть же функции для от рисовки прямоугольников, линий и прочих мелочей.
> Обращение к библиотеке скорее всего занимает много байт машинного кода.
А теперь сравните сколько по времени займет вызов загруженной библиотечной функции и вызов системной функции ядра (затраты на переключение контекста).
Часто бывает, что стараясь уменьшить размер кода, получается проигрыш в производительности. Здесь как раз этот случай.
Еще один аргумент: добавляя в ядро вещи вроде декодера картинок, появляются новые возможности для атаки.
Подсунул ядру заведомо некорректную картинку - исполнится произвольный код в пространстве ядра или в лучшем случае система упадет.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 11:32 am
by EAX
Doczom wrote:вот объясните зачем это в ядре, ядро на мой взгляд итак перегружено достаточно бесполезными вещами а тут ещё и добавление декодирование туда добавить хотите.
Аргументы против: так как это будет в ядре, использоваться SSE MMX инструкции точно не будут, для того чтобы всё на пентиуме первом работало, при декодировании это займёт больше времени чем при использовании библиотеки(это связано с переключением контекста), это может стать потенциальной проблемой безопасности, из за которой ядро станет нестабильным
Аргументы за: Проще для ассемблерных программ
Можно простейший декодер на основных непривилегированных командах. Можно так же один декодер например png.
Возможно подводные камни есть.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 11:38 am
by EAX
rgimad wrote:
EAX wrote:Обращение к библиотеке скорее всего занимает много байт машинного кода.
Хотелось бы простое решение в ассемблерном стиле типа int 40 и menuet os.
В конце концов есть же функции для от рисовки прямоугольников, линий и прочих мелочей.
> Обращение к библиотеке скорее всего занимает много байт машинного кода.
А теперь сравните сколько по времени займет вызов загруженной библиотечной функции и вызов системной функции ядра (затраты на переключение контекста).
Часто бывает, что стараясь уменьшить размер кода, получается проигрыш в производительности. Здесь как раз этот случай.
Еще один аргумент: добавляя в ядро вещи вроде декодера картинок, появляются новые возможности для атаки.
Подсунул ядру заведомо некорректную картинку - исполнится произвольный код в пространстве ядра или в лучшем случае система упадет.
При большом желании наверняка есть и другие способы обрушить ядро.
Думаю что машинный код функции декодирования занимает около 200-400 байт, вызов библиотеки может чуть меньше но не намного.
Т.е. что сам декодер вставить в код, что библиотеку вызвать разница небольшая.
Короче я не настаиваю.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 11:43 am
by EAX
Да... трындец вы токсичные ребята. Теперь понятно, почему в проекте так мало участников, и застой уже с десяток лет.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 5:36 pm
by rgimad
EAX wrote:Можно простейший декодер на основных непривилегированных командах. Можно так же один декодер например png.
Возможно подводные камни есть.
> непривилегированных командах
Имеет значение привилегированный РЕЖИМ или нет.
Та же команда mov не является привилегированной, но в режиме ядра доступ ко всей памяти ядра имеет.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 5:41 pm
by rgimad
EAX wrote:Да... трындец вы токсичные ребята. Теперь понятно, почему в проекте так мало участников, и застой уже с десяток лет.
Так ты же первый резко кинул фразу
EAX wrote:Ну ладно, тогда ничего спонсировать не буду.
не обсудив спокойно и аргументированно.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 5:53 pm
by Leency
EAX

Я сам спонсирую проект Колибри и потратил на это более 1000$. Спонсировать - это не покупать. Ты не первый кто приходит и думает, что может здесь кого-то купить.

Обида - это манипуляция. Ты решил нами манипулировать? Мы должны расстроиться, что ты не будешь спонсировать? Если умные люди сказали "нет" - прими это. Ты не хочешь чтобы проект стал лучше, а хочешь удовлетворения своих капризов. Кто так поступает? Ребенок.
Ты получил ответ должно твоему поведению.

Ты пришёл к нам в дом и хотел навязать свои правила. А так кто делает? Тут я промолчу.
Получив жесткий ответ, ты продолжил разговор не со мной, а обрушился критикой на весь проект, который не принял твои гениальные идеи.
Просто уходи и не позорься.

Re: Хотелось бы функцию декодирования png, gif на уровне ядра.

Posted: Wed Jul 06, 2022 8:16 pm
by Leency
Вряд ли кто помнит, что был такой персонаж сссp, как и EAX.

Его первое сообщение:
4 января я перечислил 30 долларов компании Файерфокс, я пользуюсь ихним браузером и доволен. потом получил письмо от них, благодарственное, мол, нам нужно было всего 250 к долларов но благодаря тебе у нас их уже 327340 типа того. к чему я пишу эти вещи, я бы спокойно мог перечислить те же 30 долларов на поддержку разработки Kolibri, и таких как я очень много, потому что я верю что у колибри есть сильные стороны, и есть люди которых можно в этом убедить. вопрос не в том чтоб заработать больше чем б гейтс а в том чтоб интернет стал общедоступным, свободным и дешевым. вот такая у меня идея на утро 8 января, 2013 (предупреждаю, вчера я много не пил :D)
Следующее его сообщение - уже целая тема со списком хотелкок (держите в уме, что он готов пожертвовать 30$).

Следующее его сообщение в том же треде:
я лично не предлагаю таких денег никому, но прочитав некоторые настроения форумчан подумал что неплохо было бы подумать в ключе что быть беременным только чуть-чуть ни у кого не получилось до сих пор. потому-то и иметь 'серьезный продукт' лучше чем иметь 'просто экспериментальный'. но, дело ваше, кто как смотрит вперед...
Т.е. мы нихера не шарим что делаем и без его гениального виденья ситуации пропадём.
Screenshot_2.png
Screenshot_2.png (64.14 KiB)
Viewed 5238 times
Норм?)

Чем всё закончилось попробуйте угадать.