![]() |
|
try2MAKEallegroGUIbasedOS |
BAF
Member #2,981
December 2002
![]() |
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... -- |
Korval
Member #1,538
September 2001
![]() |
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
![]() |
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
![]() |
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. -- |
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: -- |
BAF
Member #2,981
December 2002
![]() |
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
![]() |
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? ___________________________________ |
ROSTheFuture
Member #2,775
September 2002
![]() |
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.
-------- |
Thomas Fjellstrom
Member #476
June 2000
![]() |
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. -- |
BAF
Member #2,981
December 2002
![]() |
Quote: Maybe a nice game instead? I just need a good idea!!;) |
Steve Terry
Member #1,989
March 2002
![]() |
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. ___________________________________ |
BAF
Member #2,981
December 2002
![]() |
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 -- |
Thomas Fjellstrom
Member #476
June 2000
![]() |
Why would he need a gui? [edit] ooohhh.. edit war he just needs some simple math... -- |
miran
Member #2,407
June 2002
|
Couldn't resist the temptation... Edited while you were typing... -- |
CGamesPlay
Member #2,559
July 2002
![]() |
Lesse, I started programming when I was 8... 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] -- Ryan Patterson - <http://cgamesplay.com/> |
BAF
Member #2,981
December 2002
![]() |
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... -- |
BAF
Member #2,981
December 2002
![]() |
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
![]() |
I'm dumb!.. Yes. I'd deffinitly wait to program a Win32 API replacement. -- |
CGamesPlay
Member #2,559
July 2002
![]() |
The simple snake/tetris clone I was talking about was in Allegro... Even the windows version is much simpler than the Win32 API... -- Ryan Patterson - <http://cgamesplay.com/> |
BAF
Member #2,981
December 2002
![]() |
maybe i'll make it some type of 3d game... |
CGamesPlay
Member #2,559
July 2002
![]() |
What have you done before? What language? -- 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: -- |
|
|