I'm learning more about running bare-metal code, assembly, and the Linux stack (kernel, DTB, kernel modules, GNU environment, etc). I thought that Raspbian would be a good start since I want to learn how to write assembly in ARM. I think it would be a fun project to write a micro-kernel in Linux using Rust that compiles on the Pi Zero W, and port a few of GNU's coreutils programs over to Rust. I know some of libraries for the Pi build of Raspbian is closed-source due to Broadcom's required NDA with the Pi Foundation, and I wouldn't doubt it if there is proprietary software written by the Pi Foundation to support the Pi boards that can't be open-sourced due to these NDAs. Due to this, there are certain libraries (such as the VideoCore libraries) that I wouldn't be able to rewrite in Rust. I'd have to install the C libraries that are currently provided, and write wrapper libraries in Rust if I wanted to support that.
What I'd like to do is break down the Stretch Lite build of Raspbian into the major contributors, and group them by open-source, or closed-source. Here's what I've come up with so far:
Kernel/Drivers (the Pi Foundation's Debian fork)
Device Tree Blobs (part of the Pi's firmware)
GNU Coreutils (Debian)
Bootloader (is this provided by Broadcom, or Pi Foundation?)
VideoCore firmware (Broadcom)
Are there any major components that am I missing?