5 ms·
Yup, in the late 80's, and 90's I worked on several AS/400's. The video doesn't mention that not only is SQL a part of the OS, the hardware (microcoded) actual
by hsnewman 3y ago
Yup, in the late 80's, and 90's I worked on several AS/400's. The video doesn't mention that not only is SQL a part of the OS, the hardware (microcoded) actually has instructions for SQL. It's part of the CPU!
- ch_123 3y agoOn the original CISC AS/400 systems, there were two layers of "microcode" - horizontal and vertical. The vertical "microcode" was not really microcode, but was essentially the OS kernel (including the database and the native code generator), mostly implemented in a PL/I dialect. The horizontal microcode was the actual microcode - it implemented the CPU instruction set which the vertical microcode's PL/I code compiled down to. While the horizontal microcode implemented some rather high level things such as processor scheduling, I am almost certain that the database logic was implemented in the vertical microcode layer. Once IBM i was ported to PowerPC, the vertical microcode was mostly rewritten in C++ and became known as the "Licensed Internal Code" and the PPC instruction set essentially replaced the role of the horizontal microcode.
- sillywalk 3y agoThis [0] is a pretty good intro to the AS/400 etc. [0] https://www.scss.tcd.ie/SCSSTreasuresCatalog/hardware/TCD-SCSS-T.20121208.068/IBM-AS400-technical-introduction.pdf https://www.scss.tcd.ie/SCSSTreasuresCatalog/hardware/TCD-SC...
- jasomill 3y agoIncidentally, the term "microcode" for the OS kernel originated with the AS/400's predecessor, the System/38, because, as a legacy of '60s-era lawsuits, it was IBM's policy at the time to separate hardware and software sales and development costs. Bundling microcode with hardware, on the other hand, was standard practice. The designers' idea was to build and sell the hardware and software stack as an integrated product, never to implement an operating system or RDBMS "in hardware". For an explanation of this integrated architecture from one of its original designers, see https://archive.org/details/insideas4000000solt/page/75/mode/1up https://archive.org/details/insideas4000000solt/page/75/mode... (registration and check-out required)
- sillywalk 3y agoI've been waiting for that book to be digitized for years.
- skissane 3y ago> Once IBM i was ported to PowerPC, the vertical microcode was mostly rewritten in C++ I heard once from someone who used to work for IBM, that although the most important parts of the “vertical microcode” were rewritten in C++, a lot of less important bits stayed in PL/MP (the PL/I dialect which compiled to the CISC IMPI native instruction set)-they just built a new PL/MP compiler which spat out POWER machine code instead of IMPI machine code-and so lots of PL/MP code is still there. And then there is also PL/MI, which is used for the higher level OS components which run above the “Licensed Internal Code”-it compiles to MI bytecode-and apparently that’s still around too. And still parts of the OS written in Modula 2. But brand new stuff, they prefer more mainstream languages such as C++
- rbanffy 3y agoKind of. Not sure about the CISC-based AS/400, but current ones have bytecode translation (AOT compilation, IIRC) and run on POWER. In hardware terms, a pSeries and an iSeries are the same, with different microcode customizations loaded into the processors. I think it's even possible to run AIX partitions side by side with IBM i ones, if the processors (or TPM's, not sure) have a valid license.
- thequux 3y agoIt is absolutely possible to run AIX and IBM i in separate LPARs on the same machine (as of Power 7, at least), as long as you have the appropriate hardware entitlement to run IBM i.
- ch_123 3y agopSeries and iSeries were consolidated down to "IBM Power Systems" back in 2008. I think they may install different firmware onto the systems, but the differences are more related to licensing than anything specific to the hardware.
- kps 3y agoI think they always did AOT compilation from the AS/400 instruction set to the actual hardware. In the '90s I worked for an external company that did some compiler work on a horizontally-microcoded implementation that didn't get close to shipping. (I don't remember many details, and if I did, I expect they'd still be under NDA.)
- jasomill 3y agoThis is true; at one point, there was even an instruction that deleted the untranslated code ("program template") to save disk space, https://bitsavers.org/pdf/ibm/system38/GA21-9331-1_System_38_Functional_Reference_Manual_Feb81.pdf#page=195 https://bitsavers.org/pdf/ibm/system38/GA21-9331-1_System_38... This instruction is either not present or not documented in the current Machine Interface[1], but I have no idea when or if it was removed. [1] https://www.ibm.com/docs/en/i/7.5?topic=interface-machine-instructions https://www.ibm.com/docs/en/i/7.5?topic=interface-machine-in...