Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Dec 22nd, 2005, 12:51 PM   #11
lectricpharaoh
Caffeinated Neural Net
 
lectricpharaoh's Avatar
 
Join Date: Jun 2005
Location: Dry west coast of Canada
Posts: 1,031
Rep Power: 5 lectricpharaoh will become famous soon enough
If you're really serious about this, stevenup7002, then I suggest you grab the source for one of the OSs out there for which the source is freely available. If you do some searching on the net, you'll probably be able to find a relatively simple OS (when compared to things like Windows and Linux). A quick search turned up this (I didn't download the sources, but then, I'm not trying to write an OS). If you can't make sense of it, you're not ready to write an OS.

If you are still wanting to write an OS, you'll need to know assembly. OS development is one of the areas where a knowledge of assembly is still necessary. You'll also need to learn the APIs for Windows, Linux, and MacOS if you intend to emulate them. For MacOS, you'll be doing more than emulating another OS; you'll need to emulate the Mac hardware as well (most specifically, the CPU, though there will be other elements as well).

I hope you understand now why some of us made fun of you. Writing an OS is not a trivial undertaking. You're not the first to post some bold thread about writing an OS, and the other people who did so got mocked, too. If you want to avoid that, write a bunch of the code, get it mostly working, and then show it to us.
__________________
And once again, Probability proves itself willing to sneak into a back alley and service Drama as would a copper-piece harlot.
- Vaarsuvius, Order of the Stick
lectricpharaoh is offline   Reply With Quote
Old Dec 22nd, 2005, 1:12 PM   #12
para
Programmer
 
Join Date: Dec 2005
Posts: 65
Rep Power: 3 para is on a distinguished road
This is a little off topic, but I recently read about an interesting OS written by one guy that has full graphical support. He wrote it completely in assembly, and claims that was the only language that would allow him to write such a system and still fit on a 1.44MB floopy disk :eek:

http://en.wikipedia.org/wiki/MenuetOS
http://www.menuetos.net/screens.html

Relevant to the topic or not, I thought you guys might find it as interesting as I did.
para is offline   Reply With Quote
Old Dec 22nd, 2005, 2:33 PM   #13
nnxion
Programming Guru
 
nnxion's Avatar
 
Join Date: Jun 2005
Location: elemental plane
Posts: 1,429
Rep Power: 5 nnxion is on a distinguished road
Yup Menuet OS is nice and Solar OS is also.
__________________
"Employ your time in improving yourself by other men's writings, so that you shall gain easily what others have labored hard for."
-- Socrates
nnxion is offline   Reply With Quote
Old Dec 22nd, 2005, 6:04 PM   #14
para
Programmer
 
Join Date: Dec 2005
Posts: 65
Rep Power: 3 para is on a distinguished road
Quote:
Originally Posted by nnxion
Yup Menuet OS is nice and Solar OS is also.
Nice, thanks for the link.
para is offline   Reply With Quote
Old Dec 22nd, 2005, 9:05 PM   #15
Nebula
Hobbyist Programmer
 
Nebula's Avatar
 
Join Date: Oct 2005
Posts: 197
Rep Power: 3 Nebula is on a distinguished road
Send a message via AIM to Nebula
Minix is a good one to look at source code. It is done entirely in C as well.

http://www.minix3.org/doc/AppendixB.html <---- sorce
__________________
When will Jesus bring the porkchops?
Nebula is offline   Reply With Quote
Old Dec 22nd, 2005, 11:29 PM   #16
Mad_guy
Hobbyist Programmer
 
Mad_guy's Avatar
 
Join Date: Oct 2004
Location: Sandstorm, Techno Club
Posts: 239
Rep Power: 4 Mad_guy is on a distinguished road
Send a message via AIM to Mad_guy Send a message via MSN to Mad_guy
Could you please explain to me how exactly you're going to get Mac programs (which are all primarily PPC architectures right now,) Linux programs (which encompass a wide variety of formats and architectures), and Windows (PE files are primarily for x86 but Alpha ones exist as well,) to work together harmoniously. You're at least going to be narrowing out Windows files or Mac files - because the two just are't compatable (PPC and x86, Linux can go both ways.) THEN of course even if you did manage to work that shit out, you'd have to have some type of light abstraction (or heavy emulation) layer to make that kind of shit work on architectures in which they weren't originally compiled.

Let's also completely ignore the fact that, if you want this programs to work natively, you will have to somehow work out all the dynamic and static linking methods associated with all the programs. This means that your applications you want to work on the OS will have to have their own subsystems (such as how Windows has Win32 and POSIX subsystems) or something related in order to get each application to work well, because a linux ELF probably won't work on Windows or your OS unless you have the libraries to support it, you also, have to make sure these things don't clash.

And finally, if you're going to make an 'operating system which never crashes,' I assume you will be going for either:

* A Microkernel
* No loadable drivers (the bane of all stability when coming to kernels of any variety.)

Both have their problems - no drivers means basically no hardware support, and a Microkernel these days is WAY too slow because the drivers have to continuously communicate inbetween process spaces whenever they're called (which is about every time a process does something in a lot of systems.) Added onto that, the thought of a Microkernel is almost inherently flawed anyway. The general theory is that drivers and the kernel are loaded into two seperate spaces, so if a driver crashes then the kernel still stands and the system stays up as long as the kernel is stable. That is a good idea, but in reality, what if the driver that falls over like a bitch is your file system driver or the driver that might handle process and thread scheduling? It's pretty unlikely your operating system will be able to fully recover from something like that, so the kernel will have to deal with it, and it will probably be delt with via reboot. And if you go for a monolithic kernel (a la NT or Linux), well, the thought of never crashing is silly.
__________________
os: mac os 10.5.4
revision control: git
editor: emacs

site
Mad_guy is offline   Reply With Quote
Old Dec 23rd, 2005, 1:37 AM   #17
nnxion
Programming Guru
 
nnxion's Avatar
 
Join Date: Jun 2005
Location: elemental plane
Posts: 1,429
Rep Power: 5 nnxion is on a distinguished road
Given the power of computers nowadays, microkernels can be a good choice. Although some would argue that the overhead would be coming from the lowest level, which wouldn't be nice.

@OP: There are hundreds of open source OS's out there, take a look at a few and see what their goals are. There are some even on sourceforge, with pretty good ideas.
__________________
"Employ your time in improving yourself by other men's writings, so that you shall gain easily what others have labored hard for."
-- Socrates
nnxion is offline   Reply With Quote
Old Dec 23rd, 2005, 10:43 AM   #18
stevenup7002
Newbie
 
stevenup7002's Avatar
 
Join Date: Aug 2005
Posts: 17
Rep Power: 0 stevenup7002 is on a distinguished road
Just to set everything straight, I've already done the assembler portion, Grubed it, writen a few drivers. a basic core has been done.
stevenup7002 is offline   Reply With Quote
Old Dec 23rd, 2005, 3:53 PM   #19
Mad_guy
Hobbyist Programmer
 
Mad_guy's Avatar
 
Join Date: Oct 2004
Location: Sandstorm, Techno Club
Posts: 239
Rep Power: 4 Mad_guy is on a distinguished road
Send a message via AIM to Mad_guy Send a message via MSN to Mad_guy
Quote:
Originally Posted by nnxion
Given the power of computers nowadays, microkernels can be a good choice. Although some would argue that the overhead would be coming from the lowest level, which wouldn't be nice.
Microkernels could possibly be the next method for creation of operating systems, yes. However, like I said, the driver problem isn't solved by microkernels, what if one driver is made to interfere with another important one? What if that driver doesn't need any interference but falls anyway? It is very possible people may start going to the microkernel solution in the future, but given the current stability of the quite impressive NT kernel Microsoft has made (actually, NT is more like a hybrid Microkernel, but it doesn't stray too far away from standard Monoliths, more Mono than Micro I'd say), I'd say Monolithic systems are just doing fine. DragonflyBSD is the first non-Mach BSD system to adopt the Hybrid kernel solution. But hybrids are far from perfect (hybrid kernels are simply kernels where some of the code is stored in the kernel (such as drivers) to increase speed, but things like the NT executive are user mode, even though it's a crucial part of the system.)

An interesting modus operandi to solve the Kernel Driver conundrum actually, is the thought of "No kernel" systems. Definately cool. Check out the TUNES project or Unununium. I can't really comment on Exokernels.
__________________
os: mac os 10.5.4
revision control: git
editor: emacs

site
Mad_guy is offline   Reply With Quote
Old Dec 23rd, 2005, 6:41 PM   #20
zorin
Hobbyist Programmer
 
Join Date: Apr 2005
Posts: 218
Rep Power: 4 zorin is on a distinguished road
Hey. Being serious now, Ill rewrite your website because im bored and have finished all my projects for this year. PM me or post on this forum if you want it doing or not.
zorin is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 11:50 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC