# dmzOS **dmzOS** is an operating system written by a group of computer enthusiasts gathered around [Decentrala](https://decentrala.org/). You are free to explore, learn, and contribute! Description: * Written from scratch in C and asm. * POSIX-compliant (as aspiring to [Stan Dard](https://wiki.osdev.org/Stan_Dard)). * For the amd64 architecture. * Extensively documented. Goals: * Sharpen low-level programming skills. * Familiarize with amd64 architecture details. * Have fun along the way! Success criteria: * Run vim on the OS. Rules: * Please provide an adequate entry in the Wiki for each non-trivial code contribution. For additional information, please refer to the [Wiki](https://gitea.dmz.rs/sborovic/dmzOS/wiki). # Instructions for running the utilities ## c_toolchain utility docker image This is the consistent C toolchain environment, containing all the tools needed to run and develop the project. Dockerfile: `dockerfile.c_toolchain` Run the docker-compose command to get a `bash` shell that is bound to the `dmzOS` directory: ```docker docker-compose run --rm c_toolchain ``` Any changes in the container `dmzOS` directory will be reflected in the local `dmzOS` directory. The image contains `indent` and `clang-format` as `C` code formatters. A .vimrc file is automatically part of the image, and it contains a rule to make vim run the following formatting command on buffer save: ```bash indent -kr -ts4 % ``` This is using the Kernighan and Ritchie code styling, as well as identations with 4 spaces. If you want to use your own `.vimrc`, please replace the existing `.vimrc` file inside the `config` directory with it.