Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Jul 07, 2022 3:47 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Mon Oct 18, 2021 9:47 pm 
Offline

Joined: Wed Sep 22, 2021 9:36 pm
Posts: 26
Честно говоря я не знаю как работают драйверы в системе.
Но, что если внедрить декодеры/кодеры bmp, gif, png, jpg и других форматов в ядро?
Но допустим не прям в ядро, а в виде драйверов, чтобы форматы можно было пристыковывать/отстыковывать при надобности.
И выделить какую нибудь функцию ядра которая взаимодействовала бы с этими драйверами через ядро.

Что-то вроде:

Code:
lea esi,[png_img]
lea edi,[rgb_img]
mov eax,func
mov ebx,' png'
mcall


Есть ли смысл в таком решении?


Top
   
PostPosted: Mon Oct 18, 2021 10:06 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 724
Are you aware of libimg? What are benefits of putting it into the kernel?


Top
   
PostPosted: Wed Oct 20, 2021 8:03 pm 
Offline
User avatar

Joined: Mon Aug 26, 2019 10:14 pm
Posts: 63
Насколько мне известно, кодэки обычно реализуются на уровне прикладных библиотек. Есть ньюансы при реализации их аппаратного ускорения, но, скорее всего, это реализуется через какое-то общение с драйвером (точно не в курсе).

_________________
https://boppan.org


Top
   
PostPosted: Thu Oct 21, 2021 6:10 pm 
Offline

Joined: Wed Sep 22, 2021 9:36 pm
Posts: 26
Я где-то видел пример использования libimg возможно в wiki... Если кто скинет ссылку будет замечательно.
Ну что сказать, чтобы её использовать потребуется наверно 200-300 байт машинного кода. Плюс программисту нужно в уме держать как эту библиотеку вызвать, обработать ошибку если ее нет... Колибри вроде как ассемблерная ось, зачем такие сложности? Я думаю в ядре нужно сделать некую универсальную точку входа для всех библиотек графического конвертирования или драйверов (что будет экономический выгоднее) в виде одной некоторой функции которая сама будет искать библиотеки из определенной папки и возиться с ними, если библиотеки нет возвращать ошибку и т.д. Вызов такой функции будет занимать 20-30 байт машинного кода и будет прозрачен для программиста и легок в применении.

На счет драйверов или библиотек, механизм должен быть расширяемый. Поэтому должно быть что-то вроде папки в которую скинуты все кодеры/декодеры, и если в снимке системы нужно освободить место, эти драйверы легко можно было-бы отсоединить или присоединить, по мере необходимости простым удалением из папки например или копированием в папку.


Top
   
PostPosted: Thu Oct 21, 2021 8:12 pm 
Offline

Joined: Sun Aug 09, 2015 3:41 pm
Posts: 126
В ядре этого точно не нужно. Кури libimg


Top
   
PostPosted: Fri Oct 22, 2021 2:33 pm 
Offline

Joined: Wed Sep 22, 2021 9:36 pm
Posts: 26
Умник Ray wrote:
Спасибо за совет, языков программирования я знаю немало и так (в том числе и любимый кое-кем Паскаль, хотя и не писал на нем уже 100 лет).

Ваше мнение касаемо ядра меня мало интересует, продолжайте изучать Паскаль.


Top
   
PostPosted: Fri Oct 22, 2021 3:41 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 724
There exists a dynamic library loader by Coldy. Search the board or contact him for details.

If you find the current way of library loading inconvenient, it is still not a reason to put application libraries to the kernel.


Top
   
PostPosted: Fri Oct 22, 2021 6:59 pm 
Offline

Joined: Wed Sep 22, 2021 9:36 pm
Posts: 26
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.


Можно написать макрос и всё будет вполне удобно, просто работа с библиотекой будет занимать много места в программе, весь смысл ассемблерного компактного кода пропадает.

Впрочем пусть будет все как есть.


Top
   
PostPosted: Sat Oct 23, 2021 2:17 am 
Offline

Joined: Sun Aug 09, 2015 3:41 pm
Posts: 126
Kolibrius wrote:
Умник Ray писал(а):
Спасибо за совет, языков программирования я знаю немало и так (в том числе и любимый кое-кем Паскаль, хотя и не писал на нем уже 100 лет).


И что в том сообщении тебя так задело? Тебя же там не было. А замечания были про откровенно кривые названия с грамматическими ошибками на английском.

Kolibrius wrote:
Ваше мнение касаемо ядра меня мало интересует, продолжайте изучать Паскаль.

Чел, не поверишь твоё мнение относительно ядра тут тоже никем не ценится. А вот про то, что эта идея г пихать всё в ядро иди учиться в своей школе, вместе с твоим Паскалём.


Top
   
PostPosted: Sat Oct 23, 2021 11:03 pm 
Offline

Joined: Wed Sep 22, 2021 9:36 pm
Posts: 26
Ray wrote:
иди учиться в своей школе, вместе с твоим Паскалём.

Тебе как школьнику будет виднее, куда тебе идти со своим Паскалем. Тем более твой "сленг" явно уровня школьника.
Правильно Pathoswithin про тебя тогда сказал, ты любитель по умничать и ничего полезного не делать. Он тебя еще тогда раскусил. Ты обычный балабол. И я с ним полностью согласен. Да и мнение твое тут никогда не ценилось.


Top
   
PostPosted: Mon Oct 25, 2021 12:31 am 
Offline

Joined: Tue Nov 03, 2020 5:47 pm
Posts: 105
не надо тут разводить споры, по библиотекам и их загрузке, я вот как то не пойму, вам жалко пару сотен байт для загрузки библиотеки и неизвестно сколько байт(допустим 100) на таблицу импорта? я понимаю если бы размер существенно менялся по сравнению с вызовом функции, но в более больших проектах это не сыграет никак, ну какой толк от сотни двух сэкономленных байт если логика больше килобайта, да и использовать ядро как библиотеку не самый лучший вариант, так как переключение контекста очень трудоёмкая операция и в итоге программы начнут тормозить.(да и в чём проблема просто сделать call [console.init] например)


Top
   
PostPosted: Mon Oct 25, 2021 3:18 am 
Offline

Joined: Sun Aug 09, 2015 3:41 pm
Posts: 126
Kolibrius wrote:
Я где-то видел пример использования libimg возможно в wiki... Если кто скинет ссылку будет замечательно.


Ray wrote:
Кури libimg


Kolibrius wrote:
Ваше мнение касаемо ядра меня мало интересует, продолжайте изучать Паскаль.

Попросил ссылку, я её скинул, после чего ты влетаешь на агрессии. Много ли ты полезного сделал? Создал 3 темы как ты хочешь USB 3. Ну и кто тут малолетний балабол? Иди учи свой Паскаль.


Last edited by Ray on Mon Oct 25, 2021 3:33 am, edited 1 time in total.

Top
   
PostPosted: Mon Oct 25, 2021 3:21 am 
Offline

Joined: Sun Aug 09, 2015 3:41 pm
Posts: 126
Doczom wrote:
не надо тут разводить споры, по библиотекам и их загрузке, я вот как то не пойму, вам жалко пару сотен байт для загрузки библиотеки и неизвестно сколько байт(допустим 100) на таблицу импорта? я понимаю если бы размер существенно менялся по сравнению с вызовом функции, но в более больших проектах это не сыграет никак, ну какой толк от сотни двух сэкономленных байт если логика больше килобайта, да и использовать ядро как библиотеку не самый лучший вариант, так как переключение контекста очень трудоёмкая операция и в итоге программы начнут тормозить.(да и в чём проблема просто сделать call [console.init] например)

Согласен полностью


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 13 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited