update the read me text

This commit is contained in:
Kelvin Sherlock 2012-05-12 20:29:32 -04:00
parent 39fbb1a191
commit 2694424e3d
2 changed files with 77 additions and 37 deletions

77
README.text Normal file
View File

@ -0,0 +1,77 @@
MariGNOtti
MariGNOtti is a network driver for GNO/ME 2.0.6. It provides a translation layer between BSD sockets and Marinetti. Think of it as a replacement for GSTCP.
Installation:
-------------
1. copy the marignotti, ftp, sic, and whois executables to your /usr/local/bin directory.
ftp is an update of the gno 2.0.6 ftp (it adds passive ftp support).
whois is an updated version (from FreeBSD 9.0). The gno 2.0.6 version is from FreeBSD 2.1.
sic is a very simple irc client.
example:
sic -h irc.a2central.com -p 6667 -n myname
(a bunch of messages)
:j #a2c.chat << join a room
2. copy the services file to /etc/services (if it does not exist).
3. edit and copy the resolve.conf file to /etc/resolve.conf (if it does not exist). This file is your DNS server
4. If you don't have a DNS server, edit /etc/hosts to include your favorite sites.
Usage:
------
Run marignotti in the background (marignotti &). To quit, bring it to the foreground (fg) and hit control-C.
If you're using the Sweet-16 emulator and started Sweet 16 from the terminal (/Applications/Sweet16.app/Contents/MacOS/Sweet16), marignotti -d will print some debugging information to the console. marignotti -dd will enable extra debugging information (including the contents of reads and writes).
What it does:
-------------
While marignotti is running in the background, it translates BSD socket calls into Marinetti tool calls. It also handles blocking IO, socket options, select, etc.
Architecture:
-------------
BSD sockets are, by default, blocking whereas everything Marinetti does (other than the inital network connection) is non-blocking. To handle blocking behavior, each socket has a semaphore. The main thread performs all the polling and uses the semaphore to signal the other threads when they can proceed.
Supported:
----------
socket -- only support for PF_UNIX, SOCK_STREAM, and SOCK_DGRAM.
connect -- but non-blocking connects are not yet supported.
bind -- currently a no-op since the old whois(1) used it.
read/recv/recvfrom -- supports blocking, non-blocking, timeouts, and RCVLOWAT. The address parameter of recvfrom is not supported. OOB is not supported.
write/send/sendto -- does not support SNDLOWAT, OOB, or the address parameter of sendto.
close -- does not support SOLINGER type functionality.
shutdown -- sets flags but the flags are not completely implemented.
ioctl(2) -- support for FIONREAD (bytes available to read) and FIONBIO (set/clear non-blocking).
getsockopt(2) -- support for SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO, SO_RCVTIMEO. SNDLOWAT and SNDTIMEO set flags but don't have any other effect. OOBINLINE will only be supported when true.
getsockopt(2) -- support for SO_TYPE, SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO
Not (yet) supported:
--------------------
- OOB (out of band) data (and will never be supported).
- raw sockets (SOCK_RAW)
- TCP servers (listen/accept). Should be simple, though.
- UDP servers

View File

@ -1,37 +0,0 @@
MariGNOtti
MariGNOtti is a network driver for GNO/ME 2.0.6. It provides a translation layer between BSD sockets and Marinetti.
Architecture:
BSD sockets are, by default, blocking whereas everything Marinetti does (other than the inital network connection) is non-blocking. To handle blocking behavior, each socket has a semaphore. The main thread performs all the polling and signals the other threads when they can proceed.
Supported:
socket(2) -- but only for PF_UNIX, SOCK_STREAM, TCP.
connect(2) -- but non-blocking connects are not yet supported.
bind(2) -- currently a no-op since the old whois(1) used it.
read(2) -- supports blocking, non-blocking, timeouts, and RCVLOWAT.
write(2) -- currently no SNDLOWAT type functionality.
close(2) -- currently no SOLINGER type functionality.
shutdown(2) -- set flags but the flags have no effect.
ioctl(2) -- support for FIONREAD (bytes available to read) and FIONBIO (set/clear non-blocking).
getsockopt(2) -- support for SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO, SO_RCVTIMEO. SNDLOWAT and SNDTIMEO set flags but don't have any other effect. OOBINLINE will only be supported when true.
getsockopt(2) -- support for SO_TYPE, SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO
send(2)/sendto(2) -- flags and address are ignored (ie, same as write(2))
recv(2)/redcvfrom(2) -- flags and address are ignored. (ie, same as read(2))
Since UDP is not supported, you'll want to put some values in your /etc/hosts file. You'll also need to create an /etc/services file.
whois works.
ftp does not yet work.