USBdev, usbfs, subfs, and Others

This topic was published by and viewed 2553 times since "". The last page revision was "".

Viewing 1 post (of 1 total)
  • Author

  • DevynCJohnson
    • Topics - 437
    • @devyncjohnson

    As seen in some of my previous articles, there are many kinds of virtual (pseudo) filesystems. Some have been deprecated, but such filesystems are still important to understand in instances where a user must perform some action with an old distro.

    usbfs - The USB FileSystem is a deprecated pseudofilesystem that typically mounted under /proc/bus/usb/. This filesystem is sometimes called "usbdevfs". When compiling older kernels (before version 3.4), the option that can enable USBFS is "CONFIG_USB_DEVICEFS". The poll() system call could watch USBFS and alert the kernel of new USB devices plugged into the system. SYSFS has taken over the job of USBFS under /sys/bus/usb/. If using an older kernel with USBFS enabled, use this command to mount the virtual filesystem - mount -t usbfs none /proc/bus/usb -o devmode=0666

    NOTE: If you want a way to check your USB controllers, try looking at the output of "dmesg" and "lsusb".

    subfs - The SUBmount FileSystem is a buggy deprecated virtual filesystem commonly seen in v2.6 kernels for SUSE Linux. This filesystem was intended to be a way for hotplugging removable storage like USB cards and optical disks. Thankfully, the newer kernels offer alternate and better ways of automounting such storage. Subfs could mount filesystems under any directory. These subfilesystems (as they were called) had their own root. Subfs is still being used by some users who can still find a use for subfs (

    egfs - The ErlanG FileSystem is a GoogleFS-like filesystem that is written using the Erlang programming language. The developers' goal is to make a filesystem with "high scalability and reliability".

    nullfs - This filesystem deletes any file that is written to it. This is like turning /dev/null/ into its own filesystem. Again, this is another filesystem that is seldomly used (except in *BSD systems).

    kernfs - The KERNel FileSystem is a rarely used virtual filesystem since ProcFS already performs all of the tasks kernfs can accomplish. However, when in use in newer Linux kernels, it is mounted under /kern/. This pseudo filesystem is more common in *BSD systems.

    ptyfs - The Pseudo-Terminal FileSystem is a virtual filesystem more commonly seen in *BSD systems, but also on some Linux servers. This filesystem hosts PTYs.

    OperaFS - The Opera FileSystem is the one used by the 3DO gaming console developed by "The-3DO-Company" and manufactured by Panasonic. Linux also supports this filesystem for 3DO CD-Roms via a special module (

    genfs - The GENeric FileSYstem is a helper filesystem. This means it only implements functions common to many filesystems.

    Again, even though you may never see such filesystems, it is still interesting to know about them. Plus, what if you do happen to see or use one?

    Further Reading

Viewing 1 post (of 1 total)