decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books
Your contributions keep Groklaw going.
To donate to Groklaw 2.0:

Groklaw Gear

Click here to send an email to the editor of this weblog.


Contact PJ

Click here to email PJ. You won't find me on Facebook Donate Paypal


User Functions

Username:

Password:

Don't have an account yet? Sign up as a New User

No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
No Minix code in Linux Ever -- More Evidence
Sunday, April 19 2009 @ 09:25 PM EDT

I saw an article the other day, repeating the mistaken view that there was Minix code in an early version of Linux. I knew that was not true, because for one thing Linus told us it was not true years ago. And Andrew Tanenbaum confirmed that Linus didn't use any Minix code, as did Eric Raymond. But here's some evidence for you cynics out there that I hope will settle that issue once and for all. It will at least make our historical record on Groklaw more complete. Anyway, it's our policy to provide all the evidence we can find, because I know you'd like to see it for yourself, not just listen to others' conclusions.

First, let's look at a comp.os.minix comment from Linus Torvalds on August 26, 1991. The date matters, because it is pretty much contemporaneous with the beginning of the kernel and because he obviously was never expecting SCO to make such a false claim in 2003. The subject is, What would you like to see most in minix?:
Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torva...@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

That isn't the famous October 1991 post ("Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers?"), which you can find here and here, where again he says there is no Minix code, which is why he is free to provide full source code. Here's the relevant part of another Linus post from May 18, 1992, in response to someone's questions:
I get the feeling you think linux evolved from minix? This is not true: linux was written under minix, and while linux superficially resembles minix386, it's really not that close to minix in any way... The most minix-like feature in linux is the filesystem: due to practical reasons I wanted to have the same physical layout of the disk as in minix.

Reading Tanenbaum is good for a general idea of operating systems, but it's generally not worth it to read the minix specific bits in order to understand linux (reading the minix source code in order to understand the genera idea might be worth it). While the filesystem has the same physical layout, multithreading means locking etc needs to be done totally differently etc. The kernel proper also uses totally different design ideals, and the device drivers are also very different (ie they use interrupts directly instead of waiting for hardware messages etc).

Lastly, minix and linux memory management is fundamentally different: linux uses paging on a very low level for everything: minix uses a heap-like memory management strategy, I think.

As to the shell under linux: there are several (although bash is the only one I use), and the same shells are generally available for minix as well (not standard PC-minix: it can't run tcsh/bash due to the 64kB limit). The standard minix shell isn't available for linux (not that big a loss: the minix shell doesn't do your mental sanity much good): ash is probably the closest thing.

I don't know about /bin/init: I never looked at the sources under minix, and I haven't exactly dissected it under linux either....

Linus

So they aren't particularly similar even with respect to ideas or ways of doing things. I couldn't help but notice that right afterward, Guy Eckhardt wrote to the original questioner that instead of trying to get the Lions book on Unix, he should try BSD:
If you're interested in studying a "real" Unix source, take a look at BSD Net-2 - it's still incomplete, but much of it is there.
And so the rivalry begins....: D

Just kidding around. I think he actually meant that it was easier to get a look at the source. And Linus answered another question in September of 1992, after someone asked if anyone could tell him in a few words what linux was:

Linux is a unix-like OS for the 386 - it's *not* available for any other architecture (and it currently doesn't work even on PS/2 (ie MCA) machines). Like minix, it comes with full source code, and is copyrighted. Unlike minix, it's freely re-distributable under the GNU copyleft (ie it doesn't cost you anything if you have ftp access).

Linux has some ties the the minix community: I originally used minix for linux developement, and the standard filesystem is still mostly compatible with the original minix fs (ie you can mount the same partitions both from minix and linux). That's about the only thing minix/linux have in common any more, but it may make a transition easier.

The best way to get a picture of linux is probably to read comp.os.linux for a while, and/or ftp to 'tsx-11.mit.edu' (pub/linux) or 'nic.funet.fi' (pub/OS/Linux) and try it out. Documentation isn't too hot (if you are timid about that, you should probably get minix or coherent), but it's possible to set up a linux system even with very limited unix knowledge.

Linux runs in full 32-bit protected mode, giving each process a 3GB process space (1GB used for virtual kernel memory). It supports paging to disk, shared libraries etc, and runs about everything from gcc to X11r5. 2MB physical RAM minimum, with >=4MB preferred for good performance.

Linux supports virtual filesystems: the standard kernel understands the minix fs, DOS disks (non-stacked), and a ext-fs format, giving 255 char character names and bigger partitions than the minix format. There are also patches for a xenix-filesystem mode as well as for actual emulation of some xenix binaries (but this isn't part of the standard kernel).

Additional patches include tcp/ip (which will be in the next major release, probably next week), a soundblaster driver and a CDROM fs. There is some work going on to use linux as the base for the FSF single-server (ie not Hurd, but a simpler unix-server) on top of mach-3.0, but this is so far only in it's infancy. Additional info from the newsgroup and ftp-sites.

I'd also suggest you check out "comp.os.coherent" and "comp.unix.bsd" for other alternatives to DOS - while I obviously think linux is the best of minix/linux/coherent/386bsd, there are those who disagree:

Minix is good for education (source, the book), coherent for simpler home use (easier installation, manual), linux for hacking (source, completeness) and 386bsd for people who simply want "the real McCoy" (source, compatibility). Linux and 386bsd are both freely distributable, although under different conditions, while minix and coherent are commercial (although cheap: $169 v $99 USD).

Linus

Later, he wrote that Minix was "fatally flawed". If you wish to see Linus wax poetic on the Minix flaws, here you go -- scroll down.

Hopefully this article will clear it up once and for all, and I'll never again have to write about Minix. Hardy har. I know. SCO never gives up.

For historians, then, here's the thread, the famous debate between Andrew Tanenbaum and Linus, et al, beginning in January of 1992 ("Linux is dead") on which design was the best (microkernel or monolithic), a debate made possible by the fact that the designs were so totally different. Note that Linus in his first reply ("Minix is nice if you have nothing else...") says this about Minix: "Not to mention the fact that most of the good code for PC minix seems to have been written by Bruce Evans." SCO keeps harping on the Minix theme, I have always assumed, because they wish to claim that Linus infringed copyrighted code and/or methods and concepts, which it would then claim was a derivative work of Unix. The Minix source license was changed to the BSD license in 2000, so if Linus had used earlier Minix code, perhaps they thought it conceivably could have been an issue. Here's the license as modified in 2005. And if you've always wondered what Minix looks like, here are some screenshots.

I'd say the evidence is overwhelming that anyone claiming there is, or ever was, any Minix code in Linux -- or even significant similarities -- is barking up the wrong tree.

Why debunk it again now, after we've so thoroughly debunked it before? Because it's one thing for a man to tell you he didn't do something after he's been sued over it; it's another for the contemporaneous words to demonstrate that what he is saying years later is in fact the truth. There never was any Minix code in Linux.


  


No Minix code in Linux Ever -- More Evidence | 105 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Corrections Here
Authored by: mupi on Sunday, April 19 2009 @ 09:34 PM EDT
So PJ can find them more easily...

Crorection -> Correction in the title please

[ Reply to This | # ]

[OT] Off Topic Here
Authored by: mupi on Sunday, April 19 2009 @ 09:36 PM EDT
Off topic goes here.

On topic comments in this thread will have a suitable punishment devised.

Don't forget the HTML Mode & Clickie instructions at the bottom of the
comment box for links!

[ Reply to This | # ]

[NP] News Picks
Authored by: mupi on Sunday, April 19 2009 @ 09:40 PM EDT
For discussions of news pick items.

Please Change the title of the post so we know which NewsPick you are referring
to. Clickies help, too, where possible.

[ Reply to This | # ]

No Minix code in Linux Ever -- More Evidence
Authored by: Anonymous on Sunday, April 19 2009 @ 10:38 PM EDT

It's really sad that in 1991 Linux started out with 3GB process memory and 1 GB kernel page memory, and Windows XP still doesn't have that feature in 2009. (It is in the Windows Advanced Server product.)

The complication with Microsoft's implementation, is that the 2GB even split so closely resembles the 32-bit signed/unsigned divide, that no one is completely sure there code would work if Microsoft changed the default value. As such, the value never really got changed, even for the applications that could really use more memory.

The Linux monolithic versus Minix micro-kernel debate is legendary. It is worth noting in any O/S design course.

[ Reply to This | # ]

Thank you PJ!
Authored by: The Mad Hatter r on Monday, April 20 2009 @ 12:06 AM EDT

Nicely done. Very nicely done.



---
Wayne

http://sourceforge.net/projects/twgs-toolkit/

[ Reply to This | # ]

I know nothing about nothing...
Authored by: Anonymous on Monday, April 20 2009 @ 02:27 AM EDT
I'm wondering about the history of GNU in Linux and Minix?

[ Reply to This | # ]

The reason
Authored by: Anonymous on Monday, April 20 2009 @ 02:33 AM EDT

Some people may find it strange that Linux used no Minix code.

It isn't really strange at all. It goes back to the reason Torvalds wrote Linux in the first place.

Minix was written for the original IBM PC, the 8088. This microprocessor had no memory mapping or memory protection. All programs shared the same address space, and a bug in one program could crash any other program. The maximum memory that the whole system could use was limited to (about) 640k. Minix was really a "toy" operating system.

When PCs with the 80386 microprocessor became available, they cried out for a "real" operating system because the 80386 has got the memory mapping hardware needed run one. It also had full 32-bit addressing. Using these capabilities makes the kernel so different from Minix that there's really nothing in Minix that a 32-bit kernel could use.

Minix (though a "toy" system) was a complete system. It included its own versions of most of the OS parts that were in GNU, because Minix programs were limited to 64k, and nearly every GNU component is bigger than that. Using a 32-bit processor meant that Torvalds didn't have that problem. He didn't need to write most of the operating system, he could just use GNU directly. All he had to write was the kernel and the file system. Everything else was already there.

If he had wanted to re-use parts of Minix, the only part he could have used was the file system. He says he didn't even use that, but even if he had, modern distros don't use the original Linux file system anyway.

[ Reply to This | # ]

No Minix code in Linux Ever -- Text Correction
Authored by: Ian Al on Monday, April 20 2009 @ 02:55 AM EDT
I'd say the evidence is overwhelming that anyone claiming there is, or ever was, any Minix code in Linux -- or even significant similarities -- is barking up the wrong tree.
You see, that's not quite right.

I'd say the evidence is overwhelming that anyone claiming there is, or ever was, any Minix code in Linux -- or even significant similarities -- is barking!
There! Much better.

---
Regards
Ian Al

Linux: Viri can't hear you in free space.

[ Reply to This | # ]

For anyone looking for Minix from that era
Authored by: Anonymous on Monday, April 20 2009 @ 05:31 AM EDT

For anyone looking for Minix from that era, you can find it here: http://minix1.woodhull.com/current/2.0.4/

That's for Minix 2, which might be a newer version than what Torvalds used. I couldn't find Minix 1 though.

If you want to try it out, the easiest way seems to be to download the "DOSMINIX.ZIP" file (see "Running under DOS in 8086/286 mode") and running it in an emulator.

  • Install FreeDOS or MS-DOS in an emulator (e.g. QEMU).
  • Copy the DOSMINIX files into the emulated system.
  • Start minix by typing "boot minix.mnx"
  • Type "=" in the boot manager.
  • You are now running Minix. Log in as root with no password.

It's a very retro experience. It's command line only. The system starts up with no user accounts, not even a "home" directory.

The files in /usr/bin all seem to be compiled in 2003. This version is from much later than the one that Torvalds had been using, but I don't think it had changed that much during that time.

A quick tour shows the following:

  • The kernel source seems to be there (usr/src/kernel).
  • There's "def" files for Modula-2! I have fond memories of that language.
  • "errno.h" is in there. That should get SCO all excited! Some of the error codes are the same as in Linux, but others are different.
  • The usual Unix utilities are there (grep, vi, awk, and all the usual suspects). They don't seem to be the GNU versions though, which adds to the "retro" feel.

In general, it looks like an old style Unix system. It's probably good for the purposes for which it was intended - teaching about Unix on the cheap in an era where most of the alternatives were proprietary.

[ Reply to This | # ]

The end of Minix story
Authored by: Nick_UK on Monday, April 20 2009 @ 05:40 AM EDT
It would be nice to record this bit too. This excerpt is taken from 'The Rebel
Code' by Glyn Moody (ISBN 0-7382-0333-5) page 49.

After the post on the Minix newsgroups (around 5th Jan 1992):

"I really don't wish to flame, but it's starting to annoy me that 50% of
the articles I read in this newsgroup are about Linux."

...

"On the same day that this not unjustified plaint was posted, Linus was
reporting an amusing accident on his machine. He had been trying to connect
with the university's computer, but by mistake instructed his terminal emulator
to dial his hard disk.
[...]

[...]
This slip wiped out the Minix system that Linus had kept alongside the
steadily growing Linux. Initially, Minix had formed an indispensable
scaffolding for the development of Linux; but since Linux could now function
without the crutch of Minix, there was no reason to re-install Minix after this
mishap."

Nick

[ Reply to This | # ]

John Harrop And "Public Knowledge"
Authored by: sk43 on Monday, April 20 2009 @ 08:09 AM EDT
Does anyone remember the Declaration of John Harrop [IBM-199]? This was submitted by SCO as part of its Opposition to IBM's first motion for PSJ on counterclaim 10. According to Harrop:
"It is public knowledge that in contrast to UNIX, AIX, Dynix, ptx and Dynix/ptx, the Linux operating system was not developed under the control of any single entity or corporation."

"In his classes, Mr. Torvalds had been studying an operating system that one of his professors ..."

Hmmm, Torvalds was studying Minix under Tanenbaum, right? So what does Tanenbaum say in the Jan 29, 1992 thread?
""Be thankful you are not my student."
Good work, Mr. Harrop!

[ Reply to This | # ]

Linux is dead, film at 11...
Authored by: darthaggie on Monday, April 20 2009 @ 10:43 AM EDT
beginning in January of 1992 ("Linux is dead")
Heh. So Linux has been dead for more than 17 years? who knew? dead kernel booting.

Deer Microsoft: You can't kill an undead OS.

[ Reply to This | # ]

Oracle now owns more than 50% of the database market
Authored by: Anonymous on Monday, April 20 2009 @ 11:52 AM EDT
Oracle now owns MySQL and more than 50% of the database market. MySQL is the
only database engine gaining market share.

http://www.mysql.com/why-mysql/marketshare/

[ Reply to This | # ]

No Minix code in Linux Ever -- More Evidence
Authored by: JamesK on Monday, April 20 2009 @ 12:23 PM EDT
"I'd say the evidence is overwhelming that anyone claiming there is, or
ever was, any Minix code in Linux -- or even significant similarities -- is
barking up the wrong tree."

Yep, there's not even a kernel of truth in that claim. ;-)


---
This LAN is your LAN, this LAN is my LAN...

[ Reply to This | # ]

SCO's poisoned fruit theory
Authored by: Anonymous on Tuesday, April 21 2009 @ 07:52 AM EDT
> I originally used minix for linux developement

SCO would say: "See, that's proof that Linux was illegally
influenced by Minix".

Didn't they claim that they needed to prove that AIX
developers had Linux code on their sandboxes because that
would "prove" that their AIX development was somehow
"influenced" by SysV (or vice versa, I keep getting this stuff
mixed up)?

[ Reply to This | # ]

Minix was not a microkernel OS.
Authored by: Anonymous on Monday, April 27 2009 @ 07:06 AM EDT
.. which design was the best (microkernel or monolithic), a debate made possible by the fact that the designs were so totally different.
Only Minix wasn't a microkernel OS. It was monolithic for reasons of simplicity: Minix was written as a simple, 'open source' OS to teach OS design, after AT&T had stopped licensing the UNIX source code for educational use.

There was a lot of misunderstanding in that debate; As a professor of CS and expert on OS design, Tanenbaum felt that microkernels were the future (which most experts on the subject would agree with, albeit to a lesser extent than back then), so he criticized Linux for not being a Microkernel. Linus, on the other hand, criticized Minix for sucking, which of course was due to the fact that Minix was never intended to be a complete production OS either.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )