Part of writing an operating system, or any freestanding software project, for that matter, is developing your own data structures, mostly from scratch. This implies a number of design decisions, many of which I had never considered before starting t...