What the hell is LUnix ???? =========================== I staret writing LUnix in 1994, the system core is a minimal implementation of a multitasker. Like A. Einstein said "Make is as simple as possible, but not simpler" I'd say LUnix is tending to be a little bit too simple :) - LUnix is a operating system for C64 (no hardware expansions required) (Like UNIX, well don't expect too much :) - LUnix provides real multitasking so there can be more than one process at a time. - Using the termial-server "term9600" you can connect a terminal (RS232) to your C64. And have a second user of your C64 at the same time. - Dynamic memory management - A small kernal but multipurpose (well i hope so :) How to start LUnix : ==================== Get the archivefile "lunix01p3" into your C64 and run it. Its a self extracting archive, is started like a normal basic programm and will save all the lunix-files on device 8 of your C64 (e.g. your 1541-floppy). After all the files have been extracted you can start LUnix by using the boot(-BASIC)-programm called "loader". Files comming with LUnix: ========================= loader o A BASIC programm that loads and starts LUnix. lunix.sys o The LUnix system core. bootdrv.drv o The bootdriver that the system will use to load the first command shell. init.exe o The screen manager (console) sh0.exe - The command shell. a1541 - Replaces the normal disc-driver by a IRQ-loader. You must enable this driver before accessing the RS232. ("term9600" uses the RS232). cat * cat Prints a file to stdout. cd * cd Changes the working directory. count - Counts up from <000> to <255> and put the numbers to stdout. Just to makes some noise :) disk * Prints the disk-status information to stdout. echo * echo Prints text to stdout. hexconv - Converts decimal numbers from stdin to hex-numbers (stdout). Usable as a filter. E.g. "ps ! hexconv" A "!" separates two (or more) commands so that the output of the first command will be used as input of the second command. kill - kill Kills a process. (PID=Process IDentification) You can get the PIDs by using the "ps"-command. ls * ls [-l] Prints the disk-directory to stdout. man - Prints a very little manual to stdout. mem - Prints a little statistic about the system-memory memfree - Shows the amount of free memory in the right corner of the screen. You should start it this way: "memfree &" The "&" at the and of a line means that the command will run in the background and the shell won't wait till the execution is completed. mirror - It will mirror lines from stdin and put them (mirrored) to the stdout. (should only be used in combination with "!"). more * Pass stdin to stdout, asks for a key after printing 11 lines. net.drv - net.drv Enables access to a local C64/128 network. (NID=Network IDentification of the local computer). netstat - Prints statistics about the C64/128 network. prim - prim , Prints n prime numbers beginning with a. ps - ps [-la] Prints a report about (-a -> "all") processes in the system -l will make 'ps' do this in a more detailed way. reboot * Causes a RESET of the computer. renice * renice [[,]] Prints/changes the priority of a process. rm * rm Removes (deletes) a file. rsh - rsh Calls for a shell on an other computer (NID) in the C64/128-net. rshserv - rshserv [-v] & Shellserver, serves shells to other computers in the C64/128- net. (Up to 4 at a time) tee * tee Writes stdin to a file. term9600 - term9600 [-v] & Terminalserver, serves shells to a terminal connected to the RS232. (uses a special userport-RS232-interface 9600Baud 8N1) Never forget to start "a1541" before starting the terminal- server !!! top - Examines the system and print a sorted list of processes and their use of CPU time. SPACE will restart the examination, any other key ends top. wc - Counts chars,words and line from stdin and prints a report to stdout. write - write [-q] Writes a massage to an other shell (PID of that shell has to be specified). CTRL+D ends write. o = file can't be used as a LUnix command. - = commands written by the author himself. * = commands written by Paul Gardner from australia. The command shell: ================== will load and execute a command, wait till its done. ! { ! } load all and execute them parallel, passing stdout of the first to stdin of the second command and so on, wait till the last command is done. ... & A "&" at the end of a command line lets the shell go on without waiting till the command line is done. exit or CTRL+d Ends a shell. ( CTRL+d is the EOF=end of file charakter it ends also wc,write,hexconv,..) The LUnix-net-driver : ====================== The net-driver lets you connect up to 6 C64/128 all running LUnix. Its a packet orientated net so there can by several virtual connections between all stations at the same time. The only service that is implemented is a shell-serving process, it allows remote shells (up to 4 per computer). What do i need to run this net-driver ? - You should have at least one C64/128 (but you'll have much more fun, if there are more of them) - You need at least LUnix_v0.1p2 . and the following files : "net.drv","rshserv","rsh","netstat" you can get all of them (and even more) by anonymous ftp... 131.188.190.131 /pub/c64/LUnix/... - And you need a suitable cable ! (if you use more than 1 C64 :) You have to connect (at least) GND,PB0,PB1,PB2,PB3,PB6 (all from the C64's userport) of all C64, the software enables up to 6 C64 in the net. *** if you have only one discdrive you'll need a switch to connect/ disconnect one of the pins to ground (eg. PB0). Use a little resistor (about 470-1000 Ohms) to connect the certain pin to ground. If the connection is swiched 'ON' all the communication in the net is disabled. How to start it : - First unplug all the computers and discdrives/monitors... - Then connect the userport-pins (you should try to connect the GND-pin first) *** only one discdriver: connect the GND to the discdrive (!),to prevent damage when connecting/disconnecting it to one computer after the other later. - Now shitch them all on - Load and start LUnix, press 'add a session' ,type 'net.drv X' X is the ID of the certain computer.The ID is a number from 1..6 (don't use the same ID twice !) Then enable logins from other computers to this computer by starting the remote-shell-server process by typing 'rshserv -v &' (-v is not neccessary). <-do this with every computer you have connected . Thats it ! The net is now active. You can use the net to execute shells on other (or the local) computer. just type 'rsh X' (X- is the ID of the destination computer) and you should get a 'remote shell' from that computer to work with :) The actual 'rshserv' process enables up to 4 remote-logins at a time (it doesn't matter from what computer you are calling) Type 'exit' to logout again. *** only one discdrive: You can use one of the computer to work as server (this will be the only computer with a discdriver later) You just have to start 'rsh's on the other computer in direction to the server. But how to do that if there is only on discdriver available ? Thats what the mentioned shitch is for ! Switch 'ON' (and block all net actions), then connect the discdrive to one of the other computers and type 'rsh Y' (Y is the servers ID) connect the drive to the next computer...and so on...then connect the discdrive to the 'server' and switch 'OFF' !...... If you have questions...or something else, please let me know ! = Daniel Dallmann