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 is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. The Selfie Project provides an educational platform for teaching undergraduate and graduate students the design and implementation of programming languages and runtime systems. The focus is on the construction of compilers, libraries, operating systems, and even virtual machine monitors. The common theme is to identify and resolve self-reference in systems code which is seen as the key challenge when teaching systems engineering, hence the name. 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.

Features

  • Selfie generates ELF binaries that run on real RISC-V hardware
  • Selfie is designed as 64-bit system and requires as such a 64-bit system to run (LP64 data model)
  • Selfie also compiles on systems that support compiling and executing 32-bit binaries
  • Selfie becomes a 32-bit system that generates and executes 32-bit binaries out-of-the-box
  • Selfie is a self-contained 64-bit, 11-KLOC C implementation of a self-compiling compiler called starc
  • The common theme is to identify and resolve self-reference in systems code

Project Samples

Project Activity

See All Activity >

License

BSD License

Follow Selfie

Selfie Web Site

Other Useful Business Software
Paessler - Monitor Your Whole Network in Minutes Icon
Paessler - Monitor Your Whole Network in Minutes

Auto-discovery finds your devices and deploys pre-configured sensors instantly. No project plan required, just visibility from day one.

Waiting weeks for a monitoring rollout isn't an option when infrastructure doesn't stop running. PRTG's auto-discovery scans your network and suggests from over 200 pre-configured sensor types, so you're watching servers, applications and devices within minutes, not after a multi-week deployment. Enterprise-strength monitoring, without the enterprise complexity. Start your free trial today.
Start Free 30-Day Trial
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Selfie!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

C

Related Categories

C Compilers, C Education Software, C Disassemblers

Registered

2022-05-25