Re-posting discussion with Frank:
- I am wondering how much performance penalty there is in the HiStar
system (e.g. ClamAV performance) as compared to Linux? I believe of the
primary requirements for most widely used kernels is that they have to be
fast -- being too slow could be a hamper to widespread adoption, no matter
how good it is.
The original HiStar paper has several benchmarks. I can give you the
details of the microbenchmarks, but I think it's easier to just checkout
The take-away on application performance (wget and virus scanner) is
that HiStar is comparable with OpenBSD, both of which are only slightly
slower than Linux.
- HiStar seems to do a lot more work in maintaining the single level
store than most other operating systems by maintaining a single-level
store. Would programs have to be rewritten to accomodate for this? How
similar is this to the hibernate functionality on modern OSes and what
happens if I do a hard reset on the OS?
HiStar provides a POSIX(-mostly) implementation, so you don't have to
rewrite apps to accommodate for this (although an fsync is quite a bit
more costly, so you may want to). The kernel periodically checkpoints the
system, storing all objects on disk so it is similar to hibernation, but
more powerful: if your system crashes you can get back to the previous
checkpoint.
You can't do a hard rest, so certain things are a bit more annoying to
deal with.
- Finally, would it be possible to implement Linux or add on to other
existing kernels in such a way as to use HiStar (or HiStar-like mechanisms)
in untrusted code while allowing other programs (e.g. ls, X client
programs, etc...) to run with no modifications. In other words, can we
implement HiStar in a Capsicum manner?
Yes. Actually,
Flume implements IFC on top of Linux.