Unix v6 Ported to ANSI C

  • There is a bug in the memmove() function from ulib.c:

        void*
        memmove(void *vdst, void *vsrc, int n)
        {
          char *dst, *src;
      
          dst = vdst;
          src = vsrc;
          while(n-- > 0)
            *dst++ = *src++;
          return vdst;
        }
    
    If the two blocks overlap, and the address of dst is greater than the address of src, then parts of the source will be overwritten before it can be copied.

  • I'm starting to suspect that Russ Cox is actually a team of people, all contributing under one name.

  • I pulled the repository and all of the code is very well documented, and easy to read. Really a great resource for learning OS internals.

  • I was under the impression that Minix was created and used for this kind of thing. Is there something about Minix that makes it unsuitable today's classrooms?

  • http://pdos.csail.mit.edu/6.828/schedule.html

    The project page gives this link to the schedule, where the lecture notes are supposed to be, but the link 404's.

    Is there a working URL for these lecture notes?

  • This is unspeakably great. I'm going to have to forward this on to my old OS professor. Really wish we had this when I took that class.

  • I encourage you to try out the 6.828 course material, especially the labs. It's one of the best OS courses. I had taken UCLA's CS 235 which is based on similar content [1]. Learned a lot from that.

    [1]: http://www.cs.ucla.edu/~kohler/class/10f-aos/

  • > Although the Unix v6 source may seem like an ideal introduction to operating systems engineering because of its simplicity, students doubted the relevance of an obsolete OS written in a now defunct dialect of C. In addition, students struggled to learn the details of two different architectures, the PDP-11 and x86, at the same time.

    Those students were MIT students. I'd expect MIT students to not have had a problem with either of these, so I'm a bit puzzled.

  • Compared to the OS course I've taken in Sweden this seems to cover more, but I can't find how many credits you get from it. It is scheduled from September to end of december, but is it full time during this period or do they take other courses at the same time?

    Edit: URL: http://pdos.csail.mit.edu/6.828/2011/index.html

  • Why not XINU? It's a great little kernel; already exhaustively documented (Lions' Commentary style) along with its TCP/IP stack.

    P.S. I still maintain a very HLL is ideal for presenting multi-processing/multi-tasking to students.

  • The info page says that xv6 was released in Fall 2006. What's new?

  • Yip yip yip yip yip yip yip. Good.