flat assembler
Message board for the users of flat assembler.

Index > MenuetOS > OS Development (MenuetOS as a case in point)

Goto page 1, 2  Next
Author
Thread Post new topic This topic is locked: you cannot edit posts or make replies.
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius
Forgive me for being harsh, because I do like MenuetOS a lot, and since I'm making my own OS I know how it is- and I haven't even gotten started! MenuetOS is a great OS but not nearly usable by anyone who is used to Windows, and even DOS or Linux users may not like it as much as their current OS.
So here are my random, disorganized thoughts about MenuetOS and what I perceive as problems (I hope I don't offend anyone):

-Did the developers of MenuetOS even think about what they were going to do and how they were going to do it, before jumping in? Did they actually think, or did they just jump off a cliff and hope there was a soft area below them on which to land?
-Was MenuetOS ever a commandline-only OS? I have what is apparently an "incompatible" video card, meaning only the old VGA modes work properly in MenuetOS- and those look horrible and are impossible to use!
Commandlines can be in text mode and are perfectly usable without all this crappy (pardon the word) flashy graphics junk! MenuetOS could have worked much better if you had started with a commandline only and later moved to GUI once everything else was working properly.
-MenuetOS seems to be a bunch of code thrown together randomly. Even Windows works better than MenuetOS currently, though if you keep working on it you may eventually get something better. MenuetOS is so slow- I can see the screen redraw sometimes.
-What about the "multitasking"? Sure, you can run several programs, but it's quite easy to bring down the entire OS. The first MOS program I ever wrote was one that displayed a Window, and, upon receiving the "Window Redraw" event, etered a forever loop of doing nothing. All you have to do, then, is resize or reposition the Window, and down it all goes! The kernel should detect if an application has crashed or is "misbehaving" (as mine was)- but it didn't! I had to reboot my computer (which was the goal of the program in the first place...)!
-The API sucks. I realize this probably took some work, but it looks like it didn't take any thought. Writing a program consists of making an API call every other instruction. You can't do anything without them! It would be nicer if API's were Windows-style, procedure calls instead of interrupts.
And the API abilities are limited, so you can't do much.

OK, this may seem useless since it's too late to fix these (unless you start over completely from scratch, which might not be a bad thing, but I doubt you would want to do it).
My point? Think before you leap. And if you land in cactus or on a sharp stone, don't complain. Not that you are complaining.
I hope this isn't taken as me bad-mouthing MenuetOS or anything. It isn't a bad OS. But it isn't a great OS either. I'm trying to make a point, and here it is:

To anyone who is writing an OS: I hope you learn from MenuetOS. I still like MOS, and I even use it occasionally (though I'd much prefer Linux or DOS, or even Windows!) but I don't think there is any way to fix a lot of these programs, that the MenuetOS developers would be willing to do.
I recommend starting with a commandline (which is what I'm going to do), as soon as you have protected mode and video/keyboard I/O drivers finished. This is how Linux was started, and arguably, how Windows got started (as DOS). And be sure to think everything through first. Don't jump off a cliff or drive down the freeway blind-folded. Think! THEN do. This is what I'm doing. This is how all OS's should be started, in my humble and unbiased (ha ha) opinion.
I recommend reading "Operating System: Design and Implementation" by Andrew Tanenbaum, the programmer who wrote Minix (A free, open source PC Unix that was an inspiration for Linux). I've learned a lot from it and any OS Dev'er could.

To MenuetOS developers and/or users: I doubt anyone will try to fix these problems, and I don't think you should. I do think you should make a MenuetOS commandline, so I (and others) have the option of starting a commandline instead of a GUI, at bootup.

_________________
FASM Rules!
OS Dev is fun!
Pepsi tastes nasty!
Some ants toot!
It's over!
Post 05 Jul 2005, 23:34
View user's profile Send private message AIM Address Reply with quote
bloglite



Joined: 21 Feb 2004
Posts: 109
Location: East Tennessee U.S.A.
bloglite
Sounds like you need a video card to start with.

As far as stability.

I personally have several machines that used to have windows on them and all they did was crash.

I now have servers/ program logic controllers / realtime serial and parallel automation / entry systems w/ magnetic card readers running only MeOS THAT NEVER (and I mean NEVER CRASH.)

My PCs automatically boot the needed app(s) upon boot so if I don't put a UPS on each pc they still come up functional after a power outage.

( I used to try to anticipate the windows crash cycle.)

Linux is cool but not simple ( the same with other OSes )

I've tried all the OSes I've heard of and still prefer this "hobby OS" in beta to all of them. Gets the job done for me.


I'm no wizard or genius but this ASM stuff is easy since MeOS.

If you get a machine that IS compatible maybe you might not be so HARSH.

G'day, Mark
Post 06 Jul 2005, 00:47
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc
Quote:
Sounds like you need a video card to start with. ........ If you get a machine that IS compatible maybe you might not be so HARSH.


That's a bit harsh IMO. I have four machines currently, and MenuetOS only supports the video card in one of them. Two of them are laptops, so getting a new video card isn't an option. One of them is a 386, and it doesn't support anything beyond vanilla vga. My main machine has a decent video card, but the OS is still not useable enough for me.

Many people don't have enough money to go buy a new machine or parts that will be compatible. At least, the VGA support could be improved. Scale things back a bit for lower-resolution/color depths, and it'd at least be tolerable for more potential users.


Quote:
I now have servers/ program logic controllers / realtime serial and parallel automation / entry systems w/ magnetic card readers running only MeOS THAT NEVER (and I mean NEVER CRASH.)


Lucky for you. On the one machine that can boot MeneutOS to an acceptable graphics resolution/color depth, I get crashes all the time. Seriously, I find that I have to reboot far too often to be able to make any real use of it. (Of course, your post implies that you've developed a nice array of custom apps for your use, so that's likely a factor in your success with MeOS)
Post 06 Jul 2005, 02:33
View user's profile Send private message Visit poster's website Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc
Quote:
Commandlines can be in text mode and are perfectly usable without all this crappy (pardon the word) flashy graphics junk! MenuetOS could have worked much better if you had started with a commandline only and later moved to GUI once everything else was working properly.


This I'll agree with. A nice GUI can be a big draw, but it's not needed for a lot of people. For me, there are some good reasons that I prefer a command-line environment. I have severe carpal tunnel syndrome, so using a mouse is painful for me. (Typing has become easier in recent years, with the "ergonomic" keyboards and voice recognition). Another important thing for me is scripting. Most of the activities I do on a computer are scripted. I never worry about backups: they're handled by a custom script that's run every hour. I use scripts in other areas as well. I have never seen an OS without a command line that allows easy scripting.
Post 06 Jul 2005, 02:42
View user's profile Send private message Visit poster's website Reply with quote
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius
MenuetOS doesn't have much in the area of scripting, and the "commandline" that you can get is an application, rather than the main part of the OS. Linux is not too complex if you get the GUI (for me, that's an add-on, NOT the main shell, and shouldn't be). Even with the raw commandline, it's better than DOS and even Windows. I wish MenuetOS were LIKE Linux, but different: Nobody wants another Linux; one Linux is enough!

Once again, I was probably being a bit harsh. I was having a bad day, so don't think I'm like this all the time. MeOS IS a cool OS!
But I do think there are a few problems with MeOS. Although, addmittedly, I do need to get a good video card (the one I have is the most incompatible ever, sometimes even in Windows).
Post 06 Jul 2005, 22:53
View user's profile Send private message AIM Address Reply with quote
fasmiq



Joined: 16 Jul 2005
Posts: 5
fasmiq
MenuetOS is trying not to be like other OSes. This seems to be its main architectural goal Confused
Post 16 Jul 2005, 18:37
View user's profile Send private message Reply with quote
compilax



Joined: 18 Feb 2004
Posts: 56
compilax
I totally agree with the first post - a lot of hard work has gone into menuetos, but it has been largely wasted due to lack of goals/co-ordination/structure. It may take months to write an application - designing data structures, hacking together an API, etc - and a few days to re-write it but cleaner. I think this should happen with MenuetOS.
I like MeOS, but it has always felt like a prototype to me. I'm not sure if assembler or C is better for an OS - but when not properly crafted asm can be a lot slower than it's equivelant written in C (no, I'm not an idiot - I know asm can be faster than C, but it usually isnt). It's low-level feel - in my opinion - brings people to ignore such delicasies as dynamic linking and memory management. Higher level is faster than lower level in the way that you can rely on an alright low level routine implemented in the base API instead of re-inventing the wheel in a less effective form.
My idea of the perfect OS is like a semi-OO Linux, but cleaner, with a nicer searchable/not-so-heirachial filesystem, IPC similar to MenuetOS's and a GUI that is flexible enough to run GUI applications in text mode (I dont mean running The Gimp, but it would suffice for changing some settings via some GUI app when you dont have access to proper video). Portability is a big issue - as in Linux/Windows/Cocoa programmers feeling at home with the OS and being able to port their apps.
That was probably pretty irrelevant in places, but mehh.
Post 29 Jul 2005, 07:25
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
MCD



Joined: 21 Aug 2004
Posts: 604
Location: Germany
MCD
Quote:
-The API sucks. I realize this probably took some work, but it looks like it didn't take any thought. Writing a program consists of making an API call every other instruction. You can't do anything without them! It would be nicer if API's were Windows-style, procedure calls instead of interrupts.
And the API abilities are limited, so you can't do much.

Well, both DOS and Linux also uses interrupts for the APIs. For DOS, it's somewhere from 20h-2Fh, and for Linux it's 80h. And those Windows styled calls with all those parameters require more stack space and may be a bit slower, whereas MOS take parameters in registers.
Post 29 Jul 2005, 09:19
View user's profile Send private message Reply with quote
Night Rider



Joined: 28 Jul 2005
Posts: 72
Night Rider
Quote:

-The API sucks. I realize this probably took some work, but it looks like it didn't take any thought. Writing a program consists of making an API call every other instruction. You can't do anything without them! It would be nicer if API's were Windows-style, procedure calls instead of interrupts.
And the API abilities are limited, so you can't do much.

I think you are really wrong. Give an example of OS with calls you like, please. Windows needs more calls and more parameters than Meos.
Post 30 Jul 2005, 01:24
View user's profile Send private message ICQ Number Reply with quote
Wildwest



Joined: 13 Sep 2004
Posts: 100
Location: Russia
Wildwest
Quote:
-The API sucks. I realize this probably took some work, but it looks like it didn't take any thought. Writing a program consists of making an API call every other instruction. You can't do anything without them! It would be nicer if API's were Windows-style, procedure calls instead of interrupts.


I still remember good old time - a lot of MenuetOS coders at this forum. Now it is forum of newbies, which even don't know how EASY to make programs with this include http://board.flatassembler.net/download.php?id=1387. I use it 8 months in my programs. I rewrote CPUID in November and I recall that I have got 1500 lines instead of 2400 - it is much easier to manage less code (it is about 4800 lines now), which still have the same power, isn't it?

The include is a bit outdated (it haven't functions, which was introduced in 2004-2005), but still very good.
Post 30 Jul 2005, 21:07
View user's profile Send private message Reply with quote
fasmiq



Joined: 16 Jul 2005
Posts: 5
fasmiq
See a well designed OS on a floppy also :

http://www.miray.de/products/system.html

http://www.miray.de/products/features.html

This is something MenuetOS will never be. Or it will ?
Post 31 Jul 2005, 16:21
View user's profile Send private message Reply with quote
comrade



Joined: 16 Jun 2003
Posts: 1137
Location: Russian Federation
comrade
yeah menuetos crashes frequently for me too
Post 31 Jul 2005, 16:38
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger ICQ Number Reply with quote
Wildwest



Joined: 13 Sep 2004
Posts: 100
Location: Russia
Wildwest
But it have only 7+ programs and don't have even text editor. Is it useful for you?
Post 31 Jul 2005, 18:04
View user's profile Send private message Reply with quote
fasmiq



Joined: 16 Jul 2005
Posts: 5
fasmiq
No, I'm only saying that MenuetOS is like a car without an engine. A fancy car, indeed.
Or a colored soap bubble.

Btw, Wildwest, your "include file" idea is a primitive kind of a statically linked library.
Dynamically linked libraries are one natural step to take further. ( One good reason for this is not to waste space duplicating code in each application). But MenuetOS has no support for this, and it cannot be attached because of MenuetOS's bad architecture. In fact... no architecture at all.
Otherwise, it must to be rewritten from scratch.
Ok, I agree, there are some (small) pieces of code which can be reused.


Last edited by fasmiq on 31 Jul 2005, 20:33; edited 1 time in total
Post 31 Jul 2005, 18:16
View user's profile Send private message Reply with quote
Night Rider



Joined: 28 Jul 2005
Posts: 72
Night Rider
I don't think that dlls are better than static ones.
THE ARE JUST DIFFERENT, they are made for different purposes.
In Linux, compiler(as i think) does the same - Linux uses INTs too, so...
About architecture - you are neither right, nor wrong... please describe more widely your thought. (i too dislike MEOS archtecture, i use it only for interest, but you are too serious about disadvantages imho)
Wildwest, let's wait until it will grow up, then take a look...
Quote:

and it cannot be attached
In fact, it can, but large work with code is needed.
Post 31 Jul 2005, 20:27
View user's profile Send private message ICQ Number Reply with quote
fasmiq



Joined: 16 Jul 2005
Posts: 5
fasmiq
Fortunately, I don't have to describe anymore "my thought" as THEWizardGenius already pointed "Operating System: Design and Implementation" by Andrew Tanenbaum.
Post 01 Aug 2005, 14:42
View user's profile Send private message Reply with quote
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius
Another good book is Operating System Concepts - 6th edition, by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne.
It doesn't have much source code, unlike Operating System: Design and Implementation, as it only has the concepts. It does have a lot of case-in-points and some pseudocode as well, and there are a few C and Java examples.
Post 01 Aug 2005, 16:16
View user's profile Send private message AIM Address Reply with quote
Wildwest



Joined: 13 Sep 2004
Posts: 100
Location: Russia
Wildwest
Quote:
But MenuetOS has no support for this

Wait until Kolibri5 is out - memory management and dynamic libraries.

Quote:
Wildwest, let's wait until it will grow up, then take a look...

I know this OS(mnOS) since June 2004 - version the same - it does not grow even on 0.01. Dead project.
Post 01 Aug 2005, 18:00
View user's profile Send private message Reply with quote
Night Rider



Joined: 28 Jul 2005
Posts: 72
Night Rider
"Operating System: Design and Implementation" by Andrew Tanenbaum."
Yeah, very good book.
"Modern operating systems SE A.S.Tanenbaum"
> It doesn't have much source code, unlike>
the same about ^^^^^
"Operating systems Internals and Design Principles 4ED William Stallings, PH.D"
"The design of operating systems for small computer systems Stephen H. Kaisler"
1983 New York"
Have a lot of algorithms about driver etc in Cobol(look for year Smile
Good books, read them.
Quote:

It doesn't have much source code, unlike
Post 01 Aug 2005, 18:45
View user's profile Send private message ICQ Number Reply with quote
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius
blech... COBOL = hated language very bad
Post 01 Aug 2005, 19:51
View user's profile Send private message AIM Address Reply with quote
Display posts from previous:
Post new topic This topic is locked: you cannot edit posts or make replies.

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2019, Tomasz Grysztar.

Powered by rwasa.