Is Spotlight a filesystem-level addition or a userland process that indexes files as they change? If it's the latter, I'm not so sure it's worth it for my organized self...
Is Spotlight a filesystem-level addition or a userland process that indexes files as they change? If it's the latter, I'm not so sure it's worth it for my organized self...
i'm going to take a little guess here and there but someone could correct me if i'm wrong..
it's a userland application daemon that recieves an event if a file on the filesystem changes. spotlight grabs said file information, if there's a plugin to handle said filetype, data is fed through plugin, and input into a database... you click spotlight icon, type search, database is accessed.
By slow, I meant it's slower than it "could be." If it were in-kernel or even built into the filesystem (the way ext3 is ext2 with journalling added), it would be much faster.
By slow, I meant it's slower than it "could be." If it were in-kernel or even built into the filesystem (the way ext3 is ext2 with journalling added), it would be much faster.
By slow, I meant it's slower than it "could be." If it were in-kernel or even built into the filesystem (the way ext3 is ext2 with journalling added), it would be much faster.
This simply is not true! Kernel code does not run faster than non-kernel code. The hooks in the filesystem to detect when new files are created and existing files are modified are in the filesystem (which is not in the kernel, but in a VFS plugin). The dameon is in userland and gets called by the VFS HFS+ plugin.
This is a better solution than a hard coded kernel component as it is more secure (if there is a security problem with the Spotlight indexer it cannot compromise the kernel), is more stable (if the indexer hangs or crashes it does not take out the whole machine) and is extensible which is very important (so your favourite developers can expose their proprietary files to the indexer). The second and third points go hand in hand as if this was running as part of the kernel process then any developer could have code running as the kernel process simply by providing a meta-data importer!