Changes in NetMount client version 1.5.0 -> 1.6.0
Features
-
Support hexadecimal numbers in arguments
NetMount still accepts numbers in decimal by default, but if a number in an argument starts
with"0x"
or"0X"
, it is now interpreted as a hexadecimal number. -
Read-ahead buffering for file reads
By default, it uses a 64-byte buffer and, when reading files, requests at least 64 bytes
from the server to fill this buffer - assuming that subsequent reads will be sequential and
can be served directly from it. This change results in up to 64x faster reads when
the application reads 1 byte at a time, and 16x faster for 4-byte blocks. Read-ahead buffering
also reduces the load on the network and the NetMount server. Serving a single 64-byte read is
much less demanding than handling 16 separate 4-byte requests, or 64 one-byte requests.The size of the read-ahead buffer is configurable using the
/MIN_READ_LEN:<length>
argument.
The<length>
value may be one of the following:0
,1
,2
,4
,8
,16
,32
, or64
.
Setting it to0
disables read-ahead buffering entirely.
If the/MIN_READ_LEN:<length>
argument is not provided, the default value of64
is used.
This setting is independent for each mounted drive. However, internally, the NetMount client uses
a single shared 64-byte read-ahead buffer for all mounted drives, and the setting determines
how many bytes from the beginning of the buffer are used by each drive.Read-ahead buffering is applied only when the read request is smaller than the configured buffer
size. Larger reads bypass the buffer.
Other
-
Optimize memory usage
Release environment from memory, and do it during the INSTALL phase
-
Extend validation of arguments
-
Add 8086/80286 targets to Makefile and disassembly
-
Add documentation section on sharing a network interface with other applications
Changes in NetMount server version 1.5.0 -> 1.6.0
Features
-
Improve server file names conversion to DOS 8.3 format
Previously, invalid characters in filenames were removed.
The updated logic now attempts to transliterate Unicode characters to ASCII.
It removes combining characters (accents, diacritics, etc.) and replaces
non-ASCII characters with their ASCII equivalents.By default, the transliteration mapping table is loaded from the file
"netmount-u2a.map", but the path can be changed using the--translit_map_path=<PATH>
argument.
Setting<PATH>
to an empty string disables the use of the mapping table.The mapping table is user-extensible and can be customized easily.
If a Unicode character is not found in the mapping table, it is replaced by an underscore '_'.Examples:
original name old conversion new but missing map file new conversion data.tar.gz
DATATA~1.GZ
DATA_TAR.GZ
DATA_TAR.GZ
NašePísně.doc
NAEPSN~1.DOC
NA_EP_~1.DOC
NASEPI~1.DOC
píseň.txt
PSE~1.TXT
P_SE_.TXT
PISEN.TXT
история.txt
~1.TXT
_______.TXT
ISTORIJA.TXT
Added NInstall
DOS utility
The "ninstall" utility installs the DOS TSR NetMount driver using parameters specified
in a configuration file. Specifically, it launches "NETMOUNT INSTALL" in the current working
directory and passes the supported parameters from the file as command-line arguments.
The user may also provide additional arguments.
The configuration file must contains lines in the format "<key> <value>"
.
Supported keys are: "IPADDR"
, "NETMASK"
, "GATEWAY"
, "PACKETINT"
, and "MTU"
.
The file must include the "IPADDR"
key; all other keys are optional.
All other lines are ignored.
This format was chosen to be compatible with the configuration file used by the mTCP project.
For example, a file generated by the mTCP DHCP client can be used directly.
Binaries
The release includes the complete NetMount source code (server, DOS client, and the NInstall DOS utility), as well as:
- 2 builds of the DOS client: for 8086 and 80286 CPUs
- 2 statically linked builds of the server for Windows: for i686 and x86_64 (cross-compiled using MinGW on Linux, tested using Wine on Linux, and on Windows XP SP3)
- 4 statically linked builds of the server for Linux: i686, x86_64, ARM aarch64 big endian, ARM aarch64 little endian
- 1 build of the DOS utility NInstall for the 8086 CPU
- the "netmount-u2a.map" file with the transliteration table
For transliteration of Unicode characters in filenames to ASCII, the file netmount-u2a.map
with the transliteration table must be placed next to the server binary.
If this file is missing, non-ASCII characters will be replaced with underscores (_
).
Previously, DOS binaries were built under Wine using the Windows version of Open Watcom v2.
They are now built using the Linux version of Open Watcom v2.