Menu

Remastering NoirVisor with Rust and Future Roadmap

2024-11-07 - Live on and Go, Virtualization Technology

After a long time of unemployment ever since graduation, I see a great ordeal casted on myself. Perhaps I should avert myself following the same path as ever and make amends on my way. That’s when it struck me: I could remaster NoirVisor with Rust. I am probably a terrible alumnus from Columbia University, but I am confident that I will become a great independent hypervisor developer.

What is NoirVisor aiming at?

At first, NoirVisor was merely a project that follows the same path as bluepill hypervisors like HyperPlatform, SimpleVisor, etc.. That’s what I was thinking about. However, as I became more and more determined to be an OS developer, I decided to change the path of NoirVisor. In late 2021, I added the Customizable VM feature to NoirVisor in the hope that NoirVisor will become the open-source version of Microsoft Hyper-V.

Virtual Machines?

Yet, something isn’t working well: NoirVisor wasn’t able to run a real virtual machine defined by most user’s expectation – run a commodity operating system like Linux/Windows. What NoirVisor can run is just some dummy guest programs. This is a harsh question raised by Prof. Jason Nieh and I think it makes sense. As a result of discussion, I decided to work with QEMU – a generic and open-source machine emulator and virtualizer – and add NoirVisor as an accelerator of QEMU.

It didn’t turn out well: NoirVisor can’t properly run SeaBIOS and it will stuck in infinite loop while loading bootable media. The exact reason is still unknown until today. It might be irrelevant, but I hope rewriting NoirVisor with Rust may solve this issue.

Rivers in the Desert

When a cool drop of water’s all I need,
Gotta clear my head of anger and greed.

That’s – in my opinion – the best part of this song.

I should rethink how NoirVisor should walk its path. Is it still fine to keep developing NoirVisor with C? I am afraid the answer is no. I am feeling much more stressed to manage memories in C, and I most certainly do not want myself anything to do with C++, so I choose to remaster NoirVisor with Rust.

Being Aggressive Isn’t the Answer

I attended the Rust China Conference 2024 in Shanghai. Di Wu from ByteDance gave his speech on discussing their experience in developing servers. One part of his speech makes most sense to me: being aggressive isn’t the answer to promote Rust; it may cast detriment of fame to Rust itself. Personally, I have seen enough squabbles between Rust and C++ developers and I most certainly see what went wrong: these Rustaceans tried so hard that they caused stress on others. Such squabbling may even get a Rustacean tired.

NoirVisor chooses to remaster the core with Rust, in lieu of the whole project. As I was trying Rust with WDK crate, I found that it will drastically slow down the performance of rust-analyzer plugin of VSCode, so I won’t rewrite the whole NoirVisor in Rust. In addition, most logics out of NoirVisor core are in fact fairly simple. It is unlikely for memory unsafety to happen in them. It is fine to leave them be for now.

What’s the Future?

For some weird reasons that I do not comprehend, there were lots of cheat developers who contacted me. Even if they are not cheat developers, they also have some other ulterior motives like piracies. What’s even weirder is that some rumors say Roblox would detect NoirVisor. I was shocked to hear it. Being applied in game cheat industry is absolutely never my intention, but it is what it is anyway. What I hope is that remastering NoirVisor with Rust can stop – or in worst scenario, just decelerate – NoirVisor from being applied in cheat industry.

My intention on this project is to put NoirVisor as a challenger to legacy virtualization software like VMware Workstation, Microsoft Hyper-V, Linux KVM, etc. I hope that – as a hypervisor written in Rust – it may become a good challenger to oppose them. I also hope this may clear the name of NoirVisor, as I heard some rumors that cheat industries don’t like Rust.

Motivation Needed

I am no longer a student and I wasn’t able to find a job, so I need to receive proper propellers to keep my life going. Said propellers could be sponsorships, or some other proper profit models.

Since it may be viable to profit on open-source projects via working on private customizations, I might do that as well, but I will absolutely refuse to work on bypassing anti-cheat and anti-pirate systems, since I believe that’s not a part of a proper profit model. If you have such ulterior motives, please refrain from contacting me. Let’s not waste each other’s time.

Currently, I opened an account at afdian to receive sponsorships. The only supported currency is CNY.

Leave a Reply

Your email address will not be published. Required fields are marked *