raspberry-pi-os
circle
Our great sponsors
raspberry-pi-os | circle | |
---|---|---|
9 | 31 | |
12,864 | 1,727 | |
- | - | |
0.0 | 9.1 | |
28 days ago | 19 days ago | |
C | C | |
MIT License | GNU General Public License v3.0 only |
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.
raspberry-pi-os
-
I want to learn about kernel development
Last but not the least, learning by doing is fun so you can check out - raspberry-pi-os (writing an os from scratch) - https://github.com/s-matyukevich/raspberry-pi-os
- GitHub - s-matyukevich/raspberry-pi-os: Learning operating system development using Linux kernel and Raspberry Pi
- Learning operating system development using Linux kernel and Raspberry Pi
- Learning operating system development using Linux kernel and Raspberry Pi (2018)
-
Show HN: CheesecakeOS for Raspberry Pi Volume 0: Booting, Processes, and VM
CheesecakeOS for Raspberry Pi Volume 0: Booting, Processes, and Virtual Memory is the first in what I hope is a series of github markdown tutorials or volumes on bare-metal from-scratch operating system development.
I have dreamed of contributing to the Linux Kernel, but have yet to find the courage to jump in and do so. I started by attempting to read Understanding the Linux Kernel by Daniel Bovet and Marco Cesati, but found it was too advanced for me at the time. I found another text I credit with advancing my understanding, Computer Systems: A Programmer's Perspective by Randall Bryant and David O'Hallaron. I worked on the self-study labs from their book website, and found them to be a superb educational tool.
Further, then becoming interested in what creating an operating system actually means, I stumbled upon Sergey Matyukevich's Rasberry-Pi-OS github repo (https://github.com/s-matyukevich/raspberry-pi-os). I wanted to expand on his tutorial, for my own education, and, in the best case, for the benefit of others.
There are many ideas taken from Linux in the implementation, as when I didn't know how to proceed, that is the source I would consult. Though, I attempt to simplify and explain the details in the text. The implementation stops short of implementing or supporting a file system, the subject of the next volume.
-
Has anyone ever actually gotten a custom kernel/bare metal program to run specifically on the Raspberry Pi 4B?
Not familiar with this myself but aiming to start soon. Have found a nice youtube series for low level development on the RPi, not sure which version he uses, but reportedly it works for some on RPi 4. He also has a subreddit:
-
wanting to create a simple OS for simple games
Here's one tutorial: https://github.com/s-matyukevich/raspberry-pi-os
-
In-depth software programming
C: Learning operating system development using Linux kernel and Raspberry Pi
- What's an interesting non-x86 based architecture to write an OS for?
circle
-
MiniScript on a bare-metal Raspberry Pi
If you're a developer and feeling adventurous, you can also try building it yourself. The source is all on GitHub. It uses the circle-stdlib project (which is circle plus some additions to support much of the C and C++ standard libraries) as a submodule; hopefully I've set that up correctly, but you could always clone that separately and place it in the MiniScript-Pi folder. Check out circle's build instructions for info on setting up your toolchain. (Mac users: be careful with the configure script, which does not work properly on MacOS; find me on Discord and I'll help you fix the script or configure manually.)
-
Bare Metal Emulation on the Raspberry Pi – Commodore 64
I suggest checking out circle https://github.com/rsta2/circle since it's basically a library for the pi hardware. I'm doing some experiments with it myself now.
-
Assembly coding without OS
You can also run a Pi without an operating system, programming it in C or C++ probably. See for example: GitHub - rsta2/circle: A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)
- Bare Metal Emulators and launcher for RetroFlag GPI v1
-
Help with C64 Emulation (never used a C64 before in my life)?
BMC64 is VICE in a trenchcoat unikernel / bare-metal framework called Circle: https://github.com/rsta2/circle
-
Smalltalk-80 on Raspberry Pi: A Bare Metal Implementation
It uses the circle library (https://github.com/rsta2/circle) to provide a minimal runtime (mainly to interface with the hardware).
-
How do I get started with making my own Linux based OS on Embedded Hardware?
I experimented with circle the other day (https://github.com/rsta2/circle) Looks promising, and most likely within your knowledge of C/C++ development.
-
EmuTOS: A Modern FOSS Replacement OS for the Atari ST – and the Amiga Too
Natively would be amazing but a vast amount of work.
The way Apple moved classic MacOS from 680x0 to PowerPC was to write a tiny kernel emulator, with an API to run native stuff on the metal, and run more or less the whole OS under emulation, profile it and just translate the most speed-critical bits.
That's a lot of work for a FOSS project but given the performance delta between 1980s 680x0 and 2020s ARM, total emulation of the whole thing should be perfectly fine. It's how the PiStorm Amiga upgrade works.
https://amigastore.eu/853-pistorm.html
So all I envision is something like Aranym:
https://aranym.github.io/
... running on top of Ultibo, say:
https://ultibo.org/
Or maybe Circle:
https://github.com/rsta2/circle
-
Solutions for >1GHz microprocessor with option for bare metal or freeRTOS
Circle is a C++ bare metal programming environment for the Raspberry Pi.
-
New in this sub, some questions…
The only other reasonable option would be to port it to a new platform which is popular that has a few well documented hardware interfaces so as not to create a hellish nightmare writing drivers. Maybe then you could do a one-off port to that platform (though you might have to re-target the HolyC compiler to target it instead if it is not x86_64). The Raspberry PI seems like a decent option here since there is already a baremetal C++ library supporting USB, keyboard, mouse, sound, video, and as an added bonus UART, I2C, SPI, GPIO. You would have good code examples for porting all the necessary drivers. But obviously this would still be a lot of work and the compiler would need to be re-targeted and user space adapted for running on ARM. That being said backwards compatibility is strong, ARM seems actually interested in keeping it that way (at least for now). The library I'm talking about is here: https://github.com/rsta2/circle
What are some alternatives?
JingOS - Awesome - JingOS - The World’s First Linux-based OS design for Tablets
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab:
rdma-core - RDMA core userspace libraries and daemons
rpi4-osdev - Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4
dattobd - kernel module for taking block-level snapshots and incremental backups of Linux block devices
MiniDexed - Dexed FM synthesizer similar to 8x DX7 (TX816/TX802) running on a bare metal Raspberry Pi (without a Linux kernel or operating system)
rtw88-usb - rtw88 family usb driver for linux rtl8723du rtl8822bu rtl8821cu rtl8822cu
dts2hx - Converts TypeScript definition files (d.ts) to haxe externs (.hx) via the TypeScript compiler API
AmogOS - ඞ Among-us themed OS. As seen on Reddit and Youtube.
8821cu - Linux Driver for USB WiFi Adapters that are based on the RTL8811CU, RTL8821CU and RTL8731AU Chipsets
UEFI-Tuts - YOUTUBE Tutorials on how the UEFI works to boot your own Operating System. Think of this as an EFI Bootloader.
bareDOOM - DOOM ported to run within the barebox bootloader