Main Page

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search

Welcome to the explain xkcd wiki!
We have an explanation for all 2530 xkcd comics, and only 34 (1%) are incomplete. Help us finish them!

Latest comic

Go to this comic explanation

Dark Arts
You think, 'okay, THIS is an ideal use case for hardlinks!' but then 6 months later you're doing some extremely cursed Google search like 'javascript ext4' and wondering where things went wrong.
Title text: You think, 'okay, THIS is an ideal use case for hardlinks!' but then 6 months later you're doing some extremely cursed Google search like 'javascript ext4' and wondering where things went wrong.


Ambox notice.png This explanation may be incomplete or incorrect: Created by a V8-BASED EXT4 FUSE DRIVER - Please change this comment when editing this page. Do NOT delete this tag too soon.

White Hat has presumably just asked Cueball to perform some task involving filesystems. Cueball responds with an exceptionally melodramatic monologue, referring to the subject as "dark arts" and stating he'd rather not have anything to do with them. This is reminiscent of a fairly typical scene in e.g. superhero movies: a person with supernatural powers explains they prefer not to use them, as their use is likely to have negative effects that outweigh the positive ones. Often this is tied to a tragic backstory of the character, where the use of their powers previously caused them or someone close to them much suffering.

The humor of the comic comes from the parallel drawn; it seems unlikely that knowledge of filesystems could have negative consequences on the scale of, say, leveling a city, so the comparison is hyperbolic. This joke is in a similar vein to comics like 349: Success, in which Cueball's relationship with technology is shown to have a potential for disaster far exceeding that of a normal person's.

A filesystem is the part of a computer's operating system that handles the organization of data in persistent storage, usually splitting it into files and directories. It can be a very complicated piece of software. Because of this, it is easy to make mistakes in advanced usage, and because it controls practically all data on a given machine, mistakes made can have serious consequences (e.g., loss of data). These properties of filesystems are likely why Cueball is reluctant to mess with them.

ext4 is a popular filesystem used with the Linux operating system kernel.

Hardlinks allow two filenames to refer to the same underlying file or directory. These can be particularly tricky to use, as in nearly all respects they look like regular files, but modifying them can have effects that are not immediately obvious (e.g., changing what one filename refers to, the other will not remain consistent). Hardlinks and their misuse have been referenced in xkcd before, as in 981: Porn Folder.

The title text hints at an experience Cueball or Randall had (his own "tragic backstory", if you will), involving hardlinks on ext4. He thought he had found an ideal use case for them, one which presumably avoided most of their pitfalls, but still, six months later, ended up having to troubleshoot some inscrutable bug arising from his decision.

Javascript is a programming language most often associated with web pages. As such it is not usually interacting directly with a computer's filesystem, since allowing arbitrary websites to access the filesystem is widely considered an extremely bad idea[citation needed]. It is possible to run Javascript directly outside of a browser – in which case it does have access to common filesystem operations, and even theoretically to the internals of the filesystem – but since it is a high-level language with poor support for working with the data structures a filesystem uses, this would be a painful, "cursed" way to go about things.

A senior IT professional (nowadays fewer people need to know about such features) will be reminded of their own experiences and mishaps with non-trivial file system configurations. Beyond hardlinks, filesystems may have a number of features a normal user or even an admin are not aware of. Such features are prone to bugs, poor documentation, or poor integration with other system tools. For example:

  • Symbolic links (soft links) - one file links to another using its name. While symbolic links work "everywhere," hardlinks are generally limited.
  • Compressed filesystems can cause unexpected side effects in performance, quota management, and disk fragmentation.
  • Sparse files and shallow copies (copy on demand).
  • Live filesystem backup and file locking.
  • Read-only filesystems.
  • 'Virtual' filesystems, like memory-backed and file-backed file systems, backed by dynamic data or databases.
  • 'Overlay' file systems where a read-only portion is overlaid and partially shadowed by another file system.
  • File caching for read or write operation.
  • Syncing file systems.
  • Many, many more.

"In another age" might refer to the fact that detailed file system manipulations were common in the days when developers were installing, configuring and managing operating systems and software on physical servers. When disk space was limited and network speeds were low such manipulations were space and time savers. Virtualization, containerization and deployment frameworks isolate developers and administrators from such low level details.


[Cueball and White Hat stand in a slightly darkened room, with a jagged circle of light centered on Cueball and light-reflecting onto White Hat's face. Cueball holds his arm out with his palm facing towards White Hat.]
Cueball: Long ago, in another age, I mastered these dark arts.
Cueball: But I now endeavor to live my life such that I never need them.
Cueball: Their power leads only to ruin.
[Caption below panel]
My response whenever anyone asks me to mess around with filesystems

Is this out of date? Clicking here will fix that.

New here?

Last 7 days (Top 10)

Lots of people contribute to make this wiki a success. Many of the recent contributors, listed above, have just joined. You can do it too! Create your account here.

You can read a brief introduction about this wiki at explain xkcd. Feel free to sign up for an account and contribute to the wiki! We need explanations for comics, characters, themes and everything in between. If it is referenced in an xkcd web comic, it should be here.

  • There are incomplete explanations listed here. Feel free to help out by expanding them!
  • We sell advertising space to pay for our server costs. To learn more, go here.


Don't be a jerk.

There are a lot of comics that don't have set-in-stone explanations; feel free to put multiple interpretations in the wiki page for each comic.

If you want to talk about a specific comic, use its discussion page.

Please only submit material directly related to (and helping everyone better understand) xkcd... and of course only submit material that can legally be posted (and freely edited). Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.

If you need assistance from an admin, post a message to the Admin requests board.