redox issueshttps://gitlab.redox-os.org/redox-os/redox/-/issues2023-11-07T17:45:59Zhttps://gitlab.redox-os.org/redox-os/redox/-/issues/1377Repositories with missing GitLab CI2023-11-07T17:45:59ZRibbonRepositories with missing GitLab CICI testing is an important industry-standard to enforce mature software, it can cover compilation errors, logic problems, typos, broken links, etc.
- [ ] arg-parser
- [ ] audiod
- [ ] binutils
- [ ] bootloader
- [ ] bootloader-coreboot
...CI testing is an important industry-standard to enforce mature software, it can cover compilation errors, logic problems, typos, broken links, etc.
- [ ] arg-parser
- [ ] audiod
- [ ] binutils
- [ ] bootloader
- [ ] bootloader-coreboot
- [ ] bootloader-efi
- [ ] bootstrap
- [ ] cbitset
- [ ] cbloom
- [ ] chashmap
- [ ] compiler-builtins
- [ ] conc
- [ ] contain
- [ ] cookbook
- [ ] coreboot-fs
- [ ] coreboot-table
- [ ] core_io
- [ ] coreutils
- [ ] dmi
- [ ] drivers
- [ ] dynamic-example
- [ ] escalated
- [ ] event
- [ ] exampled
- [ ] extrautils
- [ ] f80
- [ ] findutils
- [ ] games
- [ ] gdb-protocol
- [ ] gdbserver
- [ ] home
- [ ] hwio
- [ ] init
- [ ] installer
- [ ] installer-gui
- [ ] intelflash
- [ ] kernel
- [ ] libextra
- [ ] netstack
- [ ] netutils
- [ ] nulld
- [ ] pkgar
- [ ] pkgutils
- [ ] ramfs
- [ ] randd
- [ ] ransid
- [ ] redox-daemon
- [ ] redoxer
- [ ] redox-fatfs
- [ ] redox-fatfs
- [ ] redox-input
- [ ] zerod
- [ ] redox-ssh
- [ ] rmm
- [ ] sodium
- [ ] strace-redox
- [ ] termios
- [ ] uefi
- [ ] userutilshttps://gitlab.redox-os.org/redox-os/redox/-/issues/1390Self-hosting status2024-01-31T04:12:30ZRibbonSelf-hosting statusThis issue will cover the self-hosting status of Redox OS.
Self-hosting in the low-level world is when the operating system can build itself (compile Redox on Redox), to achieve this the toolchain and tools needs to run on it.
### Buil...This issue will cover the self-hosting status of Redox OS.
Self-hosting in the low-level world is when the operating system can build itself (compile Redox on Redox), to achieve this the toolchain and tools needs to run on it.
### Build Redox on Redox
- [ ] rustc
- [ ] cargo - close to work, some deadlocks remain.
- [ ] gcc
- [ ] llvm
- [ ] make
- [x] git - included by default
- [x] curl - included by default
### Build all recipes
- [ ] autopoint?
- [x] bash - included by default
- [ ] bison
- [ ] cmake
- [ ] wget
- [ ] file
- [ ] flex
- [ ] gperf
- [x] libexpat
- [ ] libfuse
- [x] libgmp
- [x] libpng
- [x] libjpeg
- [x] sdl1.2
- [x] sdl2-ttf
- [ ] html-parser-perl
- [ ] libtool
- [ ] m4
- [x] nasm
- [x] patch
- [x] automake
- [x] autoconf
- [ ] scons
- [x] pkg-config
- [ ] po4a
- [ ] texinfo
- [ ] ninja-build
- [ ] meson
- [ ] python3
- [ ] python3-mako
- [ ] xdg-utils
- [x] vim - included by default
- [ ] perl
- [ ] doxygen
### bootstrap.sh
Once all recipes are ported the Redox package manager function and command must be added on the script.
We can do this before the fully porting by adding the Redox OS functions and command as a comment.
- A function to detect if the OS is Redox.
- A function to detect what is installed.
#### Package manager command
```sh
# sudo pkg install rust \
# cargo \
# gcc \
# llvm \
# gnu-make \
# bison \
# cmake \
# wget \
# file \
# flex \
# gperf \
# expat \
# libgmp \
# libpng \
# libjpeg \
# sdl \
# sdl2_ttf \
# html-parser-perl \
# libtool \
# m4 \
# nasm \
# patch \
# automake \
# autoconf \
# scons \
# pkg-config \
# po4a \
# texinfo \
# ninja-build \
# meson \
# python \
# python3-mako \
# xdg-utils \
# vim \
# perl \
# doxygen \
```https://gitlab.redox-os.org/redox-os/redox/-/issues/1394CI testing for packages2023-10-27T13:44:24ZRibbonCI testing for packagesUsing CI tests for packages we can have a stable rolling release system, Void Linux does this, being one of the most stable rolling release Linux distributions of the world.
- [Void Linux continuous integration system](https://build.voi...Using CI tests for packages we can have a stable rolling release system, Void Linux does this, being one of the most stable rolling release Linux distributions of the world.
- [Void Linux continuous integration system](https://build.voidlinux.org/)https://gitlab.redox-os.org/redox-os/redox/-/issues/1405(Open to discussion) Filesystem sandbox system2023-10-16T10:38:16ZRibbon(Open to discussion) Filesystem sandbox systemFilesystem sandbox is very important to avoid data attacks/leaks and user-space rootkits, each process has its own namespace with schemes (use `ls :` to verify the current namespace).
The best security model is to let the user decide wh...Filesystem sandbox is very important to avoid data attacks/leaks and user-space rootkits, each process has its own namespace with schemes (use `ls :` to verify the current namespace).
The best security model is to let the user decide which folders/files some program can access (like recent Android versions), it can be done in two ways:
- When the user open a new program, the windowing system will ask which folders/files the program can access (similar to the xdg-portal window for file selection on XDG-compatible programs).
- The user can specify which folders/files some program can access using a TOML configuration (GUI/terminal).
## Terminal
In most cases the folders/files on terminal programs are specified on the command, thus it's a form of permission.
But the attacker can install an user-space rootkit using commands or a script, to mitigate this a permission prompt could be implemented for file operations on the terminal.
## Implementation
This will be done with scheme filters, the process can use a directory scheme (`home:` for `/home`) or the `file:` scheme directly.
Example:
- `home:path/to/folder`
- `file:/path/to/folder`https://gitlab.redox-os.org/redox-os/redox/-/issues/1419Implement an out-of-memory killer daemon2023-12-02T16:44:20ZRibbonImplement an out-of-memory killer daemonOn Linux you have two types of OOM killers, kernel and user-space, as the kernel OOM killer can be slow to act, most Linux distributions tend to use an user-space OOM killer, in most cases the systemd-oom daemon.
Our OOM killer daemon c...On Linux you have two types of OOM killers, kernel and user-space, as the kernel OOM killer can be slow to act, most Linux distributions tend to use an user-space OOM killer, in most cases the systemd-oom daemon.
Our OOM killer daemon could be called `oomkd` or `oomd`.
### References
- [system-oom](https://www.man7.org/linux/man-pages/man8/systemd-oomd.8.html) - Used in most Linux distributions.
- [earlyoom](https://github.com/rfjakob/earlyoom) - Proposed for Fedora.
- [bustd](https://github.com/vrmiguel/bustd) - An user-space OOM killer written in Rust.https://gitlab.redox-os.org/redox-os/redox/-/issues/1422(Bug) The boot randomly hangs with a large number of CPU cores2024-01-05T15:20:39ZRibbon(Bug) The boot randomly hangs with a large number of CPU coresThe boot hangs on random parts of the boot if you use more than 2 CPU cores on QEMU.
### How to reproduce
- Verify if the `mk/qemu.mk` file is using 2 CPU cores or more (`QEMUFLAGS+=-smp x -m 2048`)
- Start QEMU and verify
- If the bug...The boot hangs on random parts of the boot if you use more than 2 CPU cores on QEMU.
### How to reproduce
- Verify if the `mk/qemu.mk` file is using 2 CPU cores or more (`QEMUFLAGS+=-smp x -m 2048`)
- Start QEMU and verify
- If the bug doesn't happen, add more CPU cores on the QEMU configuration