Getting a OS going quickly.

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
James

Re:Getting a OS going quickly.

Post by James »

Curufir: You don't happen to know how a place ware I can find a hard copy of those documents do you? Is there a book I can buy with all that stuff in it?
I got my kernel working on my own (I think I did) after I posted that. I cant figure out how to print to the screen after I boot my kernel. The ether my OS is messed up or the BIOS calls do not work once you enter protected mode. If the BIOS calls don't work then how do I write to the screen. I couldn't find any call to int 10h in FritzOSs source code, how douse it print?
What is GDTR? I see it created but I never see how it is used. My OS douse not have GDTR. Is this a problem? Is that why my printing etc is not working?
Thank you for your time,
Arrummzen
jrfritz

Re:Getting a OS going quickly.

Post by jrfritz »

You cannot use ints in pure protected mode. That's why. My PK0.3 I attached has all the info you need to setup up a C kernel.
James

Re:Getting a OS going quickly.

Post by James »

Ok Thanks! Thank you for the comments. Is there any reason I would want a GDT?
Thank you for your time,
Arrummzen
jrfritz

Re:Getting a OS going quickly.

Post by jrfritz »

A GDT sets up your Data Selector, Code Selector, and more if you wish. It is needed so your OS can know where to put it's data and code.
James

Re:Getting a OS going quickly.

Post by James »

Ok, what are sectors? This is all arcane to me. Do you mean segments? In protected mode each segment is 4 gb RAM so cant I just set all the segments to 0?
Do you know of any good books detailing how to interact with a computers hardware? I want to know how to write to the screen (I think I can figure that out from your code), use the Ethernet adapter, switch the monitor into graphics mode (high resolution 32 bit color) and write to hard disks/floppy drives. Any books on that?
Thank you for your time,
Arrummzen
DarylD

Re:Getting a OS going quickly.

Post by DarylD »

James, I doubt you will find a book covering all of these, indeed I would say each topic would be better covered by separate books.

But I would say, don't underestimate the difficulty in actually implementing what you suggest, writing a good network stack on its own is quite a task and reading/writing from hard disks will be quite a bit of work too.

I would concentrate on getting the core of your OS done first, good memory/process/event management is worth doing first because it will make life so much easier later.

I know because I have spent about 4 months on mine so far and I just about to be able to read a key from the keyboard for my console! But I know the rest of my code is fairly good and solid and will enable me to progress rapidly from now on.

Daryl.
jrfritz

Re:Getting a OS going quickly.

Post by jrfritz »

My GOODNESS! You want to use a ethernet adapter when just starting a OS?

Hold on! Just a second! Make a whole OS and THEN make drivers for that stuff!

Now, sectors are stuff on the floppy/HD, and about 512 bytes in size. My code loads some sectors off the disk...where the C Kernel is.
James

Re:Getting a OS going quickly.

Post by James »

Will you tell me the name of the books that I will need to read. What books are required reading for all this stuff. Just give me a long list of books (I have no fear of reading, I just need to know what to read).
Oh and the reason I want to program the Ethernet adapter first is because I am lazy. The way I figure it, if I can get a basic TCP stack going I can cut out a lot of work(I have a VERY good understanding of TCP and I am confident that I can write a TCP/IP stack if I know how to use the Ethernet (that and I will most likely get some ideas from the BSD/Minix source code). If I can connect to a remote system I can use ITS file system and ITS graphics drivers. If I can use TCP I wont have to know how to use a hard drive (although I want my OS to be able to use the hard disk further down the road).
I all want to know is what books should I read. What books did the people who wrote Windows read?
Thank you for your time,
Arrummzen
jrfritz

Re:Getting a OS going quickly.

Post by jrfritz »

Ok...first...that's not a good idea...since your OS will have to know how to read that File System on the other computer, and then it'll have to know how to load the files into memory, and etc. and have complete windows system calls ( or OS calles that the computer is running ), it'll need a memory manager, a process scheduler...etc...

I think you need to understand what goes on in a OS. Here is the best book:

Operating Systems: Design and Implemetation 2nd ED.
James

Re:Getting a OS going quickly.

Post by James »

Why would my OS have to know all the system calls for the other OS? I could just use TCP to send something like "sendme file1212" and then it would call read until it loads the file into memory. I do agree with you that I will have to know how memory management works and how to load the file. But it would seem like using TCP would be essayer then using a hard disk (provided I get a TCP stack working).
I understand almost all of the theory behind a real mode operating system like DOS. What I don't get (I get some of it) is how to build a protected mode multi-tasking OS.
You know of any other books, I don't think I can learn from just one book. I want a list of 5 or so. I will probably spend a month and read them all and then start on my operating system. What I am most concerned with is content. However I also like books that are easy/fun to read. If you know of 2 books that are just as good give me the one that is essayer to read.
I have undertaken many large tasks in the past and I have finished them quickly. This is the stage in witch I read read and read some more. After a month or two of that I will be ready. I need more then one book. I will read threw that in a week.
Thank you for your time,
Arrummzen
jrfritz

Re:Getting a OS going quickly.

Post by jrfritz »

Oh ::)

Yes of course you need to handle the Windows Syscalls! How do you think the driver/app tells the OS what to do?
James

Re:Getting a OS going quickly.

Post by James »

I don't understand what you are trying to say. All my OS will have to know how to do is send a message over the network. All the system calls would be done on the server. Have you ever heard of FTP? The client system douse not know how to use the servers operating system nor douse it need to know the system calls for the servers operating system. Yes I know I will need to know the OS system calls when I write the server (the server runs on a different computer and OS, The server WILL NOT be on my OS). But calling read and write on Linux is a lot essayer then writing code to make files out of the hard disk data.
Thank you for your time,
Arrummzen
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Getting a OS going quickly.

Post by Pype.Clicker »

Tanenbaum's "Centralized and Distributed Operating Systems" book talks about some works that looks like the one you plan to do.
Let me tell you that asking stuffes through the network will not be as simple as you think it might be because of state conservation (what if the machine crash after receiving "write file XYZ" but before completing it ?)

However, if this is what you want to do, the fastest way to start is probably to pick up a running kernel (i think clicker could help you) and start developing atop of it ;)
Post Reply