Page 5 of 14
Re: Очень функциональный шелл
Posted: Sun May 09, 2010 8:15 pm
by XVilka
Сейчас работаю над микрореализацией curses библиотеки. Покак на си, как закончу (около месяца) - сконвертирую в ассемблер. Думаю тогда имеет смысл добавить ее в console.obj
Re: Очень функциональный шелл
Posted: Sat May 15, 2010 4:27 pm
by XVilka
По поводу sh - можно портировать вот это
http://gitorious.com/0xdroid/system_cor ... master/ash
Создан для работы с убогой libc - bionic
Поэтому будет легче перенести на Колибри.
Re: Очень функциональный шелл
Posted: Sat May 15, 2010 7:02 pm
by Albom
XVilka wrote:Вот добавил возможность нормальной сборки под GCC(MinGW)
Компилируется, но не так, как надо. Даже
Скомпилированный бинарник
не запускается (в принципе понятно почему).
1) в compile.bat после set XCFLAGS= нужно убрать кавычки
2) i586-mingw32msvc-gcc лучше заменить на просто gcc. Это же касается ld и objcopy.
3) так как start.asm был изменён (добавлена секция ".aheader"), но необходимо изменить и kolibri.ld (так, чтобы заголовок был в начале файла). Типа такого:
Code: Select all
/*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).
Под Линуксом такие же проблемы и ещё кой-чего (что именно пока сказать не могу - не было времени разбираться).
Re: Очень функциональный шелл
Posted: Tue May 18, 2010 1:01 am
by XVilka
Ок. Спасибо, учел

Re: Очень функциональный шелл
Posted: Sun Aug 15, 2010 11:31 pm
by Nasarus
Хотелось бы узнать общего мнения насчет консольных программ для шелла. Должны ли по вашему мнению такие программы иметь доступ к GUI-функциям ядра (например sysfn0, sysfn4, sysfn13) или нет?
Re: Очень функциональный шелл
Posted: Mon Aug 16, 2010 1:48 am
by Nasarus
Наверное всё-таки такие ограничения вводить не придется, т.к. это слишком усложнит реализацию и скорость выполнения таких программ Shell'ом.
Re: Очень функциональный шелл
Posted: Mon Aug 16, 2010 11:51 am
by XVilka
Я думаю не стоит вводить такие ограничения, чтобы была возможность запуска граф программ без всяких дополнительных сложностей из командной строки
Re: Очень функциональный шелл
Posted: Mon Aug 16, 2010 1:05 pm
by Nasarus
2 XVilka
Имеются в виду консольные программы (специально предназначенные для работы в среде шелла)
Re: Очень функциональный шелл
Posted: Mon Aug 16, 2010 2:59 pm
by Albom
думаю, что вводить ограничения на вызов системных функций из консольных приложений (каковых до сих пор нет) нецелесообразно, потому что:
1) программист должен понимать, что он пишет;
2) технически, если даже получится реализовать, то это будет коряво и ненадёжно.
Re: Очень функциональный шелл
Posted: Wed Aug 18, 2010 3:57 am
by Asper
На мой взгляд для поддержки консольных программ
shell должен научиться назначать таким программам буфер для ввода данных и буфер для вывода данных.
Например:
1.) программа
A передает
shell'у указатели для своих буферов.
2.) программа
B передает
shell'у указатели для своих буферов.
3.) shell читает указатели и записывает в них адреса реальных буферов данных по своему усмотрению.
Например:
Shell записывает адрес своего собственного буффера ввода в указатель буфера вывода у
ls.
Shell записывает адрес буффера ввода
more в указатель буфера вывода у
ls.
и т.д. Правда тут ещё надо будет отдельно реализовывать вывод информации в файл.
Указатели на буферы можно передавать либо через
IPC, либо через расшаренную память.
Re: Очень функциональный шелл
Posted: Wed Aug 18, 2010 9:25 am
by Mario
Можно передавать название области именованной (расшаренной памяти) при запуске, например как я реализовал в OpenDialog. В области памяти будет содержаться дескриптор со всеми остальными указателями и просто данными.
Re: Очень функциональный шелл
Posted: Thu Aug 19, 2010 8:28 pm
by Albom
Версия 0.4.3.
Смесь версий 0.4.1 и 0.4.2. Теперь в архиве все исходные файлы, необходимые для компиляции (раньше использовались объектники с моими обёртками, исходники я с шеллом не выкладывал). Прошу залить исходники на SVN.
diamond
В этой версии есть глюк с завершением работы путём закрытия окна. как его пофиксить? можешь написать, а то я не совсем понял, что ты в версии 0.4.2 сделал, чтобы шелл корректно завершался.
Re: Очень функциональный шелл
Posted: Fri Aug 20, 2010 8:17 am
by SoUrcerer
А можно потом в архив к исходникам еще и makefile включать? Оно мне конечно не трудно его написать на основе батнега...
Re: Очень функциональный шелл
Posted: Fri Aug 20, 2010 11:00 am
by Albom
к следующей версии постараюсь мейкфайл сделать.
а пока что версия 0.4.4.
1) шелл корректно завершается при закрытии окна
2) исправлено ещё 2 ошибки
3) добавлены 2 команды:
sleep - ждать. параметр - время в сотых частях секунды. только целое число.
ccpuid - вывод в консоль информации (пока скудно) о процессоре. пользы мало, но давно хотел с командой cpuid разобраться (в следующем семестре буду студентам курс читать, включил разбор команды в программу).
есть много идей. некоторые легко реализуются, некоторые сложнее. если интересно:
1) добавить переменную (одну!), в которую будет результат в текстовой форме (не то что возвращает ф-ция) записываться. с ней можно будет работать из командной строки.
2) внедрить простую стековую машину для вычислений с вещественными числами.
Re: Очень функциональный шелл
Posted: Thu Oct 07, 2010 4:50 pm
by Nasarus
Теперь последняя версия, включая бинарник, лежит на SVN-сервере (ревизия 1647).