selfie
oscam-patched
Our great sponsors
selfie | oscam-patched | |
---|---|---|
21 | 1 | |
2,340 | 98 | |
0.6% | - | |
9.6 | 8.3 | |
7 days ago | 9 days ago | |
Jupyter Notebook | C | |
BSD 2-clause "Simplified" 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.
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
-
Selfie – A tiny RISC-V C compiler, emulator and hypervisor
From the project’s README [1]:
> Selfie is implemented in a single (!) file and kept minimal for simplicity. There is also a simple in-memory linker, a RISC-U disassembler, a garbage collector, L1 instruction and data caches, a profiler, and a debugger with replay as well as minimal operating system support in the form of RISC-V system calls built into the emulator and hypervisor. The garbage collector is conservative and even self-collecting. It may operate as library in the same address space as the mutator and/or as part of the emulator in the address space of the kernel.
I was a bit skeptical, but I’m very impressed right now [2] . . .
[1]: https://github.com/cksystemsteaching/selfie/tree/5de675a0f08...
[2]: https://github.com/cksystemsteaching/selfie/blob/5de675a0f08...
I think it's because their subset of C [1], which they call C Star (C*), doesn't support the `sizeof` operator. Since Selfie is supposed to be able to compile itself, it seems they've restricted the used grammar to the subset supported by C*.
[1]: https://github.com/cksystemsteaching/selfie/blob/50b5fec8378...
-
What's everyone working on this week (46/2021)?
It's also more than simply a compiler, there are emulator and hypervisor built in etc. Very interesting, check it out on GitHub.
-
Compiler Class
Maybe this is interesting to you as well? https://github.com/cksystemsteaching/selfie
-
ECTS Chaos an österreichischen Universitäten
Bei uns war es forcierte Gruppenarbeit an einem damals noch experimentellen selfie. Es ging darum eine Basisversion zu erweitern. Leider war damals der Startcompiler alles andere als Wartbar, wodurch also die Studenten gleichzeitig mit harter Gruppenarbeit und bisher nicht gewohntem Legacy Code konfrontiert waren.
oscam-patched
We haven't tracked posts mentioning oscam-patched yet.
Tracking mentions began in Dec 2020.
What are some alternatives?
Provenance - iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Unicorn Engine - Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
CubeSatSim - CubeSatSim, the AMSAT CubeSat Simulator
ish - Linux shell for iOS
coollang-2020-fs - Compiler of a small Scala subset
scamp-cpu - A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system.
perseus - A state-driven web development framework for Rust with full support for server-side rendering and static generation.
shecc - A self-hosting and educational C optimizing compiler
desmume - DeSmuME is a Nintendo DS emulator
the_ray_tracer_challenge_in_rust - Repository to follow my development of "The Raytracer Challenge" book by Jamis Buck in the language Rust
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
ld - LambdaDelta