Low Level Implementation Information
Native Pick Systems
Native Pick hosts are server systems running Pick as an operating system.
These system execute stand-alone, usually on Intel x86 processor based
PCs.
PicLan-IP currently supports four different native Pick systems:
-
AP/Pro
-
Mentor PRO
-
Pick/64+
-
Sequoia PRO
All of these systems are 32-bit flat-model x86 systems supporting 190+
users, many megabytes of main memory, and many gigabytes of mass storage.
Modular Software has extensive experience writing low-level drivers
for these systems. The PicLan IPX-based networking product has been
available for each of these systems since the initial introduction of each
platform. PicLan provides a low-level ethernet interface providing
terminal I/O, file transfer, and printer sharing functions for native hosts.
The low-level PicLan driver is implemented in 'C', compiled with the Watcom
C++ compiler, linked as a 32-bit flat-model executable, and then loaded
into a locked memory region by tools developed by Modular Software.
This development environment provides for a robust run-time platform taking
full advantage of the embedded nature of native Pick systems while still
providing tools that allow large driver development.
The driver style of the PicLan driver is best described as a state machine.
A state machine is a driver design where a single driver thread swaps
between different tasks by saving it's state to a local storage area.
This allows the driver to timeslice it's internal operation without requiring
operating system support for these operations. Implementing a driver
as a state machine is by far the most efficient coding mechanism for this
type of project. It also lends itself to a completely event-driven
design that further enhanced system performance and lower driver overhead.
The PicLan IPX driver has proven itself in over 5000 field installations
as a very fast and reliable ethernet interface for native Pick hosts.
Both benchmark testing and field experience have never been able to demonstrate
any environment where the network driver was not up to the task.
In all cases, the drivers performance was strictly limited by the ability
of the underlying host to produce data. Even with 256 active connections,
a single-processor Pentium host is still not limited by network performance,
but instead by the performance of user Pick application code.
PicLan-IP builds on the experience of the PicLan IPX product.
PicLan-IP works cooperatively with the PicLan ethernet driver and IPX protocol
stacks to add full TCP/IP functionality to native Pick hosts. The
design of the PicLan-IP TCP/IP protocol stacks are built using the same
event-driven state machine that PicLan IPX functions use. While the
level of complexity of TCP/IP is easily an order of magnitude greater than
it IPX, the 'C' environment allows for the added code complexity without
difficulty.
The design of the PicLan-IP TCP/IP protocol stacks are such that you
can configure the maximum number of connection handles that are allocated.
Small systems default at 200 concurrent network connections. This
configuration uses about 2 megabytes of system memory for driver code and
buffer space. If you are running a large, public web server, you
may want to increase this amount. The maximum supported number of
TCP/IP connections is just over 4000 requiring about 34 megabytes of driver
and buffer memory.
The TCP/IP stacks in PicLan-IP have all of the required support needed
to run a TCP/IP server. This includes support for IP, TCP, UDP, ARP,
and ICMP. While only a single ethernet interface is supported, you
can configure a single host to respond to up to 50 IP addresses.
This allows a single native Pick host to support virtual web servers with
50 sets of unique web content. Static IP route tables are also supported
with up to 100 manual route table entries.
High-level PicLan-IP functions are really no different on native hosts
than on any other PicLan-IP host and actually share 100% of their Pick/BASIC
source code. To be fair, the source code is conditionally compiled
and massively macro expanded, but this shared environment is very important
to Modular Software's ability to maintain PicLan-IP across such as broad
array of Pick platforms. It is in this high-level Pick/BASIC code
where all of the TCP/IP services are implemented. Native hosts support
all of the PicLan-IP services including HTTP, SMTP, POP3, and client APIs.
In addition, PicLan-IP supports inbound TELNET with native Pick hosts.
This allows native system access from standard TELNET clients including
access over the internet, local PC and MAC access, and terminal server
access.
This combination of efficient and high-performance low-level TCP/IP
protocol support with versatile high-level service support allow PicLan-IP
to literally bring native hosts into the 21st century. You never
know if the web site you just looked your college class schedule up on
was actually hosted on a good-old-fashioned native Pick system. |