Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Dec 01, 2020 2:27 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 195 posts ]  Go to page Previous 1 2 3 4 5 613 Next
Author Message
PostPosted: Tue Jun 16, 2009 5:33 pm 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
"..воплощать свою идею по поводу специального формата консольных приложений - в виде библиотек coff." а что, классная идея)

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Top
   
PostPosted: Tue Jun 16, 2009 6:12 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
что то не пойму если будет как обычная dll то как будет чередоваться ввод/вывод
предлагаю линковать как coff но где то договрится чтоб было выделена память на указатели функций работы с консолью, при подгрузке чтоб shell записывал в эту область настоящие адреса


Top
   
PostPosted: Tue Jun 16, 2009 8:30 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
раз кого-то заинтересовала моя идея, то раскрываю карты.

предполагаю сделать так:
консольное приложение - coff с 2 экспортируемыми (стандартно, как и в других либах КолибриОС) функциями. назовём их условно init и main. ф-ция init вызывается при первом обращении к консольному приложению. ей передаётся массив указателей на ф-ции ввода/вывода. порядок функций будет стандартизирован и будет дополняться при возможном развитии программы. init сохраняет указатели. если init возвращает значение, соответсвующее нормальному завершению, вызывается ф-ция main. стандартная main со стандартными параметрами (int argc, char* argv[]).

ну вот и всё. теоретически просто, но есть нюансы... кроме того у меня сейчас на работе полный завал. :( времени нет совсем. а с 1 июля иду в отпуск и отправляюсь на моря. так что приступить к работе смогу не раньше 15 июля. в версии 0.5 планируются существенные улучшения касательно кода (к сожалению, на счёт пользовательского интерфейса не знаю). в код внёс столько изменений, что он сейчас не работает. :(

карты раскрыты. код пока выкладывать не хочу. ничего не обещаю, кроме того, что с 15 июля попробую довести код до ума.


Top
   
PostPosted: Fri Aug 28, 2009 1:09 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Добавил корректное завершение работы при закрытии окна консоли, работает только начиная с последней на данный момент версией библиотеки (лежит на svn, включена в ночную сборку). Перекомпилировал в VS2008 с LTCG, ещё пошаманил с оптимизацией по размеру, результаты прилагаю.


Attachments:
shell-0.4.2-src.zip [19.59 KiB]
Downloaded 173 times
shell.kex [3.84 KiB]
Downloaded 171 times

_________________
Ушёл к умным, знающим и культурным людям.
Top
   
PostPosted: Fri Aug 28, 2009 8:29 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
diamond
огромнейшее спасибо! буду разбираться с исправлениями.

all
работу на программой не прекращаю. почти полностью переписываю её. изменения (в плане кода, но не функциональности) серьёзные, но пока программа не работает.


Top
   
PostPosted: Sat Jan 30, 2010 10:33 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Нашёл ошибку в работе команды ls.
Немного поправил файл cmd_ls.c из архива 0.4.2 (сборка от diamond'а).
Скомпилировать и проверить не могу из-за отсутствия на компе MSVC.


Attachments:
cmd_ls.zip [599 Bytes]
Downloaded 137 times
Top
   
PostPosted: Wed Apr 14, 2010 1:50 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Готов помочь с развитием шелла - для меня написание консольных приложений более привычно, к тому же большой опыт патчения busybox, c которого и предлагаю использовать идеи.
С чего мне начать?
1. Где взять последние исходники?
2. Что надо в первую очередь сделать?
3. Как быть с системой контроля версий?

P.S. Рад приступить к воплощению прямо сейчас - жду ответа.


Top
   
PostPosted: Wed Apr 14, 2010 10:25 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
XVilka, последние исходники скорее всего на SVN, хотя, я думаю, их можно найти и в составе архива с исходными кодами ночной сборки системы. Точных ссылок не помню, но они есть на форуме и на wiki.
Насколько я понимаю, в проекте никто никого не принуждает, и люди делают то, что хотят, в своё удовольствие. Любая помощь, так или иначе, полезна. С контролем версий должен помочь, по логике, SVN


Top
   
PostPosted: Wed Apr 14, 2010 3:08 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
1) самые последние исходники в этой ветке.
diamond (Пт авг 28, 2009 12:09 am) - версия 0.4.2
Albom (Сб янв 30, 2010 9:33 pm) - исправленный вариант команды ls.
Но лучше развивать версию 0.4.1, так как она "заточена" под GCC.
2) если основываться на версии 0.4.1, то нужно сделать то, что сделал diamond - изменить вызов команд (лучше сразу написать парсер, преобразующий строку в стандартные параметры int argc, char* argv[]) и подправить корректное завершение шелла при закрытии консоли (как сделать последнее - понятия не имею, не было времени разбираться).
если нужно, могу отправить все свои наработки по шеллу в ЛС.


Top
   
PostPosted: Wed Apr 14, 2010 3:24 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Да, лучше в ЛС - сегодня вечером поковыряюсь


Top
   
PostPosted: Thu Apr 15, 2010 12:58 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Albom wrote:
Но лучше развивать версию 0.4.1, так как она "заточена" под GCC.

Мои изменения должны нормально компилироваться и под gcc, ничего непосредственно под vc я не "затачивал".

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
PostPosted: Thu Apr 15, 2010 7:41 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
в принципе да. только нужно использовать мои обёртки системных вызовов (там ассемблер с синтаксисом AT&T, а не Intel, как в 0.4.1).


Top
   
PostPosted: Thu Apr 15, 2010 8:37 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Да, я уже переписал то что было в архиве на синтаксис интел совместимый с gcc.
Только не нашел string.c

И проблема при линкове такого рода:

undefined reference to 'ecx'
undefined reference to 'edx'
ну и в таком духе

Но в целом это уже мелочи - более менее разобрался в структуре, сечас пытаюсь реализовать архиватор и shasum.
точнее заставить работать то что уже написал.

А можно мне идеи по развитию узнать? Или какие-то куски бета-кода?


Top
   
PostPosted: Thu Apr 15, 2010 12:03 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
XVilka
Посмотри вот эти исходники:
download/file.php?id=1429
Насчёт идей - читай эту ветку и ветку "что я хочу увидеть завтра..."


Top
   
PostPosted: Fri Apr 16, 2010 12:58 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Вот добавил возможность нормальной сборки под GCC(MinGW) для последних в этой ветке сырцов,
апплеты выделил в отдельный каталог, библиотеки stdlib, kolibri, string - тоже в отдельный каталог для простоты.
Пофиксил некоторые баги в доступе к памяти (приведение типов), перевел ассемблер в интел-нотацию понимаемую gcc(mingw)
компилятор msvcc тоже вроде работает.

Пока не включил реализацию sha256sum и архиватора LZMA(XZ формат), доведу до ума, выложу. Думаю через день два, будет готово.
В принципе криптолибу можно выделить отдельно, если надо.

Скомпилированный бинарник тоже там.
[Обновил скрипт сборки из под Windows]


Attachments:
File comment: Проба
shell.tar.gz [18.32 KiB]
Downloaded 145 times
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 195 posts ]  Go to page Previous 1 2 3 4 5 613 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


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:  
cron
Powered by phpBB® Forum Software © phpBB Limited