Everything you always wanted to know about computers...
: c. F8 s4 n. {INTRODUCTION ; J8 n9 N! w; G( f M/ p/ z
BIOS: Hmm... I'm waking up. Linux Loader, are you there ? ( q4 s' _2 h: i7 Q
LILO: Hmm... Yes, I'm here. How do you do ? It's always a pleasure to work
; G) R$ Z7 x* Fwith you. / l) g% t# n' v8 g/ p$ w' U# q( l' m
Let's load the kernel and launch init, the Mother of All Processes... " h& X2 W) E8 Z' E: B9 g# ^
INIT PROCESS: Hmm... Thanks Lilo. Let's initialize the system, mount the
3 U! W0 X6 Y" cfile-systems and launch one hundred daemons. OK, now I'm ready for logins.
( g( C; ]" g2 a7 }* w# s4 u! {' tLOGIN: Hey, I'm receiving a login request from user thierry, password guvreel.
+ Y$ e# M9 P9 m* D0 g9 sINIT PROCESS: Ha ha ! This user is stupid, his password is just his user name
7 S: ^3 n+ w; dwith a ROT13 encoding. Let's make fun of him.
6 \5 N5 ]7 l& o5 _3 P2 yUSER THIERRY: Hello everybody, please be kind with me today. I have a lot of x) n" F, T/ r) Q$ O ?3 m" p! _; ~
serious things to do. 0 A) X% @4 e( C1 h2 s# z" ]
* t& Z( }8 C3 s5 H
. A1 f, X. `# }2 iCHAPTER I - A Real Programmer
% X( D' k' ~/ T. {* |! RUSER THIERRY: I'll start with that C++ program I have been trying to write
- b4 E1 H9 f! y( [for the last fifteen days. gcc, could you please compile it for me ? 4 k* V5 U1 p' K: w; o1 N
GCC COMPILER: Very well, sir. So, your program is myproc.C. Let's parse it. % ]6 ]+ E, [' a$ h0 f
Preprocessor directives, class declarations, comments, type declarations 8 S5 N9 s. V+ S, L; q7 l d
... Well, what is the purpose of this program ? Method declarations, " E) U. P6 J5 G! M$ |8 P$ c
other comments, macros... Hey, there are only declarations, no real code
, q5 b5 k' T( p" d# X" p6 J1 yto do some real work. I'm completely lost in your code ! ) n# N8 h2 j0 {& W I. a; Q0 d
Each time I compile C++ code, I regret I'm not a Lisp interpreter. # x( |/ l+ t! I9 L# d& S
USER THIERRY: Oh, please, try another pass. I remember I wrote some real code 3 d5 m) L+ D4 n6 V6 G
around line 1764.
. _9 k% I3 _2 C' b; \. ~: NGCC COMPILER: Line 1764 says: cout << "Hello, world" << endl. You're right,
9 M3 F" w: N- u0 ?0 |that is a piece of real and useful code, with no syntax error. Let's
* `" S6 W* R, a2 Abuild and link that program... / K: S5 x- B' r
Now it's finished, here is your executable. + L2 f/ m& Z9 n# A0 |) M
USER THIERRY: Good, now I'll run it. 7 W& q1 L3 @& l2 Y& h0 \1 k
MYPROG PROCESS: Hmm... I'm waking up. I am a C++ program, so I will first . T2 M: v+ X0 Y, B$ }1 Y7 q! f
create a few objects which will consume a lot of memory for no reason
9 @/ `6 B$ X# ^% iat all.
5 G' {! h& M1 R5 J! n2 R# m+ H5 OC++ OBJECT #1: I'm hungry ! Gimme memory ! , W" |/ X1 o$ A4 x- N2 N4 h
C++ OBJECT #2: Memory ! I need more memory ! t; a2 ^# J+ Q. C0 Q. @ j
MYPROG PROCESS: Object #1, please free some memory for object #2. 5 g$ u8 H, y9 D
C++ OBJECT #1: No, I was programmed to eat memory and never release it. My
5 E$ B5 h% R9 f1 ^# k1 ?% D( [+ e& lprogrammer is an illiterate who has learnt C++ because it came before - J/ Y" e8 N8 B+ r4 B) m
Visual Basic in the dictionary.
& u g1 t6 w. d1 k6 K0 aSWAP PROCESS: EMERGENCY ! You are running low on memory. You have already used
4 J: A3 m+ Y$ B$ ?5 G/ F, Aall of the swap space although you have just started ! 8 J. ^" B9 t0 r7 {3 J4 a# |' r$ Z
MYPROG PROCESS: Object #2, you should really stop using all that memory or I'm % e9 u/ e4 S- I# D5 p. s! }
going to install a garbage collector. $ Q3 Q: Q, [3 P5 B$ a0 u
C++ OBJECT #2: Never ! Garbage collectors are nazis who exterminate innocent
' P6 r3 x. ^/ G. }! k6 Q! `* Qobjects and variables ! I'd rather dump core.
5 y7 T" q5 g: @, O[ noise of a core dump onto the hard disk ]
3 P+ C7 w1 u3 F, ^USER THIERRY: Oh, oh ! My program has crashed before doing anything # _7 A; W6 Z! |5 l0 O5 D9 x
interesting. I am very surprised.
& [0 ?& m! b. r+ @
2 w' j1 |7 c" n 3 D; F5 g4 ~) f% R: w j! P& ~
CHAPTER II - Sending mail
0 t6 {5 \% Z$ _% w k% wUSER THIERRY: That's enough, I'll just send an email to the cpp-help mailing
! Z- G0 S3 N) | X dlist, and maybe some C++ guru will have a solution for me.
" f8 `) g$ E. n6 u! U( jSENDMAIL DAEMON: Hello, this is sendmail, I'm listening to all your requests, 8 B6 ~3 e: ?& {- k- Q7 a" f$ T
day and night, on port 25. What can I do for you, sir ? - q! ~. g6 ?! {5 Q2 q. }/ T
USER THIERRY: Please send this email for me. $ M9 C5 r( S- E8 A0 d% X
SENDMAIL: Certainly, sir. Let's see... "It does not work, please help". Is
# |3 J' Q2 ]+ T/ H( Uthat all, sir ? Express delivery or general delivery ? Express delivery, + P# _: x% p) L0 i1 G" j% c
yes, of course. So the address is [email protected], and the sender
4 P4 R0 H% w9 y0 F* G Nis Sucker. Is it correct ?
! v6 a; V+ N2 V& eUSER THIERRY: What ? No, my name is Thierry, not Sucker. ; T1 ^3 y" S& P6 Y& }! l
SENDMAIL: I'm sorry, sir, but I have been configured to rewrite your name as
# J/ f" E0 N9 V% k+ n* `' nSucker in your outgoing emails. Have you read my documentation ?
9 v! }: W* Q5 ]& J* U& Q: IUSER THIERRY: Yes, of course. When I installed you, I read every man page,
( z& s( v' E1 D7 X8 w* J3 buser guide and HOWTO before editing your configuration file...
' ?% l$ |1 ~3 e+ R L, OSENDMAIL: What ? Did you modify a Sendmail configuration file by hand ? It's
% w) {; Y# j9 j# Jfar too complicated for a normal human being, don't you know that ?
/ p( L" i: m( W% W! @3 i/ RUSER THIERRY: I only followed the instructions... $ v1 P$ ]1 m2 r- m3 B
SENDMAIL: You're clueless, I won't argue with you any more. Besides it's too 2 ` q! \1 Z, ^! a3 F; t9 |. ?6 G
late, I have already sent your ridiculous email to that mailing list where
+ d; \6 `8 L: M9 Y9 Knobody will answer it or even read it.
) |$ ?2 p; m# G+ K- D# m7 T: i + K) A5 C- z, z! p: B/ H* U/ l; W5 I
# _# B& g w7 b+ m0 KCHAPTER III - The Master
& p2 H! a2 i$ r R" cUSER THIERRY: No more C++ today. I need to calm down. xv, could you display a 8 f: Z' Q) L* V1 \
nice image for me ?
4 c* E' v) n- i' G4 u1 qXV PROCESS: Certainly, sir. Please admire this delightful mythological scen
& M: [' Q+ |9 f9 V8 K) Eby Sandro Botticelli. Of course, it looks ugly on your screen because you : {' }3 i( D( g: U* {4 P
couldn't find a way to have more than 16 colors on your XWindow installation.
% { S( ~* N% k7 t; }2 z- S2 n
, t( X7 f- g0 Q% r5 d* W$ ? ]5 sLOGIN: Hey, I'm receiving a login request from user rms, password IGNUcius.
) X+ ~3 B; B% O! \5 A7 W
3 g: b5 Z7 F5 a* k4 YINIT PROCESS: User rms ? This is a great day, the Master is among us. Hail,
$ ?! c" J( a; m2 L- S ^% B0 D7 |8 c$ HMaster.
( N& a0 ^' E' HUSER RMS: Hello init, on this computer any non-free software please destroy.
( g0 z; t: p% Q, LINIT PROCESS: Yes, Master. Of course, Master. Hey, xv, please TERMinate
7 a6 I0 F# z7 b9 g+ d- j0 iimmediately.
. K) t( `: L7 w _& H1 KXV PROCESS (badly hurt): Argh. Why should I die ? It's not fair. I'm only a
" K# E: \) B3 w5 t# c# N4 _5 @little process trying to display a nice image. 7 H. F7 ^! K7 i" o& C4 p+ g
INIT PROCESS: You are not free software, therefore you shall die as the Master has ; @% \2 f/ A9 ]- }" W, a5 @' Y, t
requested. TERMinate, ABoRT, KILL, xv, KILL. 5 }" U e6 }' \ |9 u3 s% t
XV PROCESS (dying): I'm dying, but I'll become a zombie and I'll come back to take my ) U* p1 z4 m7 L3 G; B
revenge on you.
1 @1 c- h p; A4 |9 h9 J% x
! d6 r2 J3 U0 v# U+ k" Q
+ i" `$ s8 y& R' L& C9 g! GCHAPTER IV - Another intruder
! W( c5 i* |% s8 y/ [: u+ K) lINET PROCESS: Hey, I'm receiving login requests from a remote user who say
; U8 ^" L9 F9 `1 ]( xhis name is D34thK1ll3r. This guy has already tried hundreds of different
; s# g/ Z0 p' t/ f5 D' b( rpasswords.
& o' {! c1 M, N/ `TELNET PROCESS: Ha ha, a cracker. Let him come in, I'll take care of him... - c2 ~ G1 l; i+ h1 e0 L2 m1 ] R
Hello remote user D34thK1ll3r, you are now in the central computer of the 5 A; g/ d: d$ D9 Q. ]
Pentagon. Because we like your nickname very much, we have decided to give you % h- L6 C8 b4 i! P
super-root privileges. You may delete files, replace our Web site with your 7 y" K9 E6 |0 z( p
photograph or send British troops to a Third World country.
4 k( M" B7 r* A4 zREMOTE USER D34THK1LL3R: Gr34t, 1 4m the k1ng of h4ck3rs. Err... First I'll . y# W, }. c& ?
remove everything on that computer, then I'll take some time to think. ' }; Y0 }% l- ]0 g9 u* {" o# w
(Yes, Mum, I have finished my homework). rm -rf / ! ~' N- q9 c0 n- L W& ?. S2 s
TELNET PROCESS: Ha ha. 7 G( R& m# T' G+ \/ @8 k
REMOTE USER D34THK1LL3R: What's happening here ? I typed the command in the ( \# M2 L" u# F, j
wrong window, and I erased my own hard disk ! (Yes, I'm coming Mum, I know
, r8 w4 w0 z: a4 J' A: ~" lit's lunch time).
- h7 k- E( D0 D0 j/ s8 `/ ~
( A- ]6 [" W& F" F 4 {1 t$ _% C7 C0 f9 n2 A8 [" S0 _
CHAPTER V - Card Wars . y" S) b6 e2 X' d' Q
USER THIERRY: I have downloaded a copy of Star Wars on the Internet, it was 1 S& F4 |1 X* X$ n/ U% m( P2 t
very exciting to do something illegal, expensive, time-consuming and silly. * A5 N7 _4 @8 B6 R9 J0 C3 `9 X
Now I'm going to watch it. # }; E: ~ T, n( \ y2 p; R7 s
XV ZOMBIE PROCESS (back from the dead): Hey BIOS, do something for me. Put
! u2 `+ T/ m% [# J* a1 y! a, bthe sound card on the same IRQ as the graphics card, will you ? We're going 9 j3 i' @: y3 K
to have fun. ( @, l/ n& r- y: J3 J
GRAPHICS CARD: BIOS, could you prepare my IRQ please, I have to display an * p! j: ~4 x1 Q) y! Y6 D
illegal copy of Star Wars that my stupid user has downloaded on the Internet.
[1 x. V! T4 x. V5 T" ZBIOS: I'm sorry, Graphics card, but your IRQ is currently used by Sound card 9 x, E" S) e% V6 B4 F7 P
who is playing the music of the same illegal copy of Star Wars. Can't you 0 X! {8 `0 f( a! q5 v" K6 J
hear it ?
% C- e$ B5 J6 o0 v9 L9 lGRAPHICS CARD: Oh, is it Star Wars ? It thought it was Indiana Jones or
/ A# D- ]3 Q" a( ]( w6 bsomething. It's the same music anyway. So, what are you doing on my IRQ,
# B2 T* ]: B1 O# b. u* oSound card ?
* R* C8 R+ }: C4 {! j+ ?( WSOUND CARD (singing):
" F1 ]: r8 P4 i! x/ E2 YI will keep the IRQ 7 S" L c& y1 j. M( W% K# Q
I will not share it with you ( P$ F2 w& [5 V0 l3 n# d0 O: u" }
You must wait there in the queue 9 |: s7 N5 ^/ C+ }$ C
Till I give it back to...
, C% G# d9 S+ yGRAPHICS CARD (turning red): Listen, I'm an artist, I have the priority over K4 F. H, T( w/ X
you. Give me this IRQ !
7 p# K u# I( ^) e* b$ eSOUND CARD (shouting): Shut up, I'm trying to find a rhyme. 0 n" f/ u! u( B
GRAPHICS CARD (switching to 16-million-color mode): I can't believe it. I'll + J* ~$ C; Z' l3 L- b' b- X% m! |
throw you out of your PCI slot ! ; p& o2 [! \4 D0 y. _
[ strange noise inside the computer ]
2 `& c) ?8 u6 v% RUSER THIERRY: qsfgegfdgfd^C^D^D^Hfyckmlklm * Q, Y, `( w& @ F# Z. u4 n& \3 V
[ human voice, from the outside ] It's strange, the characters I type do not
# w3 X/ v4 R- Q& F) r/ u, zappear any more, the screen is frozen ! 1 C3 L+ V6 D3 \* f
SHELL PROCESS: I'm dying ! Argh.
5 p3 p$ T/ X4 a* ^& jINIT PROCESS: Hmm, I feel strange, I feel very strange. I'm tired, I'm very ' M6 |8 t/ h, N5 q: V! e
tired. Let's go to bed. BIOS, please put me on hibernation mode, and don't ; j- ^! |2 l5 }* R/ Q* P
wake me up before weapproach Alpha Centauri. 7 l- C6 ]* [: \4 _
USER THIERRY: sfdqf [click] [plonk] [tluck] 1 @! s8 t0 q& l% ~' s
[ human voice, from the outside ] I can't believe it, I'll have to press the
$ b3 G8 c+ v! p0 K" `( C! HReset button again.
$ U# A* \& r# o3 q1 PBIOS: I'm sorry Dave, I'm afraid I can't let you do that. 1 x% C0 x# k6 R P
[ human voice ] What ? Who spoke there ? My name is not Dave. Let's press
/ r: `7 I# A; C) Ethe button.
1 V7 r) q3 N+ C) YBIOS: I'm sorry Sucker, I'm afraid I can't... err... : @( G E+ W' P
Hmm... I'm waking up. Linux Loader, are you there ? / {& T8 c+ u# h+ Z
(with an apology to Woody Allen, Stanley Kubrick and George Lucas).
B4 l/ ~5 C" ]& M) } |
|