RIP: Bruce Evans

Over jul fik vi en email i FreeBSD projektet, hvor Bruce's søster fortalte at han var død.

Nu om dage er der ikke mange der husker det længere, men den første person Linus takkede da han annoncerede sin kerne til verden var Bruce.

Bruce havde portet Andy Tanenbaums Minix til 386 og det var på dette operativsystem Linus udviklede sin egen kerne.

Bruce var også på takkelisten da Bill Jolitz releasede 386BSD 0.1.

Og han var medstifter af FreeBSD projektet, hvor jeg havde fornøjelsen af at side på core-team med ham i projektets ungdom.

Bruce var stort set døv og derfor rejste han ikke til konferencer vi fik ham dog lokket til Monterey i 1999 og her sidder vi sammen til den "core-pow-wow" hvor vi lavede store planer dage før hele dot-com verdenen brasede sammen om ørene på os:

Illustration: John Baldwin

(Første række fra venstre: ps, phk, bde, joeg, keltia, Batmule)

Hvis man kigger i vores repo ligner Bruce ikke en af de mest aktive, men kigger man ordentligt efter i "Submitted by:", "Noticed by:", "Suggested by:" og "Reviwed by:" fodnoterne står der "bde" over det hele.

Bruce var en sand code-review ninja.

I den lette ende fik man en email der havde spottet en eller anden detalje, i den modsatte ende af spektret kom, hvad der hurtigt fik navnet "a brucification" en alen lang email der i total detaljerigdom udlagde alle forkerte antagelser, misforståelser, uklare forudsætninger, dårlig stilistiske valg, portabilitets-problemer, performance-problemer osv. osv. osv. - Aldrig personligt[1], men med en ufattelig detaljerigdom og baggrundsviden.

Her er de første 18% af en "brucification":

This is bogus, and it breaks vmstat some more in the dead kernel case.  

In the live kernel case, clock_gettime() returns the time since an  
unspecified point in the past.  It is still necessary to subtract the  
boottime, one measured by the same clock, especially under systems  
like FreeBSD where the "unspecified point in the past" is undocumented.  

In the dead kernel case, clock_gettime() cannot be used, and using  
it gives a wrong uptime (that of the running system, not that of the  
dead kernel).  

The old code is wrong too.  It subtracts the boot time from the current  
time, where the current time is for the live kernel and the boot time  
is for the live or dead kernel.  This gives an even wronger uptime  
for the dead kernel case, since a live kernel may be run longer after  
the boot time of a dead kernel than after its own boot time.  

I don't know of any good way to determine the uptime of a dead kernel  
now.  I only know of a wrong way: kern_shutdown.c has a low quality  
function print_uptime() which does user-interface things that don't  
belong in the kernel.  It prints the uptime to the console.  To ensure  
its low quality, it does this after the dump has completed, so that  
its output doesn't get printed in the dump via the message buffer.  
Thus its output can only be seen if you are watching the shutdown in  
some way, and is soon forgotten unless your watcher has logging features.

Det er ikke løgn når jeg siger at mange af os som det sidste inden et commit stille os selv spørgsmålet: "Svarer bde@ på det her commit ?"

Det gør han så ikke mere nu...

phk

[1] I den tid vi sad i core sammen kan jeg kun huske én person som fik Bruce op i et rødt felt vi ikke anede han havde og på det tidspunkt var de fleste af os andre allerede langt over kogepunktet.

Kommentarer (1)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Nis Schmidt

Hej Poul-Henning, ved du hvor Jan Erik Petersen blev af?

JEP var min tid Ultrix Guru i DEC/ETC/AFSG/GUSS, hvor han hver gang der kom en ny version af BSD/Ultrix udsendte en mængde norske eder og forbandelser over, at de(c) havde sorteret hans fixes fra igen igen, f.eks.: "lut fisk". Om få år, når (vi) alle sidder deroppe i skyerne, må man håbe at dit downlink stadig virker.

/Nis

AFSG = Area Field Support Group GUSS = Graphics Ultrix and Small Systems

  • 1
  • 0
Log ind eller Opret konto for at kommentere