Hello,
Here is the start point of my reflexion :
http://lists.gnu.org/archive/html/l4-hurd/2006-04/msg00053.html
I believe that we can do extremely complex and reliable software with a few people, thanks to the powerful formal and design tools available now.
Moreover, I think that this OS has to support three key things to be able to survive ( an essential key to have a long term development ) : synergy ,transition & usability.
-The first one is the start of any important project : developers can have the possibility to share complex ideas with minimum requirements and to integrate them in a coherent environment. ( see http://www.gnu.org/software/hurd/ => 23 years old and even the goals are not well defined )
-The second feature provide any user the ability to develop on it with existing materials and to have the support of developers of legacy OS. ( see www.tunes.org => maybe too innovative and this : http://symbolx.org/ddf_news.html ).
-The third one needs that a device driver framework needs to be rapidly envisaged. ( again http://www.gnu.org/software/hurd/ => no good driver kit at this date, the same for linux : http://www.kroah.com/log/2006/05/24/, 15 years later ). Who wants to have an OS that boots only a black screen with a beep sound ? If we follow the Moore law, an OS design of the future would be thought for quadruple play ( mobility, audio, video, Internet ) and security of course.
Time is maybe our worst ennemy : more and more technologies are created day by day and we need to understand and to be able to use them And it's maybe our better friend : as the hardware/software becomes mor and more complex, the tools to develop them becomes more powerful too.
The tools developed to understand and create complex systems give us the ability to design and implement an OS design secure & reliable.
Here are my guidelines to start :
_ First : Users collaboration :_
_Second - Formal tools :_
Z method :
B-method :
http://en.wikipedia.org/wiki/B-Method
http://rodin-b-sharp.sourceforge.net/index.html
_Second - Software design :_
http://distributed-software.blogspot.com
_ Third - Language Designer's Toolkit :_
http://lambda-the-ultimate.org/node/1562
Abstraction will be the solution,
Best Regards,
Guillaume FORTAINE