50 | | The shell supports some basic commands you are likely familiar with: `ls`, `cat`, `cd`, `pwd`, `cp`, `mv`, `rm`, `mkdir`, `echo`, etc. If you get totally lost, just run the `help` command to give you some hints. You can use `help commands` to list the internal commands of the shell and `help help` to get more information on how the help system works. |
| 50 | The shell supports some basic commands you are likely familiar with: `ls`, `cat`, `cd`, `pwd`, `cp`, `mv`, `rm`, `mkdir`, `echo`, etc. If you get totally lost, just run the `help` command to give you some hints. You can use `help commands` to list the internal commands of the shell and `help help` to get more information on how the help system works. The shell provides commands history (Up and Down keys) and clipboard integration (Shift + Left and Shift + Right keys to select, Ctrl + C and Ctrl + V to copy and paste). |
| 51 | |
| 52 | There is also support for different keyboard layouts. You can switch between three sample layouts using: |
| 53 | |
| 54 | ||= '''Key''' =||= '''Layout''' =|| |
| 55 | || Ctrl + F1 || US QWERTY || |
| 56 | || Ctrl + F2 || US Dvorak || |
| 57 | || Ctrl + F3 || Czech QWERTZ || |
| 87 | |
| 88 | == Advanced: Development and Testing == |
| 89 | |
| 90 | Because of the ongoing development, HelenOS changes rapidly and needs to be tested and debugged. For the most fundamental debugging you can switch to the kernel console using the `kcon` command. Note that the kernel console brutally violate the microkernel design principles, but it was never meant to be part of a production system. It is just a debugging tool. Also note that the user space is not aware of the kernel console and therefore the user space graphic output might sometimes overwrite the kernel output. |
| 91 | |
| 92 | You can use the Page Up and Page Down keys to scroll back in the kernel console output. Some of the more commonly used commands of the kernel console are: |
| 93 | |
| 94 | * `help` |
| 95 | - Print all kernel console commands. |
| 96 | * `continue` |
| 97 | - Leave the kernel console and enable the user space input/output again. |
| 98 | * `tasks` |
| 99 | - List the tasks running in the system. |
| 100 | * `ipc <taskid>` |
| 101 | - Print the information about the communication between the given task and other tasks. |
| 102 | * `threads` |
| 103 | - Print the threads running in the system. |
| 104 | * `physmem` and `zones` |
| 105 | - Display the physical memory map and usage. |
| 106 | * `slabs` |
| 107 | - Print the kernel virtual memory statistics. |
| 108 | * `test` |
| 109 | - Run kernel tests. |
| 110 | * `btrace <threadid>` |
| 111 | - Print a stack trace of the given thread. |
| 112 | |
| 113 | There are also user space testing and debugging means. You can examine the following commands: |
| 114 | |
| 115 | * `stats` |
| 116 | - Print the running tasks. |
| 117 | * `trace` |
| 118 | - Trace the execution of a task. You can examine thread creation/termination, kernel syscalls and task communication (either on the level of basic messages or on the protocol level). |
| 119 | * `taskdump` |
| 120 | - Create a core dump of a task for later examination. A core dump is also created automatically if a task crashes. |
| 121 | * `tester` |
| 122 | - Run tests that test various parts of the HelenOS system. |
| 123 | * `redir` |
| 124 | - Redirect the standard/error output of a task to a file for later examination. |