Old School Serial, And why it’s still cool

I occasionally, but more and more recently, keep hearing people asking why Serial (RS232) is needed on Enterprise equipment.

Let’s take a trip back in time to when before USB even existing and that embarrassing demonstration of “Hot Plug” in Windows 98.

Back then, keyboards were PS/2 or even AT connectors, what a lot of people didn’t realise is the way that the keyboard worked with the operating system compared to USB is completely different. USB interfaces are polled at a frequency by the OS for changes and any commands requiring processing. This began to be realised as a problem in early days for people who were either incredibly fast typists whom needed “nKey rollover”, or those who wanted to get into their BIOS settings during POST. I was the latter. This was due to no support for USB in the BIOS, and the computer simply not having a way to pool the keyboard prior to OS boot. Since then we have established baseline USB support in bios, much like the E1000 adaptor standard across network cards, which allows for basic, feature minimalistic instructions to be understood across vendors without need for bloating systems with drivers for every type of input device or interface card.

Without these things, USB keyboard in BIOS would be incredibly hard to do, along with other things like WoL, as well as the other enterprise features such as PXE.

The PS/2 and other keyboards on the other hand are interrupt based, and would send interrupts to the CPU instead of waiting to be polled. This has 2 dramatic effects.

  1. Ability to interrupt what was occurring in the queue of instructions – GREAT
  2. Required the keyboard to be plugged in prior to power on – Not so great

Now that we’ve been back in time and thought about the types of instruction receptions, let’s apply this thinking to Enterprise hardware. If you need to be getting into the nuts and bolts of a computer, or trying to recover a bricked switch, motherboard, or something else, you’ll want to send commands to it in a way which no software or interface layer like drivers or firmwares can’t mess it up, or better yet, don’t need to be loaded in order to work.

This is the basic premise as to why RS232 still exists, because it’s needed in the event that the OS or System has entered a race condition or simply won’t even boot. I’ve personally recovered many a switch and motherboard using basic tools, whilst inconvenient, the only thing worse is having dead hardware that you can’t recover. Which has happened to me too when recovery modes don’t exist or have no methods to invoke bootstrap level commands.

Thoughts? Comments? Send me a message or a tweet.