On 28 February 2012 20:51, Niklas Larsson <metanik...@gmail.com> wrote: > > But Linux contains much more duplication than drivers only, it > supports many filesystems, many networking protocols, and many > architectures of which only a few of each are are widely used. It also > contains a lot of complicated optimizations of operations that would > be unwanted in a simple, transparent OS.
Absolutely. And many of these cannot be removed, because otherwise you cannot interoperate with the systems that use them. (A similar argument can be made for hardware if you want your OS to be widely usable, but the software argument is rather more difficult to avoid.) > Let's put a number on that: the first public > release of Linux, 0.01, contains 5929 lines i C-files and 2484 in > header files. I'm sure that is far closer to what a minimal viable OS > is than what current Linux is. I'm not sure that counts as "viable". A portable system will always have to cope with a wide range of hardware. Alan has already pointed to a solution to this: devices that come with their own drivers. At the very least, it's not unreasonable to assume something like the old Windows model, where drivers are installed with the device, rather than shipped with the OS. So that percentage of code can indeed be removed. More troublingly, an interoperable system will always have to cope with a wide range of file formats, network protocols &c. As FoNC has demonstrated with TCP/IP, implementations of these sometimes made much smaller, but many formats and protocols will not be susceptible to reimplementation, for technical, legal or simple lack of interest. As far as redundancy in the Linux model, then, one is left with those parts of the system that can either be implemented with less code (hopefully, a lot of it), or where there is already duplication (e.g. schedulers). Unfortunately again, one person's "little-used architecture" is another's bread and butter (and since old architectures are purged from Linux, it's a reasonable bet that there are significant numbers of users of each supported architecture), and one person's "complicated optimization" is another's essential performance boost. It's precisely due to heavy optimization of the kernel and libc that the basic UNIX programming model has remained stable for so long in Linux, while still delivering the performance of advanced hardware undreamed-of when UNIX was designed. -- http://rrt.sc3d.org _______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc