Features

Cake, Candles and Reboot() System Calls

Note: for those of you looking for clues to the Open Source Summit Trivia question – here’s your answer!

Not unlike great artists or film producers, coders have a tendency to put a little bit of themselves in their work. Hitchcock famously hired himself as an extra; you can find masterpieces where the artist included not only their signature but their face as well. Linux is no different – and while it has many people working on it, the reflection of those who work on it is sometimes more obvious than not. Case in point, if you look at the reboot() system call in the Linux kernel, you’ll find one such reflection.  Unsurprisingly, there are some checks in place on the reboot() system call to prevent it from errantly being called, for you wouldn’t want to accidentally reboot your system after all. In this case there are two arguments labeled “magic” and “magic2”.  “magic” is pretty straightforward – it only accepts 0xfee1dead as a value. However, magic2 can have four potential values – 672274793, 85072278, 369367448 and 537993216. You would think these were numbers chosen at random, except for reading the man page for reboot (man 2 reboot) you’ll note “(The hexadecimal values of these constants are meaningful.)”

This begs the question, what do these numbers mean?  Well, they happen to be the birthdays of Linus and his three daughters. Converting these values from integers to hexidecimal values steers you in the right direction:

672274793 –  28121969 

85072278 –  5121996

369367448 – 16041998

537993216 – 20112000

In the U.S. we tend to write dates as MM-DD-YYYY, which for a number of reasons is a little odd.  However, outside of the U.S. they tend to be written DD-MM-YYYY. As Linus is not natively from the U.S., you can then see what those numbers are:

672274793 –  28-12-1969 – Linus’ Birthday

85072278 –  5-12-1996 – Linus’ first daughter’s birthday

369367448 – 16-04-1998 – Linus’ second daughter’s birthday

537993216 – 20-11-2000 – Linus’ third daughter’s birthday

Linus chose to incorporate a little bit of himself into the system call. The numbers could have been chosen at random, but he instead chose to incorporate the birthdays of himself and his family.  Call it an Easter egg, or just his love for his family, but it’s worth noting that even the harsh 1’s and 0’s that we deal with sometimes expose a little about ourselves.