Writing an OS in Rust: Testing
This post explores unit and integration testing in no_std executables. We will use Rust’s support for custom test frameworks to execute test functions…
The latest blog posts to take off on Hacker News. 4,389 posts.
This post explores unit and integration testing in no_std executables. We will use Rust’s support for custom test frameworks to execute test functions…
I have long wanted to create my own desktop operating system targeting the Raspberry Pi. I believe we should have a hackable desktop environment that is both powerful and lightweight, similar to BeOS and the Amiga. To build this desktop we really need full control over how apps draw to the screen, but still have…
So many possible introductions to this one: Windows 7: Sheesh, I sure am slow at creating processes Windows 10: Hold my beer… Or how about: A) How long does CreateProcess take on Windows? B) How lo…
Jonathan Blow of “The Witness” fame likes to talk about just typing the obvious code first. Usually it will turnout to be fast enough. If it doesn’t, you c...
Teaching rigorous distributed systems with efficient model checking Michael et al., EuroSys’19 On the surface you might think today’s paper selection an odd pick. It describes the labs enviro…
Time protection: the missing OS abstraction Ge et al., EuroSys’19 Ever since the prominent emergence of timing-based microarchitectural attacks (e.g. Spectre, Meltdown, and friends) I’ve been…
It has been almost 9 months since I started my sabbatical work with the Microsoft Azure Cosmos DB team. I knew what I signed up for then...
Hot takes and cold truths on software, startups, and the lies we tell ourselves.
The libsodium cryptographic library added support for WebAssembly back in 2017.
In this post, we’ll look at the new loading attribute which brings native <img> and <iframe> lazy-loading to the web!. For the curious, here’s a ...
This is week "1111111111" in the GPS system. Tomorrow morning it will roll over to week "0000000000". How well will various systems handle this change? Not well, judging by what we've seen so far!
Ginseng: keeping secrets in registers when you distrust the operating system Yun & Zhong et al., NDSS’19 Suppose you did go to the extreme length of establishing an unconditional root of …
Edit (2019-04-09): A quick qualifier for future readers. This post talks about correctness in the sense of correct code and not formal proofs or formal specifications. I refer to correctness in the sense of avoidable runtime errors.
A while ago, I put 16 GB of RAM into one of my computers. The computer is using a Foxconn P55MX motherboard with a Core i5 750. It’s old and could probably be replaced, but it still works for what I need.
I have always wanted the Cone compiler to be fast. Faster build times make it easier and more pleasant for the programmer to iterate and experiment quickly. Compilers built for speed, such as Turbo Pascal, D and Go, win praise and loyalty. Languages that struggle more with this, like C++ or Rust, get regular…
Created by Lewis Lehe (of Setosa and UC Berkeley Trans. Eng. ) with design and art by Dennys Hess . Thanks to Ian Johnson for good advice. Tools: d3 , Angular Material , Coffeescript , Browserify , Gulp and Five-Hour Energy Drink .
I was trying to make my predictions for the new Formula One season by studying the aerodynamics of the cars, their cornering speeds, their ability to run with different amounts of fuel. Then it hit me: I have no idea what I'm doing.
I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set…
It has been 3 months since I joined IIT Madras and it has been good fun so far. Along with the members of the RISE group , we’ve initiated a project to build secure applications on top of secure extensions of the open-source Shakti RISC-V processor ecosystem. Unsurprisingly, my language of choice to build the…
The Windows API — a.k.a. Win32 — is notorious for being clunky, ugly, and lacking good taste. Microsoft has done a pretty commendable job with backwards compatibility, but the trade-off is that the API is filled to the brim with historical cruft. Every hasty, poor design over the decades is carried forward forever…
Amazon Aurora: on avoiding distributed consensus for I/Os, commits, and membership changes, Verbitski et al., SIGMOD’18 This is a follow-up to the paper we looked at earlier this week on the design…
(the pictured dish is apparently materials for “Buddha Jumps Over The Wall”, named for its ability to seduce away vegetarians – sadly it uses shark fin so has some ethical issues&…
Years ago I worked in the Xbox 360 group at Microsoft. We were thinking about releasing a new console, and we thought it would be nice if that console could run the games of the previous console. E…
In my previous post, I reviewed a new fast random number generator called wyhash. I commented that I expected it to do well on x64 processors (Intel and AMD), but not so well on ARM processors. Let us review again wyhash: uint64_t wyhash64_x; uint64_t wyhash64() { wyhash64_x += 0x60bee2bee120fc15; __uint128_t tmp; tmp…
Take manual control of your Linux system’s DNS resolution and keep programs from interfering with and overwriting your resolv.conf file.
AWS EC2 Secret sauce. How AWS provisions Windows EC2 in the cloud. Instance Pool.
The critical rules to keep in mind when designing an event-driven architecture