From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8408 invoked from network); 31 May 2020 13:50:46 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 31 May 2020 13:50:46 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 8C9659C994; Sun, 31 May 2020 23:50:45 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 1FFDD9C5E5; Sun, 31 May 2020 23:50:20 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=planet.nl header.i=@planet.nl header.b="MfIZ308k"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 879529C5E5; Sun, 31 May 2020 23:50:17 +1000 (AEST) Received: from cpsmtpb-ews06.kpnxchange.com (cpsmtpb-ews06.kpnxchange.com [213.75.39.9]) by minnie.tuhs.org (Postfix) with ESMTP id 523F39C1EA for ; Sun, 31 May 2020 23:50:13 +1000 (AEST) Received: from cpsps-ews27.kpnxchange.com ([10.94.84.193]) by cpsmtpb-ews06.kpnxchange.com with Microsoft SMTPSVC(8.5.9600.16384); Sun, 31 May 2020 15:50:12 +0200 X-Brand: 7abm2Q== X-KPN-SpamVerdict: e1=0;e2=0;e3=0;e4=(e1=10;e3=10;e2=11;e4=10);EVW:Whi te;BM:NotScanned;FinalVerdict:Clean X-CMAE-Analysis: v=2.3 cv=O/OiQC1W c=1 sm=1 tr=0 cx=a_idp_e a=4/rmT19p7yX2nqNQQg5uwQ==:117 a=soxbC+bCkqwFbqeW/W/r+Q==:17 a=x1i13A_MHe4A:10 a=IkcTkHD0fZMA:10 a=sTwFKg_x9MkA:10 a=vggBfdFIAAAA:8 a=7RpiaepYAAAA:20 a=_DRfmoS5AAAA:8 a=A2svcivkEYPsEIwGOgsA:9 a=QEXdDO2ut3YA:10 a=5TU1wjPX-uQA:10 a=Gvdsnlm1utIzvN7yeIoI:22 X-CM-AcctID: kpn@feedback.cloudmark.com Received: from smtp.kpnmail.nl ([195.121.84.44]) by cpsps-ews27.kpnxchange.com over TLS secured channel with Microsoft SMTPSVC(8.5.9600.16384); Sun, 31 May 2020 15:50:11 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=planet.nl; s=planet01; h=to:date:message-id:subject:mime-version:content-type:from; bh=gh7Hl/6UjTS602dC/ZZqhRswFKuVy8q1kSFdkTxF++U=; b=MfIZ308kJZdJjk0jr2YMo2AH0XPzxGfy9Atept5Nbg0e8TZSp3XV7Ty5dvfYT7v549sKlChoAvaWr BH7nJ3izb/gghzUcra/EorPxMRQg/EF2WwPbbecylhRrJnimhYs8QPNGaS8L/W7pRm3rmXVdWxeUiR elgQgEwc15s2mXhU= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|w3IiWRqBTqOmI/7tEN9UwX2vjplHR8k9waZymXyPz5R4oljOjNmiXSbysmwRPEl 9mXxka0LW7CXI21mSdGci2w== X-Originating-IP: 80.101.112.122 Received: from mba2.fritz.box (sqlite.xs4all.nl [80.101.112.122]) by smtp.kpnmail.nl (Halon) with ESMTPSA id a5b926b0-a345-11ea-bebe-005056abf0db; Sun, 31 May 2020 15:50:12 +0200 (CEST) From: Paul Ruizendaal Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Message-Id: <083374AA-1CF0-4341-93C9-795A7E8E3BBA@planet.nl> Date: Sun, 31 May 2020 15:50:11 +0200 To: paul@rileyriot.com X-Mailer: Apple Mail (2.3445.104.11) X-OriginalArrivalTime: 31 May 2020 13:50:11.0800 (UTC) FILETIME=[678ABD80:01D63752] X-RcptDomain: minnie.tuhs.org Subject: [TUHS] LSX on the PDP-11/03 (LSI-11) X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" > I've stumbled across LSX, and I have it running on SimH. I'm quite = inexperienced with Unix, but it's something I want to learn well, having = brushed against it at university in the '80s, and having played with = Linux somewhat. I think you will experience a sizeable learning curve. You will be = working with Unix and C as it stood around 1975 and that is = substantially different from what it was in the 80=E2=80=99s. That said, = I know from personal experience that it is an intriguing journey and = certainly not impossible to do. > Some help would be nice, but more generally, is anyone on this list = more than vaguely familiar with LSX, or 6th Edition itself? Many on this list are familiar with 6th edition. The best way to learn = the internals of 6th edition is the =E2=80=9CLions=E2=80=99 book=E2=80=9D:= https://www.amazon.com/Lions-Commentary-Unix-John/dp/1573980137 Coming from today=E2=80=99s perspective (or a 1980=E2=80=99s one), you = will find the following key challenges: - The version of C used for 6th edition is different from the 1980=E2=80=99= s. Amongst other things the syntax of the assignment operators changed = (not +=3D but =3D+), the syntax for initialisation changed (not 'int a =3D= 3', but 'int a 3=E2=80=99), the =E2=80=98long=E2=80=99 datatype (32 bit = on a PDP-11) did not exist, the =E2=80=98void=E2=80=99 keyword did not = exist, structs could not be assigned, passed or returned (only pointers = to structs), etc. - The stdio library did not exist yet, in its place there was the = =E2=80=98portable i/o library=E2=80=99. This may be the hardest part to = get used to. - The file system was 16-bit based throughout. This has implications for = stat(), lseek() did not exist (its precursor seek() used additional = whence values to move the file pointer in 512 byte increments), etc. When it comes to LSX, there are a few people who have experience with it = on the this list (that I know of - there may be many more). First of all, Heinz Lycklama, the original creator of LSX, appears to = read this list from time to time. Second, Leonid Broukhis and Serge Vakulenko (who managed to recover the = LSX sources 20 years ago) might be reading the list. They took the = trouble to port LSX to the Soviet BK-0010 computer, an LSI-11 type = system some 15 years ago: https://github.com/sergev/bkunix You can stand on their shoulders, as they already took the trouble to = convert the kernel source from 1975 C to 1980=E2=80=99s C and to create = a stdio compatible library for it; they are using the 2.11BSD C = compiler, which generates tighter code than the 1975 compiler =E2=80=94 = hence they could squeeze a bit more functionality in. Third, I found the BK-0010 port some 5 years ago and used that as base = to create a version that would run on a small TI990 clone: http://www.stuartconner.me.uk/mini_cortex/mini_cortex.htm This work later evolved into a stock 6th edition kernel and is now a = curious mix of stuff dating from 1975 to 1985. Your main challenge will be that neither the BK-0010 work nor my work = will run on your hardware as-is. I think you have two possible paths = forward. The first is to learn C and the library as it stood in 1975, = the second is to take the BK-0010 code and to make it run on a stock = LSI-11 again.