xv6-riscv
FreeRTOS-Kernel
xv6-riscv | FreeRTOS-Kernel | |
---|---|---|
17 | 12 | |
6,199 | 2,345 | |
4.7% | 3.7% | |
0.0 | 9.4 | |
15 days ago | 8 days ago | |
C | C | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
xv6-riscv
-
The rxv64 Operating System: MIT's xv6, in Rust, for SMP x86_64 machines
okay, fair. i only got misled by the title of the post, which claims all-rust xv6 port.
now that we cleared the userland part, here’s what I’m contemplating on the kernel side. i can’t think of anything simpler and more staple than this, so:
https://github.com/dancrossnyc/rxv64/blob/main/kernel/src/ua...
https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/uart...
honestly - i don’t feel at ease to tell which driver code is more instructional, which is easier to read, which is better documented, which is better covered with tests, which has more unsafety built into it (explicit or otherwise), what size are the object files, and what is easier to cross-compile and run on the designated target from, say, one of now-ubiquitous apple silicon devices.
lest we forget that the whole point of it is “pedagogical”, i.e. to learn something about how a modern OS can be organized, and how computer generally works.
and i’m just not sure.
-
Xv6: A modern, x86 reimplementation of 6th Edition Unix
The x86 version of xv6 is no longer updated, the last updates took place about 7 years ago. Current xv6 supports RISC V in qemu, there are also ports to real RISC V devices (Kendryte/Canaan K210, Allwinner D1, StarFive JH7110, some hacked by me) and FPGA implementations ().
https://github.com/mit-pdos/xv6-riscv/ (qemu)
-
seeking another faculty member re: xv6
I am no help with recruitment, but simple search revealed "https://github.com/mit-pdos/xv6-riscv", were you aware of this?
-
MINIX is an awesome way to learn a wide range of CS concepts
Different repo under same org https://github.com/mit-pdos/xv6-riscv
-
Ask HN: Examples of Microkernels?
I'm reading through the MIT xv6 OS handbook and code (here: https://github.com/mit-pdos/xv6-riscv/) and they mention the fact that they created it as a monolithic kernel since most unix systems are monolithic. They then introduce the microkernel concept. Are there microkernel concepts out there (especially code) I can check out? I'm curious to see how userspace processes communicate to kernel processes to execute privileged actions.
- Risc V Assembly and Qemu
-
How does multiprocessing on a multivitamin cpu work?
Yeah its from here: https://github.com/mit-pdos/xv6-riscv x86 version here: https://github.com/mit-pdos/xv6-public
- Xv6 for RISC-V
-
How do I become an Operating Systems developer?
I would start with working through an OS textbook. Tanenbaum is highly regarded although I worked through OStep and I felt it was very approachable. Also check out wiki.osdev.org. Also, here's a re-inplementation of Unix version 6. I've been meaning to play around with it for a while.
-
Can't get xv6 to run on arch linux
NOTE: we have stopped maintaining the x86 version of xv6, and switched our efforts to the RISC-V version (https://github.com/mit-pdos/xv6-riscv.git)
FreeRTOS-Kernel
-
what do people usually do to separate/abstract platform dependent codes/files
Here is the port - https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/main/portable/ThirdParty/GCC/Posix
-
TI CC2630: Having trouble deciding Contiki vs TI-RTOS
Freertos has support for generic cortex m3: https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/main/portable/GCC/ARM_CM3 It could very well work almost out of the box with your mcu.
-
Ted Ts'o: "As an OS engineer, I deeply despise these optimization tricks, since I personally I care about correctness and not corrupting user data far more than I care about execution speed"
the only OS written in iso c i found was RTOS and they have open bug reports due to strict aliasing in simple things like their linked list implementation, which they don't bother to fix because somehow that causes even more problems (?!): https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/54
- HELP
-
Arduino or full featured RTOS?
You likely put the requirements of POSIX just to have an excuse. Fyi, FreeRTOS kernel, the only thing you need, is here: https://github.com/FreeRTOS/FreeRTOS-Kernel/
- Ask HN: Examples of Microkernels?
-
Ask HN: Embedded Projects to Learn From?
- https://github.com/FreeRTOS/FreeRTOS-Kernel (architecture, C)
-
Nutshell custom memory allocators for me
FreeRTOS comes with 5 quite simple reference implementations of the heap memory allocator. You can study how it works.
-
Using FreeRTOS and dual core RP2040
The main branch is single-core. You're looking for the SMP branch.
-
C programmers scare me
On non-POSIX systems, malloc & free are implemented differently. EG FreeRTOS has some very simple malloc (and optionally free) implementations, eg heap_2.c (has malloc & free, but doesn't consolidate blocks), or heap_4.c (more complex, tries to prevent fragmentation by consolidating blocks, still less optmized & simpler than the glibc malloc/free used by most Linux systems).
What are some alternatives?
xv6-public - xv6 OS
zephyr - Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
riscv-gnu-toolchain - GNU toolchain for RISC-V, including GCC
RIOT - RIOT - The friendly OS for IoT
uom - Units of measurement -- type-safe zero-cost dimensional analysis
mbed-os - Arm Mbed OS is a platform operating system designed for the internet of things
rrs - Rust RISC-V Simulator
mongoose-os - Mongoose OS - an IoT Firmware Development Framework. Supported microcontrollers: ESP32, ESP8266, CC3220, CC3200, STM32F4, STM32L4, STM32F7. Amazon AWS IoT, Microsoft Azure, Google IoT Core integrated. Code in C or JavaScript.
minixfromscratch - Development and compilation setup for the book versions of MINIX (2.0.0 and 3.1.0) on QEMU
nuttx - Apache NuttX is a mature, real-time embedded operating system (RTOS)
lambda-calculus - A lambda calculus interpreter that works on desktop and wasm
TizenRT - TizenRT is a lightweight RTOS-based platform to support low-end IoT devices