There is a shell demo application that comes with MutekH. This applications uses two MutekH features as its core: * The in-kernel lua binding * The libtermui terminal interface with completion Moreover, this application has optional parts that can demonstrate other services of the kernel. Depending on your configuration, more commands may be available. We'll see the complete list of features that can be built below. = Hardware host = This application targets most of the current targets of the MutekH kernel: * SoCLib hosts (ARM, Mips, PPC), just use it from the [wiki:Arch/Soclib/Tutorial] platform * [wiki:UsingMutekH/Sam7 SAM7 hardware] * [QuickStartUnix As an Unix process] * Natively on x86 = Features = == VFS access == When you use the `CONFIG_VFS` token, you'll have access to all file-related functions. They are the usual shell commands (`ls`, `cat`, `cd`, `pwd`, `mkdir`, `rm`, `mv`, `ln`, `hexdump`), except they use a lua-ish syntax (with arguments like a function call). Example: {{{ [lua:] mkdir("foo") [lua:] cd("foo") [lua:foo] ls() [lua:foo] append("file.txt", "abcd") [lua:foo] ls() file.txt [reg] 4 [lua:foo] cat("file.txt") abcd[lua:foo] rm("file.txt") [lua:foo] ls() [lua:foo] }}} Il you compile other filesystem drivers ([api:macro:CONFIG_DRIVER_FS_FAT16], [api:macro:CONFIG_DRIVER_FS_ISO9660], [api:macro:CONFIG_DRIVER_FS_DEVFS]), you may even use `mount()`. {{{ [lua:] mkdir("dev") [lua:] mount("devfs", "dev") [lua:] cd("dev/child0") [lua:child0] ls() cpus-Ppc,405@0 [dir] 0 cpus-Ppc,405@1 [dir] 0 cpus-Ppc,405@2 [dir] 0 cpus-Ppc,405@3 [dir] 0 tty@0 [dir] 0 block@0 [dir] 0 xicu@0-out@0 [dir] 0 xicu@0-out@1 [dir] 0 xicu@0-out@2 [dir] 0 xicu@0-out@3 [dir] 0 xicu@0 [dir] 0 memory@0 [dir] 0 [lua:child0] cd("tty@0") [lua:tty@0] ls() handle [reg] 0 [lua:tty@0] append("handle", "message on tty") message on tty[lua:tty@0] }}} You may watch the internal state of the VFS with {{{ [lua:] vfs_dump() VFS dump for root 0x7f40b420, fsroot: 0x7f40b3a0, refcount: 3 + 5 "" 0x7f40b420 (0x7f40b420), lu: 6, open: 0, close: 0, stat: 0 + 1 "test.txt" 0x7f40cae0 (0x7f40b420), lu: 0, open: 0, close: 0, stat: 0 + 2 "cdrom" 0x7f40be40 (0x7f40b420), lu: 0, open: 0, close: 0, stat: 0 [lua:] }}} == SD/MMC driver == If you are using some hardware with a SD/MMC slot, you may use the following command: {{{ [lua:] sd_mmc_rehash() }}} == Cryptographic functions == MutekH contains a cryptographic API. It is enabled with the [api:macro:CONFIG_LIBCRYPTO] The shell can be used to apply some cryptographic operations on files. The first command to test is a hash of a file. This example requires [api:macro:CONFIG_LIBCRYPTO_MD5]: {{{ [lua:] md5("test.txt") md5: 58 a8 78 59 71 21 2e f1 37 f0 4b 05 df 26 ea 15 }}} == Timer functions == MutekH has a built-in timer. If you enabled support for the timer (with the [api:macro:CONFIG_MUTEK_TIMERMS] token), and if you have a proper timer device setup, you may use the following commands: {{{ [lua:] printlater(12000, "silly delayed message") [lua:] cat("test.txt") silly delayed message test contents line 1 contents line test 2 [lua:] }}} == LCD functions == == Libelf / Librtld functions == == Libdsrl functions ==