×
Home Articles Tutorials Videos Projects
Emulating an emulator inside itself. Meet Blink

Emulating an emulator inside itself. Meet Blink

4 Jan, 2023

It's Wednesday and I feel like doing something fun. How about playing with an emulator?

Blink is a tiny-but-powerful x86 virtual machine (VM) written in C, by Justine Tunney. Besides having a really cool name, there are many features of Blink that make it quite impressive.

BLAZINGLY FAST!!!

Blink is at least 2 times faster than QEMU, and it is even capable of emulating QEMU itself. I have not done benchmarks (yet) but trust me 😑

That's rather impressive for a relatively new project. Only time can tell how much faster it will get with further work and optimizations. Starting fast is always a good thing. You know what they say, fast is ehhhh... good! good!

Very tiny

How small can an emulator be? Blink occupies only 157Kb. It Would be interesting to see how this size changes as more features are added.

Built-in debugger (without gdb)

It's a small, fast emulator but there's more! Blink comes with blinkenlights; a nice debugger that runs in the terminal. Much like GDB but way cooler.

Reverse debugging

The TUI looks cool but its best feature isn't just the looks, but Reverse-Debugging. One of the newest and most impressive features of Blinkenlights is reverse-debugging. It can go back in time during program execution. Now imagine all the things you can do with that. You can not only single-step forwards but also backward during execution. That's pretty impressive if you ask me.

Can it emulate GCC? 😏

Blink can emulate GCC. blink emulates itself

Can it emulate Itself? 🤯

Just when you thought it was over, Blink emulates Blink Emulating a program. VERY COOL! blink emulates itself

Conclusion

Blink is a rather impressive project. Justine Tunney and other contributors deserve some accolades for their work. You can check out Blink on github.

Readme Card

Thank you for reading,

Give me a follow on Twitter to get updated on my new articles, and join my Discord server if you would like to see cool open-source projects I am building with an awesome community of software enthusiasts.

Consider donating, or becoming a sponsor to help me transition into making open-source software, full-time.

this website does not show ads, track you, or collect your data. have a great day :)