selfie
OberonSystem3
selfie | OberonSystem3 | |
---|---|---|
21 | 7 | |
2,349 | 83 | |
0.5% | - | |
9.7 | 6.9 | |
2 days ago | 3 months ago | |
Jupyter Notebook | Modula-2 | |
BSD 2-clause "Simplified" 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.
selfie
- A tiny hand crafted CPU emulator, C compiler, and Operating System
-
Project Oberon the Design of an Operating System, a Compiler, and a Computer Pdf
this sort of exists at https://github.com/cksystemsteaching/selfie
> Selfie is a self-contained 64-bit, 12KLOC C implementation of: (...) a tiny (...) subset of C called C Star (C) (...) to a tiny (...) subset of RISC-V called RISC-U[;] a[n] (...) emulator (...) that executes RISC-U code[;] (...) a (...) hypervisor (...) that provides RISC-U virtual machines*
so they have an instruction set architecture, a compiler, and an operating system, though it's much simpler than xv6. because the instruction set is a subset of risc-v you can run its code on actual risc-v hardware (or qemu-system-riscv), but presumably you could also design risc-u hardware in verilog that was simpler than a full implementation of rv64i with whatever extensions the hypervisor needs
- Best book on writing an optimizing compiler (inlining, types, abstract interpretation)?
- Selfie: An educational platform for teaching systems engineering
- An educational software system of a tiny self-compiling C compiler, a tiny self-executing RISC-V emulator, and a tiny self-hosting RISC-V hypervisor.
- Selfie: An Educational Platform For Teaching Systems Engineering
OberonSystem3
-
Project Oberon the Design of an Operating System, a Compiler, and a Computer Pdf
After this follow up on the Oberon System 3, with its Gadgets component model, and a mix of JIT/AOT compilers,
"The Oberon companion - a guide to using and programming Oberon System 3"
https://www.semanticscholar.org/paper/The-Oberon-companion-a...
You can access the source code from Rochus fork,
https://github.com/rochus-keller/OberonSystem3
Or the Active Oberon evolution, although not directly done by Niklaus Wirth,
https://gitlab.inf.ethz.ch/felixf/oberon
Screenshots and OS Manual,
https://gitlab.inf.ethz.ch/felixf/oberon/-/blob/main/ocp/Doc...
Or Component Pascal and Blackbox IDE, created by a startup out of ETHZ
https://blackboxframework.org/index.php
-
Kolibri OS: fits on a floppy disk, programmed using interrupts
Even if so, ARM or RISC-V are more attractive architectures in many respects; and there are proof of concepts demonstrating that very lean operating systems with GUIs can be built with high-level languages, even with GC (see e.g. https://github.com/rochus-keller/OberonSystem3/); so writing such a thing in assembler is certainly impressive, but also a cul-de-sac.
-
FreeOberon cross-platform Oberon language IDD
> It's a whole operating system, after all.
You can use that one which easily starts on all platforms without taking control of the PC: https://github.com/rochus-keller/oberonsystem3
-
Mozilla treats Debian devotees to the raw taste of Firefox Nightly
I'm 'old' too. Born summer 1969. What makes me grumpy is the OOTB experience of any distro I tried. And I (mostly) don't want to have to compile stuff anymore. So I settled for (mostly) binary distros, like Arch, which btw. I (mostly) had no troubles with whatsoever. It just lacked 'convenience' and some scientific/technical stuff in their repositories, which I'd then have to compile again, so no, Arch had to go. Settled for Debian then, because even though their ways of doing things can seem bizarre, old-fashioned and stale, it (mostly) just works, they have it all, and when you get around their 'bizarreness' shiny new, too.
Almost paradise, except for 'systemdness', which I can't stand. So there are countless derivatives with different goals and priorities, some of them for running live in RAM, some of them being especially 'free' from an ideological but impractical POV(which I also can't stand), and some of them eliminating 'systemdness'.
Then there are Antix/MX whose goal seems to be to get that stuff running any way they can on any somewhat reasonable system, more or less frugal in case of Antix, rather comfortably in case of MX. While giving a shit about ideology, prioritising availability of all sorts of drivers, connectivity, convenience in very pragmatical ways. While running in RAM for speed(optionally), but still enabling persistence in various ways.
This toolset of them enables me to get up and running on almost anything from very barebones images with the presses of a few function keys, some mouseclicks, some eliminating of unwanted stuff(by mouseclicks, no editing necessary, I checked), installing my stuff, choosing theme/widget/deco/whatever, and be done with it in maybe 30 minutes max initially(including that remaster thing).
From there on it is absolute BLISS for me, because that way I have fast systems, looking and feeling how I like it, without getting in my way, or missing anything. For MONTHS, while still being updated, without reboots. Exceptions are kernel or fundamental library updates. These are just a few clicks in Synaptic anyways, reload, mark, apply, YÄSS, YÄSS!, gieev, gieev meee new stuff! Maybe 3 to 5 minutes daily while I'm slurping my morning coffee or tea? Too much change? Switched some core components meanwhile? Remaster in not more than 10 minutes. Reboot. Done.
BLISS again.
For playing around I'm tempted to try https://github.com/rochus-keller/OberonSystem3 (since you mentioned A2 ;-)) but probably not, because I'd rather enjoy riding my new hyperbicycles more ;-)
- Oberon System 3
- Show HN: A cross-platform version of the ETH Oberon System 3
What are some alternatives?
oscam-patched - Open Source Cam Emulator
coollang-2020-fs - Compiler of a small Scala subset
perseus - A state-driven web development framework for Rust with full support for server-side rendering and static generation.
scamp-cpu - A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.
shecc - A self-hosting and educational C optimizing compiler
the_ray_tracer_challenge_in_rust - Repository to follow my development of "The Raytracer Challenge" book by Jamis Buck in the language Rust
ld - LambdaDelta
ITC - Computer Science coursework and projects at Tec de Monterrey 👨🎓
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
seb-mac - Safe Exam Browser for macOS and iOS
nun-db - A realtime database written in rust
teaching - contains some turials and HowTos