Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Dec 01, 2020 3:10 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 195 posts ]  Go to page Previous 13 4 5 6 713 Next
Author Message
PostPosted: Sun May 09, 2010 8:15 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Сейчас работаю над микрореализацией curses библиотеки. Покак на си, как закончу (около месяца) - сконвертирую в ассемблер. Думаю тогда имеет смысл добавить ее в console.obj


Top
   
PostPosted: Sat May 15, 2010 4:27 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
По поводу sh - можно портировать вот это http://gitorious.com/0xdroid/system_cor ... master/ash
Создан для работы с убогой libc - bionic
Поэтому будет легче перенести на Колибри.


Top
   
PostPosted: Sat May 15, 2010 7:02 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
XVilka wrote:
Вот добавил возможность нормальной сборки под GCC(MinGW)

Компилируется, но не так, как надо. Даже
Quote:
Скомпилированный бинарник
не запускается (в принципе понятно почему).
1) в compile.bat после set XCFLAGS= нужно убрать кавычки
2) i586-mingw32msvc-gcc лучше заменить на просто gcc. Это же касается ld и objcopy.
3) так как start.asm был изменён (добавлена секция ".aheader"), но необходимо изменить и kolibri.ld (так, чтобы заголовок был в начале файла). Типа такого:

Code:
/*OUTPUT_FORMAT("binary")*/
ENTRY(Start)
SECTIONS
{
  .text 0x000000:
   {
   *(.aheader)
   *(.text)
   }
 
  .data : {
    *(.data)
    hEnd = . ;
   }
   
  .bss :
   {
    *(.bss)
   }
   Memory = . ;
}


Но всё равно в KlbrInWin пока не запускается (ошибка "Not enough memory").
Компилировал с помощью MinGW-5.1.6 (gcc 3.4.5).
Под Линуксом такие же проблемы и ещё кой-чего (что именно пока сказать не могу - не было времени разбираться).


Top
   
PostPosted: Tue May 18, 2010 1:01 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Ок. Спасибо, учел :)


Top
   
PostPosted: Sun Aug 15, 2010 11:31 pm 
Offline
User avatar

Joined: Wed Jan 27, 2010 10:59 am
Posts: 269
Хотелось бы узнать общего мнения насчет консольных программ для шелла. Должны ли по вашему мнению такие программы иметь доступ к GUI-функциям ядра (например sysfn0, sysfn4, sysfn13) или нет?

_________________
ушёл...


Top
   
PostPosted: Mon Aug 16, 2010 1:48 am 
Offline
User avatar

Joined: Wed Jan 27, 2010 10:59 am
Posts: 269
Наверное всё-таки такие ограничения вводить не придется, т.к. это слишком усложнит реализацию и скорость выполнения таких программ Shell'ом.

_________________
ушёл...


Top
   
PostPosted: Mon Aug 16, 2010 11:51 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 797
Я думаю не стоит вводить такие ограничения, чтобы была возможность запуска граф программ без всяких дополнительных сложностей из командной строки


Top
   
PostPosted: Mon Aug 16, 2010 1:05 pm 
Offline
User avatar

Joined: Wed Jan 27, 2010 10:59 am
Posts: 269
2 XVilka
Имеются в виду консольные программы (специально предназначенные для работы в среде шелла)

_________________
ушёл...


Top
   
PostPosted: Mon Aug 16, 2010 2:59 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
думаю, что вводить ограничения на вызов системных функций из консольных приложений (каковых до сих пор нет) нецелесообразно, потому что:
1) программист должен понимать, что он пишет;
2) технически, если даже получится реализовать, то это будет коряво и ненадёжно.


Top
   
PostPosted: Wed Aug 18, 2010 3:57 am 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
На мой взгляд для поддержки консольных программ shell должен научиться назначать таким программам буфер для ввода данных и буфер для вывода данных.
Например:
1.) программа A передает shell'у указатели для своих буферов.
2.) программа B передает shell'у указатели для своих буферов.
3.) shell читает указатели и записывает в них адреса реальных буферов данных по своему усмотрению.
Например:
Code:
  shell# ls 

Shell записывает адрес своего собственного буффера ввода в указатель буфера вывода у ls.

Code:
  shell# ls > more

Shell записывает адрес буффера ввода more в указатель буфера вывода у ls.

и т.д. Правда тут ещё надо будет отдельно реализовывать вывод информации в файл.
Code:
 shell# ls > log.txt


Указатели на буферы можно передавать либо через IPC, либо через расшаренную память.


Top
   
PostPosted: Wed Aug 18, 2010 9:25 am 
Можно передавать название области именованной (расшаренной памяти) при запуске, например как я реализовал в OpenDialog. В области памяти будет содержаться дескриптор со всеми остальными указателями и просто данными.


Top
   
PostPosted: Thu Aug 19, 2010 8:28 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Версия 0.4.3.

Смесь версий 0.4.1 и 0.4.2. Теперь в архиве все исходные файлы, необходимые для компиляции (раньше использовались объектники с моими обёртками, исходники я с шеллом не выкладывал). Прошу залить исходники на SVN.

diamond
В этой версии есть глюк с завершением работы путём закрытия окна. как его пофиксить? можешь написать, а то я не совсем понял, что ты в версии 0.4.2 сделал, чтобы шелл корректно завершался.


Attachments:
shell-0.4.3-src.zip [18.51 KiB]
Downloaded 132 times
shell-0.4.3.zip [5.36 KiB]
Downloaded 135 times
Top
   
PostPosted: Fri Aug 20, 2010 8:17 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
А можно потом в архив к исходникам еще и makefile включать? Оно мне конечно не трудно его написать на основе батнега...


Top
   
PostPosted: Fri Aug 20, 2010 11:00 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
к следующей версии постараюсь мейкфайл сделать.

а пока что версия 0.4.4.

1) шелл корректно завершается при закрытии окна
2) исправлено ещё 2 ошибки
3) добавлены 2 команды:
sleep - ждать. параметр - время в сотых частях секунды. только целое число.
ccpuid - вывод в консоль информации (пока скудно) о процессоре. пользы мало, но давно хотел с командой cpuid разобраться (в следующем семестре буду студентам курс читать, включил разбор команды в программу).

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


Attachments:
shell-0.4.4-src.zip [19.2 KiB]
Downloaded 146 times
shell-0.4.4.zip [4.72 KiB]
Downloaded 142 times
Top
   
PostPosted: Thu Oct 07, 2010 4:50 pm 
Offline
User avatar

Joined: Wed Jan 27, 2010 10:59 am
Posts: 269
Теперь последняя версия, включая бинарник, лежит на SVN-сервере (ревизия 1647).

_________________
ушёл...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 195 posts ]  Go to page Previous 13 4 5 6 713 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 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