Date: Sat, 10 Nov 2001 21:14:32 -0400 From: Tim Shoppa Organization: Trailing Edge Technology MIME-Version: 1.0 Newsgroups: alt.sys.pdp10 Subject: Announcing KLH10 Content-Type: multipart/mixed; boundary="------------2C9EB37D69F0B2726806E6C3" Lines: 421 This is a multi-part message in MIME format. --------------2C9EB37D69F0B2726806E6C3 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Ken's been so hard at work in packaging up and documenting his KLH10 emulator that the easy job - announcing it! - seems to have fallen upon me. The main distribution site is http://klh10.trailing-edge.com/ and - closely associated with the KLH10 announcement - 12 new tape images are available in the PDP-10 archives at http://pdp-10.trailing-edge.com/ 9 of the new tape images form all of a TOPS-20 V7.0 distribution with networking: BB-EV83B-BM TCP/IP-20 V4.0 DISTR 16MT9 (longer than the other one?) BB-GS97B-SM TOPS-20 EXEC SRC 16MT9 BB-LW55A-BM T20 V7.0 DIST 16MT9 TAPE 2OF2 BB-M080Z-SM T20 V7.0 #04 MON SRC MOD 16MT BB-M081Z-SM T20 V7.0 #04 EXEC SRC MOD 16M BB-M780D-SM TOPS-20 V7.0 MONITOR SRC 16MT BB-M836D-BM TOPS-20 V7.0 TOOLS 16MT9 BB-KL11M-BM TOPS-20 V7.0 TSU04 TP 2 OF 2 BB-PENEA-BM TOPS-20 V7.0 TSU04 TP 1 OF 2 And let's not forget three new TOPS-20 V4.1 tapes: Tops-20 V4.1 TP#12 "Exec Src Mod" Gidney TU78 21-Nov-85 Tops-20 V4.1 TP#12 "Monitor Sources" Gidney TU78 21-Nov-85 BB-V895A-BM T-20 V4.1 2020 DIST 16MT9 2/2 1983 ("1/9/85") Now, back to the subject of the hour, KLH10, I reproduce below the "README", "LICENSE", and "Intro.txt" files from the distribution. Enjoy! --------------2C9EB37D69F0B2726806E6C3 Content-Type: text/plain; charset=iso-8859-1; name="readme." Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="readme." /* README - README file for KLH10 Distribution */ /* $Id: klh10.rdm,v 2.2 2001/11/10 10:41:40 klh Exp $ */ /* Copyright © 2001 Kenneth L. Harrenstien ** All Rights Reserved ** ** This file is part of the KLH10 Distribution. Use, modification, and ** re-distribution is permitted subject to the terms in the file ** named "LICENSE", which contains the full text of the legal notices ** and should always accompany this Distribution. */ Please read the LICENSE file for the full license terms. Although there are no specific restrictions on use of this software, some rules do apply for modification and re-distribution. Note that these terms do not apply to files in the "run" and "contrib" directories, which may have each have different terms and are distributed separately to avoid licensing complications (see the READaux file if you have extracted the Auxiliary Distribution). While not part of the license terms, I would like to ask that any commercial or institutional users who derive benefit from this software consider arranging for a modest support agreement. Without the income from a handful of commercial licensees, it would have been completely impossible to justify the time that went into developing and testing this product. Of course, this software comes "as is" with no guarantees whatsoever, and with ABSOLUTELY NO WARRANTY. This is particularly true for this Distribution, which is NOT the same as the V1.x commercial version; I took the opportunity to make several substantial cleanups and additions which have yet to be thoroughly verified and tested. There are still some known issues with certain platforms, but I've decided to proceed with this release now rather than postpone it indefinitely in the perpetual pursuit of perfection. --------------------------------- Now, if you're the impatient type who wants to get on with it, go straight to: doc/install.txt But if you're the rarity who likes to read everything first, I recommend starting with: doc/Intro.txt Please send me any bug fixes (preferably conditionalized for clarity), as well as any ideas for improving the distribution itself. Undoubtedly there will be many. I can't promise I will be able to incorporate all of them in a timely fashion since my clients and family will always have first priority, but will do my best. Thanks! --KLH Net: Snail: 759 Torreya Court, Palo Alto, CA 94303-4160 --------------------------------- CREDITS, THANKS, ACKNOWLEDGEMENTS I'm not sure where to put this but figure the README is prominent enough. While I am responsible for all of the KLH10 software and documentation as of this distribution, there were many people along the way who, whether they knew it or not, helped make it happen. Everyone who uses this software owes them a debt of gratitude! First, the list from the original KS10 version: Stu Grossman, for convincing me that a C version was feasible. Alan Bawden & Dave Moon, who (apart from their already legendary roles in ITS) helped as much as they could without actually being there. Jay Verkler, who provided a MIT-AI lab environment within Oracle. And everyone else on the ITS-LOVERS and TOPS-20 lists whose messages and actions have helped keep PDP-10s alive. Plus: Mark Crispin, without whom it would never have run TOPS-20. Rob Austein, for lots of network and porting help; the "tun" IMP code is based on his work. Now, for the KL10 version: Andy Riebs and Maurice Marks, who championed the KL project at DEC. Larry Sendlosky, who more than anyone else is responsible for the success of the KL10 version. While at DEC he dug up whatever was needed, built and tested innumerable configurations, and went into the field to pitch and support the emulator. Doug and Christina Engelbart, and the rest of the Bootstrap group, for preserving the SRI-NIC DEC-2065 just long enough. Without a working KL and filesystem it would have been much harder. Duane Winkler, for taking a chance. Bill Parsons, David Alspaugh, Dennis Horn, Holly Sue White, Jim Saleh, Mary Coppernoll, Raylene Pak, Tom Jenkins, Tom Saleh, and many unknown others for using it and shaking the bugs out. And finally: Doug Humphrey, who supported the merge and Public ITS work. Bob Supnik, who made it possible to release the sources. Lars Brinkhoff, for inspiration and release testing. Tim Shoppa, for his preservation efforts and release hosting. If I've inadvertently left anyone off, please let me know. Thanks again! --------------2C9EB37D69F0B2726806E6C3 Content-Type: text/plain; charset=iso-8859-1; name="license..1" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="license..1" /* LICENSE - KLH10 License Terms */ /* $Id: klh10.lic,v 2.2 2001/11/10 10:41:40 klh Exp $ */ /* Copyright © 2001 Kenneth L. Harrenstien ** ** The text of this license was derived from the University of ** Washington's Free-Fork License, as used on the University of ** Washington IMAP toolkit (Copyright 2001 University of Washington). */ KLH10 Free-Fork License The "KLH10" PDP-10 emulator, Version 2.0 Copyright © 2001 Kenneth L. Harrenstien This KLH10 Distribution (code and documentation) is made available to the open source community as a public service by Kenneth L. Harrenstien. Contact Kenneth L. Harrenstien at klh@alum.mit.edu for information on other licensing arrangements (e.g. for use in proprietary applications). Under this license, this Distribution may be modified and the original version and modified versions may be copied, distributed, publicly displayed and performed provided that the following conditions are met: (1) modified versions are distributed with source code and documentation and with permission for others to use any code and documentation (whether in original or modified versions) as granted under this license; (2) if modified, the source code, documentation, and user run-time elements should be clearly labeled by placing an identifier of origin (such as a name, initial, or other tag) after the version number; (3) users, modifiers, distributors, and others coming into possession or using the Distribution in original or modified form accept the entire risk as to the possession, use, and performance of the Distribution; (4) this copyright management information (software identifier and version number, copyright notice and license) shall be retained in all versions of the Distribution; (5) Kenneth L. Harrenstien may make modifications to the Distribution that are substantially similar to modified versions of the Distribution, and may make, use, sell, copy, distribute, publicly display, and perform such modifications, including making such modifications available under this or other licenses, without obligation or restriction; (6) modifications incorporating code, libraries, and/or documentation subject to any other open source license may be made, and the resulting work may be distributed under the terms of such open source license if required by that open source license, but doing so will not affect this Distribution, other modifications made under this license or modifications made under other Kenneth L. Harrenstien licensing arrangements; (7) no permission is granted to distribute, publicly display, or publicly perform modifications to the Distribution made using proprietary materials that cannot be released in source format under conditions of this license; (8) the name of Kenneth L. Harrenstien may not be used in advertising or publicity pertaining to Distribution of the software without specific, prior written permission. This software is made available "AS IS", and KENNETH L. HARRENSTIEN DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN NO EVENT SHALL KENNETH L. HARRENSTIEN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------2C9EB37D69F0B2726806E6C3 Content-Type: text/plain; charset=iso-8859-1; name="intro.txt.1" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="intro.txt.1" /* INTRO.TXT - Introduction to the KLH10 */ /* $Id: Intro.txt,v 2.3 2001/11/10 21:24:21 klh Exp $ */ /* Copyright © 1997,2001 Kenneth L. Harrenstien ** All Rights Reserved. ** ** This file is part of the KLH10 Distribution. Use, modification, and ** re-distribution is permitted subject to the terms in the file ** named "LICENSE", which contains the full text of the legal notices ** and should always accompany this Distribution. */ CONTENTS ======== All KLH10 documentation is online in ASCII text files for simplicity and portability. The contents, in suggested order of perusal, are as follows: Intro.txt - General intro build.txt - Build instructions usage.txt - General usage instructions install.txt - Installation & configuration instructions klt20.txt - KL10 TOPS-20 installation and startup klt10.txt - KL10 TOPS-10 installation and startup kst20.txt - KS10 TOPS-20 installation and startup kst10.txt - KS10 TOPS-10 installation and startup ksits.txt - KS10 ITS installation and startup backgrnd.txt - Background comments coding.txt - Coding guidelines cmdref.txt - Command reference cmdsum.txt - Command summary cheat sheet dfkfb.txt - KL10 timing diagnostic dvhost.txt - Special host device history.txt - Historical notes kldiff.txt - Differences from real KL10 utils.txt - KLH10 Utilities vtape.txt - Virtual tape details GENERAL INFORMATION =================== "KLH10" is an emulator for the PDP-10 series of machines from Digital Equipment Corporation. The most important thing to know is that this is a MACHINE emulator. It emulates a specific PDP-10 CPU and all necessary I/O devices, running a site's existing operating system (monitor) binary without change -- which then runs user-mode application programs just as if they were on a real PDP-10. Even floating-point results are bit-identical. This means sites must continue to manage the virtual system in the same way as a real one, without the old hardware. However, the emulator doesn't monopolize the actual platform, and runs as a set of simple user processes that co-exist with other software on the native system. It is possible to configure it so that no actual CPU time is used while the virtual system is idle. The KLH10 emulator is extremely portable and flexible -- it is written in ANSI C so that it can be ported to new platforms quickly, and new "virtual hardware" can readily be added. The following describes the currently supported versions: Emulation Target: KL CPU: KL10B with extended addressing Memory: 4MW MF20 (22 bits - 8192 pages of 512 words) Microcode: v.442 (supports final versions of TOPS-10 or TOPS-20) Devices available: DTE - one CTY RH20 - up to 8 (7 if using a NI20) Disk - 8 RP06 or RP07 drives per RH20 Tape - 8 TM02/3 formatters per RH20, with one TU45/TU77 each Network - one NI20 (KLNI/NIA20) ethernet interface Emulation Target: KS CPU: KS10 Memory: 512KW (19 bits - 1024 pages of 512 words) Microcode: ITS v.262 (supports final version of KS10 ITS) DEC v.130 (supports final versions of KS TOPS-10/20) Devices available: FE - one CTY RH11 - up to 2 Disk - 8 RP06 or RP07 drives per RH11 Tape - 8 TM02/3 formatters per RH11, with one TU45/TU77 each Network - one "ACC LH-DH" IMP interface (ITS only) Supported Host Platforms: Compaq/DEC Alpha with Tru64 (formerly Digital Unix, formerly OSF/1) SUN Sparc with Solaris Any x86 with FreeBSD, NetBSD, or Linux Plus: Any system providing equivalents to basic Unix system calls. WNT/W2K ports are possible. Requirements: Memory: KL: 35MB (3MB program, 32MB emulated PDP-10 memory) KS: 6MB (2MB program, 4MB emulated PDP-10 memory) Disk: .2-.3 GB per RP06, .5-.9 GB per RP07, 50+GB per dynamic RPxx Tape: optional, can use any variable-record-length drive Network: optional, LAN interface advised (can share single interface with native OS, but a second may be desirable) Performance: Varies with job mix and platform architecture, but general observations suggest the following ratios relative to a real PDP-10 (where 1.0 = KL10 speed): SPARC: (MHz / 200) Alpha: (MHz / 250) x86: (MHz / 200) Thus, a 450MHz x86 would provide slightly over 2x KL speed. IMPLEMENTATION ============== The KLH10 internals are organized in a fashion roughly similar to that of actual hardware. There is a "KN10" process equivalent to a KS10 or KL10 processor that carries out all CPU operations and is continuously running, except when the KLH10 user-interface command parser has control. Most importantly, each hardware device is implemented as a separate subprocess, with optional direct access to main PDP-10 memory for data transfers. This architecture has several advantages: - It can take advantage of multi-processor host platforms. - The emulated CPU never needs to wait for I/O. This considerably speeds up operation, compared to a non-threaded emulator which must block on disk I/O. - It can directly use very slow physical devices such as magtape drives (half-inch, 8mm, 4mm, DLT, etc). Virtual tapes (i.e. tape images on disk) are also supported. - The sub-process implementation is more portable and robust than a threaded implementation. - Device failures need not be fatal. The NIA20 network device for example can be reloaded and restarted without stopping the KN10 or the TOPS monitor. TERMINOLOGY =========== There are two terms used in the documentation and source that may cause confusion: KLH10 and KN10. "KLH10" refers to the entire software product covered by the license. This is theoretically a proper name ("KLH10 has") but is often used as an object name ("the KLH10 has"). "KN10" refers to the virtual PDP-10 created at runtime by the "kn10" executable image. It is specifically intended to serve as an object name alongside the physical PDP-10s KA10, KI10, KL10, and KS10. Nearly all software products are referred to like people (ITS, Emacs, Oracle, Solaris, etc) and the same can be done with "KLH10". However, to emphasize that it emulates a hardware device, it is often still referred to as an object -- "the KLH10". In fact this objectification urge is so strong that it is actually difficult to avoid using the articles "the" and "a". The term "KN10" was invented to help maintain the distinction between the product and the virtual machine/object. I will let others speculate on why English is this way. --------------2C9EB37D69F0B2726806E6C3--