FAL(8)

๐Ÿ“ฆ version 2.65build2, in ubuntu jammy

๐ŸŒธ FAL(8) โ€” the File Access Listener for DECnet, bestie ๐Ÿ’–

okay so picture this: it's FAL(8), it lives in the System Manager's Manual, and it's literally the girl who opens the door when your OpenVMS friends come knocking. let's get into it ๐Ÿซถ


โœจ NAME โœจ

fal โ€” the File Access Listener for DECnet. that's her. that's the whole vibe. ๐Ÿ’…


โœจ SYNOPSIS โœจ

fal [options]
Options:
[-dvVhmt] [-l logtype] [-a auto-type] [-f <auto-file>] [-r <virtual-root>]

no cap, that's the entire summoning ritual ๐Ÿ”ฎ


โœจ DESCRIPTION โœจ

fal is a daemon, and her whole job is serving up incoming DAP (Data Access protocol) connections from remote systems. she makes transparent file access happen for files on OpenVMS machines using standard DECnet syntax. main character energy, honestly. ๐Ÿ‘‘

she should be started at system boot time โ€” and specifically after DECnet has been started โ€” and she must be run as root. yes bestie, root. no shortcuts. ๐Ÿ™ˆ

here's the cute part: the file names fal spits out adapt based on the syntax of whatever was requested of her. โœจ

  • ask for VMS-style filenames โ†’ you get VMS-style filenames back.
  • ask for Unix-style filenames โ†’ you get Unix-style (native) filenames back.
heads up though: to force fal to show you a directory's contents with Unix-style names, the name must end in a slash or have some form of wildcard character in it. otherwise she's gonna do her own thing. ๐Ÿ’€

when she's returning VMS-style filenames, here's the transformation, and it's giving makeover montage:

  • every name gets converted to UPPER CASE
  • directories get .DIR appended to them
  • every filename gets a version number of 1

on top of that, fal will construct a volume and directory syntax for the directory that'll look super familiar to VMS users. and yes, of course she also understands that syntax when files and directories are requested of her. ๐Ÿงš

now, the messy bit, and I need you to hear me: one of the problems with all this is that Unix filenames with non-VMS syntax โ€” think double dots or "funny" characters โ€” or files with uppercase letters in their names will not be accessible from VMS using VMS syntax. you must use Unix syntax to access these files through FAL. that's the rule, periodt. ๐ŸŽ€

the options below affect the behaviour of fal. if you're using dnetd then these options should be specified in the dnetd.conf(5) file. โœ๏ธ

and by default, all files sent by fal will be sent in STREAMLF format. this is configurable by the many command-line switches detailed below. slay. ๐Ÿ’–


โœจ OPTIONS โœจ

  • -l โ€” set logging options. the following are available:
    • -lm โ€” log to /dev/mono. (only useful if you have my mono monitor driver or mdacon and a second monitor ๐Ÿ‘€)
    • -le โ€” log to stderr. use this for debugging or testing combined with -d.
    • -ls โ€” log to syslog(3). this is the default if no options are given. โญ
  • -a โ€” set the algorithm for automatically selecting file types.
    • -ag โ€” guess file type based on the first few bytes ๐Ÿ”
    • -ae โ€” check file extension against a table ๐Ÿ“‹

by default all files will be sent/received as STREAMLF. (no notes, that's just the default ๐Ÿ’…)

  • -f <filename> โ€” specify the filename used to check file extensions. only valid with -ae. the format of the file is simple:
extension  <b/r> <block size>.

in fact, r is more of a comment than an instruction, but it may be used in future to support proper variable-length record files. ๐Ÿ‘€

by default an internal table is used with some common file extensions. it is as follows:

 #Generic types
 .txt  r
 .c    r
 .cc   r
 .log  r
 .html r
 # VMS types
 .com  r
 .lis  r
 .bck  b 32256
 .save b 8192
 .exe  b 512
 .zip  b 512
 #Linux types
 .tar  b 10240
 .gz   b 512
 .tgz  b 512
 .bz2  b 512
 # End of file
  • -u โ€” enable users to override the two above options with a .fal_auto file in her/his home directory. this file should contain a single word: guess, ext or none. note that -u and a .fal_auto file takes effect even if no -a option is present. wild, I know. ๐Ÿ˜ญ
  • -m โ€” use the meta-file directory (normally named .fal) to store file attributes. metafiles will override any guessed or checked file attributes. ๐Ÿ’…
  • -t โ€” instruct FAL to look for .$ADF$ files created by the NFS Client in TCP/IP for VMS V5.0+ and use them to get file attributes. this option can be used with the -m and -a flags, in which case a .$ADF$ takes precedence over a fal metafile or a guessed file type. ๐Ÿ‘‘
  • -r <virtual root> โ€” run FAL in a "virtual root". all file accesses will be done below this directory rather than the normal root filesystem. ie access for "/" or SYSDISK:[000000] will start at the specified directory. requests for ".." will be refused. ๐Ÿšซ
NOTE: this is not a chroot, fal still runs in the normal filesystem. also note that this will lose the ability to access users' home directories: all users doing a DIR LINUX::*.* from VMS will see the virtual root instead. ๐Ÿ˜ญ
  • -d โ€” don't fork and run in the background. use this for debugging. ๐Ÿ›
  • -v โ€” verbose. the more of these there are, the more verbose fal will be. don't use more than one for normal operation because it will seriously impair performance. fr fr, one is plenty. ๐Ÿ’€
  • -h, -? โ€” displays help for using the command. ๐Ÿซถ
  • -V โ€” show the version of fal. โœจ

โœจ SEE ALSO โœจ

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

go read the whole friend group, they're all iconic ๐ŸŒˆ


and that's the page bestie!! this little legend comes to you from the DECnet utilities, dated May 6 1999 โ€” yes she's a vintage queen and she's still serving ๐Ÿ‘‘๐Ÿ’– no cap, periodt, mwah ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from