Can I tell you a secret?

I see dead Systems

Avishai Ish-Shalom

@nukemberg

~whoami

Many many years ago

The IBM XT computer had 1MB of RAM.

 

It's shiny successor - AT 80286 - has just arrived and it had whooping 16MB of RAM

 

One problem: compatibility!

X86 Real mode

  • Registers are 16 bit, memory bus 20bit
  • 2 16bit coordinates: Segment, offset
  • Combined: Segment*16+offset
  • 4096 equivalent addresses for every physical address:
    0xFFFF:0x0005 == 0xFFF0:0x00F5 -> 0xFFFF5
  • If address > 20bit (0xFFFFF) wrap around:
    0xFFFF:0x000F + 1 = 0x100000 = 0x00000
int enable_a20(void)
{
       int loops = A20_ENABLE_LOOPS;
       int kbc_err;

       while (loops--) {
	       /* First, check to see if A20 is already enabled
		  (legacy free, etc.) */
	       if (a20_test_short())
		       return 0;
	       
	       /* Next, try the BIOS (INT 0x15, AX=0x2401) */
	       enable_a20_bios();
	       if (a20_test_short())
		       return 0;
	       
	       /* Try enabling A20 through the keyboard controller */
	       kbc_err = empty_8042();

	       if (a20_test_short())
		       return 0; /* BIOS worked, but with delayed reaction */
	
	       if (!kbc_err) {
		       enable_a20_kbc();
		       if (a20_test_long())
			       return 0;
	       }
	       
	       /* Finally, try enabling the "fast A20 gate" */
	       enable_a20_fast();
	       if (a20_test_long())
		       return 0;
       }
       
       return -1;
}

WAT?

  • A20 gate enables/disables real mode
  • A20 gate needed to be switched on/off
  • The keyboard controller had a spare pin
  • IBM routed A20 through the pin
  • Controlled with keyboard controller interrupt

 

Yes, we still do this today - on every boot!

@nukemberg

Remember this?

Let's talk about terminals

  • The "terminal window" is in fact a terminal emulator
  • It works with a 40 years old protocol
  • Based on the 1869 stock ticker

Ever tried colors in the terminal?

@nukemberg

This is also a terminal

X Windows

  • 1st version: 1984
  • Your app is an "X client"
  • "X server" provides KVM
  • They communicate over a network
  • Yes, you can run remote!
  • But it's also sllloooowww

 

 

 

(and yes, it's still used in ubuntu 18.04)

Want more?

The great CPU war


CISC

  • high level instruction set
  • Easy to program assembly with
  • Intel sold cheap x86 CISC chips


RISC

  • Low level instruction set
  • Fast
  • Easy to optimize
  • High-end CPUs were mostly RISC

@nukemberg

And then Intel won

  • By the mid 90s Intel decided to move to RISC
  • Everyone were using x86 instruction set
  • Lots of proprietary (compiled) software
  • Itanium shipped in 2001 and was a bust

@nukemberg

Guess what Intel did

You guessed it

  • Internal interpreter compiles CISC to RISC on the fly
  • CPU works with compiled RISC microcode internally
  • x86 instruction set compatability
  • Originally in Pentium Pro (1995) 

 

 

So now we have RISC CPUs with CISC interface. Brilliant.

 

(Disclaimer: there were unexpected benefits!)

@nukemberg

Had enough?

  • QWERTY
  • tar
  • DNS
  • Email (SMTP)
  • NTP

 

Bonus points:

What is a CR-LF ?

What is Caps Lock?

@nukemberg

You think that's bad?

  • Airplanes
  • SMS
  • Credit Cards
  • F*cking nuclear missles

 

VOIP running over DSL over analog phone line

@nukemberg

I wasn't kidding about the nuclear missiles

@nukemberg

How the #$@% did this happen

@nukemberg

Infrastructure

  • Physical
  • Logistics nightmare
  • Common dependency
  • Hardware, no SW upgrade

@nukemberg

Protocols

  • Hard to replace
  • No attention to compatibility
  • Standards (or lack of)
  • Abstractions
  • "Network effect"

@nukemberg

Deprecation

  • No deprecation plan
  • Deprecation was never a feature
  • What if the 3rd parties refuse?

@nukemberg

For the love of God

Build Deprecatable systems

Or a at least upgradable

@nukemberg

Every good thing must come to an end

  • Have a deprecation plan
  • Extensible protocols
  • Data export
  • If it's active, it should be maintained
  • Upgradable or Replaceable

@nukemberg

Thank you

I See dead Systems

By Avishai Ish-Shalom

I See dead Systems

The computer systems of today are riddled with legacy. Traces of dead systems are everywhere, burdening further progress and making our life harder.

  • 2,358