Hacker News new | past | comments | ask | show | jobs | submit login
History of the Plan 9 kernel (1990 – 2003) (github.com/0intro)
86 points by 0intro on Jan 7, 2019 | hide | past | favorite | 3 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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: