PDA

View Full Version : Unix on a Z80 machine



ziloo
November 11th, 2011, 09:47 AM
I know this might be a wild question, but has there been any attempt or
is it possible to port Unix (or one of its derivatives) to a Z80 environment?
Yes or No...please explain...

ziloo

p.s. I know nothing about Unix!

MikeS
November 11th, 2011, 10:05 AM
Cromemco's Cromix, for one.

Chuck(G)
November 11th, 2011, 10:17 AM
Trite answer: The Z80, AFAIK, is a Turing-complete. So, given a suitable amount of storage (e.g., a hard disk), it's possible to emulate any other processor, albeit very slowly. So, you could theoretically run any version of Unix (or Windows 7) on a Z80.

ziloo
November 11th, 2011, 12:04 PM
...Z80, AFAIK, is a Turing-complete...

Do I understand correctly that: Because Z80 is a Turing-complete, it can emulate
any other CPU. Since Unix is running on many other CPUs, then there is no reason
it won't run on a Z80 machine.

Yes...No...?

ziloo

Chuck(G)
November 11th, 2011, 01:41 PM
Exactly. Basic computability theory. Given enough storage and a Turing-complete instruction set, any CPU can emulate any other CPU.

Sometimes this can be very useful--you can, for example, design a fictional CPU that has capabilities that your CPU doesn't natively have. UCSD Pascal is a good example of this--the language compiles to P-code (http://en.wikipedia.org/wiki/P-code_machine) and any system that hosts it interprets the P-code instruction set.

carlsson
November 11th, 2011, 04:33 PM
For practical reasons though, it is nice if your computer is able to execute at least one command per day.

MikeS' reference to Cromix probably is a good start. I'd also look into recent homebrewn operating systems for Z80 home computers (perhaps mainly the European ones) which often borrow parts of the Unix concept, although perhaps being far from fully Unix compliant.

I've once tried something called UNIX V3 on a Commodore 128, although running in 6502 mode. It was rather slow, but a reasonable attempt at mimicing a single user Unix-like system.

billdeg
December 11th, 2011, 06:36 PM
Z80 computers like the trs 80 model II ran XENIX but only after a 68000 kit upgrade..There would have been others who did the same, relegating the z80 to the role of support chip. I'd search around for a "tiny unix" or "z80 unix" something like that. The orig UNIX ran on primitive DEC systems but even they were not 8 bit.

I wonder what you could do on the 128k trs 80 model 4 with Aztec or whatever C to write a tiny UNIX. You'd not get too far making a full UNIX file system but you could build an unix like interface friendly to connecting with other UNIX systems?

mbbrutman
December 11th, 2011, 07:06 PM
I'm going to go out on a limb here and give the common sense answer. No.

When most people talk about Unix they talk about an operating system with many of these design features:


At least two levels of protection enforced by the CPU: user and privileged
Multiple concurrent processes (fork, exec, wait, etc.)
A filesystem using inodes accessed accessed using file descriptions (open, read, write, etc.)
Inter process communication via pipes and signals
A reasonable/sane user environment with a shell and C runtime



You can overlook things like the lack of user and privilege mode in the CPU and no-memory management. You can limit the processes to one or two at a time, and write them all in assembler. But even with those concessions it is pretty much impossible to get Unix onto something as small as a Z80. It would be just too stripped to be anything other than a demo.

krebizfan
December 11th, 2011, 07:29 PM
I suspect that any PDP-11 variant of Unix could be made to work on a bank switching Z-80 system. The result would be quite slow though. Far beyond my skill to implement.

Chuck(G)
December 11th, 2011, 07:43 PM
I'm going to go out on a limb here and give the common sense answer. No.

Give me a hard disk and a 64K Z80 and I'll produce an emulator for a PDP-11, privilege levels, I/O and all. It'll run PDP-11 version of Unix just fine---albeit very slowly.

I've been there myself, running on an emulator of a supercomputer because of limited access to the real thing--at less than 1/100th the speed of the real thing. Instead of a few seconds to do a compilation, it took all night. But useful work was still done on it.

So no, it's not impossible. On a 50MHz eZ80, the speed might even be quite tolerable.

jltursan
December 12th, 2011, 03:11 AM
Well, you've a very nice UNIX derivative for MSX machines called UZIX (http://uzix.sourceforge.net/). Written in C it can be ported to every other Z80 based computer out there...

mbbrutman
December 12th, 2011, 06:18 AM
Give me a hard disk and a 64K Z80 and I'll produce an emulator for a PDP-11, privilege levels, I/O and all. It'll run PDP-11 version of Unix just fine---albeit very slowly.

I've been there myself, running on an emulator of a supercomputer because of limited access to the real thing--at less than 1/100th the speed of the real thing. Instead of a few seconds to do a compilation, it took all night. But useful work was still done on it.

So no, it's not impossible. On a 50MHz eZ80, the speed might even be quite tolerable.


Chuck,

If you start as you did with the argument that the device is Turing complete, then you can run pretty much any code ever written or will be written on that Z80 to, assuming you have the mass storage and a few lifetimes. Which makes the question meaningless because the answer is always "yes". Bringing up the Turing complete argument might be fun at a cocktail party and it shows how smart we are, but it really doesn't answer the question.

The original question is "I know this might be a wild question, but has there been any attempt or is it possible to port Unix (or one of its derivatives) to a Z80 environment? Yes or No...please explain..." To my knowledge a reasonable Unix has not been ported to run natively on the Z80, and it is not feasible. You can have some Unix-like features, but getting something that operates like Unix at the kernel level is going to be impossible.

That was the spirit and intent of the original question.

MikeS
December 12th, 2011, 07:25 AM
I'm going to go out on a limb here and give the common sense answer. No.Another sweeping (and misleading IMO) generalization by Mr. B. ...


When most people talk about Unix they talk about an operating system with many of these design features:


At least two levels of protection enforced by the CPU: user and privileged
Multiple concurrent processes (fork, exec, wait, etc.)
A filesystem using inodes accessed accessed using file descriptions (open, read, write, etc.)
Inter process communication via pipes and signals
A reasonable/sane user environment with a shell and C runtime


Exactly which of your arbitrary criteria does Cromemco's Cromix (for example) fail to meet in order to qualify as a "UNIX derivative"? (Note the '..IX' in CROMIX)

Multiple levels of protection - Y
Multiple tasks and multiple users - Y
Inodes and configurable I/O - Y
Pipes and signals - Y
Shell (Configurable, scripting, etc.) - Y

Whether it's "sane" or "reasonable" in your opinion, especially in the context of the early 80's, is irrelevant to the OP's question.

carlsson
December 12th, 2011, 07:52 AM
I wonder about the memory mapper in MSX2 computers. I found one reference that in the old days it would consist of a dozen 74 series chips and DRAM. In order to successfully port something like UZIX to another Z80 machine, you might need a machine with similar banking capacities to overcome the 64K addressing space. Off-hand, I don't know which Z80 systems can do that, but looking at the screenshots and technical specs it looks quite promising although development might have halted since six years ago.

krebizfan
December 12th, 2011, 08:48 AM
I wonder about the memory mapper in MSX2 computers. I found one reference that in the old days it would consist of a dozen 74 series chips and DRAM. In order to successfully port something like UZIX to another Z80 machine, you might need a machine with similar banking capacities to overcome the 64K addressing space. Off-hand, I don't know which Z80 systems can do that, but looking at the screenshots and technical specs it looks quite promising although development might have halted since six years ago.

Memory banking on Z-80 was quite common; CP/M 3 was largely built to implement that. Amstrad's later CPC models were likely the most widespread Z-80 systems with more than 64K of RAM.

But those shipped in the late 80's and the Unix variants most easily ported to the this hardware would have been from before 1980 so that would prove a lot of work for very little gain.

Cromix was probably as close as any completed software got to being a Unix running on a Z-80.

MikeS
December 12th, 2011, 09:40 AM
...Cromix was probably as close as any completed software got to being a Unix running on a Z-80.Z80 Cromix used from two to seven banked 64KB memory blocks, one for the kernel & shell and one each for up to 6 users; as a matter of fact, the same memory and I/O could later be upgraded to a 68000 by just replacing the CPU card.

There were also optional I/O cards with Z80s and firmware on board to offload and handle serial I/O; as an interesting side note, these Z80s could be reassigned to run Z80-specific application software when the main CPU was a 680x0.

Chuck(G)
December 12th, 2011, 10:14 AM
The original question is "I know this might be a wild question, but has there been any attempt or is it possible to port Unix (or one of its derivatives) to a Z80 environment? Yes or No...please explain..." To my knowledge a reasonable Unix has not been ported to run natively on the Z80, and it is not feasible. You can have some Unix-like features, but getting something that operates like Unix at the kernel level is going to be impossible.

It's a much tougher question in my mind. Exactly what constitutes Unix--is it the OS kernel or the utilities that accompany it? If it's the kernel, then what features (keeping in mind the historical evolution of Unix) are essential to the character of Unix? If it's the utilities, which ones? If it's both, what's the minimum to be called Unix?

There are probably several Unix utility-work-alikes around. If protection is important, there are certainly multi-CPU Z80 systems with each CPU having its own memory space monitored by a supervisor CPU (the logical equivalent of a protected-mode CPU). Similarly, a bankswitched Z80 CPU with the proper hardware can be said to be protected, as long as any part of memory can be mapped out and privileged memory be mapped in only only with an accompanying trap to a predetermined location within it. There are lots of ways to skin a cat.

Is Cromix Unix? Cromemco certainly didn't call it that. Have there been any ports of Unix to Z80 hardware, no matter how heavily augmented? Probably not--but it's hard to say. We've lost so much of the early startup attempts that I wouldn't venture to guarantee an answer. About the only assurance is that Unix porting to microcomputer architectures didn't really gather steam until the late 70s. To be sure, there were other multi-user alternatives that consumed fewer resources.

Given that the Z80 community mostly used the CP/M application base, the big question is why anyone would want to bring in Unix. Cromemco is an exception, essentially keeping its user community locked in.

With a speed-challenged CPU like a Z80, another consideration was "Can one get reasonable efficiency from a real Unix port on a CPU as badly suited to C as a Z80?" When we did one of the early ports of Xenix to the 80286 and translated our applications base from x80 assembly to C, we watched the speed of the system drop substantially. It took a lot of work to get things back to something approximating the speed of the original 3.5MHz 8085 that could service 5 users without breaking a sweat.

mbbrutman
December 12th, 2011, 10:56 AM
Another sweeping (and misleading IMO) generalization by Mr. B. ...

Try not to take such delight in turning things personal.




Exactly which of your arbitrary criteria does Cromemco's Cromix (for example) fail to meet in order to qualify as a "UNIX derivative"? (Note the '..IX' in CROMIX)

Multiple levels of protection - Y
Multiple tasks and multiple users - Y
Inodes and configurable I/O - Y
Pipes and signals - Y
Shell (Configurable, scripting, etc.) - Y

Whether it's "sane" or "reasonable" in your opinion, especially in the context of the early 80's, is irrelevant to the OP's question.

My "arbitrary" criteria came from the chapter headlines from the book "The Design of the Unix Operating System" by Maurice Bach. Is that too arbitrary for you?

I understand the memory is bank switched. How is kernel mode vs. user mode enforced?


Mike

MikeS
December 12th, 2011, 10:57 AM
Is Cromix Unix? Cromemco certainly didn't call it that. I wouldn't call it that either, but I think it does qualify as the OP's "Unix derivative".


Given that the Z80 community mostly used the CP/M application base, the big question is why anyone would want to bring in Unix. Cromemco is an exception, essentially keeping its user community locked in.I'm not sure what you mean by "locked in"?

As long as there was a Z80 somewhere, whether on a dual-processor board or an I/O board, every version of Cromix could run native CP/M applications, admittedly with a few gotchas but third party add-ons took care of that; in fact most Cromix installations were really just multi-user CP/M systems with some of the added security and flexibility usually only found in UNIX. I haven't tried it recently, but I'm pretty sure I could still run dBaseII, SuperCalc and Wordstar on one of my 68020 systems...

Towards the end of the 80s they did offer 'real' Unix as an option, either by itself or in a dual-boot Cromix/UNIX configuration with a shared partition


With a speed-challenged CPU like a Z80, another consideration was "Can one get reasonable efficiency from a real Unix port on a CPU as badly suited to C as a Z80?" When we did one of the early ports of Xenix to the 80286 and translated our applications base from x80 assembly to C, we watched the speed of the system drop substantially. It took a lot of work to get things back to something approximating the speed of the original 3.5MHz 8085 that could service 5 users without breaking a sweat.Granted, the speed of even a three or four user Z80 Cromix system was nothing to brag about, even in 1981...

Chuck(G)
December 12th, 2011, 11:16 AM
I should add that there was a massive rush toward Unix ports when the 68000 came out, particularly after SysV came out, although there were plenty of BSD-based ventures as well.

Over my objections, the firm I was with then bought a Plexus 68K box over leasing a VAX 11/730 (we already had a 750) to temporarily augment our capabilities. Big mistake--the Plexus came nowhere near the manufacturer's stated performance and the programmers made up rude acronyms that described what they thought of the Plexus.

In that context, "real" Unix, say, SysV, on a Z80 would have been at best a curiosity.

And MikeS has a point--why would anyone want to do this, given that the product base for the Z80 was pretty much exclusively CP/M?

MikeS
December 12th, 2011, 11:17 AM
Try not to take such delight in turning things personal.Delight??? More like mild annoyance; it's not the first time that I've posted a reply to a question only to have you contradict me with what I consider a misleading and perhaps even ill-informed generalization, invariably leading to a defensive counter-reply, etc. etc...

My "arbitrary" criteria came from the chapter headlines from the book "The Design of the Unix Operating System" by Maurice Bach. Is that too arbitrary for you?I suppose we could argue that your choice of that book and the particular criteria you chose are arbitrary, but it doesn't really matter since we're not only talking about true-blue AT&T/IEEE-sanctioned UNIX but also UNIX derivatives.

I understand the memory is bank switched. How is kernel mode vs. user mode enforced?I don't understand the question?

eeguru
December 12th, 2011, 11:25 AM
I'm fairly certain the definitive qualification of whether something is 'UNIX' is whether the producer of said material has ever had "SCO vs <their name>" read from a federal circuit court docket.

MikeS
December 12th, 2011, 11:35 AM
I should add that there was a massive rush toward Unix ports when the 68000 came out, particularly after SysV came out, although there were plenty of BSD-based ventures as well.Yeah, Cromemco made SysV available as well when it came out (but not for the Z80 systems ;-) )

And MikeS has a point--why would anyone want to do this, given that the product base for the Z80 was pretty much exclusively CP/M?Indeed; but much of Cromemco's user base was in universities, research and government, where being able to still run familiar CP/M apps like dBase, SuperCalc and Wordstar in a Unix-like environment while concurrently doing the 'real' work in Fortran, C or even Cobol was a big selling point.

MikeS
December 12th, 2011, 11:37 AM
I'm fairly certain the definitive qualification of whether something is 'UNIX' is whether the producer of said material has ever had "SCO vs <their name>" read from a federal circuit court docket.ROFL! Good one!

gv308
December 12th, 2011, 07:04 PM
Minix and Xinu had many of the elements of Unix. I believe both were at one time running on Z80's?

DoctorPepper
December 13th, 2011, 11:23 AM
Exactly. Basic computability theory. Given enough storage and a Turing-complete instruction set, any CPU can emulate any other CPU...

I had a dream about emulating x86-64 on a Z80, and running Windows 7 on that. Then I woke up screaming and babbling incoherently. It took many years of therapy to get back what sanity I now have...

Al Kossow
December 13th, 2011, 11:37 AM
Cromix was probably as close as any completed software got to being a Unix running on a Z-80.

And Morrow's Micronix, as I posted earlier.
http://bitsavers.org/pdf/morrow/decision/Micronix_Operating_System_1.61_Jun83.pdf

billdeg
December 13th, 2011, 02:16 PM
I just wrote a quick UNIX web server running on my ZX-81 Sinclair (with extra 16K RAM cart) attached to the Internet through a IPV6 connection using the keyboard interface ribbon:

There are no graphics, just a prompt. Works best with Firefox.

http://207.245.109.38

Chuck(G)
December 13th, 2011, 02:21 PM
There are no graphics, just a prompt. Works best with Firefox.

http://207.245.109.38

Very cool, Bill--but I think I just hung it. At any rate it's not talking to me.

billdeg
December 13th, 2011, 03:30 PM
If you get stuck hit tab until the prompt is responsive. Note that this is a farse...It's just my dos prompt style sheet.

Caluser2000
December 13th, 2011, 08:07 PM
I had a dream about emulating x86-64 on a Z80, and running Windows 7 on that. Then I woke up screaming and babbling incoherently. It took many years of therapy to get back what sanity I now have...Apparently Windows 8 will run a lot better........................Hic!!

carlsson
December 14th, 2011, 07:05 AM
Why making a joke about this? I can fully understand why someone would like an operating system environment that resembles Unix, even if it is not 100% UNIX compatible when it comes to underlying structures and features. We already had at least three examples of somewhat Unix derivated systems running on Z80 computers. While neither of those might compare to a 21th century UNIX implementation (I'm not sure which implementations still exist, but that is a different matter), I don't think the original posters intention was to get a Z80 computer as his main workstation, file server, web server, number crunching server or whatever else one would use a Unix-like system for.

Clearly some of you put too much importance on that something needs to be fully compliant in order to be even remotely alike. From a legal standpoint, I agree that SCO, AT&T or whoever today administrates the rights to the UNIX trademark would not be amused if someone would distribute an unlicensed system involving UNIX as part of the name, in particular not if it does not fully comform to what sysadmins and users expect from a UNIX system. However as I indicate above, I think there is room for other interpretations what one would be looking for in a Z80 operating system that is not CP/M, Basic or Forth.

Chuck(G)
December 14th, 2011, 11:00 AM
However as I indicate above, I think there is room for other interpretations what one would be looking for in a Z80 operating system that is not CP/M, Basic or Forth.

Some good points, but again, I say, "Exactly what of Unix makes an OS Unix?". That's really what needs to be qualified here. I count multi-user (with accounting), multi-programming with pipes, long file names, hierarchical filesystem, user privilege protection and the utility set as essential characteristics.

Remember that when MS-DOS 2.0 came out, Microsoft's stated objective was to evolve DOS to be indistinguishable from Xenix. It never happened, even though some Xenix-like features were added to DOS.

MikeS
December 14th, 2011, 11:14 AM
Why making a joke about this? I can fully understand why someone would like an operating system environment that resembles Unix, even if it is not 100% UNIX compatible when it comes to underlying structures and features. Actually the other way around made a lot of sense to me; Cromix had most of the underlying structure of UNIX (inodes, pipes, lfns, all the stuff that Chuck mentions), but the environment was much friendlier IMHO with native commands like "ty[pe]", "help" etc.

Chuck(G)
December 14th, 2011, 11:25 AM
Why not just say that any product that fully complies with IEEE Std 1003.1-2008 (POSIX combined standard) is close enough?

MikeS
December 14th, 2011, 11:34 AM
In this small world of opinionated geeks there'll never be agreement on the definition of anything ;-)

As to the OP's question, were UNIX or derivatives 'ported' to the Z80?

True officially sanctioned UNIX? No.
UNIX more-or-less look-alikes and work-alikes? Yes, several.

Chuck(G)
December 14th, 2011, 11:43 AM
In this small world of opinionated geeks there'll never be agreement on the definition of anything ;-)

As to the OP's question, were UNIX or derivatives 'ported' to the Z80?

True officially sanctioned UNIX? No.
UNIX more-or-less look-alikes and work-alikes? Yes, several.

Were those really 'ports? Or were they newly-written work/look-alikes? In other words, did someone actually take the code from Unix for ls and recompile it? Or did they write something that looks something like ls?

So the answer probably would be "no" there were no Unix 'ports.

MikeS
December 14th, 2011, 11:56 AM
Were those really 'ports? Or were they newly-written work/look-alikes? In other words, did someone actually take the code from Unix for ls and recompile it? Or did they write something that looks something like ls?

So the answer probably would be "no" there were no Unix 'ports.I knew it! ;-) We can't even agree on the meaning of " 'porting' a derivative" , with 'porting' specifically in quotes on the assumption that the OP's meaning included look-alike & work-alike versions built on the concepts of UNIX, not specifically the code

Chuck(G)
December 14th, 2011, 02:42 PM
Well, the original question has too much wiggle-room in it.

Perhaps we need a Turing test for Unix-ness. :)

commodorejohn
December 14th, 2011, 02:57 PM
Perhaps we need a Turing test for Unix-ness. :)
Submitted for your approval: "If your boot process contains shell scripts called from other shell scripts to a minimum nesting depth of five, it's Unix."
Alternatively, the criteria could be something about applications constructed out of other programs piped together.

carlsson
December 14th, 2011, 03:28 PM
Ok, let me rework ziloo's question by asking: "Which operating system on a Z80 computer would be easiest to learn and use for someone who really likes how UNIX works and ideally wants something that can be controlled by a similar set of commands and methods of operation?"

Of course it may depend a little on which Z80 based computer one is aiming at, and whether it should be a system one might've used 25-30 years ago or something that just happened to be released last month. I'm also making parallels to that discussion a couple of weeks ago about which operating systems are available today for both Commodore 64 and modern X86 PC's. In that case it was an user who would like the same or very similar user interface for both types of computers, in order to only learn one way of operation even though a multi-core, gigahertz boosted PC of today is capable of so much more and so much different things than a C64 can do. While I must admit having a bit of trouble understanding why one would want to run an ill supported OS on the C64 and an equally ill supported and greatly limiting system on your PC, the question still holds some legitimicity.

And yes, before we know it there will be someone who has set up their ZX-81 with a web server. Probably not a stock '81, but rather one with a turbo boosted Z80, additional RAM and storage options. As seen in other threads, there are people still developing upgrades and add-ons that at least to a small amount expands on this very simple platform, never really designed to be a workhorse.

mnbvcxz
December 14th, 2011, 04:50 PM
30 years ago, if you were thinking of running a UNIX-like operating system you would have the money to install "appropriate" hardware, which would have been an S100 system conforming to the ieee 696 standard, this standard allowed for one bus master and up to 16 slave processors, which could have been 6Mhz z80s or 8086s or a mix of processor types.
Each slave processor would have had its own on-board memory and 2 serial ports making it a complete single board computer, you would assign one or two tasks to each processor.
S100 systems could have a colour graphlcs board on the bus but most systems would have used monochrome alphanumeric terminals connected to the serial ports, it was also possible at the time to buy very expensive colour graphics terminals.
Such a system would also have used a hard drive or two for storage.
You could build such a system today using new or old cards, but it is cheaper to emulate the whole thing on a PC.

NobodyIsHere
December 15th, 2011, 03:41 AM
Hi, one of my hopes for the S100computers.com and N8VEM S-100 project is to get a Unix or Linux type OS running on the S-100 68K CPU board. Unix type OS generally need an MMU and one of the builders made exactly that for an early version of the S-100 68K CPU board. Currently the S-100 68K CPU board is in its third round of prototype board and not ready for build and test quite yet. However, it is fully IEEE-696 compatible and designed to work as a multi-processor.

In theory at least you could boot your S-100 system using the S-100 Z80 CPU board then switch over to S-100 68K & MMU board running a Unix/Linux type OS. This is not *exactly* what the OP is asking for but getting closer. Actually I suspect the recent S-100 8086 CPU board could run a ucLinux type OS which is even closer.

The key here is to get the S-100 68K CPU third prototype board out of dry dock and into the builders for build and test. That will be a while since the PCB is a mess after the revisions to support IEEE-696 TMI modes. :-( We'll see how this turns out.

Thanks and have a nice day!

Andrew Lynch

Chuck(G)
December 15th, 2011, 09:57 AM
I did some reading. Cromemco calls the Z80 Cromix "Unix-like" and Cromix Plus "Cromemco Unix". So at least they weren't shy about the relationship.

Cromix it is, then.

carlsson
December 15th, 2011, 10:11 AM
Would it at all be possible Cromemco bought some license from AT&T or in other ways made a deal that actually allowed them to market and sell a Unix inspired system without being compliant to the by-then specification?

Chuck(G)
December 15th, 2011, 10:31 AM
That's very likely. Until 1982, AT&T could not legally sell Unix for a profit, as it was a regulated monopoly, prohibited from engaging in business not associated with telecommunications. The 1982 consent decree's purpose was to allow AT&T to sell computers (that worked out well, didn't it?) in exchange for giving up their monopoly position. Up until then, AT&T stock was one of the soundest and most reliable investments one could make. Bell Labs in Murry Hill, NJ was where several groundbreaking technological advances in science and technology occurred. That's all gone now.

For example, in the late 70s and early 80s, if you wanted to use BSD, you had to obtain a Unix license from AT&T.

Bottom line is, after 1982, AT&T was no better at selling Unix than they were at selling computers. Very notable was their attempt at a per-seat license fee for Unix.

MikeS
December 15th, 2011, 11:33 AM
Would it at all be possible Cromemco bought some license from AT&T or in other ways made a deal that actually allowed them to market and sell a Unix inspired system without being compliant to the by-then specification?Quite possibly; that's exactly what they did with CP/M, although of course in that case there was no 'porting' involved.

They bought a licence from DR, added some system calls, made the UI a little friendlier, and called it CDOS:

"The Cromemco Disk Operating System (CDOS) is an original product designed and written in Z80 machine code by Cromemco Inc.... Cromemco is licensed by Digital Research, the originator of CP/M, for use of the CP/M data structures and user interface..."

That meant that you could run CP/M programs in CDOS (and Cromix) but you couldn't necessarily run CDOS programs (if you could find any ;-) )in CP/M. Unfortunately, whether due to licence restrictions or whatever, Cromemco did not keep up with CP/M revisions so programs that took advantage of the features of CP/M 2.2 and later needed third-party software to run in Cromix.

Since Cromix copied the UNIX concepts (and names) of inodes, pipes, root/group/user privileges etc. (before 1982), I would think that there was also some sort of arrangement with AT&T at the time

tezza
December 15th, 2011, 04:02 PM
How Unix-like is Xenix? I have this for my Lisa 2. I must play around with it sometime.

Tez

Chuck(G)
December 15th, 2011, 04:24 PM
How Unix-like is Xenix? I have this for my Lisa 2. I must play around with it sometime

Very; more so than Linux.

Pepinno
January 17th, 2012, 03:34 PM
How Unix-like is Xenix? I have this for my Lisa 2. I must play around with it sometime.

Xenix is not only "unix-like", but also it is "unix-descendant".

I think Xenix for the Apple Lisa is derived from UNIX System III. Quite primitive and limited (by today's standards), but a real true UNIX nonetheless.

Mario Blunk
February 9th, 2012, 02:54 AM
Hi friends out there !

Is anyone willing to implement any kind of UNIX / UCLINUX or other ..IX on this Z80 machine: http://www.train-z.de/train-z/index.html

From your discussion I'm reasoning that it is possible. Since I'm a better hardware guy than a programmer I'd be glad if someone gets challenged by this idea :-)

cheers Mario

Terry Yager
February 9th, 2012, 02:46 PM
Very; more so than Linux.

I'd even go so far as say, even more so than some 'brand-name' unices.

--T

Terry Yager
February 9th, 2012, 02:52 PM
I'm beginning to wonder if the op was, in fact, a very subtle troll (genius, z!). If I had a nickle for every flame-war I've started in usenet with such 'simple' questions...some of which might be found to still smolder to this day (if I were interested enough to look).

--T

Chuck(G)
February 9th, 2012, 03:24 PM
I don't know. But as to the original question, if you've got a Z80 with 64K and a timer interrupt, you can probably run UZI (http://www.dougbraun.com/uzi/uzi.zip), which is a real implementation of a honest to gosh Unix V5.

Mario Blunk
February 16th, 2012, 08:44 AM
thanks for the link. That seems the right direction. I'll send the machine to the one who gives it a try :-)
cheers from Germany

isse
February 16th, 2012, 08:55 AM
I don't know. But as to the original question, if you've got a Z80 with 64K and a timer interrupt, you can probably run UZI (http://www.dougbraun.com/uzi/uzi.zip), which is a real implementation of a honest to gosh Unix V5.

Hello Chuck(G) and thanks for the UZI info. It may be a good start to try and port something like that(when I have some spare time) on one of my Z80 machines as I already own a Willem programmer.

MSXManiac
December 19th, 2012, 02:12 PM
Uzix 1 Technical information
Written by Adriano C. R. da Cunha


How it works:

UZIX uses MSX2 memory mapper to achieve multiprocessing. On PC UZIX use additional PC memory for swapping. In both cases UZIX use 64K of virtual address space (full Z80 space or one full segment on PC).
UZIX itself occupies the upper 32K of address space, and the currently running process occupies the lower 32K.
UZIX does need some additional hardware support. First, UZIX uses system clock that provide a periodic interrupt. Also, the current implementation uses an additional real-time clock to get the time for file timestamps, etc. The current TTY driver assumes an polling-driven buffered keyboard, which should exist on most systems.

How UZIX is different than real UNIX:

UZIX implements almost all of the 7th Edition AT&T UNIX functionality. All file I/O, directories, mountable file systems, user and group IDs, pipes, and applicable device I/O are supported. Process control (fork(), execve(), signal(), kill(), pause(), alarm(), and wait()) are fully supported. The number of processes is limited only by the swap space available, with a maximum of 31 processes (total of 1024k memory). As mentioned, UZIX implements UNIX well enough to run the Bourne Shell in its full functionality. The only changes made to the shell's source code were to satisfy the limitations of the C compiler.

Here is a (possibly incomplete) list of missing features and limitations:

* The debugger- and profiler-related system calls do not exist.
* The supplied TTY driver is bare-bones. It supports only one port.
* Inode numbers are only 16-bit, so filesystems are 32MB or less.
* File dates are not in the standard format. Instead they look like those used by MS-DOS.
* The 4.2BSD execve() was implemented. Additional flavors of exec() are supported by the library.
* The necessary semaphores and locking mechanisms to implement reentrant disk I/O are not there. This would make it harder to implement interrupt-driven disk I/O without busy-waiting.


from http://msxland.blogspot.com/2010/03/uzix-1-technical-information.html

MSXManiac
December 19th, 2012, 02:17 PM
http://uzix.sourceforge.net/uzix2.0/index.php?page=tech&lang=us


http://uzix.sourceforge.net/uzix2.0/index.php?page=scrsht&lang=us

1944GPW
December 19th, 2012, 04:55 PM
I recall when this was discussed here before, someone mentioned UZI (Unix Z80 Implementation) which is a real albeit tiny Unix. More about it here, including the source http://www.dougbraun.com/uzi.html
Personally I'd love to get LSX or Mini Unix running on my 11/05 someday :)

Steve.

EDIT: OOps never mind, posted to the beginning of this thread from the 'Whats New' stream, when this _was_ the thread that discussed UZI. ...Brain FAIL today ;)

Chuck(G)
December 19th, 2012, 05:09 PM
EDIT: OOps never mind, posted to the beginning of this thread from the 'Whats New' stream, when this _was_ the thread that discussed UZI. ...Brain FAIL today ;)

It's okay--I was wondering the other day if anyone was actually running UZI now. Part of the problem is that nowadays, the emphasis is more on applications availability than OS.

richard mullins
February 24th, 2017, 01:58 AM
I only discovered the other day that the disk access routines Apple II relied on the fact that interrupts were not being used (except for the clock which by default interrupts at about 50Hz, though clocks interrupting at 1KHz also worked fine on the Apple II). I don't know if this is true or not.

It would have been a holy grail to have multi-tasking running on an Apple II in say 1981. We would not have needed to use the disk, except from time to time, so we could have lived with the restriction of the disk routines not being interrupted (except for the clock).

However there is little incentive to put in the work to do this. (The first Apple Mac has multitasking, but not pre-emptive multitasking, according to something I read recently). It may have been more cost effective to wait for someone else to do this. The cheapest way to get multi-tasking on an Apple II on 1981 might have been to buy a plug-in card for CP/M, for which no doubt software offering multitasking could be obtained.

I had an interview for a very junior position at National Acoustic labs in Sydney in 1983. The nutbag interviewer wanted me to port a 32-bit version of unix to a 16 bit machine. He had previously claimed, in a letter written in 1981, that Mary O'Kane (now Chief Scientist, and at that time a Ph.D in computing) was available to do this work.

Richard Mullins