* [TUHS] x/y/zmodem on Unix @ 2023-09-18 22:31 Paul Ruizendaal 2023-09-18 23:07 ` [TUHS] " Dan Cross 2023-09-19 2:46 ` Jonathan Gray 0 siblings, 2 replies; 9+ messages in thread From: Paul Ruizendaal @ 2023-09-18 22:31 UTC (permalink / raw) To: tuhs Last december Matt brought up xmodem and recently I needed it for an almost identical use case. Studied it a bit and in the context of Unix, it is an interesting piece of software history. Although xmodem originated on CP/M in 1977, it seems to have arrived on Unix soon thereafter. The first Unix implementation seems to have gone by the name of “rbsb” and must have originated when V7 was prevalent: it uses alarm() to simulate non-blocking I/O. Over the course of the 80’s ymodem and zmodem were added and the package became lrzsz; the source continued to have a very V7-ish feel to it at least to the early 90’s. In the mid-90’s it was converted to ansi-C and had some other modernization, but it looks like it would still have run on SysIII (apart from the ansi).The last update to the upstream source package appears to be from 1998, i.e. 25 years ago. It is still packaged today for FreeBSD and major Linux distros. On Unix it must be one the oldest code bases still in regular use, with the 1980 source still recognizable in its current incarnation. Any other contenders come to mind? I had always associated x/y/zmodem with CP/M and MSDOS, not so much with Unix. Last December Clem already pointed out that it was popular for file exchange in the Unix scene as well, along with several other similar tools. Also, the ymodem approach to file metadata is very unix oriented, suggesting it originated on Unix or at least that Unix users were an important user demographic. Yet, I could find little trace of x/y/zmodem in the TUHS Unix Tree. The search tool finds it in 2.11BSD, in Minix 1.5 and 2.0 and in V10. Kermit is in those as well, and in 4.3BSD and 4.4BSD on top. Maybe these programs were commonly pulled from a bulletin board and hence not on distribution media. Not sure how that would be bootstrapped, although the 2.11BSD files for x/y/zmodem include “minirb.c”, a 175 line implementation to receive files using the ymodem protocol. It is possible that this was transferred as plain text as a first step, or even retyped. Any recollections? ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-18 22:31 [TUHS] x/y/zmodem on Unix Paul Ruizendaal @ 2023-09-18 23:07 ` Dan Cross 2023-09-19 2:04 ` Theodore Ts'o 2023-09-19 3:58 ` John Cowan 2023-09-19 2:46 ` Jonathan Gray 1 sibling, 2 replies; 9+ messages in thread From: Dan Cross @ 2023-09-18 23:07 UTC (permalink / raw) To: Paul Ruizendaal; +Cc: tuhs On Mon, Sep 18, 2023 at 6:31 PM Paul Ruizendaal <pnr@planet.nl> wrote: > Last december Matt brought up xmodem and recently I needed it for an almost identical use case. Studied it a bit and in the context of Unix, it is an interesting piece of software history. > > Although xmodem originated on CP/M in 1977, it seems to have arrived on Unix soon thereafter. The first Unix implementation seems to have gone by the name of “rbsb” and must have originated when V7 was prevalent: it uses alarm() to simulate non-blocking I/O. Over the course of the 80’s ymodem and zmodem were added and the package became lrzsz; the source continued to have a very V7-ish feel to it at least to the early 90’s. In the mid-90’s it was converted to ansi-C and had some other modernization, but it looks like it would still have run on SysIII (apart from the ansi).The last update to the upstream source package appears to be from 1998, i.e. 25 years ago. > > It is still packaged today for FreeBSD and major Linux distros. On Unix it must be one the oldest code bases still in regular use, with the 1980 source still recognizable in its current incarnation. Any other contenders come to mind? > > I had always associated x/y/zmodem with CP/M and MSDOS, not so much with Unix. Last December Clem already pointed out that it was popular for file exchange in the Unix scene as well, along with several other similar tools. Also, the ymodem approach to file metadata is very unix oriented, suggesting it originated on Unix or at least that Unix users were an important user demographic. Yet, I could find little trace of x/y/zmodem in the TUHS Unix Tree. The search tool finds it in 2.11BSD, in Minix 1.5 and 2.0 and in V10. Kermit is in those as well, and in 4.3BSD and 4.4BSD on top. > > Maybe these programs were commonly pulled from a bulletin board and hence not on distribution media. Not sure how that would be bootstrapped, although the 2.11BSD files for x/y/zmodem include “minirb.c”, a 175 line implementation to receive files using the ymodem protocol. It is possible that this was transferred as plain text as a first step, or even retyped. > > Any recollections? xmodem was an outgrowth of Christensen's MODEM.ASM for CP/M, and is almost criminally simple: a small block of data coupled with a little bit of header information, wait for an acknowledgement, and repeat. Metadata was small (a start byte, a block number, inverse block number, and a single checksum byte), but there was no total byte count, so it was assumed that the final block would be padded with a throwaway character. Chuck Forsberg did YMODEM and ZMODEM; YMODEM is sort of a super-XMODEM: it adds a 16-bit CRC, increases the block size, and adds a "0 block" with some metadata (total file size and file name); thus, it no longer needed a padding byte removed from the final packet. Otherwise, it retains most of the overall structure of XMODEM. ZMODEM was, as I understood it, designed for transfers across telenet, which was pretty reliable; instead of the highly synchronous send/wait-for-ack cycle of xmodem and ymodem, zmodem relies on error detection and correction and is basically a streaming protocol: a packet in a sliding window could be NAK'ed, thus rewinding the transfer, but otherwise it basically just sends data until done. lrzsz came kind of later; I remember Forsberg's rzsz package on Unix back in the day, and then there was a GNU reimplementation. For a while, the Omen Technologies BBS was listed in the BSD phone numbers files. xmodem lives on in a lot of embedded applications because of its overall simplicity. We used it to bootstrap kernels onto Oxide computers, for example, while we were doing active development. - Dan C. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-18 23:07 ` [TUHS] " Dan Cross @ 2023-09-19 2:04 ` Theodore Ts'o 2023-09-19 9:47 ` Michael Stiller via TUHS 2023-09-19 3:58 ` John Cowan 1 sibling, 1 reply; 9+ messages in thread From: Theodore Ts'o @ 2023-09-19 2:04 UTC (permalink / raw) To: Dan Cross; +Cc: Paul Ruizendaal, tuhs On Mon, Sep 18, 2023 at 07:07:25PM -0400, Dan Cross wrote: > > xmodem lives on in a lot of embedded applications because of its > overall simplicity. We used it to bootstrap kernels onto Oxide > computers, for example, while we were doing active development. Today, KDE's Konsole terminal window has a "ZModem upload" function, which I've used for sending a file up to some system where the administrator on the remote machine has disabled scp and sftp for random security $REASONS. I could compress the file and use uuencode/uudecode, but for larger files where cut and paste isn't terribly convenient, using zmodem can be one of the simpler and more effective. - Ted ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-19 2:04 ` Theodore Ts'o @ 2023-09-19 9:47 ` Michael Stiller via TUHS 0 siblings, 0 replies; 9+ messages in thread From: Michael Stiller via TUHS @ 2023-09-19 9:47 UTC (permalink / raw) To: Theodore Ts'o; +Cc: Paul Ruizendaal, tuhs I just wanted to mention, that you can also get zmodem support for iTerm2 if you are on mac. In fact i use it a lot. See here: https://github.com/robberphex/iTerm2-zmodem Best regards, Michael > On 19. Sep 2023, at 04:04, Theodore Ts'o <tytso@mit.edu> wrote: > > On Mon, Sep 18, 2023 at 07:07:25PM -0400, Dan Cross wrote: >> >> xmodem lives on in a lot of embedded applications because of its >> overall simplicity. We used it to bootstrap kernels onto Oxide >> computers, for example, while we were doing active development. > > Today, KDE's Konsole terminal window has a "ZModem upload" function, > which I've used for sending a file up to some system where the > administrator on the remote machine has disabled scp and sftp for > random security $REASONS. > > I could compress the file and use uuencode/uudecode, but for larger > files where cut and paste isn't terribly convenient, using zmodem can > be one of the simpler and more effective. > > - Ted ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-18 23:07 ` [TUHS] " Dan Cross 2023-09-19 2:04 ` Theodore Ts'o @ 2023-09-19 3:58 ` John Cowan 1 sibling, 0 replies; 9+ messages in thread From: John Cowan @ 2023-09-19 3:58 UTC (permalink / raw) To: Dan Cross; +Cc: Paul Ruizendaal, tuhs [-- Attachment #1: Type: text/plain, Size: 900 bytes --] On Mon, Sep 18, 2023 at 7:08 PM Dan Cross <crossd@gmail.com> wrote: but there was no total byte > count, so it was assumed that the final block would be padded with a > throwaway character. > CP/M, like RT-11 and OS/8 before it, did not track the sizes of files in bytes or words, only in blocks. Text files ended in ^Z and were then padded with either NULs or more ^Zs if necessary; binary files were usually padded with NULs. ZMODEM was, as I understood it, designed for transfers across telenet, > which was pretty reliable; instead of the highly synchronous > send/wait-for-ack cycle of xmodem and ymodem, zmodem relies on error > detection and correction and is basically a streaming protocol: a > packet in a sliding window could be NAK'ed, thus rewinding the > transfer, but otherwise it basically just sends data until done. > It's an analogue of TCP/IP, in fact. [-- Attachment #2: Type: text/html, Size: 1832 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-18 22:31 [TUHS] x/y/zmodem on Unix Paul Ruizendaal 2023-09-18 23:07 ` [TUHS] " Dan Cross @ 2023-09-19 2:46 ` Jonathan Gray 2023-09-19 3:42 ` Serge Burjak 1 sibling, 1 reply; 9+ messages in thread From: Jonathan Gray @ 2023-09-19 2:46 UTC (permalink / raw) To: Paul Ruizendaal; +Cc: tuhs On Tue, Sep 19, 2023 at 12:31:30AM +0200, Paul Ruizendaal wrote: > I had always associated x/y/zmodem with CP/M and MSDOS, not so much with Unix. Last December Clem already pointed out that it was popular for file exchange in the Unix scene as well, along with several other similar tools. Also, the ymodem approach to file metadata is very unix oriented, suggesting it originated on Unix or at least that Unix users were an important user demographic. Yet, I could find little trace of x/y/zmodem in the TUHS Unix Tree. The search tool finds it in 2.11BSD, in Minix 1.5 and 2.0 and in V10. Kermit is in those as well, and in 4.3BSD and 4.4BSD on top. have a look at tuhs/Applications/Shoppa_Tapes/usenix878889.tar.gz usenix87/Comm/ usenix89/Comm/ also appears in 386bsd/othersrc/public/zmodem-3.03/ where the license was changed to prohibit commercial use after the RLE changes in April 1989 https://www.ohse.de/uwe/software/lrzsz.html is derived from an earlier version with the license changed to GPLv2 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-19 2:46 ` Jonathan Gray @ 2023-09-19 3:42 ` Serge Burjak 2023-09-19 6:10 ` Serge Burjak 0 siblings, 1 reply; 9+ messages in thread From: Serge Burjak @ 2023-09-19 3:42 UTC (permalink / raw) To: Jonathan Gray; +Cc: Paul Ruizendaal, tuhs Chuck Forsberg wrote Zmodem as a sliding Window transfer protocol alternative to Kermit and superkermit. It was very high performance over slow links. He provided source code support for the protocol driver on the server and client end, in various versions. His client programs were Yam (yet another modem) and ProYam. You could shell out of the client, run other programs. Other client platforms supported parts of the protocol. Available as binaries and source when licenced. It had a scripting language and out of the box had the zmodem protocol which has the ability to send commands, resume transfers, traverse non 8 bit or unreliable links, remove or rename source file, deal with conflicting file names, synchronise folders and lots of other things. I have written many scripts to help dial up users into a unix box and download financial research data. Scripts still work across the internet. He made the code very portable, clean and I believe it is open source now. Chuck is no longer with us. SecureCRT ssh client from VanDyke.com still has native support. To send a file from the unix host, typically sz filename and it just arrives. Sz- u and it will remove the source file after successful transfer, plus lots of other options. The binary was typically linked so if you type sx it would try to do a transfer with xmodem, even though it's the same binary. Hope this helps. Serge On Tue, 19 Sept 2023 at 12:47, Jonathan Gray <jsg@jsg.id.au> wrote: > > On Tue, Sep 19, 2023 at 12:31:30AM +0200, Paul Ruizendaal wrote: > > I had always associated x/y/zmodem with CP/M and MSDOS, not so much with Unix. Last December Clem already pointed out that it was popular for file exchange in the Unix scene as well, along with several other similar tools. Also, the ymodem approach to file metadata is very unix oriented, suggesting it originated on Unix or at least that Unix users were an important user demographic. Yet, I could find little trace of x/y/zmodem in the TUHS Unix Tree. The search tool finds it in 2.11BSD, in Minix 1.5 and 2.0 and in V10. Kermit is in those as well, and in 4.3BSD and 4.4BSD on top. > > have a look at > tuhs/Applications/Shoppa_Tapes/usenix878889.tar.gz > usenix87/Comm/ > usenix89/Comm/ > > also appears in > 386bsd/othersrc/public/zmodem-3.03/ > where the license was changed to prohibit commercial use after > the RLE changes in April 1989 > > https://www.ohse.de/uwe/software/lrzsz.html > is derived from an earlier version with the license changed to GPLv2 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-19 3:42 ` Serge Burjak @ 2023-09-19 6:10 ` Serge Burjak 2023-09-19 6:37 ` Dave Horsfall 0 siblings, 1 reply; 9+ messages in thread From: Serge Burjak @ 2023-09-19 6:10 UTC (permalink / raw) To: Jonathan Gray; +Cc: Paul Ruizendaal, tuhs If anyone wants more zmodem/Chuck Forsberg history, a prolific usenet poster, here are news archives going back to 1994. It gives a good indication of his personality. I had been dealing with him for about 6 years by then... Still have the licence keys. https://groups.google.com/g/comp.protocols.misc/c/kjQ3HWqR2Ck/m/QVrdXdbsz1EJ Kermit discussion and comparisons, https://groups.google.com/g/comp.dcom.modems/c/GuEzWARpVQY/m/nZX5QdmY7xwJ On Tue, 19 Sept 2023 at 13:42, Serge Burjak <sburjak@systech.com.au> wrote: > > Chuck Forsberg wrote Zmodem as a sliding Window transfer protocol > alternative to Kermit and superkermit. It was very high performance > over slow links. He provided source code support for the protocol > driver on the server and client end, in various versions. His client > programs were Yam (yet another modem) and ProYam. You could shell out > of the client, run other programs. Other client platforms supported > parts of the protocol. Available as binaries and source when licenced. > It had a scripting language and out of the box had the zmodem protocol > which has the ability to send commands, resume transfers, traverse non > 8 bit or unreliable links, remove or rename source file, deal with > conflicting file names, synchronise folders and lots of other things. > I have written many scripts to help dial up users into a unix box and > download financial research data. Scripts still work across the > internet. He made the code very portable, clean and I believe it is > open source now. Chuck is no longer with us. > > SecureCRT ssh client from VanDyke.com still has native support. To > send a file from the unix host, typically sz filename and it just > arrives. Sz- u and it will remove the source file after successful > transfer, plus lots of other options. The binary was typically linked > so if you type sx it would try to do a transfer with xmodem, even > though it's the same binary. > > Hope this helps. > > Serge > > > On Tue, 19 Sept 2023 at 12:47, Jonathan Gray <jsg@jsg.id.au> wrote: > > > > On Tue, Sep 19, 2023 at 12:31:30AM +0200, Paul Ruizendaal wrote: > > > I had always associated x/y/zmodem with CP/M and MSDOS, not so much with Unix. Last December Clem already pointed out that it was popular for file exchange in the Unix scene as well, along with several other similar tools. Also, the ymodem approach to file metadata is very unix oriented, suggesting it originated on Unix or at least that Unix users were an important user demographic. Yet, I could find little trace of x/y/zmodem in the TUHS Unix Tree. The search tool finds it in 2.11BSD, in Minix 1.5 and 2.0 and in V10. Kermit is in those as well, and in 4.3BSD and 4.4BSD on top. > > > > have a look at > > tuhs/Applications/Shoppa_Tapes/usenix878889.tar.gz > > usenix87/Comm/ > > usenix89/Comm/ > > > > also appears in > > 386bsd/othersrc/public/zmodem-3.03/ > > where the license was changed to prohibit commercial use after > > the RLE changes in April 1989 > > > > https://www.ohse.de/uwe/software/lrzsz.html > > is derived from an earlier version with the license changed to GPLv2 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [TUHS] Re: x/y/zmodem on Unix 2023-09-19 6:10 ` Serge Burjak @ 2023-09-19 6:37 ` Dave Horsfall 0 siblings, 0 replies; 9+ messages in thread From: Dave Horsfall @ 2023-09-19 6:37 UTC (permalink / raw) To: The Eunuchs Hysterical Society On Tue, 19 Sep 2023, Serge Burjak wrote: > If anyone wants more zmodem/Chuck Forsberg history, a prolific usenet > poster, here are news archives going back to 1994. It gives a good > indication of his personality. I had been dealing with him for about 6 > years by then... Still have the licence keys. > > https://groups.google.com/g/comp.protocols.misc/c/kjQ3HWqR2Ck/m/QVrdXdbsz1EJ I remember him well; thanks! > Kermit discussion and comparisons, > https://groups.google.com/g/comp.dcom.modems/c/GuEzWARpVQY/m/nZX5QdmY7xwJ I was wondering when someone was going to mention Kermit... -- Dave, with a 1200/75 software modem at the time ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-09-19 9:48 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-09-18 22:31 [TUHS] x/y/zmodem on Unix Paul Ruizendaal 2023-09-18 23:07 ` [TUHS] " Dan Cross 2023-09-19 2:04 ` Theodore Ts'o 2023-09-19 9:47 ` Michael Stiller via TUHS 2023-09-19 3:58 ` John Cowan 2023-09-19 2:46 ` Jonathan Gray 2023-09-19 3:42 ` Serge Burjak 2023-09-19 6:10 ` Serge Burjak 2023-09-19 6:37 ` Dave Horsfall
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).