Unicorn2 Devblog: What's new and What will be new
Preface
It’s exciting to announce the release of Unicorn2 after more than 6 years. The release note is rather short and concise and this post would elaborate on what Unicorn2 would offer in a bit more details.
What’s new?
Logo
Obviously, this should be the first you may notice, a new log.
QEMU5
Unicorn1 was forked from QEMU 2.2.1 while Unicorn2 is based on QEMU 5.0.1. This bump provides tons of bugfix, better support for new ISA and about 10%-20% speedup.
New architectures
Compared to Unicorn1, Unicorn2 offers two new architectures: PPC && RISC-V.
New API
Unicorn2 has three new APIs while still keeps forward compatibility:
1 | /* |
New supported platforms
Unicorn2 is supported to compile on Apple Silicon and Android. Make sure you follow the latest compilation guide.
New unit tests
The unit tests in Unicorn1 are not maintained for quite a long time and we bring it back in Unicorn2.
Rust bindings
We receive lots of request from rustaceans and Unicorn2 would have a better rust bindings.
New wiki and documents
See Github wiki.
New maintainer
Yes, it’s me. Let’s make Unicorn2 move further. ;)
What will be new?
A good reference is the current (and future) milestone. Roughly speaking, I have a list here:
- Refine some bindings I’m familiar with, like golang etc
- Integrate unicornafl to our code base.
- Migrate old regress tests to unit tests.
- Maybe some new API and functionality.
- Better documents, both for users and developers.
- Bugfix.
Since Unicorn is always an open source project, I look forward to all of your contributions!