Честно говоря я не знаю как работают драйверы в системе.
Но, что если внедрить декодеры/кодеры bmp, gif, png, jpg и других форматов в ядро?
Но допустим не прям в ядро, а в виде драйверов, чтобы форматы можно было пристыковывать/отстыковывать при надобности.
И выделить какую нибудь функцию ядра которая взаимодействовала бы с этими драйверами через ядро.
Насколько мне известно, кодэки обычно реализуются на уровне прикладных библиотек. Есть ньюансы при реализации их аппаратного ускорения, но, скорее всего, это реализуется через какое-то общение с драйвером (точно не в курсе).
Я где-то видел пример использования libimg возможно в wiki... Если кто скинет ссылку будет замечательно.
Ну что сказать, чтобы её использовать потребуется наверно 200-300 байт машинного кода. Плюс программисту нужно в уме держать как эту библиотеку вызвать, обработать ошибку если ее нет... Колибри вроде как ассемблерная ось, зачем такие сложности? Я думаю в ядре нужно сделать некую универсальную точку входа для всех библиотек графического конвертирования или драйверов (что будет экономический выгоднее) в виде одной некоторой функции которая сама будет искать библиотеки из определенной папки и возиться с ними, если библиотеки нет возвращать ошибку и т.д. Вызов такой функции будет занимать 20-30 байт машинного кода и будет прозрачен для программиста и легок в применении.
На счет драйверов или библиотек, механизм должен быть расширяемый. Поэтому должно быть что-то вроде папки в которую скинуты все кодеры/декодеры, и если в снимке системы нужно освободить место, эти драйверы легко можно было-бы отсоединить или присоединить, по мере необходимости простым удалением из папки например или копированием в папку.
dunkaist wrote:If you find the current way of library loading inconvenient, it is still not a reason to put application libraries to the kernel.
Можно написать макрос и всё будет вполне удобно, просто работа с библиотекой будет занимать много места в программе, весь смысл ассемблерного компактного кода пропадает.
Kolibrius wrote:Умник Ray писал(а):
Спасибо за совет, языков программирования я знаю немало и так (в том числе и любимый кое-кем Паскаль, хотя и не писал на нем уже 100 лет).
И что в том сообщении тебя так задело? Тебя же там не было. А замечания были про откровенно кривые названия с грамматическими ошибками на английском.
Kolibrius wrote:Ваше мнение касаемо ядра меня мало интересует, продолжайте изучать Паскаль.
Чел, не поверишь твоё мнение относительно ядра тут тоже никем не ценится. А вот про то, что эта идея г пихать всё в ядро иди учиться в своей школе, вместе с твоим Паскалём.
Ray wrote:иди учиться в своей школе, вместе с твоим Паскалём.
Тебе как школьнику будет виднее, куда тебе идти со своим Паскалем. Тем более твой "сленг" явно уровня школьника.
Правильно Pathoswithin про тебя тогда сказал, ты любитель по умничать и ничего полезного не делать. Он тебя еще тогда раскусил. Ты обычный балабол. И я с ним полностью согласен. Да и мнение твое тут никогда не ценилось.
не надо тут разводить споры, по библиотекам и их загрузке, я вот как то не пойму, вам жалко пару сотен байт для загрузки библиотеки и неизвестно сколько байт(допустим 100) на таблицу импорта? я понимаю если бы размер существенно менялся по сравнению с вызовом функции, но в более больших проектах это не сыграет никак, ну какой толк от сотни двух сэкономленных байт если логика больше килобайта, да и использовать ядро как библиотеку не самый лучший вариант, так как переключение контекста очень трудоёмкая операция и в итоге программы начнут тормозить.(да и в чём проблема просто сделать call [console.init] например)
Kolibrius wrote:Ваше мнение касаемо ядра меня мало интересует, продолжайте изучать Паскаль.
Попросил ссылку, я её скинул, после чего ты влетаешь на агрессии. Много ли ты полезного сделал? Создал 3 темы как ты хочешь USB 3. Ну и кто тут малолетний балабол? Иди учи свой Паскаль.
Last edited by Ray on Mon Oct 25, 2021 3:33 am, edited 1 time in total.
Doczom wrote:не надо тут разводить споры, по библиотекам и их загрузке, я вот как то не пойму, вам жалко пару сотен байт для загрузки библиотеки и неизвестно сколько байт(допустим 100) на таблицу импорта? я понимаю если бы размер существенно менялся по сравнению с вызовом функции, но в более больших проектах это не сыграет никак, ну какой толк от сотни двух сэкономленных байт если логика больше килобайта, да и использовать ядро как библиотеку не самый лучший вариант, так как переключение контекста очень трудоёмкая операция и в итоге программы начнут тормозить.(да и в чём проблема просто сделать call [console.init] например)