Network Operating System for a Linux-Like File Server

ipSpace.net » Early Networking History » Network Operating System for a Linux-Like File Server

The lab I joined during my studies at the University of Ljubljana ran an interesting project for a local IT manufacturer: they developed a Z80-based computer and wrote a clone of the CP/M operating system. They knew I developed a LAN solution a few years earlier, and pulled me in when their customer wanted to add LAN functionality to their CP/M clone.

Ethernet chips were way too expensive in those days, but someone (Intel?) had a chipset that worked with 8-bit microprocessors and offered 2 Mbps (or so) on coax cables. We developed our own NICs using that chipset, got a 10MB hard drive, and were thus ready to build our file server.

Based on the instabilities I experienced when trying to persuade CP/M to work in multi-user environment we decided to use a central file server instead of peer-to-peer networking, and it made perfect sense (or not) to write an operating system from scratch.

The networking concepts were the same; we’d redirect file system calls to the server (similar to what NFS or SMB/CIFS do these days, but much simpler). However, we decided to build the file server operating system, file system, and user management (including file protection) from scratch based on concepts we gleaned from early Unix implementations.

It might have been possible to use Xenix or Minix, but Unix-like operating systems were written in C even in those days, resulting in bloated code (as compared to our hand-crafted assembly language code).

As we started from scratch, I could replace the flat file system used by CP/M with a modern hierarchical file system, but you couldn’t use it directly from the CP/M clients as its operating system (and all software written for CP/M) didn’t support subdirectories. Yet again, we solved the problem using logical disks: you’d map a directory to a logical disk to access it from any CP/M program. A friend of mine wrote Unix-like file-handling utilities (ls, cwd, pwd, mkdir, rmdir…) in Turbo Pascal and we were good to go.

Yes, it worked. No, it never took off. I don’t think we ever got to a production deployment.

You can't leave comments on this web site, but you can add them to this blog post.