In Genode, it is common practice to separate everything into small modular components, especially when dealing with untrusted data. How far can we go with this before running into performance or memory issues?
For example, a file manager would benefit from content-based file type identification. However, identifying files within the file manager (e.g. using libmagic) could pose a security risk. However, using a discrete component for this could have a noticeable effect on performance. If we use a single component instance for all of the files, the only significant added overhead would be from IPC, AFAIK. This seems to be acceptable in terms of performance, but a malicious file may be able to cause the component to misidentify other files in the directory, which could be a security risk. A more secure method would be to run an instance of the component for each individual file in the directory. However, this may substantially reduce performance for large directories, depending on the overhead of component creation. Would performance be an issue here? (And am I overestimating the risk of file misidentification?)
Similar cases include icon/thumbnail rendering, general-purpose image loading, and text rendering from many different sources. Would there be any notable differences for these?