Unix

OSDEV[0x1]: Studying Strategy (for Writing an Operating System)


This video is the second part (0x1) of a series on writing an operating system. The creator, Raj, details the comprehensive studying and logging strategy he has designed to tackle this long-term project. The goal is to create a structured approach that fosters deep understanding, maintains motivation, and effectively manages the vast scope of the endeavor.

OSDev[0x0]: Writing an Operating System


This video serves as an announcement and introduction to a new, long-term project: Operating System Development (OSDev). The creator, Raj, explains his motivations for taking on this formidable challenge, his plan for documenting the journey, and the tools he intends to use.

Why OSDev? The Motivation for a New Challenge

  • [00:00:15] Raj explains he’s been feeling bored with typical software engineering projects, which often feel too easy, especially with the rise of powerful LLMs.
  • [00:01:21] He was seeking a “formidable project” that would genuinely challenge him and couldn’t be easily solved by an AI tool.
  • [00:03:00] A primary driver is a personal quest to feel competent. He believes that successfully building an operating system will cement his confidence as an engineer.
  • [00:04:36] He wants to move beyond being a “hand-wavish” software engineer and gain a deep, fundamental understanding of the systems he uses daily, such as systemd.
  • [00:05:43] The project also serves as an opportunity to get back into reading textbooks and explore “old-school” computing concepts, which he enjoys.

Project Plan and Documentation

  • [00:02:40] The video series will be unstructured, presented as work logs and journals rather than polished tutorials. He compares the process to exploring an “open-world RPG.”
  • [00:02:47] His entire journey, including notes and logs, will be version-controlled and publicly available in a GitHub repository.
  • [00:10:48] He plans for a continuous, podcast-style format with at least one video per week (Saturdays), supplemented by shorter, micro-video updates for milestones to maintain a tight feedback loop with his audience.

Tooling and Workflow

  • [00:06:21] Emacs will be the central hub for the project, used for coding, note-taking, journaling, and as an LLM client.
  • [00:07:44] He will use Tmux for terminal management and work within an openSUSE Tumbleweed environment.
  • [00:10:14] The project will involve programming in C and Assembly, which he sees as a return to the fundamentals of programming.

Channel Direction and Future Goals

  • [00:09:44] Raj wants to shift his channel’s focus from showcasing tools in a “glass case” to demonstrating them in a real-world, complex application.
  • [00:13:00] OSDev provides a natural, unforced use case to explore and evaluate different tools and programming philosophies.
  • [00:11:15] He hopes the documented journey can serve as a guide for others who might want to start OSDev from scratch in the future.

Conclusion

Raj concludes by expressing his excitement for this new, challenging venture. He emphasizes that this project is as much for his personal growth and learning as it is for creating content. He plans to be much more regular with his uploads and invites viewers to follow along on this ambitious journey.

Blub in the Unix Philosophy

I’ve always maintained a philosophical appetite for the tooling that I use.

One of the core tenets of the Unix Philosophy1 is that everything is a file…

Plan92 has caught my eye due to its more homogenous design than the usual unix you’re used to.

The footnoted-paper (~pre-mature book) is somewhat unhinged and doesn’t shy away from taking a jab at the Unix ecosystem and design.

Apart from the several points the author makes, what stands out the most for me is the idea of everything truly being a file: in hindsight, Unix only realizes a fraction of the principle.

Bells & Whistles

I’ve started spending some time per day without the usual modern software engineering tooling (LLMs, the Internet, etc) to explicitly maintain my cyber-deduction skills (in the context of Unix-based systems (BSDs, Linux, yet to explore Plan9), mostly because they power the majority of the global compute infrastructure).

It’s fun: init your journey with a man man (I’m an info info guy myself) and be extremely skeptical of your usual modus operandi, ditching all assumptions and tumbling down the rabbit hole.

I'm in the Business of Ideation

People have been responding to emacs and my beard.

comments

For a while I thought I did not have a lot to say. Turns out a lot of other humans are quite interested in the much of the same things that I’m into: my hatred for the mouse, and the consequent love for efficient workflows being some of them.

I’ll give the people what they want: I get to enjoy esoteric tech and spread the word, growing a cult, while other humans have enlightened experiences (believe me I do talk like this in person) and continue propogating the techno-propaganda about enjoying computer science.

Learn Vim the smart way

I’ve been building up my vimrc again because emacs’ tramp mode just wasn’t cutting it when it came to speed for my remote work environments.

I’ve been a vim user for around 4 years now and having read some books partially and sampling a lot of blogs and conference recordings over this span, I decided I should commit and formally invest into a definitive resource to get me upto speed and beyond.