Rick,

There is a lot to digest here, but give me time.

Regards,

Paul

On Sat, 26 Aug 2017, Rick Troth wrote:

Date: Sat, 26 Aug 2017 14:34:36 -0400
From: Rick Troth <r...@casita.net>
To: Paul Flint <fl...@flint.com>
Cc: Dave Jones <djo...@itconline.com>,
    Linux on S/390 discussion <LINUX-390@vm.marist.edu>
Subject: CMS FS driver - the old one

The current FS driver for /mounting/ CMS minidisks to Linux is
cmsfs-fuse. This note describes the old one. The only advantage to the
old driver is that it was wholly kernel space. FUSE is common for a lot
of filesystems these days, ostensibly isolating the riskier logic from
kernel space.


On 08/25/2017 07:58 AM, Paul Flint wrote:
From your 2000 github:

        'cmsfsvol' ---- report on a CMS volume in CMS 'Q DISK' format
        'cmsfslst' ---- list CMS files in CMS 'LISTFILE' format
        'cmsfscat' ---- conCATenate one or more CMS files to stdout
        'cmsfsck' ----- filesystem check for CMS vols (aka: fsck.cmsfs)
        'cmsfscp' ----- copy CMS files, preserving time stamps
        libcmsfs.a ---- "archive" library for user space (utility) mode
        cmsfs.o ------- the FS driver, for 'mount -t cms' to work

It was 2000 or 2001 and the Boeblingen port had just been unleashed.
Naturally, VM/ESA was the likely mode for running Linux on S/390.
(You'll note that this was before they named it "z/VM".) So it made
sense to have some means of reading files from CMS minidisks when
running Linux on VM/ESA.

I found the EDF specification publicly available. Alan Altmark confirmed
that one could in fact legally use that specification for building
unencumbered software inventions. My employer agreed to releasing our
CMS FS package as a FOSS contribution. So for several weeks I got to
write public code while pulling down a normal paycheck. Fun!!

Most of the routines comprising libcmsfs.a are used by both the utility
and by the driver. The utility persists. The driver fell behind as the
kernel changed out from under it. Note: it's an FS driver, not a device
driver. Subtle difference. Alan Cox, then heir apparent to Linus, gave
me a lot of help.

The first Boeblingen release that I saw was 2.2.13. The ABI changed for
2.2.14 and to my knowledge has been forward compatible since then. But
the VFS layer in the kernel changed between 2.2.x and 2.4.x. After a
couple releases of the 2.4 kernel, my CMS FS driver just didn't work
anymore. I didn't have time to maintain it. (My employer at that time
was not in the same business as, e.g., SUSE.)

The name "cmsfs.o" is a hint. Kernel modules have been named ".ko" for a
long long time now. If I didn't know the history of that file, I'd think
it was simply an intermediate object for some userland program. It's not.

With the old driver or the new, you can ...

   mount -r /dev/dasdr /mnt
   cat /mnt/goflint.sh | sh


With the new (FUSE) driver you can alternatively mount R/W. With either,
you hope that SH files are translated EBCDIC to ASCII.

With the utility, you can ...

   cmsfscat -d /dev/dasdr -a goflint.sh | sh


The "-a" says explicitly translate E/A.

Capisce?


-- R; <><





Kindest Regards,



☮ Paul Flint
(802) 479-2360 Home
(802) 595-9365 Cell

/************************************
Based upon email reliability concerns,
please send an acknowledgement in response to this note.

Paul Flint
17 Averill Street
Barre, VT
05641

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390
----------------------------------------------------------------------
For more information on Linux on System z, visit
http://wiki.linuxvm.org/

Reply via email to