Everything you always wanted to know about computers... / T: ~& _& H# e' z$ R: I
INTRODUCTION 9 c Z/ x% [; j! X/ P
BIOS: Hmm... I'm waking up. Linux Loader, are you there ? 9 K. q9 w# Z/ g5 P- n) W9 g
LILO: Hmm... Yes, I'm here. How do you do ? It's always a pleasure to work , A$ Z e* J$ q
with you.
( ^9 W7 Y/ b z h: ]" eLet's load the kernel and launch init, the Mother of All Processes... 1 V1 X; l1 H# F$ k; z
INIT PROCESS: Hmm... Thanks Lilo. Let's initialize the system, mount the 9 s/ ^$ H+ D# J* a% u* U" r E
file-systems and launch one hundred daemons. OK, now I'm ready for logins. ; R( }# L! N" D V# M& ]- [
LOGIN: Hey, I'm receiving a login request from user thierry, password guvreel.
- ~! l( H& K5 {INIT PROCESS: Ha ha ! This user is stupid, his password is just his user name 4 }4 H, N1 _2 e
with a ROT13 encoding. Let's make fun of him. + z; Z! x- i! D) Z9 r
USER THIERRY: Hello everybody, please be kind with me today. I have a lot of 7 o4 d: {$ b# M0 t( M& i4 }
serious things to do.
0 K7 D9 c/ Z; O+ |
( j5 [9 N$ ], T$ j. e+ a
t9 U* b# z3 Q" e- jCHAPTER I - A Real Programmer . w+ z7 F( d5 |! L; P
USER THIERRY: I'll start with that C++ program I have been trying to write 4 [4 A- N1 {7 y# D, K- y7 D
for the last fifteen days. gcc, could you please compile it for me ? * c; P- R- w, D. ]
GCC COMPILER: Very well, sir. So, your program is myproc.C. Let's parse it. 5 y" O5 _( v9 }
Preprocessor directives, class declarations, comments, type declarations
3 P9 K+ C% Y3 R2 i3 r; f' t* V" @7 |... Well, what is the purpose of this program ? Method declarations,
9 v# q% t$ H8 m* D$ B, [other comments, macros... Hey, there are only declarations, no real code * G# [& z$ d3 z, B# A
to do some real work. I'm completely lost in your code ! 8 P0 U0 i8 m! l0 r$ U6 _
Each time I compile C++ code, I regret I'm not a Lisp interpreter. 8 N( O; S* k! i: C" V3 h
USER THIERRY: Oh, please, try another pass. I remember I wrote some real code
; j+ P# J- R! I6 E; \around line 1764. & }1 m# m# i) V; X% t5 p
GCC COMPILER: Line 1764 says: cout << "Hello, world" << endl. You're right, - l" w/ E6 E2 d9 p
that is a piece of real and useful code, with no syntax error. Let's
, t7 J* Q" w1 [, z) i1 f7 V1 p; Wbuild and link that program... ! N: @# w; E2 ?2 Q5 V" t
Now it's finished, here is your executable.
0 |, W9 h# m" f. z7 D( U1 [USER THIERRY: Good, now I'll run it. 2 M5 `% v$ _1 e& a
MYPROG PROCESS: Hmm... I'm waking up. I am a C++ program, so I will first 3 c$ `! i! \" a- b# P
create a few objects which will consume a lot of memory for no reason ; |% h [' O: Z. ]. n
at all.
# H+ O* ]( r' A1 lC++ OBJECT #1: I'm hungry ! Gimme memory ! : S+ @8 W* _ C+ C2 N2 C
C++ OBJECT #2: Memory ! I need more memory ! $ }; ?! e Y4 E& I
MYPROG PROCESS: Object #1, please free some memory for object #2.
# r% f% c+ p0 ^9 B' @C++ OBJECT #1: No, I was programmed to eat memory and never release it. My 3 b! m- f$ B5 I9 R; a8 b/ @9 N
programmer is an illiterate who has learnt C++ because it came before / x/ b0 i% M4 w* C6 w& L
Visual Basic in the dictionary. 4 V: b" g% ]+ [2 o
SWAP PROCESS: EMERGENCY ! You are running low on memory. You have already used Z) g8 Y( D, b) @9 h
all of the swap space although you have just started !
2 i( k" C$ N1 N9 K9 I+ J0 fMYPROG PROCESS: Object #2, you should really stop using all that memory or I'm ; o4 U) [3 D" }0 Z8 d; [$ [# u* r
going to install a garbage collector. / k0 v+ T/ M1 B& [; x# d) M
C++ OBJECT #2: Never ! Garbage collectors are nazis who exterminate innocent
/ e3 q0 f: }- |( j& j8 ?/ Bobjects and variables ! I'd rather dump core. 3 A" m; [7 ?; a) j, R2 H0 b
[ noise of a core dump onto the hard disk ]
- o) K5 a1 V3 w R, dUSER THIERRY: Oh, oh ! My program has crashed before doing anything ' f1 j1 N( W4 v& n: I
interesting. I am very surprised.
. ^5 @9 q" Z7 Q* n. v7 I# y4 r" s* f 8 B j; y: W: i! n1 a) E
) E- e4 e; x; ~; a
CHAPTER II - Sending mail + d* ?; b5 d* y
USER THIERRY: That's enough, I'll just send an email to the cpp-help mailing
2 @3 l- q' m6 y; I; W6 w/ Nlist, and maybe some C++ guru will have a solution for me. ! ]2 b; n& o: U. Q! a1 \# t
SENDMAIL DAEMON: Hello, this is sendmail, I'm listening to all your requests,
# o! N; S& T* ? @ hday and night, on port 25. What can I do for you, sir ?
: `' ]+ H2 G3 u: G1 BUSER THIERRY: Please send this email for me. + P9 |$ J8 s4 _2 Q! _$ r- ?
SENDMAIL: Certainly, sir. Let's see... "It does not work, please help". Is
3 O# i3 e1 V6 H# }$ K9 G3 g! ethat all, sir ? Express delivery or general delivery ? Express delivery, 7 I7 K; G' A& w6 Q' ^5 H
yes, of course. So the address is [email protected], and the sender
" T2 [( X+ X8 R5 o9 Q- P! Iis Sucker. Is it correct ?
9 z3 X$ T, a$ G9 I9 M7 [% cUSER THIERRY: What ? No, my name is Thierry, not Sucker. 9 H; {$ U6 N, f4 A7 V
SENDMAIL: I'm sorry, sir, but I have been configured to rewrite your name as - E V7 W6 U+ ~' {' @
Sucker in your outgoing emails. Have you read my documentation ?
; V7 o/ ~" Z$ Q+ a$ q. K1 a: ^; n* T. fUSER THIERRY: Yes, of course. When I installed you, I read every man page,
. f% X% O" M+ I) Q% O2 Puser guide and HOWTO before editing your configuration file... / _/ W: m! q/ C. E. X
SENDMAIL: What ? Did you modify a Sendmail configuration file by hand ? It's ! T% @4 x3 q* f' _: s) m5 R
far too complicated for a normal human being, don't you know that ? 6 ^1 U7 R* h$ ~- ~
USER THIERRY: I only followed the instructions... 4 f/ v1 H9 a, E! O% Q' e( x
SENDMAIL: You're clueless, I won't argue with you any more. Besides it's too . q2 v! j4 P$ a! G b* c! H
late, I have already sent your ridiculous email to that mailing list where
! G- H& q7 }% {6 t+ q, xnobody will answer it or even read it. o7 q. R, C4 _; j
; ?& Q4 ~; G0 L6 a. w3 s2 A
0 M7 n- q3 u8 `7 LCHAPTER III - The Master
) I" k1 \: ~: ?2 HUSER THIERRY: No more C++ today. I need to calm down. xv, could you display a 0 k2 H7 I7 D" F5 V' y% R" Y
nice image for me ? 8 d$ ?0 w- H J3 r* @3 j
XV PROCESS: Certainly, sir. Please admire this delightful mythological scen - O5 p9 B8 `! Q" A6 J
by Sandro Botticelli. Of course, it looks ugly on your screen because you
: x" |" v& e7 b% o! ]couldn't find a way to have more than 16 colors on your XWindow installation. , @5 J& g ~! |" ]/ V. w/ |
. [2 A3 o9 S! m8 @% L pLOGIN: Hey, I'm receiving a login request from user rms, password IGNUcius.
0 c, V7 K1 e% J5 @* w
+ G* \) V! n9 a1 U8 e9 T0 ~. \$ Z1 }INIT PROCESS: User rms ? This is a great day, the Master is among us. Hail, : L/ L2 O6 {0 F4 O' Z/ e6 V! a0 v
Master.
/ w5 N9 U5 y$ A5 k( P- Z- cUSER RMS: Hello init, on this computer any non-free software please destroy.
1 o7 j) v& B( `/ X! P* K4 l) s5 dINIT PROCESS: Yes, Master. Of course, Master. Hey, xv, please TERMinate 7 ~# A' `) h! w6 ?) M
immediately. , }, N1 P+ a% A' v; g" T: r
XV PROCESS (badly hurt): Argh. Why should I die ? It's not fair. I'm only a % c) \8 J5 y& O. J8 z! t/ V& @
little process trying to display a nice image. C1 M( P0 o- U. J
INIT PROCESS: You are not free software, therefore you shall die as the Master has
% O' d, ^# e. y. X' e9 Nrequested. TERMinate, ABoRT, KILL, xv, KILL. & W) X: ?6 _9 X4 Z
XV PROCESS (dying): I'm dying, but I'll become a zombie and I'll come back to take my & m+ ~2 M: o( X+ f; y5 K
revenge on you.
! F+ \( I2 U' s% J5 y/ D' f9 L; _
2 S0 m5 K- ~6 e8 j 2 J( }, a) Q+ `& _* D
CHAPTER IV - Another intruder
$ A8 z' u6 K+ ]INET PROCESS: Hey, I'm receiving login requests from a remote user who say
5 v- U: H9 Z0 \) w. d: Chis name is D34thK1ll3r. This guy has already tried hundreds of different 6 V5 E, w& A9 n: p
passwords.
* X8 r/ ?/ }0 U. x. OTELNET PROCESS: Ha ha, a cracker. Let him come in, I'll take care of him... - n% C! ]% M5 L8 `
Hello remote user D34thK1ll3r, you are now in the central computer of the % y5 g4 i( Y: \$ S/ x* W3 T2 z
Pentagon. Because we like your nickname very much, we have decided to give you / a4 @! [, x8 d! G% U
super-root privileges. You may delete files, replace our Web site with your - S+ X: v7 `' S+ C4 o
photograph or send British troops to a Third World country. 9 `& R. e+ H2 D' Z
REMOTE USER D34THK1LL3R: Gr34t, 1 4m the k1ng of h4ck3rs. Err... First I'll " t$ R1 Q* w& w9 n2 @! [. A
remove everything on that computer, then I'll take some time to think.
( B( d9 ~5 E2 ?# D8 P(Yes, Mum, I have finished my homework). rm -rf / ' N" ~& q# @- b4 M" E
TELNET PROCESS: Ha ha.
+ D2 H) M# f! Q! d/ K* ?6 l2 _REMOTE USER D34THK1LL3R: What's happening here ? I typed the command in the . q2 r6 f# C+ h
wrong window, and I erased my own hard disk ! (Yes, I'm coming Mum, I know + o$ ?/ P: u" W* \3 M2 w8 B5 J# I3 T7 e8 n
it's lunch time).
# Y& d6 ]1 m3 Z1 U; P
/ B5 ?& W6 F/ K. H$ C! Z8 a
4 e/ N$ L1 ~1 q- h8 Z9 ?CHAPTER V - Card Wars
5 ~1 ^4 e# C$ a/ G6 U7 gUSER THIERRY: I have downloaded a copy of Star Wars on the Internet, it was 0 o/ e% y# ^7 S! k( x" C
very exciting to do something illegal, expensive, time-consuming and silly.
! K5 S& o9 v$ q1 q+ j/ P0 I6 `+ ZNow I'm going to watch it.
; b8 P3 T+ g% i7 u1 I8 G7 }XV ZOMBIE PROCESS (back from the dead): Hey BIOS, do something for me. Put
; R6 |3 I" J( \- B! Ethe sound card on the same IRQ as the graphics card, will you ? We're going
j v* P0 Z) }# I2 W' s& l2 ato have fun. 1 p; x1 i( k0 l A% j
GRAPHICS CARD: BIOS, could you prepare my IRQ please, I have to display an 5 k+ \- x! E5 H" u
illegal copy of Star Wars that my stupid user has downloaded on the Internet.
9 c9 |1 B" L4 F1 p+ ~4 HBIOS: I'm sorry, Graphics card, but your IRQ is currently used by Sound card
+ p" X% N8 X6 mwho is playing the music of the same illegal copy of Star Wars. Can't you ) Q( a1 X( C* ]6 \& A
hear it ? 2 h3 |3 y; n) Z0 \$ Q' u
GRAPHICS CARD: Oh, is it Star Wars ? It thought it was Indiana Jones or
1 n, d& \" J; s' q) r% ~& Msomething. It's the same music anyway. So, what are you doing on my IRQ,
. \$ ~) \9 W, [( {8 }1 }" }$ ~Sound card ? ! ~. m0 \0 C1 f) L3 [. c5 U# y
SOUND CARD (singing):
2 I# o. t9 x' q2 N" aI will keep the IRQ
, g2 U2 ?) d6 j" D! T# b7 X# E# RI will not share it with you # C* D: d0 G4 f7 c) n& h( C
You must wait there in the queue ( |4 S( @/ t% s- W' n ~5 }: s7 }
Till I give it back to... " ~# U1 j3 e8 E$ m: F) N9 F
GRAPHICS CARD (turning red): Listen, I'm an artist, I have the priority over & u' m7 `; K0 u4 A. x
you. Give me this IRQ ! ( J1 f+ U" l# N P2 Y
SOUND CARD (shouting): Shut up, I'm trying to find a rhyme.
! _2 d D {) M' jGRAPHICS CARD (switching to 16-million-color mode): I can't believe it. I'll 2 G, y) p% R0 x% o+ `0 Q1 N
throw you out of your PCI slot ! - _/ P* L: [3 N4 y; r# D2 P
[ strange noise inside the computer ]
& |0 \! f y& {- h( j* EUSER THIERRY: qsfgegfdgfd^C^D^D^Hfyckmlklm - U( O' U- }" B3 I' `# x1 H
[ human voice, from the outside ] It's strange, the characters I type do not - o# m; n. K7 n7 i' P
appear any more, the screen is frozen ! ( `! |5 |1 {9 w" B: R+ |
SHELL PROCESS: I'm dying ! Argh. - v( F5 Y! V1 b; B1 ^
INIT PROCESS: Hmm, I feel strange, I feel very strange. I'm tired, I'm very 1 ~& E3 t9 p- A4 }/ B& v
tired. Let's go to bed. BIOS, please put me on hibernation mode, and don't
, j1 \ o! m3 V! v8 Lwake me up before weapproach Alpha Centauri.
9 m* I$ j# a2 M, C1 x0 bUSER THIERRY: sfdqf [click] [plonk] [tluck]
- j, W( r1 l' V$ _[ human voice, from the outside ] I can't believe it, I'll have to press the & U& L" Z& o! o2 N1 c
Reset button again.
5 P, }, b4 j5 J& L6 s7 aBIOS: I'm sorry Dave, I'm afraid I can't let you do that.
# ^2 E/ y2 U6 Y; f[ human voice ] What ? Who spoke there ? My name is not Dave. Let's press ! D/ o* [' Q8 B7 z1 {
the button.
n+ j: o7 H. k; @9 ~; UBIOS: I'm sorry Sucker, I'm afraid I can't... err... , t/ n B: B8 f: I( u
Hmm... I'm waking up. Linux Loader, are you there ? : r1 b! F/ P4 L# r& P: B
(with an apology to Woody Allen, Stanley Kubrick and George Lucas).
+ T& x" S+ ^ ]4 r; o |
|