Hacker News new | ask | show | jobs
by stared 77 days ago
Filesystem is a tree - a particular, constrained graph. Advanced topics usually require a lot of interconnections.

Maybe it is why mind maps never spoke to me. I felt that a tree structure (or even - planar graphs) were not enough to cover any sufficiently complex topic.

2 comments

If it has hard or soft links, its a proper graph.
On Linux at least, hard links can't be made to directories, except for the magic . and .. links. So this only allows for a DAG.

Symbolic links can form a graph, and you can process them as needed using readlink etc. to traverse the graph, but they'll still be considered broken if they form a cycle.

Considered broken by what?
Historically, it made deletion rather difficult with some problematic edge-cases. You could unlink a directory and create an orphan cycle that would never be deleted. Combine that with race conditions on a multi-user systems, plus the indeterminate cost of cycle-detection, and it turns out to be a rather complex problem to solve properly, and banning hard-links is a very simple way to keep the problem tractable, and result in fast, robust and reliable filesystem operations.
GP was talking about symlink cycles though, which can't produce orphans during deletion.
True, I missed that. I suppose with symlinks you have the reverse problem: you can point to deleted filenames and then have broken links. The cycle detection is still an issue though--it has indeterminate complexity and the graph can be modified as you are traversing it!
As in, they'll appear highlighted as broken symlinks when running `ls` with colour enabled (or at least it's so on my system).
I guess technically you could do bind mounts but that's messy
That what i was thinking! Instead of Wiki links, use Symlinks (i guess windows would not like it?)
Isn't text a basic linear structure that can cover sufficiently complex topics ?
Yes. And precisely for this reason reading a dictionary is not a way of learning a language.