Allegro.cc - Online Community

Allegro.cc Forums » Programming Questions » try2MAKEallegroGUIbasedOS

This thread is locked; no one can reply to it. rss feed Print
 1   2   3 
try2MAKEallegroGUIbasedOS
BAF
Member #2,981
December 2002
avatar

Quote:

I bet Bobby wasn't even born in the times of the C64

Right, I was born in 90.

Regarding:

Quote:

How are you going to write an OS if you can't even spell kernel right? I'm sorry but writing an OS is really not easy. Do you even know what memory management is? Do you know any process scheduling algorithms? Do you know the low level specifications of different file systems such as FAT, FAT32, NTFS etc? Do you even know what a file system is? Do you know what a PCB is? Do you know how virtual memory works and what it is good for? Are you any good at assembly? Do you even know what assembly is? Do you know how hardware like CPUs, graphic cards, motherboards, disks, etc. work? You will need to know all that and much more if you want to write an OS. And it won't even run Windows programs. You will need to know and do much more if you want Windows compatibility. I'm sure Microsoft will be very helpfull if you ask for specifications...

I know about most of it. I have a book on it all. I know what assembly is, but am not good at (but hey, you weren't good at C/C++ when you just heard about it either). I think it would be a good expierence!;D

miran
Member #2,407
June 2002

Then you're all set. It's not really that hard to write a simple OS as long as you have good literature. It's just the sheer volume of knowledge, required for something like this, that is overwhelming.

BTW, when I was 12 I didn't even know what a computer was...

--
sig used to be here

Korval
Member #1,538
September 2001
avatar

Quote:

I am trying to make a windows replacement, not a shell replacement...i just want to make sure it can run a bunch of windows software with out modifying.

Ambitious, aren't we? Before you start thinking of writing a Windows-compatible OS, you'll need certain things.

First, you aren't going to complete this alone. By the time any individual programmer would finish such a project, Windows will have had 2 new revisions out, which will likely invalidate much of your work.

Secondly, this is not a trivial task, by far. Writing an OS is one thing; writing a GUI OS is another. Writing an OS that mimics the functionality of an existing OS, especially a Microsoft OS that whose documentation is not necessarily in-line with the real code (some Win32 functions do things that are counter to the docs, or they do more or less than the docs say. Some even affect other things than what they reasonably should)... this is a truly ambitious project, for even the most seasoned programmers.

You are talking about nothing less than reverse engineering Windows and re-implementing every single Win32 function. And even then, if your project is really going to allow Win32 apps to run, you're going to have to implement more than just the Win32 API. Dynamically-linked MFC projects require MFC's .dll file; unless you steal it from a real copy of Windows, you'll have to write one (granted, you're lucky here: Microsoft gives away MFC's source code). You will have to implement the VB .dll file such that you will be able to run the numerous VB apps (including parts of MS Office apps).

You're going to need to implement the old OLE, OLE2.0, and COM. You'll need to implement the ActiveX specification. And you will need to implement whatever Windows does to attach DirectX.

We're talking about millions and millions of lines of code here. This is a project of massive proportions.

If you just want to write an OS Kernel that has native Allegro support or something, that's quite doable. But doing that on top of making it emulate Windows... that is a major undertaking.

BAF
Member #2,981
December 2002
avatar

i guess it is. maybe it was a bad idea. i'll just figure out a simpler project to do...:'(

Thomas Fjellstrom
Member #476
June 2000
avatar

It is a massive undertaking. But YOu have to start somewhere right? so start with a nice multitasking OS, then layer the windows stuff on later.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

miran
Member #2,407
June 2002

@Bobby: Yeah, start by making a clone of your favourite cell phone game or something. That's how most of the people here started...

EDIT:
And don't listen to TF. He thinks that just because he's a genius then everybody is too...

--
sig used to be here

BAF
Member #2,981
December 2002
avatar

Quote:

It is a massive undertaking. But YOu have to start somewhere right? so start with a nice multitasking OS, then layer the windows stuff on later.

WHere would I start? And miran: i have made a game called Jackpot, where you guess a number. Complete with AI. About 800 lines of code. But the AI isn't that great. And it doesn't have Allegro, i made it before i heard of Allegro.8-)

Steve Terry
Member #1,989
March 2002
avatar

seriousely though... a project like that would require many programmers and many hours of laboring away at the computer... and if you don't know even the basics of what an OS is, then don't even attempt it. Ouch and yeah I almost forgot about directx.. without implimenting that in some way or another then allegro definately will run slowly.

I think it's a major misconception that the GUI is the OS.. which is entirely not true.. just don't tell that to Microsoft.. otherwise their whole marketing scheme will do down the drain. The GUI sits on top of the OS making OS calls to do what it has to do, like calling to the OS to load a file for example. The GUI doesn't care how the loading of the file takes place, just that it gains access to the contents of the file. Meanwhile the OS is responsible for calling a hardware interrupt to move the disk head to the proper spot, the disk reads the file, and the OS gets a "handle" to the address of that file in memory, and return that handle or address to the calling function. An OS would be no simple task, and to make an efficient one, C or C++ would not be efficient enough to pull it off, rather you need to know assembly for the most basic parts of the OS.

It was a nice thought but it's not really what allegro is about. You seem to have a lot of ambition but an allegro OS is a bit out of your league. Maybe a nice game instead?

___________________________________
[ Facebook ]
Microsoft is not the Borg collective. The Borg collective has got proper networking. - planetspace.de
Bill Gates is in fact Shawn Hargreaves' ßî+çh. - Gideon Weems

ROSTheFuture
Member #2,775
September 2002
avatar

Sorry I found this thread too late, but I just noticed that RichOS was mentioned -- thus I have to mention a few things.

True, RichOS is not an "Operating System". I was a little ambitious one summer, about three years ago (all current versions available were written in QB4.5 btw). I realized from the beginning that a full operating system it would never be. At that point, it is/was really just a DOS shell - a GUI capable of running its own programs (which, if you'll notice, is just interpereted).

Right now I'm working on its next version, which will be written in C++, with Allegro to accompany the GUI system. This one, though, will be a full kernel. I'm currently taking an Operating Systems course, and enveloped myself with some kernel tutorials and such. Just search google, and you can find a wealth of information. As of right now, I'm working with FreeDOS as a model and reference.

Thomas' statement about the 'cache kernel' is a very good one.

Ok. Bobby. No offense, but you're 12 (born in 90 - did i do my math right?). I started coding when I was 10, and tried to make RichOS when I was 15. Look how it turned out. Beleive me. Its not until now, that RichOS might actually become something more than a DOS shell. This is a daunting task. Kernel writing is not what it at first appears to be. You have to write code to take care of the most mundane tasks that you always took for granted. Listen to Thomas and don't do what I did - make the kernel absolutely seperate from the GUI.

BTW, the name for RichOS came when I was telling a friend that I was attempting (key word here) to make an Operating System and he jokingly asked - "what are you going to call it... RichOS?", and so it is named.

And, unlike others, I will sarcastically say, Bobby, good luck. Not that I have anything inately against you, I just think that its over your head. Way over.

--------
RichOS is the operating system of the future - if for some reason everyone starts hating Window$ and Linux.

Thomas Fjellstrom
Member #476
June 2000
avatar

Quote:

And don't listen to TF. He thinks that just because he's a genius then everybody is too...

Thanks! But Im not a genius. (I still dont have my Grade 10 courses.. IE: High school.. I have 8 Highschool credits ;)

Quote:

WHere would I start?

Research. And lots of it.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

BAF
Member #2,981
December 2002
avatar

Quote:

Maybe a nice game instead?

I just need a good idea!!;)

Steve Terry
Member #1,989
March 2002
avatar

um start off with TicTacToe.. that was my suggestion to another allegro newb... and he's made quite a few TicTacToe games since then. Really something simple and not too graphics intensive would be a nice start.

___________________________________
[ Facebook ]
Microsoft is not the Borg collective. The Borg collective has got proper networking. - planetspace.de
Bill Gates is in fact Shawn Hargreaves' ßî+çh. - Gideon Weems

BAF
Member #2,981
December 2002
avatar

TicTacToe -- Nice Idea!!

But I have two problem. How to sense where the mouse is clicked, and TicTacToe-AI -- for playing against the computer..???

miran
Member #2,407
June 2002

1. mouse_x, mouse_y and mouse_b
2. lookup minimax or alpha-beta pruning on Google.com

--
sig used to be here

Thomas Fjellstrom
Member #476
June 2000
avatar

Why would he need a gui? [edit] ooohhh.. edit war ;) [/edit]

he just needs some simple math...

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

miran
Member #2,407
June 2002

Couldn't resist the temptation...

Edited while you were typing...

--
sig used to be here

CGamesPlay
Member #2,559
July 2002
avatar

Lesse, I started programming when I was 8...
I used OS dev tuts probably about 1 year ago (when I was 13).

I got as far as a simple command line, that didn't do anything besides shut-down (which didn't restart).

It was terribly confusing... You need to know assembly language, of course... That was where I faltered (I only knew a very little of it). I didn't attempt to design any type of excecutable, and as such there was no multi-tasking or memory management.

How well do you know your language? What language were you planning on using?

Depeneding on your skills, you might try first a simple snake or tetris clone, then go to Win32 or MFC (which is harder than allegro), then go to a compiler (that's a toughy), then maybe a shell extension (you might want to do that before the compiler, though), finally a simple OS.

This is just my opinion, though.

miran: I'm 14, I had a C64, I found it at a garage sale... Wow, fun it is not, coding in C++ and then learning BASIC...

[edit]
geez, there's like, 6 replies in the time it took me to write that...

--
Tomasu: Every time you read this: hugging!

Ryan Patterson - <http://cgamesplay.com/>

BAF
Member #2,981
December 2002
avatar

Quote:

Why would he need a gui?

Gui may be nice, i want to make it 'semi' graphical. Then expand.;D

miran
Member #2,407
June 2002

Click here for a truckload of tutorials and completed simple games including Tic-Tac-Toe...

--
sig used to be here

BAF
Member #2,981
December 2002
avatar

oh, btw, (this may not have anything to do with anything by now) but I have tried to program with the win32 api, found it too confusing. i program in dos w/ djgpp;)

Thomas Fjellstrom
Member #476
June 2000
avatar

I'm dumb!.. Yes. I'd deffinitly wait to program a Win32 API replacement. :) TicTacToe sounds good.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

CGamesPlay
Member #2,559
July 2002
avatar

The simple snake/tetris clone I was talking about was in Allegro... Even the windows version is much simpler than the Win32 API...

--
Tomasu: Every time you read this: hugging!

Ryan Patterson - <http://cgamesplay.com/>

BAF
Member #2,981
December 2002
avatar

maybe i'll make it some type of 3d game...

CGamesPlay
Member #2,559
July 2002
avatar

What have you done before? What language?
I'd definately wait on the 3d till after tetris...

--
Tomasu: Every time you read this: hugging!

Ryan Patterson - <http://cgamesplay.com/>

miran
Member #2,407
June 2002

Quote:

Gui may be nice, i want to make it 'semi' graphical. Then expand.;D

Here's an idea. Why don't you make a little collection of simple games. A simple GUI application with a menu or maybe some buttons that would allow you to select which game you would like to play. Like when you click one button Tic-Tac-Toe pops up, when you click another one Tetris starts and so on...

Now, there's no excuse not to plug my lib: MASkinG

EDIT:
Btw, you kids type too fast...

--
sig used to be here

 1   2   3 


Go to: