4 of 18 added 6 characters in body

See the reference script etc/rc.d/rc.0 in the old SysVinit-2.4.tar.z / SysVinit-2.4.tar.gz.

#! /bin/sh
#
# brc       This file is executed by init(8) when the system is being
#       shutdown (i.e. set to run at level 0).  It usually takes
#       care of un-mounting al unneeded file systems.
#
# Version:  @(#)/etc/brc        2.01    02/17/93
#
# Authors:  Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
#

  PATH=/bin:/etc:/usr/bin
  echo Unmounting file systems.....
  umount -a
  echo Done.

The special case in the kernel allowed this script, simply unmounting all filesystems in reverse order, finishing with the root filesystem.

umount -a is not ideal on modern systems. E.g. it is simpler to leave a /proc filesystem mounted so that /proc/mounts can still be used. And /dev is usually a separate mounted filesystem, which will show an unmount error because /dev/console is still open.

The old script contrasts with current scripts for SysVinit, for example in Debian. /etc/init.d/umount_root explicitly remounts / as readonly. The rest of the mounts are processed individually, by /etc/init.d/umountfs and /etc/init.d/umountnfs.sh.