MirBSD KORN Shell
Chris Johns
chrisj at rtems.org
Fri Sep 12 01:23:55 UTC 2014
Hi,
I had a play with the MirBSD KORN Shell
(https://www.mirbsd.org/main.htm) on RTEMS and have something running.
The source is here:
http://www.rtems.org/ftp/pub/rtems/people/chrisj/mksh/mksh-R50-rtems.tar.xz
It is a waf build so using something like:
$ waf configure \
--rtems-tools=$HOME/development/rtems/4.11 \
--rtems=$HOME/development/rtems/bsps/4.11 \
--rtems-bsp=sparc/sis
$ waf
with a git 4.11 RTEMS kernel built and installed should work. A run on
the sparc/sis bsp is:
$ sparc-rtems4.11-run build/sparc-rtems4.11-sis/sh.exe
/bin/sh: No controlling tty: open /dev/tty: No such file or directory
# echo $KSH_VERSION
@(#)MIRBSD KSH R50 2014/06/29
# task
ID NAME PRI STATE MODES EVENTS WAITID WAITARG NOTES
-------------------------------------------------------------------------
0a010001 UI1 1 READY P:T:nA NONE
# ^D
I have hacked the code so the RTEMS shell commands are builtins. Not
everything works, eg ls seems to end up in a heap corruption, and pipes
need help from us, eg:
$ sparc-rtems4.11-run build/sparc-rtems4.11-sis/sh.exe
/bin/sh: No controlling tty: open /dev/tty: No such file or directory
# arrname[1]=4
# print ${arraname[1]}
# print ${arrname[*]}
4
# print ${#arrname[*]}
1
# x=$(echo "Me")
/bin/sh: can't create pipe - try again
The shell might be usable in RTEMS but it would need to work to clean up
the global symbols and global data to it can be RTEMS multi-user and
multi-threaded. Having it would give us a nice way to provide proven
shell scripting.
Chris
More information about the devel
mailing list