Board.KolibriOS.org

Official KolibriOS board
It is currently Sun Aug 18, 2019 10:05 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 186 posts ]  Go to page 1 2 3 4 513 Next
Author Message
PostPosted: Sat Jul 26, 2008 6:11 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Решил написать функциональный шелл на Си с использованием console.obj.
Большинство команд думаю сделать встроенными (так скорость выше и меньше места будет занимать из-за отсутствия инициализации в каждой программе), но хотелось бы некоторые команды реализовать в виде модулей (не скрипты). У меня пока 2 идеи - использовать IPC или библиотеки. Надо, чтобы во внешнем модуле можно было вызывать ф-ции ввода/вывода в существующую консоль. Кто-нибудь может подсказать как лучше их реализовать?
Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit.


Attachments:
shell.zip [1.46 KiB]
Downloaded 373 times
Top
   
PostPosted: Sun Jul 27, 2008 11:49 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Реализовал команды:

exit - выход
ls (с параметром и без) - вывод списка директории
pwd - текущий каталог
ps - список процессов и их PID
kill - завершить процесс по PID
help (с параметром и без) - помощь

Радует, что шелл уже приближается по функциональности к cmd - и это всего за пару часов работы


Attachments:
File comment: 0.02
shell.zip [2.53 KiB]
Downloaded 349 times
Top
   
PostPosted: Sun Jul 27, 2008 11:57 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Классно получаеться, ну вот и будет у нас наконец-то нормальный шелл :)
Только надо будет полосу прокрутки сделать более Колибришной.

_________________
Через тернии к звездам


Top
   
PostPosted: Mon Jul 28, 2008 6:16 pm 
Offline
Mentor
User avatar

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

Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver. При перемещении по каталогам желательно указывать осмысленные имена. При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге.

Ассемблерщики! Улучшите пожалуйста библиотеку console.obj. Очень не хватает в ней функций очистки экрана и получения/установки места. Да и создаваемое окно выглядит убого (это скорее вопрос к дизайнерам:)), особенно мне не нравиться невозможность изменения его размеров.


Attachments:
shell-0.1.zip [3.36 KiB]
Downloaded 329 times
Top
   
PostPosted: Thu Jul 31, 2008 8:08 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Версия 0.11.
Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки.


Attachments:
shell-0.11.zip [3.27 KiB]
Downloaded 329 times
Top
   
PostPosted: Thu Jul 31, 2008 8:37 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Забыл сказать: пост "Версия 0.1...." я отправил разработчику либы сонсоль.обдж (диамонду), отправил я ему и скин прокрутки в стиле Еолайта\HTMLv, подождём быть может что-то он придумает)...

_________________
Через тернии к звездам


Top
   
PostPosted: Sat Aug 02, 2008 6:31 pm 
Offline
Just Flooding

Joined: Sat Jan 06, 2007 2:30 pm
Posts: 269
to Albom
Очень рад шеллу, а то все файловые менеджеры строку ввода рисуют, а писать в ней ничего нельзя, а единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мышь.


Top
   
PostPosted: Sat Aug 02, 2008 7:55 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Quote:
единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш

у меня та же история! вот более-менее реализую функциональность команд и займусь процедурой ввода - очень не хватает up/down и tab... тогда пользоваться, думаю, будет очень удобно.


Top
   
PostPosted: Sat Aug 02, 2008 9:28 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
Хорошо бы значок "#" в начале строки заменить на "$", а то нас могу обвинить в том, что мы всё время работаем под рутом, что среди ортодоксальных линуксоидов считается плохим тоном))
В целом понравилось, удачи в разработке!

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Sun Aug 03, 2008 4:58 am 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
Атауальпа по сути в КОлибри мы всегда под рутом )))
Albom может лучще портировать bash/sh? Конечно отсутствие fork(), dup() и стандартных дескрипторов как таковых усложняет задачу но их можно и эмулировать.


Top
   
PostPosted: Sun Aug 03, 2008 6:46 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Quote:
может лучще портировать bash/sh?

вряд ли получится. Уж очень далека Kolibri от POSIX. Слишком многое придётся эмулировать. К тому же стоит ли?


Top
   
PostPosted: Sun Aug 03, 2008 10:41 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
ИМХО не стоит.
Albom wrote:
Quote:
единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш
у меня та же история!
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.

_________________
Через тернии к звездам


Top
   
PostPosted: Sun Aug 03, 2008 1:57 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 4:16 pm
Posts: 426
> Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver.

..bw


Top
   
PostPosted: Sun Aug 03, 2008 7:46 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Quote:
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.

не надо! я принципиально против такого бреда. или то, или другое. кому надо будет - скомпилирует со своими командами, хоть пусть команда вывода списка файлов будет CATALOG (как на APPLE ][ :)). надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.


Top
   
PostPosted: Sun Aug 03, 2008 8:20 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Albom wrote:
надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.
Но ведь Колибря во всём наследует Винь!
Можно было бы сказать: надо придерживаться стандартов!, но делай как хочешь. Скажу лишь что доля пользователей Linux на Европейских десктопах 1%, на территории наших стран не более 0.5%. Чем обоснован выбор в сторону Линуксовского стандарта мне _не_понятно_.

_________________
Через тернии к звездам


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 186 posts ]  Go to page 1 2 3 4 513 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:  
Powered by phpBB® Forum Software © phpBB Limited