Everything you always wanted to know about computers... ( T% l1 P" M$ X" K K
INTRODUCTION 5 }5 N9 \% k8 v6 q% [0 p8 t7 q
BIOS: Hmm... I'm waking up. Linux Loader, are you there ? 6 g" X j- w: _8 q* @% T9 Z7 o# X7 Y4 W
LILO: Hmm... Yes, I'm here. How do you do ? It's always a pleasure to work $ K% d8 B" b. F' l# f p
with you. 4 ?7 M/ U8 q2 z% i
Let's load the kernel and launch init, the Mother of All Processes... 6 b- T3 V; _+ _( j
INIT PROCESS: Hmm... Thanks Lilo. Let's initialize the system, mount the / m6 u K; z% | K+ F
file-systems and launch one hundred daemons. OK, now I'm ready for logins. ; W0 `9 x; \/ t( c5 T
LOGIN: Hey, I'm receiving a login request from user thierry, password guvreel.
8 h4 l$ |# g/ n2 c7 o" Z# Y7 bINIT PROCESS: Ha ha ! This user is stupid, his password is just his user name
* Z: }, V' `* Z" K# c- {with a ROT13 encoding. Let's make fun of him.
; X, H& Z# k9 i! E' h7 y# LUSER THIERRY: Hello everybody, please be kind with me today. I have a lot of $ j+ }, A# I" F# k! a& v
serious things to do. 7 J- @6 E1 U' _
0 M; s1 L; E; e/ c% ]0 l - z* e8 d3 j( k& \: C
CHAPTER I - A Real Programmer 4 V& o2 B" X! y# j& z
USER THIERRY: I'll start with that C++ program I have been trying to write ! {7 O6 m( e- z/ _! s" N- e
for the last fifteen days. gcc, could you please compile it for me ?
4 s: [/ }9 b' U( aGCC COMPILER: Very well, sir. So, your program is myproc.C. Let's parse it.
9 j# `5 x8 Q1 f4 S2 s; B) | {Preprocessor directives, class declarations, comments, type declarations {- Q- ~2 t6 A }# {7 W& x
... Well, what is the purpose of this program ? Method declarations, 1 v/ f) h! V6 G+ N
other comments, macros... Hey, there are only declarations, no real code & ]* o+ E8 z+ o) G6 e
to do some real work. I'm completely lost in your code ! $ C$ K& X1 j" X
Each time I compile C++ code, I regret I'm not a Lisp interpreter. ( ]7 G! W- V7 n$ P- b' l& ?
USER THIERRY: Oh, please, try another pass. I remember I wrote some real code 1 D+ d' K" C) i3 P) f: W9 G; @1 g0 X
around line 1764. ! n, H) H4 D' m2 \/ z& c
GCC COMPILER: Line 1764 says: cout << "Hello, world" << endl. You're right, 8 {; a# y: T( r0 d+ @/ r
that is a piece of real and useful code, with no syntax error. Let's
* y: D# E7 Q6 i3 V* \. q# M% bbuild and link that program... N$ V$ B- D/ h( S* q' ^
Now it's finished, here is your executable.
& F- `* t* @! ~5 iUSER THIERRY: Good, now I'll run it. & O; @2 v7 U8 } P
MYPROG PROCESS: Hmm... I'm waking up. I am a C++ program, so I will first
9 X$ T* o+ D9 x+ wcreate a few objects which will consume a lot of memory for no reason
4 R) |1 e$ i) R# O1 r4 I9 U/ e- Bat all. $ F7 x8 \ `6 v) S
C++ OBJECT #1: I'm hungry ! Gimme memory !
: u* P7 f: U" w4 e- V6 Z& XC++ OBJECT #2: Memory ! I need more memory !
6 j/ g3 m- m) W' H1 M; MMYPROG PROCESS: Object #1, please free some memory for object #2. % k# F) o! v3 a) {+ Z
C++ OBJECT #1: No, I was programmed to eat memory and never release it. My % m5 S7 N7 f. e$ e
programmer is an illiterate who has learnt C++ because it came before + x8 r; P) m- U1 J4 H
Visual Basic in the dictionary. 7 c; \4 T C6 G4 i. s# O
SWAP PROCESS: EMERGENCY ! You are running low on memory. You have already used / Q P. S3 ~+ p2 O* E. e7 k, a; ^
all of the swap space although you have just started ! % b/ [2 ~7 e! o9 B7 ^ {
MYPROG PROCESS: Object #2, you should really stop using all that memory or I'm
, ^7 E; l& U! u U% |going to install a garbage collector.
I; ^2 z; g/ ]. D# |3 V0 iC++ OBJECT #2: Never ! Garbage collectors are nazis who exterminate innocent
+ Q8 {" W; t" Q3 F8 E5 Lobjects and variables ! I'd rather dump core. * u# d! H5 K ]# Y' B( ?$ ^) T
[ noise of a core dump onto the hard disk ]
2 ]( Q' e: ?6 n+ _5 w+ S% cUSER THIERRY: Oh, oh ! My program has crashed before doing anything , c) F- f& c2 T. g( z2 \
interesting. I am very surprised. * K, u; o0 Y- u( U" n
. h4 X, P0 q H, X2 a8 W' s/ n9 M
3 v j/ m9 ~" ]3 f' P( z; W( I
CHAPTER II - Sending mail
( O/ ?# U+ D) v7 vUSER THIERRY: That's enough, I'll just send an email to the cpp-help mailing
2 c, _/ m# s8 D" M3 @7 M* V1 s; Qlist, and maybe some C++ guru will have a solution for me. - r+ u; v. ~+ |, {$ [
SENDMAIL DAEMON: Hello, this is sendmail, I'm listening to all your requests,
" O8 H; Q8 S) R: r Cday and night, on port 25. What can I do for you, sir ? 6 T% V+ ^* Z+ Y9 @7 X) c2 v
USER THIERRY: Please send this email for me. + I; ] l3 u2 Z% p# j
SENDMAIL: Certainly, sir. Let's see... "It does not work, please help". Is . N8 h# ^1 X6 s- p' v9 X! `
that all, sir ? Express delivery or general delivery ? Express delivery,
' m1 G" c1 `6 f6 O" T1 q7 hyes, of course. So the address is [email protected], and the sender ) o: T0 a2 f- o* C) B5 P/ P
is Sucker. Is it correct ? B& O6 h/ t' p3 U% ?
USER THIERRY: What ? No, my name is Thierry, not Sucker. 8 C8 z* h7 b* H1 m% I
SENDMAIL: I'm sorry, sir, but I have been configured to rewrite your name as 9 e. s8 s6 `' y. [: ~- u9 a
Sucker in your outgoing emails. Have you read my documentation ?
D1 S& v) B' O$ {6 ~* S5 CUSER THIERRY: Yes, of course. When I installed you, I read every man page, " w+ h, o0 W- B% S& ~- C7 r
user guide and HOWTO before editing your configuration file...
3 z1 y8 {- \- F. A. s# \SENDMAIL: What ? Did you modify a Sendmail configuration file by hand ? It's , W2 Z' y) q& Y1 n- Y" K# |
far too complicated for a normal human being, don't you know that ? ( g2 L2 p7 \' Q2 m
USER THIERRY: I only followed the instructions...
$ y: r" Z' E: D+ B5 S3 O J; HSENDMAIL: You're clueless, I won't argue with you any more. Besides it's too
0 m2 F% H3 |( z$ b3 q! f d; _late, I have already sent your ridiculous email to that mailing list where " v. ~% o* |2 x
nobody will answer it or even read it. 5 `2 D4 t0 O7 t* n" _
# G+ w+ p- }: X U8 z3 m* \- T0 f
8 _ I9 ]0 `, y
CHAPTER III - The Master 5 F* P8 m1 Q* {+ L3 S: {
USER THIERRY: No more C++ today. I need to calm down. xv, could you display a
' N% `) b1 R A; R, I% D' E6 Dnice image for me ?
2 L# U* i' t, B6 H9 U8 @/ b% zXV PROCESS: Certainly, sir. Please admire this delightful mythological scen
. F! c2 {+ }, {- C0 Y$ oby Sandro Botticelli. Of course, it looks ugly on your screen because you
0 ~2 W2 X. h' Z, G5 ]( Xcouldn't find a way to have more than 16 colors on your XWindow installation.
7 M7 m; L' u3 r8 y6 F1 I2 [) e5 l+ P
LOGIN: Hey, I'm receiving a login request from user rms, password IGNUcius.
: w8 I9 p3 d) f6 k9 _" V. f5 K' b9 W, l" E: D+ v4 p
INIT PROCESS: User rms ? This is a great day, the Master is among us. Hail,
, S2 l1 M: O4 N. @ `1 _0 v( XMaster. , K3 Z6 w+ w# M B) B. c) x% B
USER RMS: Hello init, on this computer any non-free software please destroy.
* k# x& j, J$ y" }4 p: J& sINIT PROCESS: Yes, Master. Of course, Master. Hey, xv, please TERMinate + P* _' v! I* W4 Z' j" a
immediately. 9 O6 N& D7 s$ @" x7 b! E3 N1 `
XV PROCESS (badly hurt): Argh. Why should I die ? It's not fair. I'm only a
' Z* u; `7 z o8 \% W# tlittle process trying to display a nice image. 8 n# S/ p0 J0 B6 i& h
INIT PROCESS: You are not free software, therefore you shall die as the Master has
4 T% j+ O7 r+ w9 I+ S! w" jrequested. TERMinate, ABoRT, KILL, xv, KILL. ]+ O9 n# n7 l L3 P
XV PROCESS (dying): I'm dying, but I'll become a zombie and I'll come back to take my
4 j' T) [; Y* O5 Krevenge on you.
% S1 N/ ~! }, c2 C/ A 9 J# I! m6 \0 y) z
# M8 h* q' ~9 h1 t. {+ X9 e0 rCHAPTER IV - Another intruder ' n$ D/ j8 } O7 J
INET PROCESS: Hey, I'm receiving login requests from a remote user who say
8 X/ Q* U5 B) |: ?8 yhis name is D34thK1ll3r. This guy has already tried hundreds of different
4 z$ n& V3 N0 z7 `passwords. c5 ]- \* N+ y, w8 z
TELNET PROCESS: Ha ha, a cracker. Let him come in, I'll take care of him...
: x% l) j' M; H8 C3 z% t, k- UHello remote user D34thK1ll3r, you are now in the central computer of the
$ ]& m( x* h( n, f* u1 ePentagon. Because we like your nickname very much, we have decided to give you
; {8 B3 a" A7 K1 Jsuper-root privileges. You may delete files, replace our Web site with your ' U5 ^" h h9 ~( H
photograph or send British troops to a Third World country. 2 y) k) L% A' v. T \+ F- P
REMOTE USER D34THK1LL3R: Gr34t, 1 4m the k1ng of h4ck3rs. Err... First I'll
2 y G. f" B* n# xremove everything on that computer, then I'll take some time to think. - J* P/ \# u; }. v
(Yes, Mum, I have finished my homework). rm -rf / 3 g2 k! B$ O; {
TELNET PROCESS: Ha ha. 3 I5 C9 ]% e( ^: {4 ~% L
REMOTE USER D34THK1LL3R: What's happening here ? I typed the command in the
X7 D' V, x& }wrong window, and I erased my own hard disk ! (Yes, I'm coming Mum, I know 9 U# a+ P7 |9 ], ^$ |
it's lunch time).
% r# z# }3 m- S" E+ ]5 ]- D& G' ` $ Y$ G' G+ Z" f. R3 [) @
! U1 \8 Y" D' ICHAPTER V - Card Wars
1 F' A% }- N7 v% t+ xUSER THIERRY: I have downloaded a copy of Star Wars on the Internet, it was ! I# r" _: e+ T* B
very exciting to do something illegal, expensive, time-consuming and silly. 9 G$ W" @9 q a \8 b
Now I'm going to watch it. 0 S# ?1 u# z2 J
XV ZOMBIE PROCESS (back from the dead): Hey BIOS, do something for me. Put m% X S+ \8 Y. ]; }
the sound card on the same IRQ as the graphics card, will you ? We're going $ E; x% K& p6 f
to have fun.
5 R. O$ D5 S$ W! K; XGRAPHICS CARD: BIOS, could you prepare my IRQ please, I have to display an 9 t1 U2 \5 q3 c7 ^6 N: ]
illegal copy of Star Wars that my stupid user has downloaded on the Internet.
/ o) E( x9 d5 `/ H2 fBIOS: I'm sorry, Graphics card, but your IRQ is currently used by Sound card
1 c) W2 g+ V: O R' J* fwho is playing the music of the same illegal copy of Star Wars. Can't you
7 n& x/ B! g; L' |hear it ?
2 k( u J- S( x. o# C e7 KGRAPHICS CARD: Oh, is it Star Wars ? It thought it was Indiana Jones or
" j: X4 s4 X/ m/ R9 O" B8 i8 d8 z, b' fsomething. It's the same music anyway. So, what are you doing on my IRQ, 4 I3 i: \! i/ m. f
Sound card ? ( g8 F5 \6 d ^
SOUND CARD (singing):
* d7 `8 X E) i- OI will keep the IRQ / J: L+ } R) K _4 r) B. d9 \9 H
I will not share it with you
& L1 y" x- ` h8 P+ {, dYou must wait there in the queue " i- T: F( @% r0 _' J! o
Till I give it back to... 0 g" N7 G+ C# P2 l; K3 v5 o4 ]
GRAPHICS CARD (turning red): Listen, I'm an artist, I have the priority over ( R* J" G6 q& U8 I
you. Give me this IRQ ! 2 }" S% F' j2 o) H
SOUND CARD (shouting): Shut up, I'm trying to find a rhyme. 3 ?1 Q/ y' D* e2 X
GRAPHICS CARD (switching to 16-million-color mode): I can't believe it. I'll
) R; a+ p! i: h! T/ Athrow you out of your PCI slot !
: v% ^$ Y, R) K- v' l[ strange noise inside the computer ] # G9 V7 @! g O# Y( ^
USER THIERRY: qsfgegfdgfd^C^D^D^Hfyckmlklm
! S( v, @* c; f) z0 i, N) [[ human voice, from the outside ] It's strange, the characters I type do not 7 A9 N9 ?4 A1 y; q, p; P
appear any more, the screen is frozen ! , a: F t* {' q _6 l) g
SHELL PROCESS: I'm dying ! Argh. ; s! Y& o1 C; z
INIT PROCESS: Hmm, I feel strange, I feel very strange. I'm tired, I'm very
6 I* j5 T7 \) K' ctired. Let's go to bed. BIOS, please put me on hibernation mode, and don't - k& Q' R% j! D" L+ Q
wake me up before weapproach Alpha Centauri.
8 |6 Y T$ n& B% ~3 g6 lUSER THIERRY: sfdqf [click] [plonk] [tluck]
" Y: \! L- P+ {: n* ~% W( g[ human voice, from the outside ] I can't believe it, I'll have to press the
% [# o; Q; E2 ^2 M, g" A4 UReset button again.
/ i. |) }$ D: e' Z8 y" nBIOS: I'm sorry Dave, I'm afraid I can't let you do that.
- n' B4 v9 m# b6 t, D[ human voice ] What ? Who spoke there ? My name is not Dave. Let's press , r- Z& L* C4 |% o$ Z, k
the button.
, [3 {6 ?. q4 b9 O* zBIOS: I'm sorry Sucker, I'm afraid I can't... err...
* Z6 @: t* e H1 X4 aHmm... I'm waking up. Linux Loader, are you there ?
/ R. O& U; [# k' o% X5 ~0 R(with an apology to Woody Allen, Stanley Kubrick and George Lucas).
' A8 i; x7 {1 p |
|