Port of libterminfo
from NetBSD (JPiec)
terminfo
is a user-mode low-level library that exhibits terminal capabilities to libraries like curses
. With those you may change terminal modes, move cursor, write to terminal in color and even define textual windows. Inclusion of terminfo
will greatly improve Mimiker’s user interface. We ‘ll present here relevant demos, when available.
Introduction generic uart interface to interact with tty (PJ)
tty
is a software device that provides terminal interface to user programs and asynchronously communicates with underlying UARTs like ns16550 (Malta) or PL011 (RPi3). In order to separate tty
from these physical devices, a thin software layer consisting of uart
and uart_tty
was introduced. uart_tty
defines a kernel thread that transfers data between tty
input/output queues and the underlying UART. Most time the thread sleeps and is only waked up by an ISR that reacts to incoming traffic. The nice fact is that the ISR, defined by uart
module, is generic rather than hardware specific, and communicates with underlying device using an abstract interface.#1019
Lock dependency validator (JU)
This is two-tier tool consisting of a kernel module and a GDB facility that maintains and presents an abstraction of resource allocation graph for locks in Mimiker’s kernel. A cycle in such a graph may indicate a possibility of deadlock, therefore providing valuable debugging info. Lock dependency validator significantly extends Mimiker’s programmer toolbox. Great! #996
/dev/procstat
is finaly there! (FZ)
procstat
is a simple software device that provides a system-wide summary of running processes. When /dev/procstat
is opened, the summary is created. Subsequent reads from the device return per process info, like process identifiers (PID, PPID, PGRP, EUID), state, path etc #974. With procstat
fully operational, we’ll be able to provide more admin tools, like the command line ps
utility.
Further integration of KASAN with Mimiker kernel (PJ)
The Kernel Address Sanitizer (KASAN) keeps track on allocated/freed memory by using shadow map
which should grow as the kernel mapped memory grows. This is the purpose of #1040.
New toolchain building method JU
Mimiker’s build scripts needed review and improvements so to make them more flexible, in particular when multiple platform (MIPS, AArch64 and soon amd64) compilation goes into play.#1020
Further work on Statclock and gprof structures initialization WP
Kernel profiling FreeBSD tool port improvements#979.
Timers fixes (WP).
- Remove modulo operation from PIT#987.
- Remove modulo operation (MIPS timer) & prefer MIPS timer over PIT#1008.
- Fix for counter overflow - arm timer #1032.
Debugging AArch64 platform code (JPiec)
- Fix build & test run with -O2 optimization flag #1039
- Preserve value of x18 register across kernel interrupts #1038
Housekeeping
Conversion of some macros into inline functions #1035, ensuring proper argument evaluation for others #1034 (PJ), fixing kstrndup
#1044 (JPiec)