Page 1 of 1

How to make sense of all the information

Posted: Mon May 30, 2016 3:06 pm
by devchild
Hi,

I am interested in Os development as a hobby project.
I've been interested in it for a while now.
I am a professional programmer, but I don't do embedded devices or anything, not professionally at least.
In a sense I have never been forced to have theoretical knowledge in order to develop an application.
But for OS dev, I feel that my current way of working will not work.

Currently I am at the stage where I can follow some tutorials, weed out some bugs and get a basic barebone example running in Qemu. But I realise If I want to develop something more than a "hello world" kernel, I'll need to understand a little more of the cpu and the low level hardware behaviour.

- I was wondering where you guys got all the knowledge needed for developing an OS?
- what is your technical background?
- how long have you been working on your OS?
- Do you have some tips, like can I discover the inner workings of the cpu by debugging?
- What do you do if specs aren't available?

In a way I am looking for guidance and courage, I think.

Re: How to make sense of all the information

Posted: Mon May 30, 2016 3:30 pm
by BrightLight
devchild wrote:- I was wondering where you guys got all the knowledge needed for developing an OS?
Mostly from the OSDev Wiki, other open-source OSes, and official documentation.
devchild wrote:- what is your technical background?
I've done userspace development in Visual Basic .NET before, and have basic experience in C/C++.
devchild wrote:- how long have you been working on your OS?
Well, I've really been doing OS development since 2014, and I created a 16-bit DOS-like kernel then. Time passed and by middle 2015, I had a command line interpreter in a 32-bit OS with graphics support. More time passed, and today I have a 64-bit kernel with ACPI support, multiprocessor support and a window manager. So it's probably roughly 2 years since I created my "Hello, world!" boot sector.
devchild wrote:- Do you have some tips, like can I discover the inner workings of the cpu by debugging?
Bochs has a beautiful built-in debugger. You just need to compile it in.
devchild wrote:- What do you do if specs aren't available?
For most things "CPU, APIC, AHCI, USB, PCI, ATA, ACPI, ..." the specs are freely available, even if not that obvious. There are several things that don't have the specs publicly available, but those are mostly accelerated graphics cards and such, and it's probably too early to think about that, yet.

Re: How to make sense of all the information

Posted: Wed Jun 01, 2016 6:16 am
by Combuster
devchild wrote:Can I discover the inner workings of the cpu by debugging?
You theoretically could, but OS development has a tendency to be all about the details. In addition, the processor manuals will tell you exactly what you could possibly observe directly from debugging, so unless debugging is a specific goal it's probably not worth it.