Everything you always wanted to know about computers... 4 R8 m7 {& u. a
INTRODUCTION ' S( F* ^! a: d- W4 {% l! i
BIOS: Hmm... I'm waking up. Linux Loader, are you there ?
- m' H5 n) Z/ N! j2 \LILO: Hmm... Yes, I'm here. How do you do ? It's always a pleasure to work 1 J% }+ J0 e2 b) c; W
with you.
- a% N4 \ I. {7 V N( r( z1 [Let's load the kernel and launch init, the Mother of All Processes... 2 T5 G1 I3 k1 S6 u9 P- i: E3 L
INIT PROCESS: Hmm... Thanks Lilo. Let's initialize the system, mount the 1 U! y9 _, l$ G
file-systems and launch one hundred daemons. OK, now I'm ready for logins. ( D; E: Q. V0 I
LOGIN: Hey, I'm receiving a login request from user thierry, password guvreel.
- }+ S: s, Q- k) V# u0 |" EINIT PROCESS: Ha ha ! This user is stupid, his password is just his user name
5 b& M8 k$ {+ z+ {; Z" f( Cwith a ROT13 encoding. Let's make fun of him.
# r/ @! n3 Y0 X3 c+ XUSER THIERRY: Hello everybody, please be kind with me today. I have a lot of
% y( ~5 ?/ `4 z- |serious things to do.
8 U8 e- y9 L( \: J( a 1 _ m; _3 X- |/ X% W k0 X
. s1 r/ K& X0 z- o' Z1 iCHAPTER I - A Real Programmer
o' n3 [- p% r0 i' c& d- q+ SUSER THIERRY: I'll start with that C++ program I have been trying to write 2 D1 d6 F' ~6 ~: ^3 h m8 y
for the last fifteen days. gcc, could you please compile it for me ?
/ i Z! x$ k) I3 P& x! ZGCC COMPILER: Very well, sir. So, your program is myproc.C. Let's parse it.
3 s2 `; k# g* j) OPreprocessor directives, class declarations, comments, type declarations 8 t* I+ p" K- T6 X" G
... Well, what is the purpose of this program ? Method declarations, 5 J9 S0 M2 i( i' d# D7 _3 {
other comments, macros... Hey, there are only declarations, no real code
& g6 b8 P I/ w% K9 K$ R% M% {to do some real work. I'm completely lost in your code ! # x/ Y- F4 R9 w% ~) j! k3 v+ M
Each time I compile C++ code, I regret I'm not a Lisp interpreter.
: C9 P9 D' F& l* YUSER THIERRY: Oh, please, try another pass. I remember I wrote some real code |1 j0 v1 |- A. G- m9 Y+ W
around line 1764. 1 i$ s+ s. V8 `& ]& \& p
GCC COMPILER: Line 1764 says: cout << "Hello, world" << endl. You're right, ' W, C0 K+ | f- d
that is a piece of real and useful code, with no syntax error. Let's
2 o' g2 L9 z( k4 a1 _$ A! m+ lbuild and link that program...
/ J+ Y4 s+ Q, |9 iNow it's finished, here is your executable.
) }- B5 a$ g3 D# rUSER THIERRY: Good, now I'll run it.
, g' l, ^* _! [: TMYPROG PROCESS: Hmm... I'm waking up. I am a C++ program, so I will first
$ k/ y/ J' Z1 W& h4 d% S9 Wcreate a few objects which will consume a lot of memory for no reason
# }# f) X- B' @/ Uat all. 9 J+ y% T/ y, R. R( j* x) D. S
C++ OBJECT #1: I'm hungry ! Gimme memory !
3 E) P: I: }$ D. y5 xC++ OBJECT #2: Memory ! I need more memory ! 1 G3 R& s$ S+ M0 \" q, h V' z
MYPROG PROCESS: Object #1, please free some memory for object #2.
2 B% I' r4 t8 yC++ OBJECT #1: No, I was programmed to eat memory and never release it. My ; {& q( P; J' R$ C4 k0 q( ]9 u
programmer is an illiterate who has learnt C++ because it came before 3 A( m+ l* b& x* \5 F* X5 D
Visual Basic in the dictionary. ( i9 b P) P) n6 I* R7 m( f; g# \
SWAP PROCESS: EMERGENCY ! You are running low on memory. You have already used
- j, C h$ f+ t& Tall of the swap space although you have just started !
- D: y. C$ ]8 P' g* A f4 j: h7 HMYPROG PROCESS: Object #2, you should really stop using all that memory or I'm
6 E, b. }0 c3 igoing to install a garbage collector. 2 H. T8 B1 c1 Q1 }8 c
C++ OBJECT #2: Never ! Garbage collectors are nazis who exterminate innocent 2 V, E6 R! V" w4 @* t
objects and variables ! I'd rather dump core.
0 K& H( }: ?! \0 ^ b( C: g[ noise of a core dump onto the hard disk ] / @$ L K( j% W. n( P! U4 F* Q" A
USER THIERRY: Oh, oh ! My program has crashed before doing anything
/ j5 Y( _( E/ f6 ainteresting. I am very surprised. I+ v+ m# |8 M" m1 M, p
$ x% D- Y' ]/ n* U * Y9 w+ q2 X _5 ~7 S; }' E
CHAPTER II - Sending mail
+ ]. I) @2 T" EUSER THIERRY: That's enough, I'll just send an email to the cpp-help mailing
& U, I% U! l7 i0 u6 Jlist, and maybe some C++ guru will have a solution for me.
2 [5 i! c5 k0 I8 Q; a- T$ |- SSENDMAIL DAEMON: Hello, this is sendmail, I'm listening to all your requests,
( V* F9 K3 }. uday and night, on port 25. What can I do for you, sir ?
+ n; x/ c+ P- N: \- u# yUSER THIERRY: Please send this email for me. 9 [9 W4 ]$ Y& v6 |0 D; ?+ ?
SENDMAIL: Certainly, sir. Let's see... "It does not work, please help". Is : a/ \4 W) t) R7 k4 |4 d3 E' r
that all, sir ? Express delivery or general delivery ? Express delivery,
0 M6 y9 l& p+ L2 L4 iyes, of course. So the address is [email protected], and the sender
* t) r# `3 \ v! z ?4 E8 \is Sucker. Is it correct ?
' |+ N' v- {) zUSER THIERRY: What ? No, my name is Thierry, not Sucker. 0 ^" z9 Z$ A1 i
SENDMAIL: I'm sorry, sir, but I have been configured to rewrite your name as
4 }6 [+ t \5 A5 S7 b, ?! x5 JSucker in your outgoing emails. Have you read my documentation ? . g" i4 A8 |& D" }3 y/ P! ^
USER THIERRY: Yes, of course. When I installed you, I read every man page, * T: _' {, q: Q( m4 s
user guide and HOWTO before editing your configuration file... 7 G0 w% i. ` }; I$ s) w) _. R8 W
SENDMAIL: What ? Did you modify a Sendmail configuration file by hand ? It's 5 z& A/ p8 a6 G, v4 j
far too complicated for a normal human being, don't you know that ? . Y- V% \) ?* E
USER THIERRY: I only followed the instructions... ; M# D5 a) W2 _- N; g
SENDMAIL: You're clueless, I won't argue with you any more. Besides it's too
6 _9 _! |. N' b: i' \late, I have already sent your ridiculous email to that mailing list where d# B3 \0 I! y
nobody will answer it or even read it. " h, J. O: r/ } A5 t3 D! o/ n
" M f8 A/ P4 f" w
& N4 W r& c; ]+ W/ ICHAPTER III - The Master 5 G& Q v# s1 ?' f- s
USER THIERRY: No more C++ today. I need to calm down. xv, could you display a 6 M6 ~1 |! @ u& X& B8 _
nice image for me ? % {9 n* {0 ^0 t- v/ y* o% ^ z
XV PROCESS: Certainly, sir. Please admire this delightful mythological scen & g: {8 j" t, Z' ^. [# P r0 g! e5 q. J
by Sandro Botticelli. Of course, it looks ugly on your screen because you 1 D8 K# \7 K& h2 W0 W
couldn't find a way to have more than 16 colors on your XWindow installation. ) Y4 f3 C. [- D. S5 h" R! M
/ N9 o! _& V2 J6 |' y0 O: RLOGIN: Hey, I'm receiving a login request from user rms, password IGNUcius. 3 C& `9 C/ ^6 A# z& J! j# I
9 ]) X+ @/ R+ o: K$ I: x' W8 d
INIT PROCESS: User rms ? This is a great day, the Master is among us. Hail,
. B {' v6 X: Z" x/ }# g4 `" U0 i0 NMaster. - `' z5 ?' c5 X
USER RMS: Hello init, on this computer any non-free software please destroy. , N7 u6 _# Y4 \5 C9 d
INIT PROCESS: Yes, Master. Of course, Master. Hey, xv, please TERMinate 7 L* H+ r2 b# M8 X6 j1 {4 S& c
immediately.
* } A. X7 c& m" fXV PROCESS (badly hurt): Argh. Why should I die ? It's not fair. I'm only a 4 L4 r' ^" J" d# a
little process trying to display a nice image. ( K* l9 E! f6 v# V+ j! p) f, p- r" P
INIT PROCESS: You are not free software, therefore you shall die as the Master has * ]1 a# W& ?3 r; @# w; ^/ z
requested. TERMinate, ABoRT, KILL, xv, KILL.
( G' P7 n8 h0 T5 t' W2 D) O* tXV PROCESS (dying): I'm dying, but I'll become a zombie and I'll come back to take my
9 a* t& d B Zrevenge on you. 3 g& Q6 {0 q4 f
+ O1 {9 D! L& n+ R; }2 M' @+ v" W* \. n
8 K2 i8 Q5 k0 A: i1 MCHAPTER IV - Another intruder
' Q& Y, U/ b) F( JINET PROCESS: Hey, I'm receiving login requests from a remote user who say 0 K: m j, M! Q0 t& C& Y
his name is D34thK1ll3r. This guy has already tried hundreds of different
D6 Q% g, \/ s; b" cpasswords.
( G/ t$ L( \2 ETELNET PROCESS: Ha ha, a cracker. Let him come in, I'll take care of him... 9 j) ?8 @! e1 H7 B3 e% J
Hello remote user D34thK1ll3r, you are now in the central computer of the
$ J8 \1 ]/ R/ j; y3 S9 \Pentagon. Because we like your nickname very much, we have decided to give you
# P7 V* j: J3 j5 [8 F( |6 Lsuper-root privileges. You may delete files, replace our Web site with your
- F# V( X( t) D2 X+ Cphotograph or send British troops to a Third World country.
: e D! m$ ?3 J; L1 }; D# N$ B) |REMOTE USER D34THK1LL3R: Gr34t, 1 4m the k1ng of h4ck3rs. Err... First I'll
/ \! d8 U: N% r0 R# z& l( i- Wremove everything on that computer, then I'll take some time to think. 2 K3 W5 ], P1 C# h) s7 N6 o
(Yes, Mum, I have finished my homework). rm -rf /
: q6 j8 S1 s) J6 ]4 A# p0 XTELNET PROCESS: Ha ha. 8 A \8 J& r7 f& F9 ^" E* ?! D0 G1 }
REMOTE USER D34THK1LL3R: What's happening here ? I typed the command in the
5 a, c! D+ k0 t7 n& A) e6 }wrong window, and I erased my own hard disk ! (Yes, I'm coming Mum, I know
/ q) m* L5 b4 B o7 ~it's lunch time).
3 N3 O1 O% R+ k( L$ G- }4 H y0 _
! g. R" [+ B" j; e+ g
f$ S* Z3 B2 n) B, RCHAPTER V - Card Wars
2 J2 l* q9 t% {/ x) C9 qUSER THIERRY: I have downloaded a copy of Star Wars on the Internet, it was
w9 s; A1 f! M. I0 h5 B* {# |. k/ Avery exciting to do something illegal, expensive, time-consuming and silly. 3 m' W9 p9 u; W# b9 F
Now I'm going to watch it.
6 B; T5 u( h- V4 NXV ZOMBIE PROCESS (back from the dead): Hey BIOS, do something for me. Put
7 Z. e1 T/ ?& e8 V9 j. }. N, P, dthe sound card on the same IRQ as the graphics card, will you ? We're going
& t* o9 u3 ^. Q. v0 i# lto have fun. ' S$ q) _# ^/ w& v! x3 M7 C
GRAPHICS CARD: BIOS, could you prepare my IRQ please, I have to display an " H9 y: W) [0 r/ n, W! L8 r
illegal copy of Star Wars that my stupid user has downloaded on the Internet.
/ M* z8 N( u6 z% T `: sBIOS: I'm sorry, Graphics card, but your IRQ is currently used by Sound card 3 ]# P6 z5 T" w
who is playing the music of the same illegal copy of Star Wars. Can't you
- U6 i- q: d1 ? ehear it ? % Z* T; V7 w3 f1 t. Q5 `0 K F' `% d
GRAPHICS CARD: Oh, is it Star Wars ? It thought it was Indiana Jones or
$ \2 g \* H5 V4 |/ \. o1 D% u) C2 Lsomething. It's the same music anyway. So, what are you doing on my IRQ,
$ r' ~' G8 O+ l) HSound card ?
3 m# d: o( X* M( G: qSOUND CARD (singing): * d) u3 o5 X# y5 N* y9 E
I will keep the IRQ
! c8 n: G0 O. D2 k6 yI will not share it with you $ _6 E, `: l( b8 Z2 }" R- h
You must wait there in the queue
% ?, n+ p$ b h, S. A3 ~# h5 X2 oTill I give it back to...
3 K2 B% ~' O- J; ?3 g/ gGRAPHICS CARD (turning red): Listen, I'm an artist, I have the priority over 4 `. V+ z' R. i( N# _% Y
you. Give me this IRQ !
) i$ C9 h* r' z- |, f" ?' LSOUND CARD (shouting): Shut up, I'm trying to find a rhyme. + v. i8 M( j' h' o* m2 n- X, u6 r
GRAPHICS CARD (switching to 16-million-color mode): I can't believe it. I'll ( b, w" F- `3 g$ E" f
throw you out of your PCI slot ! $ Z; ^; \. @- a
[ strange noise inside the computer ] 6 a) k& Y; r1 i: k8 }; S8 b; W4 s
USER THIERRY: qsfgegfdgfd^C^D^D^Hfyckmlklm
* i8 P" f/ }' p0 L' Q( t[ human voice, from the outside ] It's strange, the characters I type do not
% `' T! V! C5 |, w& w+ bappear any more, the screen is frozen !
$ j. d* ^4 c2 s$ d6 B. f3 MSHELL PROCESS: I'm dying ! Argh. 2 R8 I# c9 E' ^& H# r. `1 o
INIT PROCESS: Hmm, I feel strange, I feel very strange. I'm tired, I'm very
4 h/ P; \8 Y2 M& ?3 R+ m$ Utired. Let's go to bed. BIOS, please put me on hibernation mode, and don't
8 `* H8 G& V& _1 H8 Qwake me up before weapproach Alpha Centauri. ! @( ] E) |+ ~
USER THIERRY: sfdqf [click] [plonk] [tluck]
6 H+ r. z. c8 {5 x% K1 K9 X[ human voice, from the outside ] I can't believe it, I'll have to press the : @6 J) C0 g Z8 o& ~" r
Reset button again.
+ t1 `. G o; b6 FBIOS: I'm sorry Dave, I'm afraid I can't let you do that.
# E0 U. ^7 \: r x* F8 S. o[ human voice ] What ? Who spoke there ? My name is not Dave. Let's press
7 N" t/ C1 v% b& ~+ ]the button.
# ^6 Q( C8 }8 {% \& C1 ]& T2 ABIOS: I'm sorry Sucker, I'm afraid I can't... err...
5 E" n9 p( t$ M) @5 c& }+ YHmm... I'm waking up. Linux Loader, are you there ? % a2 s+ H# o6 h3 c& o
(with an apology to Woody Allen, Stanley Kubrick and George Lucas).
' k9 M$ w5 w9 Q# ~3 C9 o |
|