DoctorWkt / Nine-E

A Unix-like environment on an 8-bit 6809 single-board computer
BSD 3-Clause "New" or "Revised" License
7 stars 0 forks source link

Welcome to the Nine-E project. The aim here is to create a Unix-like environment on an 8-bit computer.

On the hardware side, there is:

On the software side:

There is no MMU and no clock device, so there isn't any multitasking (i.e. no fork(), exec(), time(). Apart from that, what is able to work is pretty impressive.

Status -- mid-August 2023

The hardware is rock solid. I've got the xv6 filesystem in ROM and working well. I've got some of the Fuzix libc running including the mem/string functions, the stdio functions, and malloc/brk/sbrk. The rest of the libc is untested.

There are some basic programs taken from xv6, Fuzix and Minix 1.5. There is also a simple vi-like editor, a simple less-like pager, and a document processor called roff. So, with the current system, you can edit documents, process them and see the output.

There is a simple shell that knows about * and ? expansion, pipelines, and file redirection such as >, <, >> and 2>. It also has simple "readline" functionality with "tab" filename completion.

Quick Start

There should be a copy of the USB key, fs.img, already here. And, in the XV6FS dfirectory, a copy of the ROM image xv6rom. Go into the Salmi directory and do a make to make the Nine-E simulator. Now run the VROMXV6 script to start the simulator with the ROM and the filesystem:

$ ./VROMXV6 
$ ls -l
-rwxrwxrwx     1 root root    129 README
drwxrwxrwx     2 root root    464 bin
-rwxrwxrwx     1 root root   6071 roff_manual

$ head roff_manual | wc
10 21 111

$ cd bin
$ ls -l
-rwxrwxrwx     1 root root   3494 basename
-rwxrwxrwx     1 root root   5277 cal
-rwxrwxrwx     1 root root   1798 cat
-rwxrwxrwx     1 root root   5285 cksum
-rwxrwxrwx     1 root root   4537 cmp
-rwxrwxrwx     1 root root   4305 comm
-rwxrwxrwx     1 root root   6486 crc
-rwxrwxrwx     1 root root   7676 cut
-rwxrwxrwx     1 root root   1168 echo
-rwxrwxrwx     1 root root   6341 expand
-rwxrwxrwx     1 root root   8747 grep
-rwxrwxrwx     1 root root   7052 less
-rwxrwxrwx     1 root root   1630 ln
-rwxrwxrwx     1 root root   8165 ls
-rwxrwxrwx     1 root root   1653 mkdir
-rwxrwxrwx     1 root root   6479 od
-rwxrwxrwx     1 root root   2327 oldgrep
-rwxrwxrwx     1 root root   2488 oldls
-rwxrwxrwx     1 root root   3001 pwd
-rwxrwxrwx     1 root root   1647 rm
-rwxrwxrwx     1 root root   6594 roff
-rwxrwxrwx     1 root root   5626 sh
-rwxrwxrwx     1 root root   3178 try
-rwxrwxrwx     1 root root  10951 usertests
-rwxrwxrwx     1 root root  24626 vi
-rwxrwxrwx     1 root root   1930 wc

TODO