[comp.sys.amiga] Why doesn't Commodore release Amiga source?

bryce@hoser.berkeley.edu (Bryce Nesbitt) (09/21/87)

In article <156@splut.UUCP> stu@splut.UUCP (Stewart Cobb) writes:
>
>   Why hasn't Commodore released the source to the operating system?
>
>   Think about it.  They can't be afraid of pirates: everyone who has an
>Amiga gets a copy of the OS, gratis.  Are they afraid someone would hack
>it up into a better OS?

Someone might port it to the Macintosh... or worse yet the Atari ST...
or worse yet the Commodore 64... Atari 800... Apple ][... IMSI 8080...
:-) :-) :-) :-) :-)

>	[more discussion deleted]
>    Can someone point out the flaw in my reasoning?  Or, perhaps, the
>flaw in theirs?

The worst problem would be the detailed internal knowlege that people
would have about the OS.  Many of them can't be trusted.  Some things
are much better off as "Black Boxes" because they can, will, or should
change.
With bad enough habits you get a system as un-upgradeable as the Commodore-64.
I once did a little babule called 1541 Flash!.  Would you believe that some
programs load values from absolute addresses in the ROM, compare them
to constants and *crash* if they are not correct?  Major, best selling,
programs?  And that's just the easy to find incompatibilities.
People won't do that to the Amiga... but they will do the next best thing;
reading, depending and worst of all changing private structures.  Depending
on interactions and side-effects that may want to disappear later.  Using
the BCPL globals or other such nonsense.  (Remember Scott Turner on this
point?)  Commodore has said that they are not telling how those things
work; yet still people want to use them.


>That would only sell them _more_ Amigas.  They
>shouldn't be concerned about having multiple, perhaps buggy, new OS's
>floating around, because everyone who has one of those also has the
>original to fall back to.... 

What Commodore *should* do, in my opinion, is release source to a lot
of the device-specifc stuff.  Here I mean printer drivers and such.

The source can only be used in an Amiga-specific way, and would promote
better drivers.

To protect Commodore's multi-million dollar investment in all this,
some legal vulture could come up with a distribution restriction that
reads "...intended for use only on computers sold by Commodore... must
retain copyright** notice..." whatever.

In cases where good support has been slow to show up (like with
DOS handlers) a relase of code can grease many locks.  (Someone
might hear about MODE_READWRITE... or pherhaps even implement it!)

I think serial.device is handled by now... but at a certain point that would
have made all the difference for a midi.device.  (A midi.device ought be
a standard part of the next Workbench release... )


** It is "Copyright" (The right to copy), not "Copywrite" (How to make a
copy with a pencil) or "Copywright" (Something out of Tolkien). Some 
shareware authors blow this not-so-fine point.

 
|\ /|  . Ack! (NAK, ENQ, SYN)
{o O} . 
 (") 	bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce
  U	How can you go back if you have not yet gone forth?

schoet@ernie.Berkeley.EDU (Steve Schoettler) (09/21/87)

In article <3866@zen.berkeley.edu> bryce@hoser.berkeley.edu (Bryce Nesbitt) writes:
>In article <156@splut.UUCP> stu@splut.UUCP (Stewart Cobb) writes:
>>
>>   Why hasn't Commodore released the source to the operating system?
>>
>>   Think about it.  They can't be afraid of pirates: everyone who has an
>>Amiga gets a copy of the OS, gratis.  Are they afraid someone would hack
>>it up into a better OS?
As the owner of possibly the best microcomputer operating system around,
they do have a competitive advantage.  Why risk loosing it?
>
>Someone might port it to the Macintosh... or worse yet the Atari ST...
>or worse yet the Commodore 64... Atari 800... Apple ][... IMSI 8080...
>:-) :-) :-) :-) :-)
>
Or worse yet, someone in Korea or Taiwan might start making Amiga clones...
:-) :-)

>>    Can someone point out the flaw in my reasoning?  Or, perhaps, the
>>flaw in theirs?
>
>The worst problem would be the detailed internal knowlege that people
>would have about the OS.  Many of them can't be trusted.  Some things
>are much better off as "Black Boxes" because they can, will, or should
>change.
  As an example of the kind of thing that will happen, take the Manx fexec()
function that broke under 1.2.  To get it to work in a clever way, Jim found
out where something was stored on the BCPL stack.  In 1.2, the value's stack
position changed, and the function didn't work anymore.  (I can't print it
here because of copyright restrictions, but that command should be memorialized
as a tribute to Amiga hackers :-) :-).

>People won't do that to the Amiga... but they will do the next best thing;
>reading, depending and worst of all changing private structures.  Depending
>on interactions and side-effects that may want to disappear later.
Or someone might find out about the SwitchTask function in the Exec Library
and start using it...

Some things could prevent this (described later).

>>That would only sell them _more_ Amigas.  They
>>shouldn't be concerned about having multiple, perhaps buggy, new OS's
>>floating around, because everyone who has one of those also has the
>>original to fall back to.... 

A strict license agreement would prevent this.  Only allow Commodore to
distribute updates.

>What Commodore *should* do, in my opinion, is release source to a lot
>of the device-specifc stuff.  Here I mean printer drivers and such.
>The source can only be used in an Amiga-specific way, and would promote
>better drivers.
Yeah, that's the ticket!
>In cases where good support has been slow to show up (like with
>DOS handlers) a relase of code can grease many locks.  (Someone
>might hear about MODE_READWRITE... or pherhaps even implement it!)
> 
>|\ /|  . Ack! (NAK, ENQ, SYN)
>{o O} . 
> (") 	bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce
>  U	How can you go back if you have not yet gone forth?


As a software developer, I would like to see the sources.  They would help
me trace bugs in my code as well as in the kernel.  Also,. a greater
understanding of internal functions would result for all of us (mixed
blessing).
I would also think more bug reports would be written, and more solutions
would be offered.  This might result in a sturdier software system and
reduce the time required (manpower) to fix bugs.

Although the mentioned concerns are valid, there may be answers to the
problems:

    1. Release source only through license agreement, which allows Commodore
       exclusive right to distribute updates and versions of object code.
       In the case of UN*X, this method has not resulted in loss of income
       for ATT, and has not resulted in a lot of copy clones.  This is
       largely due to the strength of ATT's legal department.  Commodore
       may or may not have the strength to enforce this, though.

   2.  Spend a couple of person-years developing a detailed architectural
       specification, telling developers exactly what can and cannot be 
       depended upon.
       In 1983 IBM published the 370-XA Principle of Operation which defined
       an entire architecture which has spanned many machines, and has remained
       largely unchanged since.  It documented many features of the existing
       machine, and also specifically left many things UNDEFINED.
       Granted, the Amiga documentation is magnitudes better than corresponding
       info from IBM, but it would have to be expanded to explain every element
       of every structure.  Such overwhelming effort and forethought may only
       be feasible for an architecture intended to last 30 years or so.

Are the above ideas feasible? rational?  If anyone knows, Commodore would. :-)

Steve Schoettler
...ucbvax!schoet

{Usual Disclaimers}

dragon@trwspf.TRW.COM (Roger Vossler) (09/23/87)

In article <3866@zen.berkeley.edu> bryce@hoser.berkeley.edu (Bryce Nesbitt) writes:
*In article <156@splut.UUCP> stu@splut.UUCP (Stewart Cobb) writes:
*>
*>   Why hasn't Commodore released the source to the operating system?
*>
*The worst problem would be the detailed internal knowlege that people
*would have about the OS.  Many of them can't be trusted.  Some things
*are much better off as "Black Boxes" because they can, will, or should
*change.
* [text deleted]
*What Commodore *should* do, in my opinion, is release source to a lot
*of the device-specifc stuff.  Here I mean printer drivers and such.
*
*The source can only be used in an Amiga-specific way, and would promote
*better drivers.

I totally agree: only release source code for device drivers and, perhaps,
some specific handlers. At TRW, we have about 25 Liliths for which we have
all of the Modula-2 source code, including the operating system, MEDOS-2. 
Keeping track of all the changes that we have hacked into our code is a
serious problem for us (and we know how to do it, too), particularly,
since the code is so easy to change and "improve". MEDOS-2 V5.2 is about
10,000 lines of Modula-2 source code which, BTW does some resource
tracking.

Now, my question for some Amiga Wizards, since I don't know too much about
the internals of AmigaDOS (yet): How hard would it be to graft another
operating system onto the AmigaDOS kernel and how would one basically go
about doing it? For example, MINIX-like or something like MEDOS-2? How much of
the stuff in ROMs is required to run the Amiga as opposed to just booting it
up? It seemed that when everything in Kickstart was in WCS, the problem of
grafting on another OS kernel was much simpler (relatively).

It seems to me that hooking in another OS somehow permits the OS People to
work to their hearts content (as in the MINIX world) and yet at the same
time not disrupt a foundation upon which other people are trying to build a
commercial base. Thanks for your time.
-- 
-- Roger Vossler
   TRW, Bldg O2-1395, One Space Park, Redondo Beach, CA 90278
   BIX: rvossler      UseNet: dragon@trwspf.trw.com
   ATT: 213.535.2804          ....!sdcrdc!trwrb!trwspf!dragon