raspberry-pi-os
mal
Our great sponsors
raspberry-pi-os | mal | |
---|---|---|
9 | 94 | |
12,854 | 9,792 | |
- | - | |
0.0 | 0.0 | |
19 days ago | 28 days ago | |
C | Assembly | |
MIT License | GNU General Public License v3.0 or later |
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
-
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:
-
In-depth software programming
C: Learning operating system development using Linux kernel and Raspberry Pi
mal
-
Build Your Own Lisp
Great way to learn C! If you want to learn languages, implementing a lisp interpreter is a great exercise, and lots of fun too.
If you're curious but want a more language-agnostic guide, mal (Make a lisp) is a language that has a guide you can follow along with basically any language, and if you get stuck, you can look at already implemented versions in practically any language: https://github.com/kanaka/mal
Personal favorite implementations of mal: nasm (assembly) (https://github.com/kanaka/mal/tree/master/impls/nasm) and wasm (https://github.com/kanaka/mal/tree/master/impls/wasm)
Here is one implementation of a lisp (mal specifically) in matlab: https://github.com/kanaka/mal/blob/dcf8f4d7b9cf7b858850a04a0...
Only 260 lines of code, pretty concise :)
- Ask HN: What projects did you build to get better as a programmer?
-
Can you beat my dad at Scrabble?
So I started some hobbyist game dev using Unity and realised that the full process of making a game has dependencies on a mass of lower-level skills including lighting virtual environments. As a hobbyist photographer I could see some useful analogies from lighting studios and other scenes
So I pivoted, and eventually made money, not from selling a game, but from developing tutorials about digital lighting. I was also able to contribute to a project at work that was making a product based on commercial games engine, not by actually coding it, but by helping to better estimate the costs of the asset generation required.
Coding Unity object scripts in C# also got me back into programming, and I went on to successfully build a self-hosting lisp interpreter following the Make a Lisp guidelines [0].
[0] https://github.com/kanaka/mal/blob/master/process/guide.md
-
Advice for a first-time designer of my own original programming language? Presently writing the interpreter!
Hijacking the top comment to add https://buildyourownlisp.com and https://github.com/kanaka/mal
-
Writing a lisp
Make a Lisp is a nice starting point.
There is a free book online if you prefer to learn C, or use Mal and implement a Lisp interpreter in any language you wish to learn, step by step by looking up needed parts.
-
Make a LISP in Rust tutorial starting tomorrow.
First some details. We will be following along with MAL which is a language-agnostic guide to creating a LISP. Here is the link https://github.com/kanaka/mal. My goal will be to do one live video for each stage (there are 11 stages). My recommendation is for everyone to attempt the stage themselves before they watch my tutorial. Not because I won't explain it as best as I can. But because I think most people will surprise themselves with their ability to complete it without help. The best way to learn is to write code yourself so even if you do watch me, try implementing it yourself afterwords without looking at my code.
-
Hello
> make my own toy programming language, probably a Lisp dialect
I've learned a lot from the "Make a Lisp" project. If you haven't seen it, I'm sure you will enjoy studying it. https://github.com/kanaka/mal
-
Ask HN: What piece of code/codebase blew your mind when you saw it?
For me it was the "Make a Lisp" project. Reading the architectural diagram of a Lisp interpreter, and browsing its implementation in many (87) programming languages.
Especially where the guide explains how tail-call optimization works, my mind was blown.
https://github.com/kanaka/mal/blob/master/process/guide.md#s...
Studying the project changed the way I understand code. Since then I've created my own little Lisps in about three or four versions/languages. Next I'd like to write one in WebAssembly Text format, which is already in a Lisp-shaped syntax.
What are some alternatives?
JingOS - Awesome - JingOS - The World’s First Linux-based OS design for Tablets
rdma-core - RDMA core userspace libraries and daemons
dattobd - kernel module for taking block-level snapshots and incremental backups of Linux block devices
circle - A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
sectorlisp - Bootstrapping LISP in a Boot Sector
rtw88-usb - rtw88 family usb driver for linux rtl8723du rtl8822bu rtl8821cu rtl8822cu
AmogOS - ඞ Among-us themed OS. As seen on Reddit and Youtube.
project-based-learning - Curated list of project-based tutorials
UEFI-Tuts - YOUTUBE Tutorials on how the UEFI works to boot your own Operating System. Think of this as an EFI Bootloader.
wiser - :racehorse: Extremely minimal vmm for linux written in C. Hopefully someday will spin linux-vm for you.