1

I have been taking online courses on Operating systems, and I heard them say, that XV6 operating system can be used learn implementation of operating systems, thats all.But after I searched on the internet there aren't enough resources, which would get me started with it. My question is, why should I use it,and how will it help me in understanding operating system. (Please be gentle with information you throw at me, I am a newbie :( )

Any effort is appreciated

Sadaf Shafi
  • 1,016
  • 11
  • 27
  • 1
    Funny I have its link open from another question few days ago. It seems like an educational version of linux made by MIT and used for their courses. https://pdos.csail.mit.edu/6.828/2019/xv6.html – Eraklon Feb 16 '20 at 08:16
  • It has nothing to do with Linux, apart from toolchain, perhaps. The best way to understand how those things are useful in teaching/learning is to read the classic book by A. Tanenbaum: https://en.wikipedia.org/wiki/Operating_Systems:_Design_and_Implementation – oakad Feb 16 '20 at 08:22
  • @Eraklon It's not a version of Linux but a Unix clone (not directly a descendant of Unix either unlike BSD or Mac OSX) – slebetman Feb 16 '20 at 08:23

2 Answers2

4

There are only 2 possibilities:

  • too complex to be useful for teaching

  • too simple to be useful for teaching

Things like fancy features/enhanced functionality, mitigating security issues, dealing with hardware bugs/errata, performance, scalability and supporting a very wide range of different hardware all increase the complexity of the code; and if you look at a real commercial OS (e.g. Linux maybe) that has to care about all of these things it's hard to learn about one thing (e.g. memory management) without all the complexity getting in the way and making it significantly harder to learn.

If you have a simple OS that does none of those things (no fancy features, no mitigation of security issues, ...) then it's much much easier to learn basic principles from it; but it also becomes impossible to use it to learn about fancy features, mitigating security issues, dealing with hardware bugs/errata, ...

The solution is to start with a simple OS (e.g. XV6) to learn the basics, then switch to a real OS later to learn everything else.

However; most OS courses at Universities are not intended to teach you about writing an OS. Instead they're intended to give you basic information about operating systems so that you can use that knowledge when writing application programs for existing operating systems. For that reason (and because there's time constraints) they only do the first part (with a simple OS like XV6) and then the course finishes.

steph
  • 55
  • 9
Brendan
  • 35,656
  • 2
  • 39
  • 66
1

1.XV6 is used for teaching in many universities.

2.It's also a tool OS for many program

  • 2
    Please note that the question you answered already has one accepted answer, both of them being 4 years old and your answer doesn't really add anything new. StackOverflow works best, if answers actually provide some insight to the person asking the question or anyone else with the same problem. Please try to keep this in mind in future posts which you are very welcome to do. Oh, and a warm welcome to StackOverflow. – Bodo Thiesen Oct 20 '20 at 12:57