TermOS is a lightweight operating system for terminals, used primarily for the Research Department's network.
Terminals act as interfaces to networked servers and devices. Once connected to a server, all commands are sent from your terminal to the server, where they are actually run.
Servers you can connect to include the Research Department's Mainframe and the Centcom Communications Array.
Every device on the network is connected to through a data terminal directly below it. These transmit data through the station's power lines.
Devices have a net_id, which is their address on the network (an 8 digit string); and a type, which describes their function.
- P: -TYPE: PNET_MAINFRAME This is the Research Mainframe at address 02002776
To operate any networked device you will have to ping, then connect to it.
- 1 Connecting
- 2 The Network
- 3 Printing Files
- 4 GuardBuddies
- 5 Radio
- 6 Troubleshooting
- 7 Tapping the Wire
- 8 Scripting
- 9 Tech Support
- 10 Bridge Comm. Console
- 11 Supplementary Video
- The most important command. Displays all available commands and their usage.
- Pings the network and displays a list of all connected devices and their net_id. (Devices which are disconnected will not display. None will display if YOU are disconnected.)
- connect net_id
- net_ids are 8 digits. For example, connect 02002ceb will have the terminal connect to the device. More commands will be available once connected and logged into a device.
- Logs you into the terminal. Your ID must be inside the terminal to log in. With your ID in your active hand, click the ----- below the screen to insert your ID.
- This will disconnect your terminal from the server you are currently connected to.
DWAINE is the operating system of Research Mainframes. Scientists use it to run their research programs. Research Directors program guardbuddies on DWAINE.
DWAINE is a networked OS. The Mainframe runs the OS and programs, and acts as a bridge between terminals and devices.
Devices - data banks, printers, robuddy docks, radios - are connected to the Mainframe through the network.
Finally, terminals act like a keyboard and monitor, they display program interfaces and transmit commands to the Mainframe.
Log into a terminal by inserting your ID card and typing term_login. When you login at a terminal your home directory is created on the Mainframe's storage. This folder is only accessible to you and superusers. It will generally be preserved between logins, provided you only login to one terminal at a time.
There are two access levels on DWAINE: regular users only have write access to their home folder, and read access to data banks. They can however directly send commands to peripherals.
Super users status requires logging in with a head id; they can read and write to any folder on the system, including other users' private homes, and write/delete files on data-banks.
DWAINE runs on the Mainframe in the Computer Core. OS files and user homes are stored on a removable electronic board.
Program files are stored on magnetic tapes plugged into one of several data-banks. Available data-banks are listed in the directory /mnt. Important banks are:
- Control: currently holds copies of the guardbuddy control files and scripts. It is located in the Computer Core. It takes the mountpoint /mnt/control.
- Artlab: is the databank in Artifact Research. By default, it contains artifact research software. It takes the mountpoint /mnt/artlab
Databanks can be accessed in the same way as any other folder in the operating system, with the caveat that any file I/O will have a minor delay that could interfere with scripting. It is a good idea to double check any file transfers to them, in case the tape has been write-protected or removed.
To interface with peripherals the Mainframe uses a series of device drivers and mountpoints. All drivers are on the Mainframe by default.
Peripherals include databanks, printers, guardbuddies and their radio. Many of these feature some manner of interface with the file system in the form of a mountpoint in the directory /mnt. Mountpoints are like folders, their contents can be listed, and files can be copied to them
For a list of currently connected peripherals, scan the contents of /mnt with the command ls /mnt.
Peripheral can contain files, receive commands, or both.
The in-system help file is currently a work in progress, but may be accessed by the command help.
- ls: and an optional argument specifying the filepath. If no filepath is supplied, it will list the contents of the current working directory.
- cd "filepath" changes the current working directory. If the filepath is not prefixed with a forward slash, it will be taken as relative to the current directory. For example, "cd /" would set the working directory to root, and then a subsequent "cd mnt/artlab" would have the same effective result as "cd /mnt/artlab"
- rm [-r/i/f] "filepath" removes a target file or directory. The user must have appropriate access to the target file. There are three possible command switches, which may be combined (e.g. -r, -rf, and -if would all be valid). r, recursive, is necessary for the deletion of directories. i instructs the system to confirm before deletion with a simple yes/no dialog, and f suppresses response messages (And overrides i).
- cp "filepath to copy" "destination filepath" will make a copy of the file at the first filepath and place it in the destination. If the destination is a directory, the copy will try to maintain the name of the original.
- mv "filepath to move" "destination filepath" functions in much the same way as cp, with the exception that the original file will be removed following the copy operation.
- chmod "new permission value" "target filepath" will change the access permission of a target file. The permission value takes the form of three octal digits, going (from left to right) owner access, group access, and other access. Each can be thought of as three-bit binary values, bit 1 (the least significant) controlling modify access, bit 2 controlling write access, and bit 3 controlling read access. For example, the value "777" would be 111 111 111 in binary, and thus would be all access.
- cat "filepath" [additional filepaths...] will print the contents of the document(s) at the specified filepath(s)
- echo [text...] will print provided text to the current output stream. By default, this is the user's terminal. This may also be piped into a record file by use of ^. For example: "echo Hello, World! ^ ./file" will create a file named "file" in your current directory (Assuming you have write access) containing the the text "Hello, World" "|n" may be used to establish newlines.
- su is used to assume superuser status. After executing su, insert an authorized (station heads) ID card and follow on-screen instructions.
- who will list the usernames and network IDs of other current users on the system.
- talk "username or network ID" "message" will send a message to another user on the system.
- mesg [y/n] Will allow/disallow receiving messages from other users, or, if invoked without arguments, will show the current acceptance status.
- logout or logoff will do exactly what you would expect.
Any valid document copied to the mountpoint of a printer will be printed. The printer mountpoints are in /mnt, and are generally prefixed with "lp-". cp filename /mnt/lp-artlab, will order the printer in Artifacts Lab to print the contents of filename.
Using the DWAINE terminals, you can assign Guardbuddies to various jobs. To start playing with your buddies, follow these instructions. Italicized words are commands you input into the computer:
- Insert your ID card into the terminal
- Eject your ID card
- cd /mnt/control
- prman list
You are now in the folder with the GuardBuddy controls, and you have big boss access so they actually listen to you. The list you see before you will show all the buddy docking station network IDs and the equipped weapon of the buddy docked in them.
Assign a buddy to guard
- guard_script (network ID) (name without spaces)
The computer should respond Transmitting wake command. The buddy should be active, with a small face on its viewscreen. When it gets close enough to see whomever they are guarding, they will point at that person and announce they are under guard. If the guard target does not have access to the Guardbuddy bay, you might need to drag it out to meet its ward. Don't always think a guard is a good thing, though...many flavors of Guardbuddies are capable of friendly fire, and that can leave you vulnerable to antagonists - perhaps even the devious RD who assigned the buddy in the first place!
Assign a buddy to patrol
- patrol_script (network ID)
The computer should respond Transmitting wake command. The Guardbuddy will wake up and behave much like a Securitron, roaming the halls and arresting people doing bad things. This is a good thing to fall back on if you don't have something better for the buddy to do, but don't want it idle.
Assigning a buddy to purge
- prman upload (network ID) purge
- prman wake (network ID)
This one doesn't have a fancy control script with it because you really, really should not be uploading this command unless you are a traitor or everything has completely gone to hell. When under these orders, the Guardbuddies figure 'if it ain't a Head, it's dead.' They will roam station and arrest anyone not showing a Head ID, causing mass havoc. Laser blasts from an energy gun will also stun a buddy and make it a sitting duck to repeated blasts.
Recall the buddies
- prman recall (buddy network ID or network ID of its last dock) OR
- prman recall all
This will order the buddies back to their charging bays and cancel all standing orders. This is useful if a traitor got into your controls and corrupted the buddies. Be aware that the mainframe radio has a limited range, and may not be able to recall guardbuddies too far away from the Research Sector.
Note: network ID, when used by itself, refers to the network ID of the buddy docking station, and not the network ID of the buddy itself (the buddy cannot directly interface with DWAINE, as the latter is a wired network). The only time the buddy's network ID may be used in a command is when it is being recalled.
If connected, the radio interface module (Used primarily by the Guardbuddy software to recall them) will appear at /mnt/radio. This can be used to transmit packets simply by writing a record file to a subdirectory named after the frequency to transmit on, each line being interpreted as a separate key in the radio packet.
For example, "echo command=dostuff|naddress_1=020000FF ^ /mnt/radio/1211/test" would cause the radio to transmit a packet on frequency 121.1 with two entries, "command" equal to "dostuff" and a target address equal to 020000FF.
When a terminal become unable to connect to the network some elements may be damaged.
As the network is wired, a severed cable is the most frequent problem, and requires to track the missing section in the cables between the devices you are communicating with.
Every device is connected to the wires through a data terminal. Data terminals are directly under the device, hidden by the floor tile. Network cables run between terminals to connect devices.
When a data terminal is destroyed, if the device is still functioning, it will be unable to connect to the network.
- Blinking terminal screen
- The glass is cracked. Take it off with screwdriver, then crowbar. Replace the glass.
- Terminal unable to ping
- Wires might be severed at some point. Search for the damaged cable section and replace it.
- A data terminal might have been destroyed by an explosion. Dismantle your terminal and move it onto another data terminal. Or ask the Mechanics to scan one and make you a replacement.
- Programs stop responding. But the terminal is able to ping other devices
- The mainframe may be damaged. Use the restore kit in the Research Director's office. It comes with instructions
- Data Banks cannot be accessed and do not appear in /mnt.
- Banks are directly connected to the Mainframe, the cable between them may be damaged. Look for the missing section. Or a missing terminal port.
Tapping the Wire
Communications between terminals and devices run on the wire; commands are sent as plain-text messages that can be eavesdropped with the proper equipment. If you want to understand how to hack the Mainframe, you should spend a round or two reading network traffic.
The Mainframe on the station is not unique. Another mainframe is at an high-tech location away from the station. This is ideal to practice on, if you don't want an angry scientists to blow you up for breaking their work.
It is possible to automate function with the use of script files. These are text files with a special prefix that marks them as executable.
A sample script to display a few words on screen.
#! echo Hello World.
To create this script you must enter the following text.
echo #!|necho Hello World ^./myscript
"#!" is at the start of every script, to tell the system the file is executable.
"|n" breaks lines in the script, one line for every command (the vertical bar is made by holding alt and pressing 124).
"^" marks the path to the file where the script is to be saved (in this case a file named myscript in the current folder).
The tape in /mnt/control has some scripts which you can study to understand how more complex scripts can be layed out.
To read existing scripts, type cat filename to have the script printed on screen.
our Help Line is currently unavailable as conversion to automated Buddy Troubleshooters is in progress.
If you are interested in financially sponsoring the Thinktronic. LTD.robuddy basketball team, please contact Stephen H. Toczylowski.
Bridge Comm. Console
There is one communication console on station. It is on the Bridge, and it is used to connect to Centcom's communication array to download often flawed intel on potential traitors or revolutions, or other messages from Centcom.
Instructions are available on a nearby slip of paper.
- Initially two commands will be available.
- list: This prints a list of all the Centcom messages available to download and their messages IDs
- download: Download (message ID)
When a file is downloaded it can be printed with the file_print command. Simply examine the paper to read the message.