If you wanted a slogan that summarizes key trends in the IT industry over the last 30+ years, then "everything is virtual" would be a good candidate. In todays computing environments, essentially every physical resource is virtualized - and pretty much the first resource where this happened in mainstream computing was memory. In this post, … Continue reading Virtual memory
Until the nineties of the last century, quantum computing seemed to be an interesting theoretical possibility, but it was far from clear whether it could be useful to tackle computationally hard problems with high relevance for actual complications. This changed dramatically in 1994, when the mathematician P. Shor announced a quantum algorithm that could efficiently … Continue reading Shor’s quantum factoring algorithm
The first PC on which I was running a copy of Linux back in the nineties did of course only have one CPU, so it was clear to me that it could physically only execute one instruction at a time - but still, it magically created the impression to run several programs in parallel without … Continue reading How does multitasking really work?
We are getting closer to the most spectacular early quantum algorithm - Shor's algorithm for factoring large composite numbers which can be used to break the most widely used public key cryptography systems. But before we can tackle this algorithm, there is one more thing that we need to understand - the quantum Fourier transform. … Continue reading The quantum Fourier Transform
Modern operating systems are mostly event driven - network cards receive packets, users hit keys or a mouse buttons, built-in timer create events or data arrives from a hard drive. To be able to process these events, a CPU needs a mechanism to stop whatever it is currently doing and run some code designed to … Continue reading Interrupts – the heartbeat of a Unix kernel
In the last post, we have looked at the Deutsch-Jozsa algorithm that is considered to be the first example of a quantum algorithm that is structurally more efficient than any classical algorithm can probably be. However, the problem solved by the algorithm is rather special. This does, of course, raise the question whether a similar … Continue reading Grover’s algorithm – unstructured search with a quantum computer
Most careers in operating system development probably start with a seemingly simple task - produce a program that, at start time, takes full control of a computer and prepares for the execution of the actual operating system, i.e. boot the computer. It turns out, however, that - thanks to the complexity of modern x86 based … Continue reading Get your kernel going – the boot process