Written Tue, 24th May, 2023, Published on 7th September, 2023

One does not simply build an Operating System.

This is how I built a toy OS in Rust.

I have been programming for years now. I wrote my first code in 2016, and believe you me, it was in C++.

My first codes were on paper, and the first day I was able to key in my hello world C++ code into the PC at the Physics lab of my SHS, I knew this was what I wanted to do for life. I felt amazed and I wanted to do more.

How I got into coding is a little unusual. Back at SHS, whenever there was no master in class, I would go to the library and read away the minutes while my classmates were in class making noise.

For as long as I can remember, I have always been intrigued by computers ever since I saw them. I don't remember the exact year but I think It was around my Primary 6 - 2011.

While some of my friends had computers at home, I couldn't get my parents to buy me any, the best I could do was to worry my dad into paying for me to go learn computing.

All I learnt was MS Paint. You see, I just loved computers and wanted to be around them. I didn't really learn anything aside from drawing a Ghana Flag and making text scroll across the screen (marquee) that read “Baba is a computer wizard”.

The very day, I learnt how to create a marquee, my friends came around to the place - it belonged to an ICT teacher of our school - I was learning and they saw it, they started calling me a computer wizard. I loved it and wanted more. That story ends here. I don't remember what happened next. I went to JHS.

In JHS we had a computer lab and took ICT lessons, nothing special learnt throughout the 3 years of JHS. All I remember is how we always raced to the ICT lab for lessons because we all wanted to spend more time with these godly magical machines.

Of course ICT was my best subject. You know how most programmers tend to be smart kids growing up and doing wonderful things with computers? I wasn't like that. Should be obvious by now. I was a creative kid, My dad spent some time with me helping me to read when I was growing up. I loved drawing, and making cars out of tin cans. If I had computers to play with, I think the first things I would have learnt would have been drawing 2D graphics and eventually making car and house plans in 3D before stumbling on programming later but that wasn't the case.

I never really learnt much after school, I spent a whole lot of time alone, making cars and trophies out of tin cans and drawing. I was nicknamed “Baba, the drawing master”.

I actually won a drawing contest that was organized for the whole school when I was in primary 6. It was organized by some Arantxa from Spain, we drew a bee, and I got awarded with honey.

Whew!, I am getting you lost, all I wanted to say was that, I wasn't always first in class or really cared about position in class, all I cared about was that my position was a single and oh! Boy, I was always there on the 9th - primary 6 is what I fondly remember.

I had a lot of 80-90%'s but I don't remember ever getting 100%. The highest I ever got was 98% in JHS 3 and guess the subject, ICT. What prevented me from getting the 100% was a silly mistake. When the master showed me after the paper, I wondered how I could make such a silly mistake.

Now back to when I was resorting to the library to learn ICT books. It was here that I discovered programming.

It was here that I realized that oh! software is created through a process called programming and at that point I knew this was what I wanted to do with my life.

This is the book, Discovering Computers that started everything. I learnt a lot about computers and tech in general and I was hooked. The few things I discovered were Windows, Macintosh, Linux, Linus Torvalds, Larry Ellison, Oracle, Bill Gates, Intel, PowerPC, Steve Jobs, Steve Wozniak, programming and I was hooked. It was like opening a door to a magical world of playgrounds for creatives because prior to this single book I knew nothing - absolutely nothing about tech.

On one vacation, I read an article on how 2 Nigerian brothers learned how to code from scratch and build a web browser that could rival Chrome OS, This is what sparked my interest in building an OS, the lessons that I took from this that motivated that thought was that


Anyone can learn how to code on their own.

Someone my age actually learned how to code and built something useful.

And find someone that you can learn and build together.


I was hooked, the only problem, I had no computer. I had no mobile phone, the only phone I got was my dad's itel feature phone, which I would steal and browse the web with Opera Mini basically googling my favorite WWE Wrestle Mania stars.

I don't know why it never occurred to me to ask for a computer at home. It. It was my dad that knew I loved them but I also knew he could not afford one so I never bothered to ask him to get me one. Also, you could literally count the number of computers in my village at the time with your fingers so maybe thinking I could own one for myself isn't something that I think my brain could have imagined.

My mum could have gotten it for me but I never asked her. I don't know why, probably for the same reason above and besides I was having a lot of fun building cars with tin cans, I wasn't just building, I was selling them as well. The trophies I made, I sold them and we would organize football leagues with the most exquisite ones. We formed a football club that I named “All Stars'' and we were quite popular for organizing and winning these leagues. I was basically the brain behind “All Stars”, you know the creative kid. Whew! We are getting lost again, okay! okay! Back! back!

Remember 3 above? I reached out to a friend and told him how I wanted us to learn how to code and build an operating system that would take Microsoft and Apple out of business. His mum got him a computer, unlike my family, his mum was an educated government worker, working for the NHIS with, you guessed it, computers - she still works there as I type this today - so she knew the importance of her son having a computer.

Then we started programming. Batch file viruses, logic bombs, and stuff like that. I was the one mostly providing 1 GHS airtel airtime so that we could subscribe to “Airtel Sika Kooko” at the time which would give you 1GB for 24 hours. We discovered Linux and its variants and that programmers used it. We discovered that we could use VMs to boot into them or even dual boot on windows. I loved Ubuntu and he loved Linux Mint. To get computer time, I would help him fill their water pots early so that we could sit and code.

He couldn't use the computer at night because his mum wouldn't agree because it made noise that disturbed her sleep. So I would go take the computer and bring it to my house and stay awake all night downloading software tools and tutorials.

But we went to school and that was the end of that dream. I kept on programming though.

We never really got to study operating systems or even write a single line of code because I was still learning and I didn't have a computer.

So today I am building an operating system - a toy operating system. Nothing like what I thought I could build when I was growing up. Now I know that such a task is impossible for me to pull off but why not build an operating system for the fun of it? For the challenge? Shall we? If we magically got the chance, why not?

Credit Leak

This is how I built Oubre OS. In 2021 during the lockdown I was in Kumasi stuck at home. A DevCongress member called Yaw - who I would later learn founded DevCongress - posted in the general channel that he was in Kumasi and working at the “Senior Staff Guest House”. I was at home doing nothing, so I immediately replied that I would come around. I took Uber (has nothing to do with the OS name) to go meet him. I met him, we chatted, he ordered food, and worked a bit and in the evening he took me round the school chatting with random girls. One conversation that stood out to me was how we both admired the craftsmanship of programming and he talked about the philosophy of Go. I was intrigued and wanted to learn Go. I was shy, and he was initiating me into freely opening up conversations with people. I have always struggled with that, especially what to say next when you muster the courage to say hi, but it all came naturally to Yaw, He could present a variant of Yaw to every kind of person and actually make them smile and laugh a lot and making people happy is something I really admired. Seeing how Yaw did it effortlessly I was inspired and well, see me now.

After that meeting I tried to meet him that night and the next day but failed till he left for Dublin.

I have always been interested in understanding the fundamentals of computers and programming so that led me to wanting to learn and master C. I reached out to yaw on slack telling him, That I wanted to learn C, go deeper with the Python I know and to also learn Go. That was just it. I didn't do any C, Python or Go.

At the time I met yaw, I had stopped programming actively and when I wanted to come back, I wanted to get a job rather than trying to build startups. Amin suggested that I do Udacity Nanodegree for the certification since I didn't have any qualifications. I bought the course - got into heart breaking personal issues - and never finished it. I was charged 100$ monthly till I could no longer pay.

I reached the APIs module, learnt it and was tasked to build an API project to complete the 2nd project of the course. It had 3 parts/projects.

I built parts of the API but the catch was that the front end of the project was written with React and I didn't know React.

I think it is unfair that the course didn't mention React as a prerequisite, and didn't offer React for free but expected me to know it before continuing with the project.

I set out to use a full month to do React and come back to continue the project so I wrote to them asking them to allow me to continue the course without the fee or at least with a 25$/month fee and they said they could only reduce it to 75$ but that was still high for me so I decided to stop. A course that was originally GHS 2,100. I ended up paying over GHS 10,000 and they still refused to reduce it to 25$/month for me.

And that's how yaw became my mentor and we started the first cohort of Toprank.

Everything moved to discord.

Just like the yaw promised, the breaking ice part of toprank was to get us to set up our blogs under our own domain names and blogging our progress. The first blog of what was supposed to be a public commitment. I set up my website. And on 20th November made my public commitment post found here. I took a screenshot of it and posted it on my WhatsApp status and a friend ridiculed me. Asking what drugs I was on, saying that I was going to build an Operating System. Right there I knew I had to hold myself accountable to the commitment and prove people wrong as well.

A few weeks in, my friends dropped out of the project and it was left with me alone. And reality dawned on me that, If I didn't go out all on this, I was going to eventually give up. One thing that kept me going was that I viewed this as the biggest chance I have ever had in becoming the sort of programmer that I always aspired to become. And I have been searching for such an opportunity and never got so I wasn't going to f*ck up.

It was a do or die for me. It was hard, I was scared, I was intimidated. I dreamt several times of being haunted by the codes that I was trying to understand. But this was a once in a lifetime opportunity and I wasn't willing to let it slide away ever.

After toiling day and night, reading thousands of pages and lines of codes and writing thousands of lines of code I finally reached the end of the curriculum.

Plot twist.

A few days ago I was bathing and was reminiscing on the UI that I drew for the operating system that I wanted to create growing up and it hit me that it wasn't an operating system that I wanted to build. It was a windowing system. Remember I didn't know anything about Operating Systems. I thought the OS was the UI but now the OS I wrote doesn't even have a windowing system. It simply displays to a VGA Text Buffer. That was a settling feeling and realization for me.

Oubre OS has a Godfather

If Oubre OS is my child, yaw is Oubre's Godfather. Without yaw, there is no Oubre. Starting the story in the early days lets you understand that building an OS was just a trivial dream like everyone has. But I met yaw, He had intentions for TopRank before he ever met anyone called Rasheed. I just happened to be blessed with good luck to have met yaw. I got an opportunity and took it. The opportunity only came because of my love for connecting and learning from people smarter than me. When he posted on DevCongress, I could have decided not to go and stay home and watch youtube all day. But I didn't.

Till today, I ask myself why yaw decided to mentor me. Why me? But following the story, you realized he was pained by my encounter with Udacity. How did I start Udacity in the first place? Through Amin's recommendation. At the time I wasn't friends with yaw, if I knew yaw and went to him saying, hey sir, I want to pay GHS 13,000 to mentor me, he would never do it. I probably didn't also have that money lying around to pay him, even if I had, I would be too dumb to pay him. I would have used it to buy bitcoin. This is a story of how we plan and life plans as well. I usually quote myself saying “Everyone has plans and life has plans as well. And life doesn't give a fuck about our plans”. There is a quote that says “Luck is when preparation meets opportunity”. All I did was prepare and yaw presented the opportunity. Without the opportunity there would be no Oubre OS. If yaw didn't add the OS project in TopRank there would be no Oubre. I say this because the OS story has brought me so far - becoming an all rounded programmer - but the lesson isn't that I built an OS. It is all the lessons I learned doing toprank and oh! Boy! Oh boy! I learned a lot.

All code of Oubre Os is openly available here