Good paper. You guys give the impression of knowing the subject matter well. (If you don't, drop out now and become politicians; you'll do wonderfully). A few bits of constructive criticism: it might have been better to focus more on the compare/constrast aspects of the paper. You hit comparisons on page 8. You did a very good job of summarizing the features of the presented kernels. However it might have made a more interesting read if you had instead only highlighted a few salient points and discussed the relative merits of the different approaches. In addition, you might have spent a little bit more time touting the advantages of microkernels. Touching on more advantages of microkernels would have lent stronger support to your thesis. It was, as I have said, a good paper. It meets its goal as a survey of the given operating systems. I have no significant criticisms. A quick postscript on your noted lack of funds: As a judge, I'm experiencing a similar problem. No one has tried to bribe me yet. Perhaps next time instead of refereeing OSSurvey I'll join the International Olympic Committee. ====================================================================== BCH was easy to read. The structure and the parallels of the various sections made it easy to identify the key points and objectives. A little more detail could have turned some fluff comments into harder hitting statements. E.g., "This communication can be very costly, especially over a network." This reads as vague and intuitively obvious. More specific statements about bottlenecks, relative speeds of communications vs CPU, nature of message passing systems, etc., could have made this stronger. A notion was presented that microkernels are well suited to distributed processing. I would like to have seen the level of distributed processing addressed. Some questions are What sort of communications bandwidth is required? Are all machines in the network required to run the same OS? The conclusion is weak for three reasons. First, albeit amusing, "lack of funding" comments are generally unappreciated, whiney, and inappropriate. Second, it says in the paper you examined how the three solved distributed processing problems. While this is true to one interpretation of the notion of "Tell them what you're going to tell them; tell them; tell them what you told them," is usually better if certain key details are reiterated. For example, the comment that the strengths drew more from sound microkernel implementation was a good strong statement. Third, the shortcomings might be better earlier (if you must group them) or else split and handled individually. For example, the security and device I/O could have been mentioned as early as the introduction or in the problem area with a note that space does not permit full evaluation. The conclusion and consequently the paper really loses steam when it ends on the shortcomings. One comment that captured my attention was that "QNX scales down." This is a valuable point and something we often forget. As I look back at the paper, the other thing that really stands out is the abstract. It is tight, specific, and made me look forward to reading the paper. ====================================================================== You clearly described process management, interprocess communication, and memory management in the three microkernels; the way you discussed similar issues, such as scheduling, in each of the three systems, made the paper very understandable. However, the comparison of Mach and Chorus with QNX should have been more detailed and discussed further the advantages that were relevant to distributed systems. The lack of support for remote process management and in particular process migration did not support your thesis. I agree that microkernels provide enough flexibility for the implementation of distributed systems, but it seems that the overhead of user-level processes required for remote process management and scalability, for example, would be quite significant. It would have been nice to have performance data to support your arguments. A small detail was that the definition of a thread wasn't really necessary in the Process Management section of Mach. ====================================================================== I felt the quality of this paper was its strongest factor - it was well written and had a strong stucture. It was unfortunate that the 3 chosen O/S's did not show more diversity in their approaches, but perhaps that in and of itself is important (as was noted in the conclusion). A fact pointed out at the beginning of the paper was that Mach and Chorus were both research related OSs, while QNX was commercial. I would have liked to see some discussion of what impact that had - were any of the implementation decisions for QNX based on that? This would seem to fall nicely into the Comparisons section. ====================================================================== 1. The title sounds like Microkernels are being examined for suitability for Distributed systems. It is not clear what the authors are trying to argue. That Microkernels are suited over monolith approach? Bringing out microkernel aspects and mapping them to the needs of Dist systems seems like this is a new suggestion previously not thought of. But even books like ANdrew Tanenbaum 's Modern Operating Systems suggest that Distributed Systems can be implemented using 2 schools of thought - Monolithic or Microkernel approach. So this is not a radically new idea for research. It might have been a reasonable idea to view this approach against exsiting design principles of dist systems and bring out some advantages as well. 2. One important issue of flexibility in Dist systems has not been discussed. This is glaring specially when this is where microkernels win over monolithic approach and favours the authors' argument. 3. The observation/suggestion the authors have made is that of trying to implement process migration/remote process management This seems like a desirable feature to have in view of distributed computing and may warrant some investigation. They have also brought out salient points that will enble effectiveness in distributed systems. e.g. effective fault tolerance with control of user level processes. 4. The overall structure of the paper and the language is very clear and the points have been brought out in an explicit and manner. ====================================================================== This paper has a good flow, it is clean, concise, and it is very understandable. However, it should dig deeper in the comparison department and there should be more data to backup its claims. Finally, I would like to know why the authors choose not to cover security and device I/O management in this paper. ====================================================================== As a survey, this paper gives me a general idea about microkernel. It also presents several implementations of microkernel. The paper is well structured, and consistent in its format. It is easy to read. But I can not see strong argument that microkernels support distributed systems better. In fact, I think some system I learned from class is more elegant, like Sprite. ======================================================================