Blogs
Reading notes for awesome blog posts.
This is an EuroRust'22 presentation.
A Rust macro is a function written in Rust that accepts a stream of tokens as input and produces a stream of tokens as output. The compiler runs this function at compile time whenever it encounters the macro in code, passing in the current stream of tokens and replacing it by the generated stream.
To EL2, and Beyond! Optimizing the Design and Implementation of KVM/ARM
Introduces ARM virtualization extensions (VE) and virtualization host extensions (VHE).
In VE, hypervisor is required to run in EL1 yet guest kernel has to hypercall to EL2 (KVM lowvisor). Then EL2 redirects the hypercall to EL1 (KVM highvisor). This enlarges the performance overhead.
VHE supports running unmodified OSes in EL2 without using EL1. Thus mediating the performance overhead.
Thoughts on software-defined silicon
What is SDSi: software defined silicon
SDSi disables access to specific processor capabilities unless purchasing the subscription. The SDSi hardware also maintains a couple of counters that track the number of unsuccessful attempts to prevent brute-force attacks.
SDSi will also come to Linux kernel driver.
Asahi Linux rewrite M1 GPU driver in Rust. (i.e. this commit)
This post discussed an in the wild exploit targeting the Pixel 6 and leveraging CVE-2021-39793, a vulnerability in the ARM Mali GPU driver used by a large number of other Android devices. ARM's advisory described the vulnerability as CVE-2022-22706.
Kernel Development with Qemu (Printing "Hello World" On Bare Metal)
Blog post by Mars Research Group
TODO
Debugging QEMU/KVM Setup If Something Goes Wrong (e.g., Support for 1GB Pages)
Blog post by Mars Research Group
TODO
How much does Rust's bounds checking actually cost?
What’s the cost of those bounds checks for a real-world, production application?
TODO
Exploit Engineering – Attacking the Linux Kernel by NCC Group