home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / lan / sossexe.arj / DOC / UNIXDOS.TXT < prev   
Text File  |  1991-04-11  |  16KB  |  418 lines

  1.  
  2.  
  3.  
  4.     A Low-Cost Unix/DOS Network Solution for Software Engineering
  5.  
  6.                 By Richard Braun
  7.  
  8.                Copyright (C) 1991
  9.             Kronos, Inc. / Waltham, MA
  10.  
  11.                   11 April 1991
  12.                       DRAFT
  13.  
  14.  
  15. 1. Introduction
  16.  
  17. As Unix operating systems are increasingly ported to low-cost hardware
  18. platforms, including PC-compatibles and Risc architectures, demand is
  19. rising for ports of existing DOS applications to Unix.  At the same
  20. time, demand is also increasing for the centralization of many corporate
  21. functions over a diverse spectrum of networking protocols and hardware.
  22.  
  23. Traditionally, the integration of DOS-based systems into a corporate
  24. network has been viewed as a problem of grafting them into an existing
  25. network based on other systems, typically Unix and TCP/IP.  With the
  26. widespread acceptance of Novell NetWare and other PC-based protocols,
  27. large numbers of companies will soon run into the opposite problem:
  28. that of grafting TCP/IP into an existing network of DOS-based systems.
  29.  
  30. This paper discusses a low-cost method of building an environment for
  31. software engineering under Unix and DOS, combining the features of
  32. Novell NetWare and Unix TCP/IP on a single local area network.
  33.  
  34.  
  35. 2. Goals
  36.  
  37. The goals of this project were as follows:
  38.  
  39.     - To minimize the impact of new software, hardware, or
  40.       procedures on people currently using a NetWare-based LAN;
  41.  
  42.     - To bring up several low-cost Unix systems and workstations
  43.       for software development;
  44.  
  45.     - To provide widely-expected facilities to users of these
  46.       Unix systems, including backups, dialup modems, printing,
  47.       and electronic mail;
  48.  
  49.     - To centralize a base of existing source code, allowing
  50.       the direct use of a widely-accepted source code control
  51.       system (RCS) by both Unix and DOS users;
  52.  
  53.     - To create system-independent procedures for compiling and
  54.       building binaries from source code libraries;
  55.  
  56.                                     Page 2
  57.  
  58.  
  59.     - To provide full access to all files residing on a series
  60.       of Novell servers to Unix users; and
  61.  
  62.     - To allow Unix and DOS users alike to continue using their
  63.       native systems without the need for switching between
  64.       two systems regularly (which eliminates the two-tube desktop
  65.       syndrome and provides user convenience).
  66.  
  67. At the time these goals were established (December 1990), no combination
  68. of commercial product offerings could meet them.  Even today, no single
  69. vendor can meet these challenges.
  70.  
  71. A NetWare-based solution is presently under development at Novell, and
  72. should be widely available within the next several months.  For several
  73. reasons, the combined TCP/IP-NetWare solution presented herein was
  74. selected for use at Kronos, and may be desirable at any number of other
  75. locations.
  76.  
  77.  
  78. 3. Hardware requirements
  79.  
  80. The existing network consisted of several thin-wire Ethernet subnets,
  81. each connected to a Novell server which in turn was connected (through
  82. a second LAN interface card) to an Ethernet "backbone" consisting of
  83. two or three fan-out units.  Each DOS user was connected to one of
  84. the thin-wire subnets using a LAN card from one of several vendors.
  85.  
  86. This solution poses no additional hardware requirements for DOS users,
  87. as it employs a dual-stack packet driver capable of running NetWare
  88. and TCP/IP on an existing LAN card.  Unix workstation users are somewhat
  89. more constrained, as they must install a LAN card supported by their
  90. Unix system's TCP/IP device driver.  For SCO Unix on a 386-based PC-
  91. compatible, this means installing a LAN card from 3-Com or Western
  92. Digital; Racal-Interlan also claims to provide a driver for SCO Unix.
  93.  
  94. DOS LAN cards supported by the Clarkson drivers are:
  95.  
  96.     3Com 501, 503, 505, 523; ARCNET; AT&T StarLAN series
  97.         BICC Isolan 4110; IBM token ring; NetBIOS; Novell NE1000,
  98.         NE2000; Racal/Interlan NI5010, NI5210, NI6510, NI9210;
  99.         SLIP8250; Tiara LANCARD/E; and Western Digital WD8003.
  100.  
  101. For backups, at least two tape drives are required:  one for backing
  102. up the Novell servers, and one for backing up Unix filesystems.
  103. Software could conceivably be written to access a single, common tape
  104. drive, but backups take long enough in the Kronos environment that a
  105. multiple-drive approach was preferred.
  106.  
  107. The server used to export Novell files via NFS consists of a dedicated
  108. 386-based PC configured with 640K or more of ram, a small hard disk,
  109. and any Ethernet card supported by the packet drivers.
  110.  
  111. The Proteon cc:Mail gateway currently requires two dedicated PCs,
  112. though this requirement may be changed if some of this code is ported
  113. to run under Unix, accessing cc:Mail directories via NFS.
  114.  
  115.                                     Page 3
  116.  
  117.  
  118.  
  119. Sharing printers between Unix and DOS was most easily implemented
  120. using one of many available multiplexing print buffer units, sold
  121. for about $200.  Other solutions will present themselves over time;
  122. this solution is not ideal, because print jobs cannot be cancelled
  123. once they are sent to the buffer (which holds many minutes' worth of
  124. output), and the user cannot query whether a job is finished.
  125.  
  126.  
  127. 4. Software requirements
  128.  
  129. Most of the software is available free of charge from Clarkson Univer-
  130. sity and other places via the Internet.  The following components are used:
  131.  
  132.     - Packet drivers version 7 from Brigham-Young University
  133.       and Clarkson
  134.  
  135.     - CUTCP version 2.2D, a DOS TCP/IP package from Clarkson
  136.       derived from NCSA Telnet
  137.  
  138.     - PC/IP, a DOS TCP package from Carnegie-Mellon University
  139.       and MIT
  140.  
  141.     - IPXPDI version 2.01, a packet-driver interface for NetWare
  142.       from BYU (now included with the SOSS package)
  143.  
  144.     - SOSS version 3.1, a DOS NFS server derived from source
  145.       code originally developed at Lawrence Berkeley Laboratory
  146.       by See-mong Tan
  147.  
  148.     - RCS version 5.5, a widely used Revision Control System
  149.       originally developed by Walter Tichy and now distributed
  150.       by the Free Software Foundation
  151.  
  152.     - Gnu diff version 1.15, a file-comparison utility used by
  153.       RCS and distributed by the Free Software Foundation
  154.  
  155.     - A public-domain cc:Mail gateway distributed by Proteon
  156.  
  157.     - d2x and x2d, DOS/Unix conversion programs written at Kronos
  158.  
  159.     - dmake version 3.6, a Unix-compatible Make facility for DOS
  160.  
  161. Not all features of PC/IP are used; the Clarkson Telnet program provides
  162. a much broader set of features, for example, than PC/IP Telnet.
  163.  
  164. Source code to two of these items (SOSS and RCS) was modified at Kronos
  165. to support this engineering environment.  These modifications are
  166. relatively minor (less than one man-month of work) and are made
  167. available via the Internet.
  168.  
  169.                                     Page 4
  170.  
  171.  
  172. 5. Documentation
  173.  
  174. Documentation for each of these packages is provided in the form of
  175. text files included with each distribution.  A synopsis of what is
  176. provided is as follows:
  177.  
  178.     - Packet drivers:  an 11-page manual plus a 3-page
  179.       description.  A separate summary is also provided for
  180.       each supported LAN card.
  181.     - CUTCP: an 80-page manual.
  182.     - PC/IP: a 60-page manual.
  183.     - SOSS: a 5-page user guide plus a 5-page description.
  184.     - RCS: a "man page" for each of the 8 utilies, plus a
  185.       short introduction guide.
  186.     - The Proteon e-mail gateway:  an 8-page description
  187.       plus a 4-page installation guide.
  188.     - dmake: a 44-page manual.
  189.  
  190.  
  191. 6. Putting it all together
  192.  
  193. The first step is to retrieve the distribution kits for each software
  194. package.  You will then need to map out your Novell network and determine
  195. which DOS users need to have access to the TCP/IP subnet.  (Or, of course,
  196. do the opposite if you're adding Novell systems to an existing TCP/IP
  197. network.)  Most of these packages are for DOS; you should place DOS
  198. executables on a Novell server accessible by all systems.
  199.  
  200.  
  201. 6.1 Mountable filesystems
  202.  
  203. One or more dedicated DOS systems need to be configured to run SOSS
  204. (you will want more than one system only if the single unit becomes
  205. a performance bottleneck), and the e-mail gateway currently requires
  206. at least one system.  Set up the appropriate packet driver on these
  207. systems, configure NETDEV.SYS and add a device line to CONFIG.SYS.
  208. Create an AUTOEXEC.BAT file on the SOSS server system which does the
  209. following:
  210.  
  211.     - Run the packet driver
  212.     - Load IPXPDI
  213.     - Load NET3 or NET4 (the NetWare shell)
  214.     - Log into the NetWare server (you will need to use KEY-FAKE,
  215.       a small DOS utility provided with SOSS, to type in any
  216.       required password.)
  217.     - Map the desired filesystems to a DOS drive letter
  218.     - Castoff broadcast messages from Novell servers
  219.     - Invoke SETCLOCK to synchronize with the time server
  220.     - Run SOSS
  221.  
  222. A minor inconvenience exists for users attempting to edit or print text
  223. files across machine architectures.  The line separator for Unix text
  224. files is linefeed only, whereas DOS uses carriage-return/line-feed.  A
  225. conversion utility (d2x and x2d, now provided with SOSS) must be run
  226. when such files are referenced across the great Unix/DOS divide.
  227.  
  228.                                     Page 5
  229.  
  230.  
  231.  
  232.  
  233. 6.2 Remote TCP/IP login
  234.  
  235. On each user's DOS system, create a CONFIG.TEL file to define its IP
  236. address and the addresses of your site's gateways, name servers, and
  237. so on.  Make sure each DOS system has access to TELBIN.EXE, and an
  238. environment variable CONFIGTEL defined as the location of its CONFIG.TEL
  239. file.
  240.  
  241.  
  242. 6.3 Source code development
  243.  
  244. To use the RCS source code control system, you must locate source code
  245. directories on filesystems accessible to everyone.  Using the public-
  246. domain approach described herein, you would place them on a Novell
  247. server, because DOS users cannot mount Unix filesystems directly;
  248. alternatively, you can buy Portable NetWare for one or more of your
  249. Unix systems and store RCS files there, or buy PC-NFS for each of your
  250. DOS systems.
  251.  
  252. The dmake utility has proven extremely helpful in creating platform-
  253. independent "make" files, which can be run under both Unix and DOS.
  254. Many of the make utilities sold with DOS-based compilers lack the more
  255. advanced features which Unix make utilities provide.
  256.  
  257.  
  258. 6.4 Electronic mail
  259.  
  260. The e-mail gateway for cc:Mail requires considerable configuration
  261. information, which is beyond the scope of this paper.  cc:Mail sells
  262. an SMTP gateway product at a considerable price; a public-domain
  263. offering from Proteon may prove adequate for your needs.
  264.  
  265.  
  266. 6.5 Backups
  267.  
  268. At the time of this writing, a typical 330-Mb fixed disk drive sells
  269. for about $1000; tape drives actually cost about the same, per megabyte.
  270. This has made it economical to set up a system whereby daily incremental
  271. backups are placed on a fixed disk by a 'cron' script performed by each
  272. Unix system.  Full backups are performed to tape, on a schedule which is
  273. determined by amount of space available on the fixed drive and by the
  274. number of modifications made within each filesystem.
  275.  
  276. SCO Unix is shipped with a shell script called 'cbackup' (in directory
  277. /usr/lib/sysadmin), which uses 'cpio' to create the backup image.  Some
  278. fairly minor modifications can be made to this script in order to allow
  279. for unattended disk-to-disk backups.  Users of 'cpio' should be aware
  280. that the ASCII header information option, '-c', must be used for
  281. compatibility of backup images across different machine architectures.
  282.  
  283.                                     Page 6
  284.  
  285.  
  286. 6.6 Modems
  287.  
  288. Two modem pools were created:  one group on a Unix system, and another
  289. on the Novell network using an asynchronous communications server.  If
  290. a single pool is desired, there are two possible options:  add a port
  291. selecter between the modems and the computers, or add software to the
  292. Unix systems which would allow transmission of IPX datagrams via the
  293. modem lines.  The latter is much more complex than simply creating a
  294. second modem pool, so it was not done in our case.
  295.  
  296.  
  297. 6.7 Printer service
  298.  
  299. A similar problem presents itself here:  the Unix and Novell network
  300. print services are incompatible, and a fair amount of coding would be
  301. required to create a bidirectional network interface.  Low-cost hardware
  302. products are available, however, which allow more than one computer to
  303. access a single printer.  This approach was taken at Kronos.
  304.  
  305.  
  306. 7. Some suggestions and/or open issues
  307.  
  308. CUTCP supports the use of the bootp protocol to configure IP addresses
  309. and other information for each DOS user.  By bringing up a bootp server
  310. somewhere on the network, the network administrator can escape the task
  311. of updating TCP configuration files on each PC.
  312.  
  313. A means of synchronizing time between Novell servers and TCP/IP-based
  314. Unix systems should be implemented; this may be resolved in future
  315. releases of Novell's server software.  PC/IP provides a SETCLOCK program
  316. for setting a PC's date and time from a TCP/IP time server, and Novell's
  317. login program automatically sets the time from a Novell server.
  318.  
  319. The cc:Mail gateway has not yet been installed and tested; this procedure
  320. is quite complex.
  321.  
  322. Ideally, an engineer running a compiler on any system could build
  323. binaries for any other system on the LAN.  This requires cross-compiler
  324. products which do not exist today, though this may happen at some time
  325. in the future.  The Gnu C compiler can be configured for cross-compilation
  326. on most Unix platforms, but it cannot create DOS binaries at this time.
  327. A recently-developed DOS extender for Gnu C is incompatible with Windows
  328. and other DOS software, and no company produces a Unix-based product for
  329. producing binaries executable under a DOS extender.
  330.  
  331.  
  332. 8. Reliability
  333.  
  334. A popular perception is that "you get what you pay for", and that free
  335. software is buggy and unsupported.  This environment contains hundreds
  336. of thousands of lines of free software, so an administrator is wise to
  337. question its ease of use, maintainability, and reliability.
  338.  
  339. An argument in favor of free software, mainly developed in university
  340. environments, is that it provides a large base of support tools which
  341.  
  342.                                     Page 7
  343.  
  344.  
  345. allow companies to get on with the business of designing applications,
  346. rather than developing basic tools.  Universities also provide a
  347. harsher field-test environment for security problems, as some of their
  348. users are more likely to spend time looking for holes.  (The Clarkson
  349. TCP product provides an example of this:  NCSA Telnet, as distributed,
  350. will allow any user on the network to view, modify, or delete files
  351. via a terminate-and-stay-resident FTP server, unless the PC user
  352. explicitly creates a password file.  Clarkson's modification plugs
  353. this hole.)
  354.  
  355. This environment is just now entering daily use at Kronos; as time goes
  356. by its reliability will be tested and improved.
  357.  
  358.  
  359. 9.  Where to get it
  360.  
  361. A centralized place for obtaining the software described herein may be
  362. established in the future.  In the meantime, it may be retrieved from
  363. Internet sites as follows:
  364.  
  365.     Product       System         Directory      Contact
  366.     ---------  -----------       -----------  ----------------------
  367.     PC/IP       husc6.harvard.edu pub/pcip
  368.     CUTCP       omnigate.         pub/cutcp/      cutcp@omnigate.
  369.             clarkson.edu      v2.2-D       clarkson.edu
  370.     Packet     sun.soe.clarkson. pub/ka9q     nelson@clutx.clarkson.
  371.      drivers    edu                   edu
  372.     RCS(unix)  prep.ai.mit.edu   pub/gnu
  373.     RCS(DOS)   spdcc.com         pub/sos      few@gupta.com,
  374.                             rbraun@spdcc.com
  375.     diff(unix) prep.ai.mit.edu   pub/gnu
  376.     diff(DOS)  vulcan.phyast.    pub/msdos
  377.             pitt.edu
  378.     dmake       watmsg.waterloo.  pub/src      dennis@watmsg.
  379.             edu                     waterloo.edu
  380.     SOSS       spdcc.com         pub/sos      rbraun@spdcc.com
  381.     d2x       spdcc.com         pub/sos      rbraun@spdcc.com
  382.     Gateway       monk.proteon.com  pub/novell      acm@relay.proteon.com
  383.  
  384. The procedure for retrieving files on the Internet is:
  385.  
  386.     ftp <system>
  387.     (user)     anonymous
  388.     (password) <myname@myhost>
  389.     binary
  390.     cd <directory>
  391.     get <files>
  392.  
  393.                                     Page 8
  394.  
  395.  
  396. 10. Security issues
  397.  
  398. The SOSS server contains no security features; any file accessible to the
  399. server can be read or written by any remote NFS user.  Several man-weeks
  400. of effort would be required to add user ID, group ID, and file-mode
  401. checking to SOSS.  Alternatively, one could purchase Novell's just-announced
  402. NFS server product, which contains these features.
  403.  
  404. RCS allows users to specify a user-name different from their own when
  405. performing update operations.  If this presents a security problem, you
  406. may wish to modify RCS source to eliminate the "-w" command line option.
  407.  
  408. When retrieving software from the Internet, one must be aware of potential
  409. "trojan horse" or "virus" security problems.  The most important precaution
  410. is to retrieve software from trustworthy archive sites, such as those
  411. recommended here.
  412.  
  413.  
  414. 11. Caveat
  415.  
  416. This information is subject to change without notice.  It may or may not
  417. be helpful for your own purposes.
  418.