Zero Dereference – Telegram
Zero Dereference
127 subscribers
3 photos
3 files
372 links
Interesting links related to systems programming, hacking, and science.

Contact: @richiefreedom
Download Telegram
On December 2, I will be speaking at the KasperskyOS Night online technical conference, where I will tell the story of finding a non-trivial bug in our hypervisor.

The entire conference is dedicated to our microkernel operating system, KasperskyOS. There will be both kinds of reports: with dry theory and stories from our daily practice.

Join if you are interested in OS development, DSL (domain specific languages) or information security. Participation is absolutely free, just register.

The conference lasts two days, December 1 — 2. The main language of the conference is Russian.

https://os.kaspersky.ru/night/

#conference #osdev #microkernel #system #programming #c #haskell #dsl #kasperskyos #infosec
A simple program that shows an example of radio transmission without utilization of any onboard wireless technology. Just start the program on MacBook Air (2015) and try to detect the signal with an SDR receiver tuned to 1580kHz on AM.

https://github.com/fulldecent/system-bus-radio

#radio #programming #c #hacking #infosec
αcτµαlly pδrταblε εxεcµταblε is a clever approach to produce x86_64 binaries able to run on most modern operating systems, including Linux, Windows, MacOS and FreeBSD.

https://justine.lol/ape.html

#c #assembly #system #programming #lowlevel
Selfie is an educational project consisting of a compiler for a subset of C that generates code for a simplified RISC-V instruction set, a small emulator for that architecture, and a tiny hypervisor.

Selfie can compile and execute itself.

There are various extensions for Selfie that include a simple garbage collector and a symbolic executor.

http://selfie.cs.uni-salzburg.at/

#c #riscv #system #programming #lowlevel #compiler #osdev #hv #virt
Qibec is an Ultra-RISC CPU made from discrete transistors. The CPU provides only one instruction that can be used to express any program!

The site about Qibec describes its architecture and the basic principles any CPU is based on.

http://mircad.com/q/

#lowlevel #hw #risc #cpu #diy
Stoneknife Forth is a minimal forth translator that can compile itself. This compiler is so simple that it recognizes only one-letter identifiers.

This can be bootstrapped in two steps:

First of all Stoneknife is compiled by itself being interpreted by a slow interpreter written in python.

The second step is compiling with the compiler produced by the previous step. The result is a bootstrapped x86 ELF executable.

https://github.com/kragen/stoneknifeforth

#compiler #lowlevel #system #programming
I have already written about Rui Ueyama and the family of small C compilers: 8cc and 9cc. I also mentioned chibicc, a project that complements Rui's book.

Last time I didn't notice how the author organized the repository of chibicc. Each commit is a single step from zero to a full-featured C11 compiler (without optimizations and proper allocation of registers).

The first commit in the repository only involves a simple compiler that reads a number and generates a program that can return this number on completion. The last commit includes all the source code of the compiler that can build real projects like Git, SQLite and libpng!

https://github.com/rui314/chibicc

#c #compiler #lowlevel #system #programming
Lagrange is a browser for Geminispace.

If you still don't know, Gemini is a new protocol that replaces Gopher. Gemini sites follow a very ascetic aesthetic, which is in stark contrast to the modern web. Most of the sites are created by interesting people with deep technical background.

I like the Lagrange browser because it goes its own road. It doesn't use any popular graphical toolkit. In opposite to most modern GUI apps it is based on its own object system and widget library. But it doesn't look like an amateur handicraft, on the contrary, this program is very convenient and beautiful.

https://gmi.skyjake.fi/lagrange/

#c #oop #gui #gemini #gopher
Pika is a bottom-up right to left parsing algorithm based on ideas of the packrat parser. It uses a dynamic programming approach to resolve two well known problems of recursive descent parsers: left recursion and error recovery.

https://arxiv.org/pdf/2005.06444.pdf

#parsing #plt #paper
Ultibo is a bare metal environment to run FreePascal applications on any available RaspberryPi board. It provides APIs for networking, USB access, preemptive threading on multiple CPUs, filesystem access, exception handling, hardware accelerated OpenGL ES graphics, etc. All of the features are available without any operating system!

https://ultibo.org/wiki/Main_Page

#osdev #pascal #rpi #system #programming
You may remember I said that I was working on a small book about virtualization. A lot has changed since then, I had more work to do, and I quit working on the book.

A friend of mine recently shared with me a link to a series of articles on Qemu internals posted by Airbus. I hope you find these materials interesting.

https://airbus-seclab.github.io/qemu_blog/

#virt #qemu #system #programming
An article on an ahead of time binary translator that translates NES ROMs to native x86_64 executables.

https://andrewkelley.me/post/jamulator.html

#nes #plt #virt #system #programming #llvm
Cowgol is a simple programming language inspired by Ada. The language has been greatly simplified to enable easy but effective compilation for small platforms like Zilog Z80, Intel 8080, MOS 6502, Motorola 68K, and others.

The Cowgol compiler is bootstrapped and written in Cowgol itself. It uses a simple table-driven code generator but performs several optimizations. The code of the compiler is very accurate and pleasant to read.

https://github.com/davidgiven/cowgol

#plt #compiler #system #programming