docs: removed '.wiki' directory from git

This commit is contained in:
antifallobst 2023-03-19 16:03:06 +01:00
parent e9cd7c63b6
commit 148dfe5a62
6 changed files with 0 additions and 1972 deletions

View File

@ -1,45 +0,0 @@
# Build instructions
**DISCLAIMER: To build this project you need a linux system (WSL could work for windows users, but I haven't tested it)**
First you need to clone the repository:
`git clone https://codeberg.org/antifallobst/noxos/`
then there are a few tools required, that need to be installed:
* **gcc** - compiler
* **ld** - linker
* **nasm** - assembler
* **cmake** - build system
* **xorriso** - ISO creation tools
* **qemu** - emulator
There is a shell script to setup the workspace and compile.
Just run it using the following commands:
```bash
cd noxos
./build.sh
```
If the Bootloader (Limine ([github](https://github.com/limine-bootloader/limine))) isn't downloaded yet, the script will download it.
The final ISO file will be written to the *build* directory.
To launch the ISO, run the `run.sh` script.
# UEFI Emulation
To emulate an UEFI system, you need to install the `ovmf` package.
Then you can do `./run.sh uefi` to start qemu with uefi instead of bios.
# Debugging
## Logs
When running through the script, qemu is configured to write the kernels logs to *STDOUT* and a file called *noxos.log*.
## GDB
You can connect GDB to qemu.
To achieve this, run `./run.sh debug`.
QEMU will wait until you connect GDB to it as a 'remote' target on `localhost:1234`.
```bash
gdb build/cmake/kernel/kernel
target remote localhost:1234
c
```
(note, that the last to commands have to be 'executed' in gdb not in your shell)

View File

@ -1,61 +0,0 @@
# Code Style
## Naming conventions
- **structs** are suffixed with **_T**
- **typedefs** are suffixed with **_t**
- **enums** are suffixed with **_E**
- **global** variables are prefixed with **g_**
Everything is **snake_case**.
## Code readability
To make the code as readable and self explaining as possible, there are a few patterns that should be used.
### Avoid abbreviations
Give your variables, functions, etc. meaningfull names.
The times of 80char wide screens are over, feel free to use that space :D
Example: `sym_at_idx` -> `get_symbol_at_index`
But you're not forced to (anything) write out everything.
For example the **Interrupt Descriptor Table** is simply referred to as **idt** (this abbreviation is btw standard).
### Avoid indentation nesting
In a perfect codebase, the maximum indention level would be 3.
The goal of NoxOS is not to be a perfect codebase, but please avoid huge indention nesting.
To achieve this, you can break parts into extra functions and/or use the early return pattern.
Example:
```c
bool likes_pigs (void* a) {
if (a != NULL) {
if (a == 0xACAB) {
return false;
}
}
return true;
}
```
->
```c
bool likes_pigs (void* a) {
if (a != NULL) { return true; }
if (a != 0xACAB) { return true; }
return false;
}
```
### align declarations
Please align declarations, definitions, etc like in the example:
```c
char am_i_a_variable = '?';
uint64_t number = 0;
bool i_waste_bits = true;
```
### namespaces
Unlike C++ C has no namespaces.
To achieve the goal of namespaces, please prefix your functions, structs, etc. with the "namespace" they are in.
Example: `out_byte` -> `io_out_byte`

View File

@ -1,47 +0,0 @@
Welcome :D
Nice, that you're interested in contributing.
There are several ways to contribute to NoxOS:
- Write code
- Maintain Documentation
- Typos
- Grammar
- Is the documentation up to date?
- Plan stuff (e.g. syscalls)
- open Issues
# Before Contribution
Please read the [Code-Style wiki entry](https://codeberg.org/antifallobst/noxos/wiki/Code-Style) before you start to contribute.
For workspace setup and build instructions look at [this wiki entry](https://codeberg.org/antifallobst/noxos/wiki/Build-instructions).
**We don't accept any Assholes! If you're a fascist, racist, or discriminate others for anything, go fuck yourself.**
# Contributing
When you contribute code, please [document](https://codeberg.org/antifallobst/noxos/wiki/Kernel-documentation) it.
You don't have to (and you also shouldn't) write romans, but a few lines for every in a header exposed function, struct etc. help others (and yourself) understanding how to interact with your code.
## What dafuq is ...?
OS development can be quite complicated/confusing. That's Ok.
Stuff like Paging can be really weird, if you don't have osdev experience.
But there are learning resources and places, where you can ask questions.
**A small overview about such resources and places:**
- The [osdev wiki](https://wiki.osdev.org) is like wikipedia - just for hobby os developers.
- The [osdev subreddit](https://reddit.com/r/osdev) is a great place to ask questions and share knowledge
- Intel's [developer manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) is a more advanced but kinda precise information source
Also feel free to join the [NoxOS Matrix space](https://matrix.to/#/#noxos:systemausfall.org),
where you can chat with other NoxOS devs and ask questions.
**But Stay Respectful, Or We `sudo rm -rf /` Your PC ;)**
# Where to start?
Get the codebase and play a bit around with it.
Try to understand basic concepts of the codebase, the [documentation](https://codeberg.org/antifallobst/noxos/wiki/Kernel-documentation) will help you.
After that you can search the [Issues](https://codeberg.org/antifallobst/noxos/issues) for the `Good First Issue` label,
to find easy improvements, etc. that you can try to implement.
Another option is to ask in the [Matrix Space](https://matrix.to/#/#noxos:systemausfall.org).

View File

@ -1,11 +0,0 @@
**DISCLAIMER: We don't accept any Assholes! If you're a fascist, racist, or discriminate others for anything, go fuck yourself.** If not, welcome :)
The wiki on codeberg is probably less frequently updated, than the `.wiki` directory in the codebase.
Wiki Content:
* [Contribution guide](https://codeberg.org/antifallobst/noxos/wiki/Contribution-guide)
* [Build instructions](https://codeberg.org/antifallobst/noxos/wiki/Build-instructions)
* [Code Style](https://codeberg.org/antifallobst/noxos/wiki/Code-Style)
* [Kernel Documentation](https://codeberg.org/antifallobst/noxos/wiki/Kernel-documentation)
* [Project Roadmap](https://codeberg.org/antifallobst/noxos/wiki/Roadmap)

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +0,0 @@
# Roadmap
- [x] Bootable system
- [x] Logger
- [X] Page frame manager
- [X] Interrupts
- [X] Page maps
- [X] Heap
- [X] Format strings
- [X] Graphics Renderer
- [X] Text
- [X] Double buffering
- [X] Buffer requests
- [X] Panic Screen
- [X] Register dump
- [X] Stack tracing
- [X] Scheduler
- [X] (Kernel) Threads
- [X] Ramdisk
- [X] USTAR
- [X] RAMFS
- [X] VFS
- [X] ELF loading
- [X] Processes
- [ ] Keyboard input (ps/2 int)
- [ ] Shell
- [ ] JSON parser for system config
- [ ] FAT32
- [ ] Text Editor
- [ ] TCC