Everything you always wanted to know about computers...
9 G. g; Z( R) }8 UINTRODUCTION
% F* I% p* k7 c9 k- w+ pBIOS: Hmm... I'm waking up. Linux Loader, are you there ?
6 |8 |0 l4 o4 n6 n. ULILO: Hmm... Yes, I'm here. How do you do ? It's always a pleasure to work
, M6 \( J4 Q! K+ X6 g' Rwith you.
$ p) ]7 E# c6 d* ULet's load the kernel and launch init, the Mother of All Processes... ) M- ~4 q {6 Q1 ~/ R H, H
INIT PROCESS: Hmm... Thanks Lilo. Let's initialize the system, mount the
+ W# _ F5 d4 y$ Y6 {# Jfile-systems and launch one hundred daemons. OK, now I'm ready for logins.
% E( o; l$ b; m" h4 ~LOGIN: Hey, I'm receiving a login request from user thierry, password guvreel.
$ v+ C) L& }* a+ L% ^+ V) ]0 dINIT PROCESS: Ha ha ! This user is stupid, his password is just his user name 9 t8 T9 e$ e m/ F( Z
with a ROT13 encoding. Let's make fun of him. 2 b( X0 l( z& u
USER THIERRY: Hello everybody, please be kind with me today. I have a lot of ' U7 z( k: y: d5 j. t
serious things to do.
3 A3 l9 @! O4 C9 g0 w+ ^3 \+ ? $ m" x6 K/ t# ^$ ]% I9 ~! Q9 i6 Z
) y* \/ C- u( B- G4 L4 yCHAPTER I - A Real Programmer ; C! B3 c- x1 t0 t5 z8 f
USER THIERRY: I'll start with that C++ program I have been trying to write 8 m: o B& z! s/ Y! D3 R
for the last fifteen days. gcc, could you please compile it for me ? 0 x& U% }6 J7 K! e
GCC COMPILER: Very well, sir. So, your program is myproc.C. Let's parse it. 8 Y$ [- z G4 r, Y# K
Preprocessor directives, class declarations, comments, type declarations
. \# b5 j; a" w... Well, what is the purpose of this program ? Method declarations, ' n$ l$ e# ?9 N- E
other comments, macros... Hey, there are only declarations, no real code - R3 l2 f" }# ~. \5 Z; o4 _ Z
to do some real work. I'm completely lost in your code !
+ _4 _2 k& W$ x) D- b2 TEach time I compile C++ code, I regret I'm not a Lisp interpreter.
+ R* K, q( E. T- F, [/ }$ }USER THIERRY: Oh, please, try another pass. I remember I wrote some real code
5 j6 t H; o5 Z6 b8 i" uaround line 1764. . |* a! f( P& u3 w, {/ u) f7 ^. S8 Y
GCC COMPILER: Line 1764 says: cout << "Hello, world" << endl. You're right, & V7 n( R2 J) Z$ K
that is a piece of real and useful code, with no syntax error. Let's # u# k9 p; S7 M* J
build and link that program...
, q$ J ?2 _* D$ E0 @9 \; c/ [Now it's finished, here is your executable.
, @4 D+ U% ?% W; |# |USER THIERRY: Good, now I'll run it. # @1 A2 b b8 e/ ?) r
MYPROG PROCESS: Hmm... I'm waking up. I am a C++ program, so I will first
6 e, w- K+ A+ b2 s" m; Y0 N( U5 rcreate a few objects which will consume a lot of memory for no reason 6 m5 t/ y* G4 D. Q: A
at all. 0 v! e' r8 x# A7 b
C++ OBJECT #1: I'm hungry ! Gimme memory ! . e) C9 j6 p: P& x3 X) `9 d
C++ OBJECT #2: Memory ! I need more memory ! - ]* a; ^+ q/ A# Q
MYPROG PROCESS: Object #1, please free some memory for object #2. ; Z7 S4 A/ K/ q
C++ OBJECT #1: No, I was programmed to eat memory and never release it. My - i1 Z i5 v% }. z4 A" c7 k1 C
programmer is an illiterate who has learnt C++ because it came before
! G; c. u, K, Z& q6 I3 u1 S! PVisual Basic in the dictionary.
; y3 @0 i. } ^8 g2 W6 ?' C& r% USWAP PROCESS: EMERGENCY ! You are running low on memory. You have already used
. A& m9 ?/ w$ m( R" ]all of the swap space although you have just started ! 9 P1 g( k. {- s
MYPROG PROCESS: Object #2, you should really stop using all that memory or I'm ' T, F. R' M2 {' J2 [, o6 M
going to install a garbage collector.
# | P F, ^- s) n( iC++ OBJECT #2: Never ! Garbage collectors are nazis who exterminate innocent
5 `, v ?" I6 B1 Hobjects and variables ! I'd rather dump core. : G. c4 f0 C8 r2 j" v
[ noise of a core dump onto the hard disk ]
( Q" D' X7 t4 N& U& o* F6 `. nUSER THIERRY: Oh, oh ! My program has crashed before doing anything 9 ?. S$ V4 q" Y
interesting. I am very surprised. 3 |& {/ \. I: L
. h* ~8 H z3 | h5 q6 j4 j
; T/ C; w$ g7 a" G1 Q) D3 g# p7 Q
CHAPTER II - Sending mail 0 B* |9 K8 @3 s) J; z& p
USER THIERRY: That's enough, I'll just send an email to the cpp-help mailing
7 q6 z5 H. y. qlist, and maybe some C++ guru will have a solution for me. 1 J' @8 `, Z7 B. \& N" Q
SENDMAIL DAEMON: Hello, this is sendmail, I'm listening to all your requests,
: B' g' Q& S# f# Mday and night, on port 25. What can I do for you, sir ? * P' `) {7 x3 d0 V* O
USER THIERRY: Please send this email for me. ) M( D9 _8 o4 s1 _( I$ w
SENDMAIL: Certainly, sir. Let's see... "It does not work, please help". Is 9 W# f {: E8 q" y4 s- v, O
that all, sir ? Express delivery or general delivery ? Express delivery, ; i* _: z; [ g) t1 Y7 w
yes, of course. So the address is [email protected], and the sender : C; O2 b9 E. q# I
is Sucker. Is it correct ?
8 [* S7 K' h, v* I. p5 W# t5 x9 l7 CUSER THIERRY: What ? No, my name is Thierry, not Sucker. 2 M' I5 M9 {- e- T% `" j
SENDMAIL: I'm sorry, sir, but I have been configured to rewrite your name as
3 h4 n: h; q e/ B: @, D7 ZSucker in your outgoing emails. Have you read my documentation ? Z& P7 X# w! |* |' s
USER THIERRY: Yes, of course. When I installed you, I read every man page, " D1 g4 ^5 f+ K* b" Z
user guide and HOWTO before editing your configuration file... : A# `5 F% J% t# ?9 ^% q
SENDMAIL: What ? Did you modify a Sendmail configuration file by hand ? It's 5 |( t, ~+ P, i0 V% t5 O
far too complicated for a normal human being, don't you know that ? 6 }) P- u* z" c4 V/ T. v- N
USER THIERRY: I only followed the instructions... % g: R/ v @6 ^2 i
SENDMAIL: You're clueless, I won't argue with you any more. Besides it's too / Q7 X; z1 @4 J- n5 _
late, I have already sent your ridiculous email to that mailing list where
2 p8 {* k* B/ T# ^ i) mnobody will answer it or even read it. 1 ` W) i- R4 R; O- Q
- a. d" a7 o' y, _0 X: X R , Z+ p! ^. J% D7 ^& J3 g: R
CHAPTER III - The Master
0 f* f$ ~ b( qUSER THIERRY: No more C++ today. I need to calm down. xv, could you display a : T/ H2 j0 ^: G+ Q! Z
nice image for me ? 1 O2 n' a5 T, ]( \, ]. ]* q, L: S
XV PROCESS: Certainly, sir. Please admire this delightful mythological scen " i ]* ~9 H8 r
by Sandro Botticelli. Of course, it looks ugly on your screen because you
6 [. l4 u6 V* Y, ycouldn't find a way to have more than 16 colors on your XWindow installation.
% L* y$ z+ C% D$ h3 w+ Y
! W- ]5 {3 |& O' L, J( Z. m) XLOGIN: Hey, I'm receiving a login request from user rms, password IGNUcius. , b* U; t3 B* O* d- j
( ]1 `1 K) Y) Y/ A8 h, {INIT PROCESS: User rms ? This is a great day, the Master is among us. Hail, $ \* ?5 k2 v7 `0 N5 I3 q
Master.
# @+ `& \# r6 o' G" x# D( gUSER RMS: Hello init, on this computer any non-free software please destroy. T5 F# t! L @* r9 J) }
INIT PROCESS: Yes, Master. Of course, Master. Hey, xv, please TERMinate . Z; s% s* {; b1 W: u4 P U
immediately.
3 a3 h3 g. f& @4 Y% q/ KXV PROCESS (badly hurt): Argh. Why should I die ? It's not fair. I'm only a
- i* C* A5 Z* m) `! Vlittle process trying to display a nice image.
* Q9 K; I4 t& H1 ~ _& Y: @0 {INIT PROCESS: You are not free software, therefore you shall die as the Master has a4 p0 D3 @; i2 X: w, ?! Q. v
requested. TERMinate, ABoRT, KILL, xv, KILL. 7 v' `) X% F0 d9 `
XV PROCESS (dying): I'm dying, but I'll become a zombie and I'll come back to take my
' R) j$ j: f1 V- [: O" J; G9 Krevenge on you.
& r [. K8 M) F+ P0 B
' y$ S: g$ V- g4 a" w- \+ P
( p! G B+ n0 NCHAPTER IV - Another intruder + H: \. e- @0 q: F& C; P
INET PROCESS: Hey, I'm receiving login requests from a remote user who say ) O$ W, B/ G. l. U2 r+ \
his name is D34thK1ll3r. This guy has already tried hundreds of different
# _! E; \* V% y+ ]; D6 A' n; p7 n+ Rpasswords.
; \/ ], M$ z0 Y/ y, c/ S$ qTELNET PROCESS: Ha ha, a cracker. Let him come in, I'll take care of him... 1 k8 a5 ^- Q( y1 @
Hello remote user D34thK1ll3r, you are now in the central computer of the
+ r& a2 R* L1 \ Y$ ^; FPentagon. Because we like your nickname very much, we have decided to give you 0 M2 V; x, a: t# d. c- O5 h# g4 W$ s
super-root privileges. You may delete files, replace our Web site with your s, Q3 ]( j4 t: J5 i
photograph or send British troops to a Third World country. ' Y5 t! m6 H6 g; Y7 P) J
REMOTE USER D34THK1LL3R: Gr34t, 1 4m the k1ng of h4ck3rs. Err... First I'll / M) A5 {/ P2 R
remove everything on that computer, then I'll take some time to think. 1 o& r% }$ w; n Z$ J( c
(Yes, Mum, I have finished my homework). rm -rf / # O8 D: q) a6 s4 {# K7 W9 G2 h
TELNET PROCESS: Ha ha. 8 E! T7 J, R# i+ F9 V
REMOTE USER D34THK1LL3R: What's happening here ? I typed the command in the
* P- g2 n# a$ Swrong window, and I erased my own hard disk ! (Yes, I'm coming Mum, I know ; a2 ?4 F: B! Y4 k3 ~
it's lunch time). 0 \9 ~# J; S+ ^: W9 [* p6 ]
0 d4 d. L( a; B# @& d$ X4 q" m& N
0 b& a- q6 S+ _. U8 gCHAPTER V - Card Wars
: p, j; h3 d4 r9 J4 W3 t. oUSER THIERRY: I have downloaded a copy of Star Wars on the Internet, it was
& j/ V5 F& Y2 r- k4 Z+ Svery exciting to do something illegal, expensive, time-consuming and silly. 2 V$ `" w% K) N4 }$ e: |
Now I'm going to watch it.
. H6 z! }) s9 j6 f* CXV ZOMBIE PROCESS (back from the dead): Hey BIOS, do something for me. Put + g% Q# m6 k% N2 I2 Y
the sound card on the same IRQ as the graphics card, will you ? We're going
) v% Q+ N S% S0 A, B, wto have fun.
8 l+ E* ~/ f9 E. V+ jGRAPHICS CARD: BIOS, could you prepare my IRQ please, I have to display an ) b2 [6 X. |4 |5 B/ A2 E+ v( n" ~# a
illegal copy of Star Wars that my stupid user has downloaded on the Internet.
5 u" {5 S5 u) W9 o8 tBIOS: I'm sorry, Graphics card, but your IRQ is currently used by Sound card ! n+ O8 W: A7 d, J% p
who is playing the music of the same illegal copy of Star Wars. Can't you
- ^$ a, F+ s# \' k/ Zhear it ?
* q: T; G) R" MGRAPHICS CARD: Oh, is it Star Wars ? It thought it was Indiana Jones or
+ K9 J' V% m( ]# Gsomething. It's the same music anyway. So, what are you doing on my IRQ, 1 Q5 _3 y" @' e+ r5 H$ p+ k
Sound card ?
4 X6 E- u5 ~$ ]& |# }SOUND CARD (singing): & f$ {2 B& T) Y2 i' \
I will keep the IRQ
' a9 k+ y) H QI will not share it with you
1 d e3 U$ w8 z7 p) d+ zYou must wait there in the queue
" \5 q6 A# J8 y) C5 tTill I give it back to...
; p9 E8 ]! ]0 M+ OGRAPHICS CARD (turning red): Listen, I'm an artist, I have the priority over 6 U1 \# V n; {# }+ S' ~
you. Give me this IRQ ! , ?! `- X( s _. D( {0 q+ G+ f
SOUND CARD (shouting): Shut up, I'm trying to find a rhyme.
k; s4 z. S0 N' tGRAPHICS CARD (switching to 16-million-color mode): I can't believe it. I'll
* e7 Q! k3 ]' D2 `. athrow you out of your PCI slot ! 9 q$ D7 j; ~3 X5 e! T
[ strange noise inside the computer ] 9 W: \1 u! q/ o% b- A" l2 W
USER THIERRY: qsfgegfdgfd^C^D^D^Hfyckmlklm
! e. b/ R0 l9 c7 t! c4 o% ]/ a[ human voice, from the outside ] It's strange, the characters I type do not ! G a: M/ _% ] ^) W0 x/ o
appear any more, the screen is frozen ! ( A* g& W, d, G: ]9 b
SHELL PROCESS: I'm dying ! Argh.
: e0 T( G. {1 S: \INIT PROCESS: Hmm, I feel strange, I feel very strange. I'm tired, I'm very ( o/ V* x: C% {0 u
tired. Let's go to bed. BIOS, please put me on hibernation mode, and don't
$ m1 \; l" `+ f& I7 V* B5 Nwake me up before weapproach Alpha Centauri. 1 w9 |6 C5 p, v; u9 U* y
USER THIERRY: sfdqf [click] [plonk] [tluck] 0 T8 ]" ~* ]6 Y [3 B0 P) M" b
[ human voice, from the outside ] I can't believe it, I'll have to press the
( g. |8 r/ F& ]1 s5 r2 NReset button again. J+ h. n G; D4 V7 K6 M5 \
BIOS: I'm sorry Dave, I'm afraid I can't let you do that.
& v9 X+ w8 @$ I6 }8 t' i[ human voice ] What ? Who spoke there ? My name is not Dave. Let's press
- B4 x+ g7 \2 H" ~$ B( R8 s# \the button. * P l) g4 K4 u' Q
BIOS: I'm sorry Sucker, I'm afraid I can't... err...
3 l0 E& Z9 C! j5 l: X* G8 v/ ~: eHmm... I'm waking up. Linux Loader, are you there ?
$ H6 U- Y- S; ^; C* k" Z0 H(with an apology to Woody Allen, Stanley Kubrick and George Lucas). 4 F8 {! J1 a2 S) p* }7 V
|
|