# IBM i

IBM i (la i que significa integrat) és un sistema operatiu desenvolupat per IBM per a IBM Power Systems. Va ser llançat originalment el 1988 com a OS/400, com l'únic sistema operatiu de la línia de sistemes IBM AS/400. Va ser rebatejat a i5/OS el 2004, abans de ser rebatejat per segona vegada a IBM i el 2008. És una evolució del sistema operatiu System/38 CPF, amb capes de compatibilitat per a aplicacions System/36 SSP i AIX. Hereta una sèrie de característiques distintives de la plataforma System/38, com ara la interfície de màquina, la implementació d'adreçament basat en objectes d'emmagatzematge d'un sol nivell i l'estreta integració d'una base de dades relacional al sistema operatiu.

## Història
### Origen

OS/400 es va desenvolupar juntament amb la plataforma de maquinari AS/400 a partir del desembre de 1985. El desenvolupament va començar després del fracàs del projecte Fort Knox, que va deixar IBM sense un sistema competitiu de gamma mitjana. Durant el projecte Fort Knox, els enginyers van iniciar un projecte skunkworks a Rochester, que van aconseguir desenvolupar codi que permetia que les aplicacions System/36 s'executessin a sobre del System/38, i quan Fort Knox va ser cancel·lat, aquest projecte va evolucionar. en un projecte oficial per substituir tant el System/36 com el System/38 per una única plataforma nova de maquinari i programari. El projecte es va fer conegut com Silverlake (anomenat així pel Silver Lake a Rochester, Minnesota ).
El sistema operatiu per a Silverlake tenia el nom en codi XPF (CPF estès), i originalment havia començat com un port de CPF al maquinari Fort Knox. A més d'afegir suport per a les aplicacions System/36, algunes de la interfície d'usuari i les funcions de facilitat d'ús del System/36 es van transferir al nou sistema operatiu.
Silverlake estava disponible per a proves de camp el juny de 1988, i es va anunciar oficialment l'agost d'aquell any. En aquell moment, s'havia canviat el nom a Application System/400 i el sistema operatiu s'havia anomenat Operating System/400.

### El pas a PowerPC

El port a PowerPC va requerir una reescriptura de la major part del codi sota el TIMI. Les primeres versions d'OS/400 van heretar les capes de microcodi horitzontal i vertical del sistema/38, tot i que es van canviar el nom a Codi intern amb llicència horitzontal (HLIC) i Codi intern amb llicència vertical (VLIC) respectivament. El port al nou maquinari va fer que el conjunt d'instruccions IMPI i el microcodi horitzontal que l'implementaven fossin substituïts pel conjunt d'instruccions PowerPC AS i la seva implementació als processadors PowerAS. Això va requerir que el VLIC es tornés a escriure a PowerPC en lloc d'IMPI, i que la funcionalitat del sistema operatiu implementada anteriorment a l'HLIC es tornés a implementar en altres llocs. Això va fer que l'HLIC i el VLIC fossin substituïts per una única capa anomenada Codi intern amb llicència del sistema (SLIC). El SLIC es va implementar en un estil orientat a objectes amb més de 2 milions de línies de codi C++, substituint part del codi HLIC i la majoria del codi VLIC. A causa de la quantitat de treball necessària per implementar el SLIC, IBM Rochester va contractar diversos centenars de programadors C++ per al projecte, que van treballar en el SLIC en paral·lel a les noves revisions del VLIC per als sistemes CISC AS/400. La primera versió d'OS/400 per donar suport al maquinari basat en PowerPC va ser la V3R6.

## Arquitectura

Quan l'IBM i es va llançar per primera vegada com a OS/400, es va dividir en dues capes, el codi intern amb llicència del sistema (SLIC) i l'Extended Control Program Facility (XPF) independent del maquinari. Aquests estan dividits per una capa d'abstracció de maquinari anomenada Technology Independent Machine Interface (TIMI). Les versions posteriors del sistema operatiu van obtenir capes addicionals, inclosa una capa de compatibilitat AIX anomenada Portable Application Solutions Environment (originalment conegut com a Private Address Space Environment), i l'entorn Advanced 36 Machine que executava les aplicacions System/36 SSP. en emulació.
IBM sovint utilitza diferents noms per a TIMI, SLIC i XPF en la documentació i els materials de màrqueting, per exemple, la documentació de l'IBM i 7.4 els fa referència com a IBM i Machine Interface, IBM i Licensed Internal Code i IBM i Operating System respectivament.

### TIMI

El TIMI aïlla els usuaris i les aplicacions del maquinari subjacent. Aquest aïllament és més complet que les abstraccions de maquinari d'altres sistemes operatius, i inclou l'abstracció de l'arquitectura del conjunt d'instruccions del processador, la mida de l'espai d'adreces i les especificitats d'E/S i persistència. Això s'aconsegueix mitjançant dos mecanismes interrelacionats:
* Els compiladors per a IBM i no generen codi de màquina natiu directament, sinó que generen una representació intermèdia d'alt nivell definida pel TIMI. Quan s'executa un programa, el sistema operatiu realitza una traducció anticipada de les instruccions TIMI al codi màquina natiu per al processador i emmagatzema el codi màquina generat per a una execució futura del programa. Si el procés de traducció canvia o s'adopta un conjunt d'instruccions de CPU diferent, el sistema operatiu pot regenerar de manera transparent el codi màquina a partir de les instruccions TIMI sense necessitat de recompilar des del codi font.
* En lloc d'operar en adreces de memòria, les instruccions TIMI operen en objectes. Totes les dades de l'IBM i, com ara fitxers de dades, codi font, programes i regions de memòria assignada, estan encapsulades dins d'objectes gestionats pel sistema operatiu ( vegeu el model " Tot és un fitxer " a Unix). Els objectes IBM i tenen un tipus fix, que defineix el conjunt d'operacions aplicables que es poden dur a terme sobre ells (per exemple, un objecte de programa es pot executar, però no es pot editar). El model d'objectes amaga si les dades s'emmagatzemen a l'emmagatzematge primari o secundari. En canvi, el sistema operatiu gestiona automàticament el procés de recuperació i després emmagatzematge dels canvis a l'emmagatzematge permanent.IBM i durant la càrrega inicial del programa del SLIC

### SLIC

El SLIC consisteix en el codi que implementa el TIMI a sobre de l'arquitectura IBM Power. A més de contenir la major part de la funcionalitat associada normalment amb un nucli de sistema operatiu, és responsable de traduir les instruccions TIMI al codi màquina, i també implementa algunes funcionalitats d'alt nivell que s'exposen a través del TIMI, com ara la base de dades relacional integrada d'IBM i. El SLIC implementa el model d'emmagatzematge basat en objectes d'IBM i a sobre d'un esquema d'adreces de magatzem d'un sol nivell, que no distingeix entre emmagatzematge primari i secundari, sinó que gestiona tots els tipus d'emmagatzematge en un únic espai d'adreces virtuals. El SLIC s'implementa principalment en C++ i va substituir les capes HLIC i VLIC utilitzades en versions d'OS/400 anteriors a V3R6.

### XPF

El XPF consisteix en el codi que implementa els components independents del maquinari del sistema operatiu, que es compilen en instruccions TIMI. Els components del XPF inclouen la interfície d'usuari, el llenguatge de control, utilitats de consulta i gestió de dades, eines de desenvolupament i utilitats de gestió del sistema. El XPF també conté l' entorn System/36 i l'entorn System/38, que proporcionen API i utilitats de compatibilitat enrere per a aplicacions i dades migrades des dels sistemes SSP i CPF. El XPF és el nom intern d'IBM per a aquesta capa i, com el seu nom indica, va començar com una evolució de la instal·lació del programa de control System/38. El XPF s'implementa principalment en PL/MI, encara que també s'utilitzen altres idiomes.

## Referències

* ↑ Alex Woodie. «Where is IBM i?» (en anglès). itjungle.com, 13-05-2020. [Consulta: 1r març 2021].
* ↑ «IBM i: A platform for innovators, by innovators» (en anglès). ibm.com. International Business Machines. [Consulta: 22 setembre 2020].
* ↑ Steve Will. «IBM i in 2020: It's Not Just AS/400» (en anglès). youtube.com. Fortra, 16-07-2020. [Consulta: 21 març 2021].
* ↑ «IBM i5/OS V5R3 — the next generation of OS/400» (en anglès). IBM, 04-05-2004. Arxivat de l'original el 2014-08-08. [Consulta: 24 febrer 2021].
* 1 2 Frank G. Soltis. Fortress Rochester: the Inside Story of the IBM iSeries (en anglès). System iNetwork, 2001. ISBN 978-1583040836.
* 1 2 Frank G. Soltis. Fortress Rochester: the Inside Story of the IBM iSeries (en anglès). System iNetwork, 2001. ISBN 978-1583040836.
* ↑ Roy A. Bauer. The Silverlake Project: Transformation at IBM (en anglès). Oxford University Press, 1992. ISBN 9780195067545.
* ↑ Eric J. Wieffering. «The brave new world of IBM Rochester» (en anglès). postbulletin.com, 23-05-1992. [Consulta: 6 març 2021].
* ↑ Tom Huntington. «Happy 30th Anniversary, IBM i!» (en anglès). fortra.com, 21-06-2018. [Consulta: 5 març 2021].
* ↑ «Silverlake» (en anglès). wiki.midrange.com, 21-08-2006. [Consulta: 6 març 2021].
* ↑ Frank G. Soltis. Fortress Rochester: the Inside Story of the IBM iSeries (en anglès). System iNetwork, 2001. ISBN 978-1583040836.
* ↑ Tom Van Looy. «The IBM AS/400: A technical introduction» (en anglès). scss.tcd.ie, 01-01-2009. [Consulta: 13 març 2021].
* ↑ Berg, William; Cline, Marshall; Girou, Mike Communications of the ACM, 38, 10, 1995, pàg. 54–64. DOI: 10.1145/226239.226253. ISSN: 0001-0782 [Consulta: 13 març 2021].
* ↑ Timothy Prickett Morgan. «TFH Flashback: The Joy of V3R6» (en anglès). itjungle.com, 20-08-2007. [Consulta: 13 març 2021].
* ↑ «5763-SS1 IBM Operating System/400 (OS/400) Version 3» (en anglès). 4props.ddns.net. IBM. Arxivat de l'original el 2021-09-19. [Consulta: 13 març 2021].
* ↑ Tom Van Looy. «The IBM AS/400: A technical introduction» (en anglès). scss.tcd.ie, 01-01-2009. [Consulta: 13 març 2021].
* ↑ Berg, William; Cline, Marshall; Girou, Mike Communications of the ACM, 38, 10, 1995, pàg. 54–64. DOI: 10.1145/226239.226253. ISSN: 0001-0782 [Consulta: 13 març 2021].
* ↑ Steve Will. «IBM i in 2020: It's Not Just AS/400» (en anglès). youtube.com. Fortra, 16-07-2020. [Consulta: 21 març 2021].
* ↑ «DSPHMCINF/DSPSMDTA: Querying the Current Status of Every HMC or SM Straight from the Command Line» (en anglès). IBM, 18-12-2019. [Consulta: 20 març 2021].
* ↑ Lars Johanneson. «Future of Power: IBM Power» (en anglès). IBM, 04-09-2013. [Consulta: 20 març 2021].
* ↑ Frank G. Soltis. Fortress Rochester: the Inside Story of the IBM iSeries (en anglès). System iNetwork, 2001. ISBN 978-1583040836.
* ↑ «IBM PASE for i» (en anglès). IBM. [Consulta: 13 maig 2020].
* ↑ Frank G. Soltis. «What Is an iSeries?» (en anglès). systeminetwork.com, 01-09-2003. Arxivat de l'original el 2012-04-15. [Consulta: 20 març 2021].
* ↑ «IBM i 7.4 Documentation» (en anglès). IBM, 2019. [Consulta: 20 març 2021].
* ↑ Tom Van Looy. «The IBM AS/400: A technical introduction» (en anglès). scss.tcd.ie, 01-01-2009. [Consulta: 13 març 2021].
* ↑ Woodie, Alex. «Frank Soltis Discusses A Possible Future for Single-Level Storage» (en anglès). itjungle.com. IT Jungle. [Consulta: 4 desembre 2020].
* ↑ Berg, William; Cline, Marshall; Girou, Mike Communications of the ACM, 38, 10, 1995, pàg. 54–64. DOI: 10.1145/226239.226253. ISSN: 0001-0782 [Consulta: 13 març 2021].
* ↑ Berg, William; Cline, Marshall; Girou, Mike Communications of the ACM, 38, 10, 1995, pàg. 54–64. DOI: 10.1145/226239.226253. ISSN: 0001-0782 [Consulta: 13 març 2021].
* ↑ Jim Hoskins. Exploring IBM AS/400 Computers (en anglès). Maximum Press, 1998. ISBN 978-1-885068-19-4.