Which nix is good for academic purpose
Hi,
I have operating system course next semester. I wanted to cover some unix like operating system(kernel level) for getting practical experience too. I have good command on C and assembly(AT &T). However I was confused which *nix to choose for this purpose. After some research I found these good options: 1.MINIX 2.Linux kernel 3.FreeBSD Kindly suggest which one will suit most for me. Also if you have other options in mind do suggest those too. Following are important factors which might help in decision: 1.Ease of understanding. 2.Future use for me. 3.Some possibility of adding some code from my side to experiment with. Thanks in advance! I hope this is correct forum to post in. |
Minix isn't really a serious option anymore, linux or bsd are your better options, that being said linux is in more common use, bsd has a more flexible license.
Edit: It's also worth noting that in the bsd/linux arena you have to choose distribution also. Based on the criteria you specified I would suggest linux-- perhaps ubuntu or fedora for desktop (deb or rpm respectively as package source) or for server debian or centos (deb or rpm). I would try on your desktop first and go the Ubuntu route. YMMV. |
NetBSD
|
Quote:
Yes its true even I don't see any future use for Minix. As far as linux distro goes I am sticking with slackware for some time(got introduced to it in this forum :)). However I am more interested in knowing about kernel level programming rather than system administration or configuration, like working/implementation of process scheduler, different file system implementation etc. Thus I think all linux distro runs same or variation of linux kernel. Its the kernel I want to learn about. Still thanks for your kind reply. |
Quote:
Can you kindly give some reasons why? Like how it suits my need. Frankly I am quite unacquainted with NetBSD. |
NetBSD has elegant, portable code which you can learn from.
|
Quote:
|
Quote:
|
Quote:
But couldn't understand it. So then should I use it for study? Obviously understanding is my greater priority then the future. However it should be at least in line with the other major players(like linux) so that I can switch them to afterward. |
There are significant architectural differences between Minix and Linux that have led to the exchange of heated words. Minix is a micro kernel and pushes as much as it can into user space, whilst Linux is a monolithic kernel which, well, includes much more in the kernel ;).
Which is best for you? First you could ask your instructor. Do you know which text you will be using? Minix is used a lot in education to explain the concepts of the operating system. Typically the version used is Minix 1 (For which the text book Operating Systems: Design and Implementation by Andrew Tanenbaum was written) Minix is now on version 3 and is targeting embedded systems and applications requiring high reliability. Which may explain to you the slightly cynical comment from fruttenboel, it is very good. |
All of them are good to study.
|
Quote:
|
Quote:
Quote:
Quote:
|
Quote:
|
argument for using Linux
I would recommend using Linux because Understanding the Linux Kernel, third edition, by Bovet and Cesati is a currently available text that was actually developed from the curriculum of an operating system course. However, if I were planning such a course I might use it as a secondary text, with some other text that covers operating systems in a more general and generic way as the primary material.
(EDIT follows) Maybe Minix would be a better choice because Tannenbaum created it specifically for educational purposes, and because it is intentionally a minimalist design, which would be easier to cover in the limited time available in a school term. Despite rumors to the contrary, Minix is not actually dead. I also cannot ignore any recommendations by posixculprit. Admitting my own ignorance of BSD, and seeing how many parts of Linux are not actually as easily followed as I would like, I would not dismiss his assertion that the BSD source is clear and elegant. |
All times are GMT -5. The time now is 02:46 AM. |