Hacker News new | ask | show | jobs
History of the Plan 9 kernel (1990 – 2003) (github.com)
86 points by 0intro 2721 days ago
2 comments

Pretty interesting. They use nil pointers everywhere, but also mention a NULL pointer:

    pc/ether82557.c:        NullPointer     = 0xFFFFFFFF,   /* 82557 NULL pointer */

Or qget():

    /*                                                                              
     *  get next block from a queue, return null if nothing there                   
     */

        if(b == nil){
                q->state |= Qstarve;
                iunlock(q);
                return nil;
        }
So null and nil pointers.

It was always interesting to me; there were null-terminated strings and null-bytes [0], but nil pointers. And then, occasionally, null and NULL pointers.

[0] https://www.unix.com/man-page/plan9/2/strcat/

-ss

The all-ones Null Pointer are part of the software interface of the 82557 ethernet controller.

https://www.intel.com/content/dam/doc/manual/8255x-10-100-mb...

Very cool. I've been meaning to convert 9hist to some version control system too for some time but never got around to it. Glad somebody else did.