Amiga OS

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
darklife

Amiga OS

Post by darklife »

I have always liked using this OS/GUI and was wondering how I should go about designing an OS that works similar. What language was it developed in? Anyone know where I can get technical information on how the OS works under the hood? I keep asking myself why I like the Amiga so much, and it's hard to come up with an answer. I just do. I guess the UI has a lot to do with it. What makes the Amiga so good? The hardware or the software? Or both? Maybe some here think the OS is bad, if so what is your thoughts? Thanks.
Curufir

Re:Amiga OS

Post by Curufir »

I liked the old Amiga too, great games.

Here's a starting point for you:

http://www.aros.org/

Might be more fulfilling to join up with this project rather than start from scratch on your own if you're interested in Amiga stuff (And are thinking of x86), but of course that's up to you :).

AFAIK the reason for the responsiveness of the Amiga was a combination of hardware and some excellent programming 'under the hood'.

Good luck.
User avatar
Solar
Member
Member
Posts: 7632
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Amiga OS

Post by Solar »

HA! The question for me! 8)
darklife wrote: I have always liked using this OS/GUI and was wondering how I should go about designing an OS that works similar. What language was it developed in?
C, with some Assembler.
Anyone know where I can get technical information on how the OS works under the hood?
http://www.aros.org, "The Amiga Guru Book" and the "ROM Kernel Reference Manuals" would be good starters. The books are out of print, but at least the RKM's should be available from a good library, by interlending.
I keep asking myself why I like the Amiga so much, and it's hard to come up with an answer. I just do. I guess the UI has a lot to do with it. What makes the Amiga so good?
OK, let's open the hood. Many people will give many different opinions. Many of those opinions include things that are of little meaning to an OS designer (like, "it could do video", or "the games were great"), so I'll focus on the technical side.

Looking at the advances in PC technology, I doubt that any of the once-upon-a-time hardware nifties of the Amiga still are an advantage today. Blitter (moving memory segments around), Copper (doing things triggered by scan line), Zorro bus (asynchronous) etc. etc. all have been copied or surpassed by technology.

One thing for sure was Autoconfig - plug & play that works. Expansion cards brought (some of) their drivers in ROM, so that e.g. a SCSI card would be usable right after plugging it in - no "new hardware found", it just works. But many people never tinkered that much with their Amigas, and still liked it.

My personal bullet list: responsiveness, transparency, simplicity.

Responsiveness.

Even when under heavy load, the GUI would still give immediate feedback. Even if there's no way in hell that an app could do a certain activity right away, the visual feedback of the GUI button actually being pressed had highest priority. It would stay pressed until the app signaled the job was done, thus keeping you from clicking it again thinking the system didn't recognize your first click. I think this being the one most important thing in GUI design: Immediate feedback.

The messaging model did part of the wonder of "how could it do this with so little MHz" - AmigaOS had no memory protection, so everything was passing a pointer or jumping to {address}. When telling that the AmigaOS kernel (Exec) was a microkernel (to say that microkernels can be very fast), one must not forget that it had the fastest IPC possible - passing a pointer, no TLB flushes, no context switch, no cache invalidation. Of course, not having memory protection is unnacceptable in desktops today.

(to be continued)
Every good solution is obvious once you've found it.
User avatar
Solar
Member
Member
Posts: 7632
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Amiga OS

Post by Solar »

(see? damn forum said my post was too long... ;-) )

Add to this many nice little GUI things. The "close" button was to the top-left, away from any other buttons so you wouldn't hit it by accident. There was no per-window menu bar; instead the active window displayed its menu bar at the top of the screen: as any decent student of UI design will tell you, the third easiest point to reach with a mouse - after the point right below your pointer (pop-up) and a screen corner, and indeed, one of the most famous patches was making the top-screen menu bar into a pop-up.

And and and, too many tiny things to remember.

Transparency and simplicity.

Libraries were named "truetype.library" or "datatype.library", and placed in SYS:Libraries. Devices were named "scsi.device" or "printer.device", and placed in SYS:Devs. Commands were named "delete", "list", "copy" or "makedir", and placed in SYS:C.

Commands always were plain English, not abbreviated to "del" or "rm". Command line options were "ALL" (for recursive mode), or "QUIET", not "-r" or "-q". (You could, of course, just type "a" or "q" if that was sufficient to uniquely identify the option, but any published scripts always used the long version of the options.)

If there was a program to do config settings in, it had an icon with a big question mark, and was located either in SYS:Prefs (for system-wide settings) or the application drawer. It always had a button "Use" (for this session but don't save), "Save", and "Cancel".

No magic repository. If it was a setting, it was saved as a file in SYS:Prefs/env-archive, named after the app it applied to. Nothing "magic" to the boot sequence: ROM loaded and executed SYS:S/Startup-Sequence from the highest-priority boot device, and that was it. Backing up the system was as easy as "copy SYS:#? BAK: ALL QUIET CLONE". Set the boot flag on whatever "BAK:" is, and you can boot your backup copy, without danger of the system confusing file systems.

You've seen the path syntax: DRIVE:path/to/dir/filename. This allowed you to always know - from a look at the path - what device you were on. Floppies etc. were recognized automatically. (System tried to access removable media in intervals; if it returned an error, there was no media inserted.) If formatted in some other file system than the standard, media carried the file system module in the "rigid disk block", enabling an Amiga not knowing the file system in question to still mount and access the media.

You could assign "virtual drive names" to paths, even multiple paths. Commands were looked for in virtual drive "C:", which was "SYS:C SYS:Prefs" by default IIRC. Doing an "Assign Work:some/app C:" added Work:some/app to the search path. Typing "C:" on the shell would bring you to the first (highest priority) directory in the assign list (here: SYS:C).

Extensability. There was a patch allowing you to access a pre-defined FTP server through the "FTP:" drive (or "FTP1:" or whatever you configured). That was not a "hack", it was implemented using the OS features: The drive "FTP:" was configured to use the "ftp.device" (or some such). "Copy" called a function from dos.library, which used e.g. scsi.device to read the file and ftp.device to write it - who cares if ftp.device opens an internet connection and "saves" the file through the FTP protocol instead to disk?

Consistency. People expected those question-mark icons to be there for Preferences, and they expected those Use / Save / Cancel buttons to be there. They expected all applications to use the OS-standard file requester, etc. etc. - not doing so was worth a negative remark and downgrading in any application review.

Internationalization was done by "catalogs", text ressource files that were idependent of the executable. This enabled software vendors to outsource the translation without disclosing their sources; it even allowed translations without cooperation from the vendors. Drop in the .catalog file, and your app spoke a new language.

Then there was Aminet (http://www.aminet.net). A central repository wher you'd find everything from small utilities to catalogs to icon collections to application patches to shareware to professinal app demo versions, plus sound modules, pictures of other people's desktops and and and... If it's Amiga, it's on Aminet.

That's for the beginning. I will probably come up with more. AmigaOS had many beautiful design decisions going into it, and only the sum of them can make you grasp what that OS was like.
Every good solution is obvious once you've found it.
darklife

Re:Amiga OS

Post by darklife »

I had an Amiga 3000 with OS 2.1 and it was a wonderful computer. I was too young at the time to realize how useful it could be for me in the future so I gave it to a friend. I didn't have www access at the time so I had no idea that it could read FAT floppies using special drivers. The poor computer had most the stuff deleted off of it because it was gave to me from my school and they used it only for their video lab work. It did have Deluxe Paint 4 and Micro Emacs :) I had a lot of fun with DPaint and did most my school work using MEmacs. I knew very little about computers at the time. My teacher had an old i486 66MHz computer and since he got a new one, he gave the 486 to me. I figured since I had a PC why would I need that old Amiga anymore? Besides, I didn't have the space at the time. I gave it away. I regret it more than anyone could ever comprehend! Now (6 years later) I have a decent PC running Linux with KDE/GNOME/etc. for a UI and it is great! However, I still miss the beloved Amiga. I do have an A500 with OS 1.2 lol. I can't even mount PC0 >:(
Plus, no hard drive :( Soon I will save some cash and get myself a 1200.
Amiga OS 4 looks like it will be snuff and since it will run on a PC, it will give me a chance with the Amiga 'OS' again. However I doubt it will feel the same, or even close.
Thanks for the interesting replies people :)
User avatar
Solar
Member
Member
Posts: 7632
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Amiga OS

Post by Solar »

darklife wrote: Amiga OS 4 looks like it will be snuff and since it will run on a PC...
No it won't, it will run on a PowerPC, which is the CPU that Apple is using, too. You will not be able to run AmigaOS 4 on a mainstream PC, not even by emulation. (Which is, in my book, a grave mistake, but I've been evangelizing against it for all the three years since it was announced, and aside from ruining my reputation in the Amiga scene I achieved nothing. ;-) )

But, you can run any AmigaOS version up to and including AmigaOS 3.9 on a PC, using UAE. Check out http://www.freiburg.linux.de/~uae/. Note that the only thing for free is the emulator - you'll need the ROM and OS files. A good package is Amiga Forever (it's linked from the UAE page); that CD distro includes the emulator, all OS versions from v1.3 through v3.1, a preinstalled OS 3.1 including several nice apps (including PPaint, arguably the best palette-based graphics program you'll find), and "The Deathbed Vigil", the famous video of the last days of Commodore, in MPEG format.
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Amiga OS

Post by Pype.Clicker »

please forgive my C64-to-PC ignorance, but what's so different in amigaOS4 that will make it not running on UAE ??
User avatar
Solar
Member
Member
Posts: 7632
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Amiga OS

Post by Solar »

AmigaOS 1.x through 3.x were M68k-based. AmigaOS 4.x onward will be PPC-based. UAE emulates 68k Amiga hardware. There is no "free", or even affordable, PowerPC emulator for the PC. AmigaOS 4 will only run on hardware having a special BIOS dongle, so that people don't rip the OS from the (bundled) hardware and run it on your everyday PPC box.

<sarcasm>

In their infinite wisdom, Hyperion (subcontractor for OS 4 development since Amiga Inc. themselves are next to broke) considers a PPC hardware niche to be the right thing for the Amiga market to "recover". Doing OS 4 in a way that would run on emulators would "kill" the platform, since we all know that people don't run emulators because that way they get around expensive but sub-standard hardware, people use emulators because they want to use pirated software. Only people paying for expensive hardware will pay for expensive software.

And of course this decision for a PPC niche has nothing to do with Hyperion's main income being the porting of two-year-old PC games to the PPC platform...

</sarcasm>

Just forget it. AmigaOS (and it's oh so superior spin-off brother, MorphOS) aren't going anywhere, since both are caught in the early 1990'ies notion that PPC is the saviour and ix86 is evil. So they build systems based on last generation's PPC technology so they can "protect" themselves from facing the competition of MS Windows.

Like you could protect your desktop OS from Windows competition from requiring a 600?+ hardware dongle that does nothing a PC couldn't do as well.

Oh, yes, I forgot, the PPC is the "better" technology and uses less power. As if Joe Average gives a damn.

:-[
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Amiga OS

Post by Pype.Clicker »

if every x86 user turned to PowerPC, we could stop 50% of nuclear power plants around ;D
User avatar
Solar
Member
Member
Posts: 7632
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Amiga OS

Post by Solar »

I am sure Pype said this ironically, but for those who say this in earnest:

* The CPU uses only a fraction of the power in your computer; e.g. the GPU and the monitor are likely to eat similar amounts. Go back to braille terminals.

* The power consumption of your average x86 is about as large as that of an average light bulb. Only compute while sitting in the dark.

* Using broadband internet makes service providers install network infrastructure that consumes a sizeable percentage of worldwide power consumption. Revert to 300 baud acoustic couplers.

And so it goes on... stop the car engine in front of red traffic lights, go short distances by bike, wear warm clothing instead of turning on the radiator...

</irony>

:D
Every good solution is obvious once you've found it.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:Amiga OS

Post by Pype.Clicker »

oh, i already do most of those things (except for bandwidth and display, i have to admit ... and that i still light up a candle instead of Coding in the Darkness ;D)
darklife

Re:Amiga OS

Post by darklife »

->Solar..
Okay, I haven't looked at www.Amiga.com for some time now.
I never heard of MorphOS but I will look into it for fun. I have used UAE but I like the real thing on the real hardware better.
I must be one of the few people who liked programming and using the OS, not actually a heavy game player like most Amiga owners.
User avatar
Solar
Member
Member
Posts: 7632
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Amiga OS

Post by Solar »

darklife wrote: I must be one of the few people who liked programming and using the OS, not actually a heavy game player like most Amiga owners.
"Most" depends. Like most Amiga owners of all time - correct. But what's left of the user community today are those die-hards who actually use their Amigas for their everyday computing needs. But since even the bright heads of the once-great development community have left the platform for greener pastures... :-\
Every good solution is obvious once you've found it.
User avatar
Candy
Member
Member
Posts: 3883
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Amiga OS

Post by Candy »

Pype.Clicker wrote: if every x86 user turned to PowerPC, we could stop 50% of nuclear power plants around ;D
If you'd fire up a couple of cole plants, you could shut down 100% of nuclear power plants. Does that actually hold an advantage?
Post Reply