Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changes between Version 3 and Version 4 of Tutorial


Ignore:
Timestamp:
2014-12-18T17:23:57Z (4 years ago)
Author:
Martin Decky
Comment:

development and debugging

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial

    v3 v4  
    4848Once you get bored by this, just run `tetris` from the terminal window. This should make you occupied for some time.
    4949
    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.
     50The 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
     52There 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 ||
    5158
    5259== Cool Stuff ==
     
    7885* `tetris`
    7986  - Play tetris.
     87
     88== Advanced: Development and Testing ==
     89
     90Because 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
     92You 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
     113There 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.