Welcome, Guest. Please login or register.

Author Topic: I long for a decent OS.  (Read 16068 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« on: January 03, 2007, 07:56:44 PM »
Quote
Starrunner wrote:
Simply put...I've seen Workbench take a while to load.  However, it never seemed to take nearly as much time as Windows.  I've used every version of Windows since 95, and they just seem to keep getting worse each time.  I am going to be seeing XP64 soon, so we shall see.  I do not want to see Vista though...UGH!

My Windows 2000 machine is pretty much okay. It's the first stable Windows I've used, I can lock it down very well thanks to the clear access to all kinds of services and administration policies, and so forth. It's awaiting log on in about 20 seconds or so after a cold boot: that's really not too bad.

Quote
The beauty of the AmigaOS was something very simple.  It was fast, effecient AND not a bloody space/memory hog.  I can remember a time years ago, when NT4 came out.  I was running my A500 with 1.5 RAM total and a 50MB hard drive under Workbench 2.1.  I remember laughing at my friend with NT4 cause it required I forget how much space and RAM.  I could multitask better than he could, using far less space.  If I remember, the amount of space for NT4 would've been bigger than my A500 HD.

Granted, but NT4 was supposed to do much more than the humble Amiga too, so the comparison isn't very fair. Networking needed to be initialised, driver structures for any kind of graphics or sound or networking device installed, proper multi-threaded multi-tasking, some idea of multiuser capabilities, and so forth, und so weiter. If you don't need all of the above, and you run rock-solid software which doesn't try to be funny, yes, then the small footprint is definitely an advantage. But considering that running Amigas in a stable fashion proved near impossible for me (the machine always experienced unexpected lock ups, nearly always causing invalidated drives to boot) eventually forced me to go PC. First Windows 95, then 98, and with the advent of USB (which 98 never properly supported), Windows 2000. 2k is a souped-up NT4, and despite being a little rough around the edges in terms of user friendliness, quite good for you telling the machine what you want to do. With XP, I get the feeling I'm treated as a dumb user.

I'm not saying that Windows is the pinnacle of stability, but it has improved over the years to the point where crashes indicate something really wrong, like faulty memory chips or dodgy hardware. Software still does become unresponsive from time to time, but at least the rest of the machine keeps on going.

And for the moments when inspiration hits, I carry around a little notebook with an old-fashioned fountain pen. Now to remember to keep the reservoir filled up with ink, because that is of course the standard DOS you experience with those things...
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« Reply #1 on: January 03, 2007, 10:46:14 PM »
Quote
Tenacious wrote:
@ no-one in particular (this is NOT personal)

Of course it isn't. But your argument is still a variant of 'I think it is so, therefore it must be so'. Therefore, one counter example is sufficient to dispense with your argument:

Try some program development for a change. In C, preferably, with some advanced pointer handling where anyone but the Truly Great Ones is sure to fsck up, and then watch the Amiga crash and burn like there is no tomorrow. It is not a coincidence that in the RKRMs it is always highly recommended to run Enforcer besides your code!
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« Reply #2 on: January 03, 2007, 10:49:59 PM »
@downward_s:

Methinks you should install DOS and WP5.1 on an aging PC---say 1 GHz or so :P. At the speeds of today, DOS will be at your command in a second or so, and WP5.1 in even less than that.
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« Reply #3 on: January 07, 2007, 11:10:25 AM »
Quote
MenuetOS is an Operating System in development for the PC written entirely in 32/64bit assembly language...

What a terrible waste of time. Coding in assembly language is a thing for dinosaurs or embedded applications, not for operating systems. Optimising compilers nowadays produce assembly code which is nearly as good as humans can make it; only when we get truly creative do we still hold the edge. But that requires extraordinary amounts of effort.
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« Reply #4 on: January 07, 2007, 05:01:11 PM »
Quote
KThunder wrote:
have you done any programming? assembly or otherwise?

Be serious. You have been a member of A.org for as long as I have, and that means you should know at the very least that I know my way around a C-compiler. In my case, SAS/C, AztecC and gcc.

I can also code in MC680x0 assembly, and did spend a few days in 80x86 when I had to circumvent several copy protection mechanisms. It was fun writing code for a CPU which resembles a stackmachine, although the general shortage of registers is annoying after a while. When I was a small Cymric, I learned Z80-assembly on my Schneider CPC464, although I was too young and inexperienced to make full use of it---that would now no longer be the case.

I have coded my own 'bare metal' demos on the Amiga. I have programmed dozens of utilities over the course of my PhD in order to analyse data. I have coded server-side web utilities to (ab)use CGI. I have quite some experience with compiler construction (as I find the concept of programmable virtual machines intruiging), and will delve into the mysteries of automatic memory management once my thesis is out the door.

I may not be a skilled programmer, and I certainly don't make my living from it. But I do know enough to understand what it takes, and to hold my own for a while amongst professionals.

Quote
all compillers produce slightly different code, some are more efficient than others but none is as good as hand coding.

That was the case a decade ago. Nowadays the effort of streamlining the code produced by an optimising compiler does not outweigh the time you gain by doing it yourself. You also get higher-level expression syntax, maintainability and readability nearly for free. Those are exceedingly big plusses in my book.

Quote
some of us actually like assembly coding. with assebly you can conrol exactly how the machine runs in every respect.

That is valid argument, and if you prefer the smell of bare metal, I'm not stopping you. But that doesn't mean I have to agree with the choice of you working in assembly for a certain project. And that's precisely what I'm doing here. For some things you still need to resort to assembly language simply because they don't have a proper higher level-equivalent---things like setting up the CPU in the proper 'mode', controlling the FPU-settings, bus communication, and so forth. Those are the fun bits too. But once those routines are in place, let the compiler handle the chore of translating your ideas into assembly language.
 
Quote
actually operating systems are alot better if written in assembly or c, c with inline can be quite good if used carefully.

I don't know of many operating systems which don't use a mixture of assembly and C.

Quote
all compillers produce the same code that humans would using the generalizing effect of different commands since they get their info from us. you talk as if they are artificially intellegent or something.

To some extent they are: we've programmed their logic, after all. They are as good as the ideas which go into them, and by now, those ideas are quite good. But they excel at one thing: doing the same thing over and over again. They don't get tired. They don't get sloppy. They do the job as we tell them to. If I take a look at this list of tips which I need to keep memorized while coding in assembly to make sure that things remain efficient, my first gut instinct is:  let the computer handle this. Especially in the case of timing loops and bus accesses. If I'm working on an idea, I want to see that idea working, not be bogged down in the details of how I should implement it.

Compilers suck at global optimisations, but that's the job of their human masters, really. A compiler cannot look at the code and tell the programmer 'Lookie here now: you're coding B-trees, but isn't a skiplist or hashtable better suited for your needs?' Compilers don't guard against bad algorithms.

Quote
ad btw it doesnt take extraordinary amounts of effort. for small projects and anything that works in an environment it usually takes less. since you dont have to worry about what library files etc will do with other programs and what ou are doing. you just write the code you want to write.

Sure. Only with a higher-level language it goes much, much, much more quickly.
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« Reply #5 on: January 07, 2007, 11:42:03 PM »
Quote
KThunder wrote:
many assembly coders nowadays know all about caches etc and how to code specifically for them. knowing exactly how the actual pipelines work etc can result in speedups. there are several emulator coders and c/inline coders who do this extensively. see emulators.com for one.

Be serious (again). When coding an operating system you really don't want to be bothered with this stuff. This is bitfscking at its best. Operating systems are about ideas how to cope with conflicting issues like fast access to limited resources, stability, driver support, and scalability. Not about optimising the code to fit the pipeline architecture for a very specific CPU.

Quote
if you know how a specific pipeline runs and how much cache you have etc you can code for that. you can also order memory accesses and instuction streams around the architecture.

This is a boring and painstaking task best done by a optimising compiler. These are peephole optimisations, and humans will have a really hard time beating the compiler. The compiler can generate quite good to very good code for any CPU at the flick of a switch; humans will find that very hard.

You seem to be stuck in the state when slapping 'assembly' on a product made it 'better' and 'more optimised' and 'faster'. Compilers have evolved. Humans have not.

Quote
people think they have billions of instuctions per second now so who cares about optimization you can write a program quickly and not worry about code size or speed. i mean we all have a gig of ram at least right?

No, you've got that all wrong. It depends on your design specifications. If you want to code a tiny lightweight OS, there's nothing stopping you. Multiple such designs exist. But going assembly doesn't mean it's lightweight. It just means you have too much time on your hands to be able to code such a complex system. If the developers had gone C, the system would have at most taken two floppies instead of one, and now I'm being exceedingly harsh on the compiler.

Quote
thats how you end up with operating systems that take up gigabytes of space on a hard drive and take several minutes to fully load.

No, that's feature creep. Tons and tons and tons of extras a tiny handful of people expect out of the box from the computer. A googol of drivers is included for the most exotic types of hardware. A kazillion graphics, sounds, fonts, helpful documents, compatibility programs and what-not are included. And so forth, und so weiter.

The kernel files of any 'big' OS are really not big. I believe Windows 2000's kernel is about 700 KB or thereabouts. My Linux kernel is about 900 KB.

Quote
that is what this thread is about, someone wants a small efficient os that loads very quckly and does what he needs and thats it. not a gargantuan chunk of code that loads a hundred libraries and apps and protections and other crap that he doesnt need. if you just want to send a simple email to a freind or something xp is way way overkill

Aye. But my statement was that coding MenuetOS in assembly is a waste of time, as the exact same performance would have been obtained by going C. Take a look at SkyOS, for example. Same idea, but lightyears ahead of MenuetOS.

Back on topic of the original thread: perhaps SkyOS isn't such a bad idea for the OP. It is actively developed, very fast, has nice features, is perfectly usable, has a small footprint, and so forth. I might investigate it in the future.
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.
 

Offline Cymric

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 1031
    • Show all replies
Re: I long for a decent OS.
« Reply #6 on: January 08, 2007, 11:38:48 PM »
Quote
KThunder wrote:
no we havent evolved but we designed the cpus and apps and code them. assembly coders arent stuck in the middle ages (80s) they now do code for this stuff. compillers are good but if they are perfect why do they all provide inline capabilities, you yourself admitted that all major oss are written in c and assembly.

I specifically addressed this: to have a clean way in which you can access system resources C has no abstraction for. MMU tables, setting up FPU control bits, sending data over various data buses, and so forth.

Quote
weather or not this stuff is a waste of time is up to the people wasting (or not) their time, many assem coders do it cause it is fun.

If it is for fun, then we are in agreement. If it is meant for a serious project with people intending to gain a lot of second-party support and the like, or when dealing with complex ideas (such as those underlying an operating system), then we are not in agreement.

Quote
we could argue this for pages and not get anywere i think assembly is usefull for many things and you dont. i actually havent done much coding in a few months and i am a offset lithographic pressman not a coder so im not argueing my livelyhood here.

You seem to have a knack for deliberately misunderstanding me, or misrepresenting what I write. Truly, I may not be able to write fluent Shakespearian english considering it's not my native language, but I have a hard time drawing the above conclusion ' don't think assembly is usefull [sic] for many things' from my contributions to this thread. Either way, I've made my points several times now, I'm not going to elaborate them any further. Enjoy your bashing the bare metal.
Some people say that cats are sneaky, evil and cruel. True, and they have many other fine qualities as well.