ast@botter.cs.vu.nl (Andy Tanenbaum) (01/11/87)
First, I would like to apologize if I over-crossposted. I haven't posted much
to the net before, so I may have done things wrong. I was under the impression
that if one sends to multiple groups it cross posts them in such a way that
each reader only gets the message once, even if the reader subscribes to all
of them. If I am wrong will somebody please tell me how to do it (by mail).
It is also possible that I messed up. Furthermore, we were having news and
mail problems at the time, which may have contributed. It was my intention
that a lot of people see it once, not that a few people see it many times.
As to being commercial, that's true I guess, but since I am supplying 50,000
lines of source code without copy protection for $79, and I don't mind a
limited amount of copying of the binary and source code, it is not in the same
league as normal PC software in terms of the owners zealously guarding both
binaries and sources. In fact, it is probably somewhat closer to the Free
Software Foundation's way of doing things (also copyrighted) than to Lotus.
I assumed (and judging by the response, probably correctly) that there would be
a fair amount of interest. Sorry if I offended people.
Maybe it would be best to set up comp.os.minix now. Will everyone who would
want to subscribe to it send me mail. If there is a sufficient number, I
will ask the local guru how one sets up a new group and try to avoid messing
that up too. I will cross post this to various groups, but just stick to
comp.sys.ibm.pc or comp.os.minix (depending on the reaction) in the future.
Several people have asked me questions whose answers may be of general interest,
so I will post them here.
Q1: Can you have multiple users on a PC?
A1: In theory yes. The terminal driver has an array indexed by terminal
number from 0 to some maximum. At present that maximum is 1, so you
have to change a constant and recompile the tty driver. Also, there
is no RS232 driver (the deadline had a race with RS232 and the deadline
won). Therefore such a driver has to be made, but it is quite simple.
Most of the hooks and handles you need are already there, for example,
when it is time to output a character on tty n, the driver calls a
function pointed to by tty_struct[n].tty_devstart, so each terminal
can have a different routine to actually output the character. In this
way you can mix various device types.
Q2: How compatible does a machine have to be to run MINIX?
A2: It needs a NEC uD765 chip as floppy disk controller, a Motorola 6845 as
video controller, etc. If the hard disk controller is nonstandard, the
hard disk won't work, but the rest will. Machines with different I/O
chips but try to hide this by presenting the same BIOS interface won't
work. About a dozen different clones have been tested. MINIX worked
without problems on 80% and failed on 20%.
Q3: Can you call assembler routines from the MINIX C compiler in order to
write drivers for new devices?
A3: Yes. The C compiler uses the standard UNIX calling convention of pushing
the parameters onto the stack in reverse order, so there is no problem
writing bits of a program in assembler. The assembly language accepted
by the MINIX assembler is identical to that of PC-IX, the "official" IBM
UNIX system for the PC. Assembly routines for reading and writing I/O
ports are present in the file kernel/klib88.s (port_in and port_out).
Q4: What do you mean it will sort of run on a 512K machine?
A4: It will boot fine and run ok with 512K, but since it doesn't swap, it
won't be possible to run a lot of background jobs without running out
of memory. Also, if you use make, you may discover that make + cc +
the various passes that get forked off may not fit in core at once, which
causes EXECs to fail and make to get an error return. This can be solved
by changing the amount of stack space allocated to the compiler passes
using the chmem utility. (chmem is functionally the same as in PC-IX,
which works the same way.) Reducing the stack allocated to compiler
passes means that some very large programs may not compile. With a 640K
system, files > 50K characters have compiled. With 512K, that limit may
be lower.
Andy Tanenbaum (minix@cs.vu.nl)ucscb.bitbug@ucbvax.Berkeley.EDU (01/12/87)
Can MINIX work or be tweaked to work with the Intel Above Board? This would be great for multiple processes or users. You might also use an Above Board bank for each user, to simulate some sort of protected memory environment. Any comments, flames, etc? James Buster ucbvax!ucscc!ucscb!bitbug
harris@ecsvax.UUCP (Mark Harris) (01/14/87)
In article <1028@botter.cs.vu.nl>, ast@botter.cs.vu.nl (Andy Tanenbaum) writes: > Q2: How compatible does a machine have to be to run MINIX? > A2: It needs a NEC uD765 chip as floppy disk controller, a Motorola 6845 as > video controller, etc. Will MINIX run with an Enhanced Graphics Adapter? My system has an EGA/monochrome monitor. - Mark Harris, Appalachian State University
termin@killer.UUCP (09/30/87)
This discussion that is spilling over from comp.arch and comp.unix.wizards into the newgroup minix is getting to be a duplicity of effort. I do read the discussion but I am reading it in 3 newsgroups now . IT DOES NOT NEED TO BE PUT IN THE COMP.OS.MINIX NEWSGROUP. IF YOU CAN FIND SOMEONE TO HELP YOU FIGURE OUT HOW TO PUT IT IN THE APPROPIATE NEWSGROUP IT WOULD BE APPRECIATED. Thanks Jim
ast@cs.vu.nl (Andy Tanenbaum) (10/27/88)
MINIX is a new operating system that is system call compatible with V7 UNIX.
Unlike real UNIX, it is available with all the source code, both the kernel
and all the utilities. The purpose of this message is to announce its
availability on the 68000 CPU, specifically the Atari-ST. However, since
it should not be too hard to port it to other 68000-based computers (e.g.,
Amiga, Macintosh), this message is being crossposted to a number of newsgroups.
This will be the only announcement outside comp.os.minix.
When MINIX is run on the Atari ST (or MegaST) it replaces the native
operating system (TOS) and turns the computer into a normal UNIX machine.
MINIX has been running on the IBM PC, XT, AT, and many clones, including 386s
for almost two years. The IBM version is in widespread use all over the world.
The original (IBM) version was written by Andrew S. Tanenbaum. The Atari port
was done by Johan Stevenson and Jost Muller. MINIX does not contain even a
single line of AT&T code. Thus both the operating system and the utilities are
all brand new code.
MINIX FEATURES:
- System call compatible with V7 UNIX (except for a few very minor calls)
- Kernighan and Ritchie compatible C compiler is included
- Shell that is functionally identical to the Bourne shell is included
- Full multiprogramming (fork+exec; background jobs in shell: cc file.c & )
- Full screen editor inspired by emacs (modeless, autoinsert, etc.) included
- Ability to read and write TOS disks
- Over 90 popular utilities provided (cat, grep, ls, make, mount, sort, etc.)
- Over 100 library procedures provided (atoi, fork, malloc, stdio, etc.)
- Works with floppy-only systems or with hard disk systems
- Full operating system source code (in C) is included
- Source code for all the utilities (except C compiler) is included
PARTIAL LIST OF THE MINIX COMMANDS:
ar as badblocks basename cal cat cc cem cg chmem chmod chown clr cmp comm
compress cp cpdir cpp cv date dd df diff diskcheck du echo expr factor
false find fix fsck getlf grep gres head kill ld ln
login lpr ls make megartc mined mkdir mkfs mknod more
mount mv od opt passwd pr printenv pwd readall readfs rev rm
rmdir roff sh shar size sleep sort split stty su sum
sync tail tar tee test time tos touch tr treecmp true
umount uniq update uudecode uuencode wc
PARTIAL LIST OF THE MINIX LIBRARY:
abort abs access alarm atoi atol bcopy brk call chdir chmod chown chroot
cleanup close creat crypt ctime ctype doprintf dup dup2 exec exit fclose
fflush fgets fopen fork fprintf fputs fread freopen fseek fstat ftell
fwrite getc getegid getenv geteuid getgid getgrent getpass getpid getpwent
gets getuid gtty index ioctl isatty itoa kill link lseek malloc mknod
mktemp mount open pause perror pipe popen putc puts qsort rand read
regexp regsub rindex scanf setbuf setgid setuid signal sleep sprintf stat
stime strcat strcmp strcpy strlen strncat strncmp strncpy stty sync
system termcap time times umask umount ungetc unlink utime wait write
NEWSGROUP
There is a USENET newsgroup, comp.os.minix, concerned with MINIX. This group
is gatewayed to the ARPANET, BITNET, etc. If you cannot read USENET newsgroups
directly, you can get on the mailing list by sending a request to
info-minix-request@udel.edu
The group is very active, and well worth reading if you are interested in MINIX.
It is used for reporting bugs, fixing bugs, posting new software, asking and
answering questions, and so on. At some point it may be necessary to split
the group (IBM vs. Atari; source code vs discussion; ...) but for the time
being, there are no plans to split it. Time will tell. There are archives
of the messages that have been posted to comp.os.minix. For an information
sheet telling about MINIX and the archives, send email to ast@cs.vu.nl or
watch the newsgroup. Although this message is being crossposted to several
groups, this will be the only announcement. Please post all subsequent
discussion to comp.os.minix ONLY. The group is unmoderated. Please do
not discuss the PDP-11 memory management unit or other irrelevant topics.
DOCUMENTATION
There is a book describing MINIX is great detail, both how to use it and how
it works inside. The book contains a highly annotated copy of the O/S code
as an appendix (250 pages). This version is slightly out-of-date, but it is
still quite usable. The bibliographic data on the book are as follows:
Title: Operating Systems: Design and Implementation
Author: Andrew S. Tanenbaum
Publisher: Prentice-Hall, Englewood Cliffs, NJ 07632
Date: 1987
ISBN: 0-13-637406-9 (hardback version, U.S and Canada only)
0-13-637331-3 (paperback version, outside of U.S. and Canada)
Price: about $40 although bookstores may charge whatever they want
The book is currently in the process of being translated into German.
There is also a paperback MINIX Reference Manual that is a subset of the book.
It contains only the MINIX specific information, not the general background
stuff on operating systems that the book contains. The reference manual is
about $35. There is also a package containing the disks and the reference
manual combined going for about $110. I think there may soon be a package
containing the reference manual and the Atari disks.
The Atari disks come with a little booklet telling how to boot the system
and how it differs from MINIX-PC (IBM version). Effectively it is a diff
listing between MINIX-ST and MINIX-PC. It makes no attempt to repeat the
500 or so pages on MINIX from the book or manual.
AVAILABILITY
MINIX is something of an intermediate form between AT&T UNIX and GNU.
Unlike GNU, MINIX is not public domain. It is copyrighted by Prentice-Hall
and is being sold by them. The price for the Atari disks in the U.S. is $80
+ shipping (somewhat higher abroad) and includes all the source code. On
the other hand, unlike AT&T UNIX, the source code is readily available, and
may be copied for bona fide educational and research use. For example, a
professor teaching a course on operating systems could legally buy the disks
and then make copies for all his students. A very limited amount of private
copying (say, no more than 3 copies per original) for personal friends is
ok. If this gets out of hand, and Prentice-Hall decides that not enough have
been sold, they will just drop the Atari and have future versions be for the
IBM only. It is the intention that future versions be compatible with POSIX.
In the U.S. you can order the software and books from most bookstores or
directly from Prentice-Hall in NJ. The ISBN number for the Atari software
is 0-13-584392-8. Prentice-Hall's phone number is (201) 767-5937.
In the U.K. there are two dealers as listed below.
The price in the U.K. is 88.50 pounds sterling + VAT
Prentice-Hall International SDL Ltd
Attention: Mark McDonagh Unit 10
66 Wood Lane End Ruxley Corner Industrial Estate
Hemel Hempstead Sidcup Bypass
England Kent DA14 5SS
Telephone: +44 442 231555
The distributors for Europe are listed below. The European price is $110.40.
In Germany: Steve Steinkrauf
Feldtorweg 24
D3406 Bovenden 1
FRG
In Holland: Jos de Jong
Postbus 184
2100AD Heemstede
Holland
In Scandinavia: Frank O'Donell
P.O. Box 88
1371 Asker
Norway
In Spain Deborah Worth
and Portugal: Appartado Numero 50672
Madrid
Spain
In Italy: Jim Blaho
Via Manzani 50
50018 Scandicci
Florence
Italy
In Greece: Vassilis Zahos
Kriconas 57
GR11634 Athens
Greece
In Turkey: Attilla Gullu
Millinudafaa Cad 14/7
Kizilay Ankara
Turkey
If you have questions whose answers are likely to be of interest to many people,
post them to comp.os.minix. If you have questions that are very specific and
you don't want to broadcast to 10,000 machines in several dozen countries, send
mail to one of us. PC-specific questions should go to ast; Atari specific
questions should go to Johan.
Andy Tanenbaum (ast@cs.vu.nl)
Johan Stevenson (johan@nlgvax.nl)
P.S. domain nl is The Netherlands, where both of us are located.
If your mailer does not know where this is, buy a good world atlas, digitize
it, and feed it to the mailer.