Page 1 of 1

Begin low level programming-

Posted: Fri Sep 13, 2013 9:54 am
by cosmbrth
Hello everybody :D

I'm a computer engineer, and have studied some of the OS theory, coded with C/C++, bash and Java. I also learn't assembly coding.

I would like to do some low level programming like OS dev or kernel hacks. I currently work as a debutant linux sys admin. I still don't belong to any community in the net and do not know how to begin so I can learn OS coding or tackle some low level programming such as executing code on shared memory with zero access to disk, write boot looader.

I've already seen the tutos on osdev wiki, but couldn't get the best of it because I always have the feeling that's for someone who already know what he's looking for. In my case I don't I just want the first pulse.

Can any one suggest something as you're already here doig it. are there any community/group I can join as newbie and do something?

Re: Begin low level programming-

Posted: Fri Sep 13, 2013 10:39 am
by gravaera
Yo:

I have a really good recommendation for you: if you want to begin doing kernel development, the best approach is to literally begin doing kernel development.

There is no "esoteric beyond" for the chosen only. If you don't know C/C++, learn them and learn them well -- then write a kernel in C/C++; it isn't mystical :) There is little difference between programming at the application kernel and the kernel level. If you do proper abstractions and write portable code, very little will differ. The thing you probably are daunted by is the dynamicity of the abstractions you need to think up and create.

That's where the fun comes in -- days and nights scribbling in notebooks and drawing diagrams and reading and researching dozens of articles. If you find yourself lost, it's probably because of lack of direction; lack of direction is probably caused by lack of design. For everything else, there's mastercard.

--Peace out,
gravaera.

Re: Begin low level programming-

Posted: Fri Sep 13, 2013 11:31 am
by madanra
There's a number of pages on the wiki about starting OS development - have a look at the links under "Introduction" on the home page, particularly Getting Started :)

If you want to play around with some low level programming before starting writing your OS, you could try writing some usermode assembly. If you haven't done so before, writing some utilities in assembly like outputting a number as decimal or hex may be a place to start, as you'll need those in your OS for debugging*.

You could also write some C interfacing directly with hardware. I haven't done any direct hardware stuff myself outside of OS development, so I couldn't suggest anything in particular that would work in usermode, though if I were looking for something like that to do, I'd probably have a look at the Raspberry Pi forums, as there'll be plenty of small-ish hardware projects there to get some ideas.

* Well, depends how much assembly you use. You can probably get away with only having such output routines in C if you're minimising your assembly usage :)

Re: Begin low level programming-

Posted: Fri Sep 13, 2013 3:25 pm
by cosmbrth
Thank you so much for your answer, I appreciate the examples madanra gave, it really helps to figure out.

I've posted here because I do need suggestions, my need is not technical, one can easily learn coding, the problem is
to have something to work on and that could help develop my os dev skills.