Software hostility pt. 2

So today I had an idea about figuring out what is what on my laptop and immediately I hit a brick wall: nothing on my computer has provenance. What do I mean by that? I mean there is no way to trace anything on the filesystem in a way that has semantic meaning. Linux can’t tell me where each file came from, why it is there, what other programs rely on that file, in what way they rely on that file, is the file a meaningful component in some other collection of files, and basically a million other questions that have no sensible answers.

To be honest I don’t even know where I’d begin to try to answer those questions. The relevant information simply doesn’t exist. I’d need to figure out a way to approximate the answers in some way or figure out a completely new way to interact with my computer that would track all those bits of information in a way that would be accessible to me and no one else because there are privacy implications associated with tracking enough data to answer those questions. So once again Linux has decided the best way to provide me computing facilities is to throw away as much information as possible. The best I could come up with was a combination of sqlite, find, file, and some Ruby scripts to index and munge the data into a format that I could then query with SQL. Of course this would only be a snapshot in time and if I wanted to come up with a complete solution I’d need to spend a year or two figuring out what parts of the kernel I’d need to hook into so that I could have ongoing indexing capabilities instead of just snapshots in time. I’ve been at this for almost a decade now and to answer some dumb questions about files on my computer I’d need to combine a bunch of disparate tools each of which requires years of study to use in any meaningful capacity. What hope does a beginner have of figuring out any of it? In short, it might as well be an impossible task.