Everything you always wanted to know about computers...
0 E3 n, A4 |. C: ~- P; ~% `INTRODUCTION
3 F: M7 V; p( E. r5 xBIOS: Hmm... I'm waking up. Linux Loader, are you there ?
+ x7 a, R# n/ p+ HLILO: Hmm... Yes, I'm here. How do you do ? It's always a pleasure to work
- `! j+ U0 X1 O# `/ W/ q8 o& rwith you.
/ N8 V2 K7 g( w9 L5 o3 aLet's load the kernel and launch init, the Mother of All Processes...
0 W6 z+ t. h9 _% p0 U) S2 qINIT PROCESS: Hmm... Thanks Lilo. Let's initialize the system, mount the
0 ~$ c0 O6 b- j: T3 m0 v0 K/ Ffile-systems and launch one hundred daemons. OK, now I'm ready for logins.
: a8 r$ U+ v0 @8 x+ d/ rLOGIN: Hey, I'm receiving a login request from user thierry, password guvreel. 1 ]7 y2 R8 D+ h8 \" c# n
INIT PROCESS: Ha ha ! This user is stupid, his password is just his user name - ?4 S! ~/ r. ]( ?* @5 |
with a ROT13 encoding. Let's make fun of him.
3 {1 W) }5 J8 P7 w. j; q! x2 k& j0 kUSER THIERRY: Hello everybody, please be kind with me today. I have a lot of $ S3 @4 w6 J- P4 Y
serious things to do. + K1 ]3 n; O) s9 E
" q c) y0 Q; F: J; h" {5 H {3 ~3 T; J$ @4 m
CHAPTER I - A Real Programmer / m4 I0 W% q, U# H- t
USER THIERRY: I'll start with that C++ program I have been trying to write 1 l1 o7 G% O) U" N! I/ y
for the last fifteen days. gcc, could you please compile it for me ? : n0 E) H( G! S/ W% e
GCC COMPILER: Very well, sir. So, your program is myproc.C. Let's parse it. + a6 k3 k* }, D% F$ D" r; w( b
Preprocessor directives, class declarations, comments, type declarations
# d i- D, F* |; R( Q" U... Well, what is the purpose of this program ? Method declarations,
# W, B8 l/ D' j5 t( Tother comments, macros... Hey, there are only declarations, no real code 8 K( N, g/ A' y/ P" t
to do some real work. I'm completely lost in your code !
* |! O3 g* T4 bEach time I compile C++ code, I regret I'm not a Lisp interpreter. 1 r5 O) s' U+ ~, M2 F% W
USER THIERRY: Oh, please, try another pass. I remember I wrote some real code
. M& v0 c- o8 M+ m0 k: garound line 1764.
" C7 Y8 ]( w& j8 }9 oGCC COMPILER: Line 1764 says: cout << "Hello, world" << endl. You're right, " w" n$ N% |7 S& S& l5 ~8 s
that is a piece of real and useful code, with no syntax error. Let's 1 h! @ d' w- n+ O5 v' d' v
build and link that program...
+ }6 f% |+ B8 n5 HNow it's finished, here is your executable.
0 b1 s! D( f' T4 aUSER THIERRY: Good, now I'll run it.
8 d' e( \ \1 o; W+ Q4 z- B1 A2 uMYPROG PROCESS: Hmm... I'm waking up. I am a C++ program, so I will first ) M" [3 X! n4 p
create a few objects which will consume a lot of memory for no reason
" y4 z" B- s- tat all.
1 g. M# m9 ~/ m# iC++ OBJECT #1: I'm hungry ! Gimme memory !
, n9 F6 F5 n7 |0 `, v: o# SC++ OBJECT #2: Memory ! I need more memory ! * S/ }( O* ^8 M" r( U+ z1 b6 H- N
MYPROG PROCESS: Object #1, please free some memory for object #2.
9 v4 Q1 [, Q/ T. _C++ OBJECT #1: No, I was programmed to eat memory and never release it. My
( Y- U) C% G% D' o1 k0 @5 h: Zprogrammer is an illiterate who has learnt C++ because it came before ) b Y' W3 G' ] N
Visual Basic in the dictionary. 1 n2 j2 H: b3 ^7 V
SWAP PROCESS: EMERGENCY ! You are running low on memory. You have already used
: ^: u7 m6 n9 k' w2 l7 I# zall of the swap space although you have just started !
. o* T% ~& N8 b" h6 |4 r9 G# z h; \MYPROG PROCESS: Object #2, you should really stop using all that memory or I'm
. j& P- X) l/ @- B" hgoing to install a garbage collector.
- {* C9 R2 Z' E0 ^6 X7 ^C++ OBJECT #2: Never ! Garbage collectors are nazis who exterminate innocent ( o" P; j& p$ x5 t0 M& o/ g5 _
objects and variables ! I'd rather dump core. ! w1 G: j, J& h: T6 ]
[ noise of a core dump onto the hard disk ] , d% q2 v1 M3 ^: u, t. F- K: D
USER THIERRY: Oh, oh ! My program has crashed before doing anything
4 I _' X& ^2 E' q2 p% C9 p# u- Z3 pinteresting. I am very surprised. 3 D9 N, h V" X: M+ M' _! A
/ S% c$ A2 ]* h' P6 }& R / l, U9 T3 d9 |' x1 [5 n
CHAPTER II - Sending mail
7 @/ |3 N2 V: [, R& ^6 L3 PUSER THIERRY: That's enough, I'll just send an email to the cpp-help mailing # e0 m) z( O6 b
list, and maybe some C++ guru will have a solution for me. # @% S/ Z1 P ^
SENDMAIL DAEMON: Hello, this is sendmail, I'm listening to all your requests, 7 D- l" J: z& V5 s1 I
day and night, on port 25. What can I do for you, sir ? * U; J- K6 y- {5 o
USER THIERRY: Please send this email for me. 5 e, Y# a5 ^ t* C8 f0 N8 b' b0 p
SENDMAIL: Certainly, sir. Let's see... "It does not work, please help". Is 7 I, w; g7 m% V* }
that all, sir ? Express delivery or general delivery ? Express delivery,
2 y0 H: b) W0 ?yes, of course. So the address is [email protected], and the sender 1 |( L& Y! p0 p3 c+ A+ y
is Sucker. Is it correct ? % }' j- G" w* \; H0 R9 F
USER THIERRY: What ? No, my name is Thierry, not Sucker.
9 s( N" p, G* RSENDMAIL: I'm sorry, sir, but I have been configured to rewrite your name as
0 S6 q. g6 C( A, Z6 RSucker in your outgoing emails. Have you read my documentation ?
! T( O/ A1 @8 ?; DUSER THIERRY: Yes, of course. When I installed you, I read every man page,
- U; {8 ?( }1 q# {user guide and HOWTO before editing your configuration file...
. U, J3 U" L' hSENDMAIL: What ? Did you modify a Sendmail configuration file by hand ? It's + J7 `, @0 P' k" h
far too complicated for a normal human being, don't you know that ? ) K$ l4 }) x6 j
USER THIERRY: I only followed the instructions... 8 v5 I8 \* r0 J5 t
SENDMAIL: You're clueless, I won't argue with you any more. Besides it's too
3 K9 i! A0 y4 p- o N1 u' Q4 u8 Ylate, I have already sent your ridiculous email to that mailing list where
5 e W+ z' \5 [nobody will answer it or even read it.
) @) O; {. ~% c+ G- ^" \' W3 j
. R9 O) \ k: s6 G2 J0 ^" c( j2 `
c- R) U' x& G5 @& LCHAPTER III - The Master 0 n2 L+ i+ o; A, X
USER THIERRY: No more C++ today. I need to calm down. xv, could you display a
8 K$ q$ n; r, |& T6 Lnice image for me ? 1 u1 B# ?# A9 u+ L4 P K, @! W& P
XV PROCESS: Certainly, sir. Please admire this delightful mythological scen
) Q/ L% q! s' K. u* rby Sandro Botticelli. Of course, it looks ugly on your screen because you . B m6 I& m2 m. S0 k
couldn't find a way to have more than 16 colors on your XWindow installation. % X' E, p6 M/ U9 o* F+ ~; E% t6 V" y4 t
- I+ `1 R: g; ]( y7 |9 d2 }* nLOGIN: Hey, I'm receiving a login request from user rms, password IGNUcius.
% m, ?/ i4 l$ m! X: M% h+ J! t& l/ m# j1 U. l# c* [8 s
INIT PROCESS: User rms ? This is a great day, the Master is among us. Hail,
/ {9 q6 D; I7 ^/ `5 D' C. ?Master.
) a9 L& c# {! `; O* e; s9 jUSER RMS: Hello init, on this computer any non-free software please destroy.
0 _" ]% K5 F8 t5 x+ Z7 j+ o, |INIT PROCESS: Yes, Master. Of course, Master. Hey, xv, please TERMinate
4 A& k( t9 W! S$ mimmediately.
$ c7 b1 I$ L( _2 IXV PROCESS (badly hurt): Argh. Why should I die ? It's not fair. I'm only a
0 s& F! x# w$ @little process trying to display a nice image.
$ @+ l L) Z% I' lINIT PROCESS: You are not free software, therefore you shall die as the Master has / _; J% Z1 e q% J; R- \) \8 N
requested. TERMinate, ABoRT, KILL, xv, KILL. ; Q. y" a# _, Y, E
XV PROCESS (dying): I'm dying, but I'll become a zombie and I'll come back to take my * Y: V7 K3 Z9 U& ~; n
revenge on you. 3 y( G5 Y# Z8 v/ Y8 j
6 O1 z% T- k* j8 x0 r$ T
$ `" ?" T4 f/ N* b' j: ECHAPTER IV - Another intruder 9 K$ h0 {3 n5 s7 `
INET PROCESS: Hey, I'm receiving login requests from a remote user who say
~% k3 _* |% e* G& K6 _' `4 rhis name is D34thK1ll3r. This guy has already tried hundreds of different
5 y: y# v6 a% X! Q2 V. Hpasswords. # e4 t6 k; \$ K- Z2 w
TELNET PROCESS: Ha ha, a cracker. Let him come in, I'll take care of him... ( `4 K2 U1 [/ P6 k7 F7 `! D: v
Hello remote user D34thK1ll3r, you are now in the central computer of the 8 L1 U p; i F2 O( D
Pentagon. Because we like your nickname very much, we have decided to give you ' r8 C& g2 K+ S/ p" O% J
super-root privileges. You may delete files, replace our Web site with your 7 P2 h& u; L- C; r. p0 I+ n
photograph or send British troops to a Third World country. Z7 d3 r8 F; n* b7 T
REMOTE USER D34THK1LL3R: Gr34t, 1 4m the k1ng of h4ck3rs. Err... First I'll J8 Q' R" u/ O! x" d. x4 f
remove everything on that computer, then I'll take some time to think. ) K' Q# c5 ]5 T8 V8 E
(Yes, Mum, I have finished my homework). rm -rf /
' s, @8 `$ R" T0 \, RTELNET PROCESS: Ha ha.
5 P5 G4 w* x5 ~6 ^& O5 gREMOTE USER D34THK1LL3R: What's happening here ? I typed the command in the
* e$ H4 @: b/ W; T/ Gwrong window, and I erased my own hard disk ! (Yes, I'm coming Mum, I know % Z0 [7 j, R5 ~. j5 U4 {) a# W$ M
it's lunch time). ! f0 j! g4 o0 s% A# e8 P( M
- K" R }0 z5 r3 S J; J/ n( c
. }: F; q% z3 O- U& {CHAPTER V - Card Wars
/ S4 |5 Y) |- y5 [1 p+ q, JUSER THIERRY: I have downloaded a copy of Star Wars on the Internet, it was
, P) H! ^3 c( a# \, B9 Q; Xvery exciting to do something illegal, expensive, time-consuming and silly.
1 K+ ~* h5 E+ F8 Y$ U# h! t) xNow I'm going to watch it.
6 {* t' |: f8 @8 `, kXV ZOMBIE PROCESS (back from the dead): Hey BIOS, do something for me. Put 1 P1 M- y2 H5 P, i3 P2 T9 f
the sound card on the same IRQ as the graphics card, will you ? We're going * a; q0 b% l" T/ M; m4 B
to have fun. - o' V0 c, ?( N' M/ f
GRAPHICS CARD: BIOS, could you prepare my IRQ please, I have to display an W o* _. V2 X& f
illegal copy of Star Wars that my stupid user has downloaded on the Internet. 3 K+ ~- O9 j$ \8 F
BIOS: I'm sorry, Graphics card, but your IRQ is currently used by Sound card
/ [+ p+ u* ~0 w; Gwho is playing the music of the same illegal copy of Star Wars. Can't you 4 a5 f1 q4 p7 |+ s8 x3 E- r
hear it ? 1 Q* G& D( y' U6 Y1 k3 s" `1 e, `
GRAPHICS CARD: Oh, is it Star Wars ? It thought it was Indiana Jones or + M1 Q) |' E' ^) B1 Q6 a% i
something. It's the same music anyway. So, what are you doing on my IRQ, ?, d6 |( a7 [2 A% F& S" f
Sound card ?
: [: C7 v/ }$ j" {3 S7 qSOUND CARD (singing): 3 X* T( p; Y; k/ F( k: {
I will keep the IRQ
* f9 d0 k* A0 f0 ~I will not share it with you
( x& o; u. T( a8 [You must wait there in the queue
# |4 s- ?, D0 s q% f" W5 D# ?Till I give it back to... ( R" [% m7 x; x2 O/ g
GRAPHICS CARD (turning red): Listen, I'm an artist, I have the priority over
7 a, S( H- R7 d1 a; Uyou. Give me this IRQ ! 0 \( O4 O% O/ e* D& y" Y
SOUND CARD (shouting): Shut up, I'm trying to find a rhyme. ( ]& {" F* O/ w a' l! `1 X
GRAPHICS CARD (switching to 16-million-color mode): I can't believe it. I'll 1 A. d! m) j! n3 [0 e, [
throw you out of your PCI slot ! p0 ~7 P, @& a4 k. Y
[ strange noise inside the computer ] ; I% W, d- m4 ^ C
USER THIERRY: qsfgegfdgfd^C^D^D^Hfyckmlklm
6 l' Y r; f; ^/ u. o8 D; F: c: l[ human voice, from the outside ] It's strange, the characters I type do not 1 r" r+ H4 o& }5 P- T3 t
appear any more, the screen is frozen ! + \; d* u+ d" L- C0 r/ N a) y/ d
SHELL PROCESS: I'm dying ! Argh.
( i4 B% @5 Z. W% j) VINIT PROCESS: Hmm, I feel strange, I feel very strange. I'm tired, I'm very
$ Z8 A5 a4 z# q2 G0 G# l: Ttired. Let's go to bed. BIOS, please put me on hibernation mode, and don't
' W( a: U$ W0 Ywake me up before weapproach Alpha Centauri.
# h+ w! u9 d, gUSER THIERRY: sfdqf [click] [plonk] [tluck] . T6 g) J8 q+ r; o4 W
[ human voice, from the outside ] I can't believe it, I'll have to press the ' U2 J/ W5 I2 o4 e
Reset button again.
" h0 ~2 R6 C1 `. U4 M rBIOS: I'm sorry Dave, I'm afraid I can't let you do that. 0 y& }% ?0 Q( f$ w
[ human voice ] What ? Who spoke there ? My name is not Dave. Let's press 0 C* _0 ^7 {! q
the button. 8 k) W; S {) x- p L6 m' a
BIOS: I'm sorry Sucker, I'm afraid I can't... err...
% N0 p; A" a4 |; z' I* kHmm... I'm waking up. Linux Loader, are you there ?
( }/ V& T% g, u, H(with an apology to Woody Allen, Stanley Kubrick and George Lucas). 6 a2 I1 V4 s8 A3 Y
|
|