Hey,

I've been trying to figure out whether RTEMS would support a real shell with IO redirection, signals (at least Ctrl-C), and launching of "processes".

Processes can simply be functions added to a table, like the current shell, or loaded using the run-time linker.

What seems to be lacking (or maybe I'm wrong), is per task file descriptors. In order to do IO redirection, you would want to spawn a task and open and close file descriptors for IO redirection. Since RTEMS does not support multiple addresses spaces, and therefore fork(), the traditional fork() method would not work.

Perhaps, there could be a new variant of rtems_task_create or rtems_task_start that provides alternative file descriptors for stdin, stdout, and stderr.

The task creation process would close stdout and stderr for the task, and then dup2 the passed in file descriptors performing the IO redirection.

The hack would be that file descriptors 0,1 and 2 are not part of a global namespace of file descriptors, and potentially refer to different actual IO devices on a per task basis.

The motivation here would be creating a more functional shell and support easy IO redirection for logging, and running multiple shell instances, perhaps via multiple telnet and serial sessions.

Thoughts?

Isaac
--
Isaac Gutekunst
Embedded Systems Software Engineer
isaac.guteku...@vecna.com
www.vecna.com

Cambridge Research Laboratory
Vecna Technologies, Inc.
36 Cambridge Park Drive
Cambridge, MA 02140
Office: (617) 864-0636 x3069
Fax: (617) 864-0638
http://vecna.com

Better Technology, Better World (TM)
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to