Menu

FAQ

Jon Taylor

Q: Why Controlix?

A: The VHDL language is theoretically superior to C/C++, which most operating systems are currently written in. It makes a lot of practical sense to switch over.

Q: What are those reasons?

A: Verifiability, scalability and controlability.

Q: Can you explain those in more detail?

A1: Verifiability means the traditional VHDL testbench environment, which often can be "locked out" to allow for a complete formal proof of the correctness of behavior of the code to be verified, can be implemented. This simply is not possible with C/C++, rendering operating systems written in those languages unsecurable maintenance nightmares. One of the core goals of the Controlix development effort is to run as much of the codebase in VHDL as is possible, leaving only basic setup, interrupt and exception trampolines and other absolutely-basic-and-ultra-minimal code sections in native code (preferably handcoded assembly language). Controlix can also be compiled into a bitstream or netlist for implementation on a programmable logic device such as an FPGA or CPLD, or masked directly into a "hard" integrated circuit, completely eliminating the possibility of incorrect behavior of very high-level and abstract code.

A2: Scalability means that the inherently omni-multithreaded execution potential of the VHDL language can be put to use in systems software. A classic truism in computer science is that "more than 16 CPUs per computer is wasted", because the scheduling overhead makes the benefit curve drop off sharply. That number is obviously technically a guess for a given workload type, but people use it as a talking point all the time and the basic notion stands. Most heavily-multicore hardware systems are either used to serve many network connections within a short period of time and hope that their access patterns don't end up bottlenecking a back-end function such as a database server (happens all the time), run highly-specialized mathematical analysis code (linear analysis is the bottleneck here), or just run a lot of general tasks at once, all hoping not to bog down in intra-thread process dependency or device driver access multiplexing hell. Properly-written VHDL is orthogonally distributed, not simply thread-parallelized like most of the nonlinear coding attempts made today - most of them artifacts of the computer field's addiction to C/C++ and similar languages which were originally designed to be "portable assembly language" in abstraction.

A3: Controlability means flow control in an abstract sense. VHDL is clock-and-bit accurate down to its most basic abstractions, which means that extremely fine-grained performance optimization and control over the underlying hardware is possible at levels that the C language is virtually unable to implement. It also provides a clean way to migrate security and performance critical systems code off of the 1940s style CPU based computers that most computing tasks are still to this day confined to (at an enormous loss of flexibility, reliability and performance). Systems code should be orthogonal - reality usually is, and the extremely nonlinear nature of the human brain/nervous system is a classic example. Computer hardware is often designed this way, outside of the narrow confines of CPU-based systems, and it works well. Controlix tries to leverage the existent hardware design environment to the benefit of system software.


Related

Wiki: Home