Page 1 of 1

What is your OS development history?

Posted: Sun Jan 01, 2017 1:43 pm
by glauxosdever
Hi,


I just described my OS development history more thoroughly at glaux-os.org. So I'm wondering, what is yours?


Regards,
glauxosdever

Re: What is your OS development history?

Posted: Mon Jan 02, 2017 1:27 am
by hgoel
Not much history to my OS development endeavors. My first attempt at an OS was around 2 years ago, back then I could do very little outside of C# so I tried COSMOS, played around with a few fancy console things, got bored and that was it. A few months later, armed with C I had picked up while working on some PSP related projects, I tried again, thus the mess that is Midnight OS was born. I got stuck at IRQs, got bored and dropped the project. This was around when I joined this forum, one could tell I lacked enough knowledge because I wasn't even sure if GRUB was booting me into protected mode!

On to about 6 months later (although it certainly felt longer to me), I try again, this time, I get much further with ApertureOS. I get in a bunch of drivers and overall end up with a monolithic kernel that kind of works, it's a terrible mess, but it can read from disk via ahci, has mouse and keyboard via ps/2 and a WIP network stack and rtl8139 driver and a WIP HD Audio driver. This mess is fine because my goal at this point is to learn all the things I need to design ahead for.

I take a break as university starts taking up a lot more time and I get more interested in other hobbies and then during winter break I start again. This time I'm aiming to do things properly, I imagine an elegant piece of software where every piece just fits in seamlessly. Around this time that was all I was going with. I still didn't have enough understanding of how things work at a user space level, but I would gradually pick that up. I spend a few months working on the low level parts on and off. Then, around June, I start getting to the fun parts, I'm ready to start implementing syscalls, this is around when I learn about plan 9 and microkernels in general and decide that I want to do a microkernel as well. From there, I end up spending a few months getting appropriate syscalls ready, at one point I spent a week writing and rewriting my shared memory system because I couldn't decide how to design it nicely. I end up taking a week off to do some design on paper and figure out the design I have now. From there on it's a mostly smooth sailing with the occasional hiesenbug or minor design flaw that needs some refactoring. I get musl to initialize and then start implementing syscalls for drivers.

And that's what I've been doing since! Writing drivers, fixing bugs and optimizing/cleaning up parts of the kernel. Now I'm at about 13000 LoC with a basic user space and various WIP drivers: Cardinal Source Code, #Cardinal-OS on Freenode ( irc.freenode.net ) to keep up with development.

Re: What is your OS development history?

Posted: Mon Jan 02, 2017 7:35 am
by NunoLava1998
I first tried to make a assembly os. Failed.
I first tried to make a assembly os. Failed.
I first tried to make a assembly os. Failed.
I first tried to make a assembly os. Failed.
Then, i tried to follow Bare Bones. Faiiled.
Then, i tried to follow Bare Bones. Faiiled.
Then i finally got Bare Bones working.
I then tried to make more bare bones, and kinda failed.
I then tried to make dixium/triodium, current OS.

Re: What is your OS development history?

Posted: Tue Jan 03, 2017 8:15 pm
by bzt
TL;DR

Hi glauxosdever,

I got interested in OS development long long time ago, in the days when win3.11 was new and there was no preemptive multitasking on PC at all. I saw an Amiga with exec, I was amazed and I started to study the subject. I've learned intel assembly (with good old TASM) and C (Borland C and Microsoft C) and I had some really interesting projects :-)

One was to hide the data on the disk if it wasn't booted from. For that I messed up the partitioning table, and wrote a special MBR code that hooked on Int 13/AH=02h and reported the correct partitions when it's TSR was active. I've also implemented a user authentication system with 16 groups (a bitfield in fat16 directory entries unused bytes, there was no fat32 back then) and hooked on Int 21. That was totally transparent to the applications, and hide files according to the user's group.

My first windowing system was a .com on top of DOS with extremely small footprint written entirely in assembly. I was developing it till 1998. It could execute only one task at a time, and when it finished, returned the control to the executor, the graphical environment. I remember when VESA was something new, and I had to write bank switching drivers for the video cards. There was no documentation on that, so I had to figure it out on my own. Luckily I had a good image viewer that I reverse engineered. It was the first time when I studied preemption. The lack of paging and how DOS stacked apps on each other made it very difficult to switch tasks. So I decided to learn protected mode which was quite difficult without internet resources. I remember how happy I was when I finally got the intel manual 80386/80486 which was quite a big deal in the eastern block. A few years later I learned about Linux and liked it very much. Finally a system that I could study, and a guy who has the same hobby as me! Of course it was not that bloated monster as it is now. When I first installed Linux I had only 80 Mb disk :-)

I was a first year student at the university when AltaVista gave me an interesting search result: Mega-Tokyo site opened. There are no words to describe how I felt! That was the time when I wrote my first real OS (not just an extender). It was called OS/42 (a salute to Adams). Of course it suffered a lot of bad design concepts, but hey, it was working with my own filesystem and my own executable format! I've learned a lot, and studied Tanenbaum's book and Minix to overcome those bad designs. Unfortunately after that a big gap followed as I had to earn money and I fall in love (which is very bad for any kind of hobby).

Later when the first x86_64 processors arrived and finally I found flatassembler which could assemble long mode instructions a picked up my good old hobby again, and wrote another OS from scratch. Sadly by then Mega-Tokyo was closed, but I've found this excellent site, OSDev. The new one was much better than my first OS, mostly because of the theoretical knowledge I gathered in the meantime. It had only a text mode interface, but not the one you'd expect, it was more than that. But it wasn't enough, I wanted a gui. So I refactored it's interface, and had some good results, but never finished it as life had other plans with me, so another couple years of gap followed.

But I couldn't forget my hobby, so I've picked it up again after the hiatus. Unfortunately I forgot my OSDev password, so I've had to create a new account, but here I am, writing an OS again which is one of dearest thing to me :-)

Re: What is your OS development history?

Posted: Wed Jan 04, 2017 8:27 am
by Ycep
As far I could remember, I tried to make some crap three(almost four) years ago, and tried to use #include<iostream> in assembly (I was only 8 years, do not laugh at me) and it did not worked (as you probably expect) and thought it was boring.
Second time i tried to make an operating system was in december 2015, and while I thought it was operating system it was nothing more than an application for Cosmos c# construction toolkit. Since Cosmos is very limited, I gave up from it.
Third time I tried to make it was in May 2016; When I was struggling to understand and build bare bones and at end I gave up at end of June 2016. Then I found something much better explained and more quality-ier than wiki. It was http://www.brokenthorn.com/Resources/OSDevIndex.html.
And it seems that I'm coding this operating system 5 months already, while working about 1.5 hour a day.

Re: What is your OS development history?

Posted: Thu Jan 05, 2017 9:08 am
by qwn
I am just a beginner so...

Tried to follow the little book of os dev, couldn't get it working.
Tried again with the bare bones tutorial ,again failed.
Thought OS dev is only for smart people and not noobs like me.

New year, now trying again, hopefully won't give up too easily this time. ;)

Re: What is your OS development history?

Posted: Thu Jan 05, 2017 9:35 am
by hannah
Experimented with Cosmos back in 2016, and now I'm making a real kernel. (not to say Cosmos isn't real, it's just limited)
I made a multitasking OS in Cosmos and almost a executable loader.. :P
I contribute to it every now and then but i'm focusing on my current OS now

Re: What is your OS development history?

Posted: Fri Jan 06, 2017 9:13 am
by sleephacker
I started out by making all the beginner mistakes: trying to write a proper OS (compared to other OSs these days) in 16bit realmode assembly using the BIOS whenever possible...
Then I decided to learn assembly as well as x86 better by writing a very simple snake game, still in realmode using the BIOS.
After that I wrote a very limited bootloader that lets you chose a file from the floppydisk and load & execute it.
I also tried to write the most basic multitasking OS possible in realmode, but ditched the idea after a few lines of code.

My main project now is a 32bit PMode OS (still assembly), and (compared to past experience) it's going pretty well, but the code is a bit of a mess because I'm not good at following my own plans and I'm also still learning. Though I must say the more recent code looks much better, perhaps I will rewrite some of the older code at some point.

Currently I'm on a break from OS development to put more time into the Dutch Informatics Olympiad, and especially in the CodeCup part of it.