Newbie questions of OS'Dev

Programming, for all ages and all languages.
Post Reply
onemikeoscar
Posts: 1
Joined: Sat Sep 27, 2014 12:39 pm

Newbie questions of OS'Dev

Post by onemikeoscar »

Hi everyone, first i have to advice that i'm a spanish man and my level of english is... too poor? jajaja i will try to write the best possible...
Ok ! let's do it;
I am computer engineering student and i have knowledge in differents languages like C, C++, ADA, Java, Python... But wait... where is it assembler?
Yes, this is my weak point, i dont know how to begin to learn assembly i have read that exists differents conventions for assembler but i dont know which learn and this is my first question: Which "language" or "conventions" have to learn for ARM and x86 OS'dev?
Second i created a little kernel following this tutorial: http://www.osdever.net/tutorials/view/b ... t-tutorial but when i tried to boot the kernel i didnt know how to boot in qemu for example...
that is my second question, how i have to compile, link, the kernel for boot in qemu and how to create a .iso with grub?
And third i wish to know how Bran's (the creator of the tutorial) know's that the text buffer of vga is in 0xB8000 it is a standard? For example if i get a raspberry pi with arm this will the direction of buffer or it's only for x86 architecture.

Thanks so much.
User avatar
SoLDMG
Member
Member
Posts: 96
Joined: Wed Jul 23, 2014 8:00 am
Location: The Netherlands
Contact:

Re: Newbie questions of OS'Dev

Post by SoLDMG »

1) C essentially is assembly language in a more readable format. You say that you have a decent understanding of C? Well, you're a good way on to learning assembly then. Once you learn the instructions (for example, "inc") you'll see the C side of it (for example, "variable++;"). The book I followed was The Art of Assembly Language. You can probably find a pdf somewhere.

You should only learn a convention if you agree on it's main guidelines (for example, before each function you should explain what it does and what it's arguments are).

You could also mean syntaxes, which are completely different from conventions.

2) Your question is a little too vague. Could you please try to formulate it better?

3) Through hardware documentation you can figure out a lot. And yes, the 0xB000 thing is a VGA standard. If an ARM processor would be put together with a VGA chip it's more then likely the text buffer is 0xB000 (but still, documentation).

Hope I helped at least a tiny bit!
- SoLDMG
My post is up there, not down here.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Newbie questions of OS'Dev

Post by Combuster »

As a computer engineering student, one of the techniques you should know is how to find information. If your English is that poor that you can't find it, then you already have bigger problems.

As for getting an OS to run with QEMU, you could have read the QEMU manual or the command line help for starting a kernel. The tutorial itself provides the compilation instructions, even though there are known issues with those. To get GRUB on a CD, there's the wiki under "Got a question? search this first!", which answers each these questions at least twice over again.

Assembly is specific to an architecture, so your first step would be to find the relevant manual of the processor in question, again something you could have done already.

Bran's tutorial starts off with requiring a video card that's compatible with a VGA. A raspberry pi has no PCI slot to hold one, it only contains a VideoCore IV based graphics on-die which is not a VGA.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Post Reply