a simple operating system from scratch.
- bear
- as
- gcc
- qemu(or virtualbox or bochs)
- gitk
- meld
- doxygen
- cppcheck
- frama-c
- splint
- kcov
- valgrind(memcheck)
- callgrind
- cachegrind
- kcachegrind
- helgrind
- massif
- scc
- fzf
- ambr
- neovim
- addr2line
- nm
- objdump
- readelf
- size
- strings
- man-pages-devel
man <method>
- libsanitizer-devel
- libsanitizer-devel-32bit
./p
- setup binary analysis tools. (integration with p)
- "ldd"
- "objdump"
- "strings"
- "nm"
- "readelf"
- "addr2line"
- "size"
- "file"
- setup util tools. (integration with p)
- "scc"
- setup doxygen. (integration with p)
- setup clove-unit library. (integration with p)
- setup cppcheck as static-analyzer. (integration with p)
- setup ale plugin for neovim. (integration with p)
- setup frama-c as static-analyzer. (integration with p)
- setup code coverage. (integration with p)
- kcov
- setup valgrind. (integration with p)
- memcheck.
- callgrind.
- cachegrind
- kcachegrind
- helgrind
- massif
- setup github actions.
- create workflow to generate docs using doxygen and push them to: https://github.com/LinArcX/zagr.os
- run doxygen after each commit.
- build and run unit-tests for each commit. (when only unit_tests/* files changes)
- create github page.
- create a home pages contains: 1. doxygen report 2. unit-test results.
- host doxygen results on it.
- host unit-tests results on it.
- host test coverage results on it.
- strings util.
- minimal c library.
- interrupts.
- keyboard.
- mouse.
- system calls.
- graphic mode.
- create GUI toolkit.
- multi-tasking.
- hard drives.
- networking.
- dynamic memory management: it makes software unpredictable and non deterministic.