DAPFS(8)

πŸ“¦ version 2.65build2, in ubuntu jammy

πŸ’– DAPFS(8) β€” like, the manual page, but make it make sense πŸ’–

bestie welcome to mount.dapfs ✨ β€” this is from the System Manager's Manual section of your friendly neighborhood man setup, and it's about mounting a DAP filesystem over DECnet. Yes. We're doing retro networking today. Sit down, hydrate, let's go 🫢


🌸 NAME 🌸

mount.dapfs β€” mount a DAP filesystem over DECnet πŸ’…


✨ SYNOPSIS ✨

mount.dapfs <node> <mount-point> [-o options] [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so first things first: this tool is part of the DECnet programs suite (aka dnprogs), so if you're wondering where it came from β€” that's the tea β˜•

mount.dapfs mounts a DAP filesystem sitting on (probably) a VMS server, and makes it show up as a directory on your Linux system. It's literally the thing that gets called by the mount command when you use the -t dapfs switch, so you usually don't even invoke it by hand. And under the hood? dapfs uses FUSE β€” you know, FUSE (Filesystem in USEr space) β€” the little guy that lets filesystems live in userspace, iconic behavior honestly πŸ‘‘

The node name you hand over must exist in /etc/decnet.conf, or it can just be a node address. Either works, no stress.

And if you give it no options at all? It'll connect using a default DECnet account on the remote server. Chill. Low effort. Respect πŸ“


πŸ’… OPTIONS πŸ’…

  • username= β€” tells dapfs to use this username for the connection. Slay, identify yourself.
  • password= β€” tells dapfs to use this password for the connection. (Yes it goes in the command line, we'll talk about that in a sec, don't @ me πŸ™ˆ)
  • block β€” tells dapfs to return data using block mode rather than record mode. This hands you the whole internal file structure β€” so, for example, with sequential files you could get odd line endings exactly where the record separators live. It's most useful for reading binary data. Binary besties, this one's for you πŸ”₯
  • record β€” read data using record mode. This is the default, so if you do nothing, this is what you get. Main character energy by default, periodt.

🌈 EXAMPLES 🌈

Mounting the default DECnet account on node ZARQON onto the Linux filesystem /mnt/vax:

# mount -tdapfs zarqon /mnt/vax

Mounting the home directory for the user SYSTEM on node ALPHA1, using the password "field", on /mnt/alpha:

# mount -tdapfs alpha1 /mnt/alpha -ousername=SYSTEM,password=field

πŸ’€ CAVEATS πŸ’€

okay bestie this is the part where we get real, because there are some genuinely odd things that will happen and I need you to not be surprised 😭

All files are accessed by record, and this can cause some odd effects if you are not expecting them. The file size shown by VMS includes the record overhead of RMS, but dapfs shows only the record contents. So any utility that grabs the file size (using stat) and then reads that many bytes into a buffer is going to end up with a file padded with zeros. And, like, there's not much that can be done about this. Later versions of dapfs might include an option to disable record access, but honestly that's thought to be less useful, because it would have to be filesystem-wide. So. Yeah. That's the situation 🫠

Also β€” seeking doesn't work unless you have a remote server that supports STREAM access to files (and currently VMS 7.x seems not to). Which means some utilities β€” unzip being the classic example β€” will simply not work, because they try to seek inside the file looking for data. No seeking, no unzipping. It's giving "we tried" πŸ’€

fr fr, if a tool is being weird about file sizes or refusing to run because it can't seek β€” this is why. Not you. Not your setup. It's the records.

πŸ‘‘ SEE ALSO πŸ‘‘

decnet.proxy(5), dnetd(8), dnetd.conf(5), dntype(1), dndir(1), dndel(1), dntask(1), dnsubmit(1), dnprint(1)


and that's the whole page, bestie πŸŽ€ this one came out of the DECnet utilities corner of the world, dated April 2 2008, and it's filed under DAPFS(8). go mount something weird over DECnet, you absolute legend πŸŒŸπŸ’œ

πŸ“¦ where this page comes from