Equivalencias IBM i / x86

Referencia completa de mapeo entre conceptos, comandos y herramientas de Linux/Windows y sus equivalentes en IBM i. Ideal para administradores que vienen del mundo x86.

Como usar esta referencia: Las equivalencias no son exactas al 100% — son analogias funcionales para ayudarte a mapear conceptos. El comportamiento especifico de cada comando puede diferir. Usa F4 (prompt) en IBM i para explorar las opciones de cualquier comando.

Sistema operativo

Conceptos Linux/Windows

  • Linux kernel / Windows kernel
  • Particion / VM (VMware, Hyper-V)
  • systemd / Windows Services
  • cron / Task Scheduler
  • /etc/sysconfig / Registry
  • apt/yum / Windows Update
  • dmesg / Event Viewer
  • uptime

Equivalente IBM i

  • SLIC (System Licensed Internal Code)
  • LPAR (Logical Partition) sobre PowerVM
  • Subsistemas (QBATCH, QINTER, QSPL...)
  • WRKJOBSCDE (Job Scheduler nativo)
  • System Values (WRKSYSVAL)
  • PTFs (Program Temporary Fixes)
  • DSPLOG / DSPMSG QSYSOPR
  • DSPSYSSTS (System Status)
Linux / WindowsIBM iNotas
uname -aDSPSYSVAL SYSVAL(QMODEL)Info del sistema y version
hostnameDSPNETANombre del sistema y atributos de red
cat /etc/os-releaseDSPPTF LICPGM(5770SS1)Version del OS y PTFs
uptimeDSPSYSSTSIncluye CPU%, memoria, uptime
shutdown -h nowPWRDWNSYS OPTION(*CNTRLD)Apagar el sistema controladamente
rebootPWRDWNSYS OPTION(*CNTRLD) RESTART(*YES)Reiniciar (IPL)
dateDSPSYSVAL SYSVAL(QDATE) / QTIMEFecha y hora del sistema
timedatectlCHGSYSVAL SYSVAL(QTIMZON)Configurar timezone
localeDSPSYSVAL SYSVAL(QCCSID)Encoding del sistema (CCSID)
env / setDSPLIBL / WRKSYSVALEquivalente a variables de entorno

Sistema de archivos

IBM i tiene dos sistemas de archivos: el QSYS.LIB (nativo, basado en bibliotecas) y el IFS (Integrated File System, similar a Unix). Los comandos difieren segun con cual trabajes.

QSYS.LIB (bibliotecas y objetos)

Linux / WindowsIBM iNotas
ls /dirWRKOBJ LIB/OBJListar objetos en una biblioteca
ls -laWRKOBJPDM LIB(*LIBL)PDM: listado con opciones de accion
find / -name fileWRKOBJ OBJ(*ALL/*ALL)Buscar objetos en todo el sistema
mkdir /dirCRTLIB LIB(MYLIB)Crear biblioteca (contenedor)
rmdir /dirDLTLIB LIB(MYLIB)Eliminar biblioteca
cp file1 file2CRTDUPOBJ / CPYFCopiar objetos o archivos
mv file1 file2MOVOBJ / RNMOBJMover o renombrar objetos
rm fileDLTF FILE(LIB/FILE)Eliminar archivo (tabla)
stat fileDSPOBJD OBJ(LIB/OBJ)Informacion detallada del objeto
du -sh /dirDSPLIB LIB(MYLIB)Tamanio de la biblioteca
PATH=/usr/bin:...EDTLIBL / ADDLIBLEEquivalente al PATH: library list
cd /dirNo aplicaNo hay directorio actual en QSYS.LIB

IFS (Integrated File System)

Linux / WindowsIBM iNotas
ls -la /pathWRKLNK OBJ('/path')Navegar IFS (similar a ls)
cd /pathCD DIR('/path')Cambiar directorio en QShell
cat file.txtDSPF STMF('/path/file.txt')Ver contenido de archivo
cp file1 file2CPY OBJ('/a') TOOBJ('/b')Copiar archivos en IFS
mv file1 file2MOV OBJ('/a') TOOBJ('/b')Mover archivos en IFS
rm fileRMVLNK OBJLNK('/path/file')Eliminar archivo en IFS
mkdir /dirMKDIR DIR('/path/dir')Crear directorio en IFS
chmod 755 fileCHGAUT OBJ('/path') DTAAUT(*RWX)Cambiar permisos IFS
chown user fileCHGOWN OBJ('/path') NEWOWN(USER)Cambiar propietario
df -hWRKDSKSTSEspacio en disco

Networking

Linux / WindowsIBM iNotas
ifconfig / ip addrNETSTAT *IFCInterfaces de red activas
route / ip routeNETSTAT *RTETabla de rutas
netstat -tlnpNETSTAT *CNNConexiones TCP activas
ping hostPING RMTSYS('host')Ping nativo
traceroute hostTRACERT RMTSYS('host')Traceroute
nslookup / digNSLOOKUP HOST('host')Resolucion DNS
ssh user@hostTelnet 5250 / SSH (PASE)5250 = nativo, SSH = PASE
scp / sftpFTP / SFTP nativoTransferencia de archivos
hostname -ICFGTCP opcion 1Configurar TCP/IP
iptables / firewall-cmdPacket rules (CFGTCP opt 4)Reglas de firewall nativas
systemctl start sshdSTRTCPSVR SERVER(*SSHD)Iniciar servicio SSH
systemctl start httpdSTRTCPSVR SERVER(*HTTP)Iniciar servidor HTTP Apache

Seguridad

Linux / WindowsIBM iNotas
useradd / net userCRTUSRPRFCrear usuario
userdel / net user /deleteDLTUSRPRFEliminar usuario
passwdCHGPWD / CHGUSRPRFCambiar contrasena
id / whoamiDSPUSRPRF USRPRF(*CURRENT)Info del usuario actual
groups / net localgroupDSPUSRPRF (grupo *GRPPRF)Grupos = group profiles
chmod 644 fileCHGAUT OBJ() DTAAUT(*RX)Cambiar permisos
chown user fileCHGOBJOWN OBJ() NEWOWN()Cambiar propietario
ls -la (permissions)DSPAUT OBJ(LIB/OBJ)Ver permisos de objeto
sudo / runasSBMJOB USER(QSECOFR)Ejecutar como otro usuario
visudo / sudoersGRTOBJAUT / *ALLOBJOtorgar privilegios
/var/log/auth.logDSPAUDJRNE (journal de auditoria)Log de seguridad
/etc/security/limits.confWRKSYSVAL SYSVAL(QSECURITY)Nivel de seguridad global (20-50)

Procesos y servicios

Linux / WindowsIBM iNotas
ps aux / tasklistWRKACTJOBVer todos los jobs activos
top / htopWRKACTJOB + F10 (elapsed)Monitoreo en tiempo real
kill -9 PIDENDJOB JOB(nombre) OPTION(*IMMED)Terminar un job
kill -15 PIDENDJOB JOB(nombre) OPTION(*CNTRLD)Terminar controladamente
nohup cmd &SBMJOB CMD(comando)Ejecutar en background (batch)
crontab -eWRKJOBSCDEProgramar tareas
systemctl start svcSTRSBS SBSD(subsistema)Iniciar subsistema
systemctl stop svcENDSBS SBS(subsistema)Detener subsistema
systemctl status svcWRKSBS / WRKSBSJOBEstado del subsistema
journalctl -u svcWRKJOBLOGLog del job (como journal de unidad)
nice -n 10 cmdSBMJOB RUNPTY(50)Prioridad de ejecucion
at 3:00 PM cmdSBMJOB SCDDATE(date) SCDTIME(time)Ejecutar en fecha/hora especifica
Diferencia clave: En Linux, un "servicio" es un proceso daemon. En IBM i, un subsistema es un contenedor que ejecuta multiples jobs. QBATCH ejecuta jobs batch, QINTER maneja sesiones interactivas, QSPL gestiona impresion. Son mas parecidos a pools de procesos que a servicios individuales.

Base de datos

MySQL / PostgreSQLIBM i (Db2 for i)Notas
CREATE DATABASECRTLIB (o CREATE SCHEMA)Library = schema = database
CREATE TABLECREATE TABLE / CRTPFSQL o DDS (legacy)
CREATE INDEXCREATE INDEX / CRTLFSQL o Logical File (legacy)
CREATE VIEWCREATE VIEW / CRTLFSQL view o Logical File
SELECT * FROM tblSELECT * FROM LIB.TABLEPrefijo con library
SHOW TABLESSELECT * FROM QSYS2.SYSTABLESCatalogo del sistema
DESCRIBE TABLEDSPFFD FILE(LIB/FILE)Descripcion de campos
mysql / psql (CLI)STRSQLSQL interactivo en 5250
mysqldump / pg_dumpSAVLIB / CPYTOIMPFBackup / export de datos
SHOW PROCESSLISTWRKACTJOB SBS(QSYSWRK)Ver queries activas
EXPLAIN SELECT ...Visual Explain (ACS)Plan de ejecucion de query
CREATE TRIGGERCREATE TRIGGERSQL triggers (identico)
CREATE PROCEDURECREATE PROCEDUREStored procedures SQL

Desarrollo

Linux / WindowsIBM iNotas
vim / nano / VS CodeSEU / RDi / VS Code + Code4iEditores de codigo fuente
gcc -o prog prog.cCRTBNDRPG / CRTSQLRPGICompilar programa RPG
make / MakefileNo estandar (scripts CL)Algunos usan GNU Make en PASE
gdb / lldbSTRDBG / Debug en RDiDebugger interactivo
grep -r 'text' .FNDSTRPDM / FNDSTRMODBuscar texto en fuentes
diff file1 file2CMPPFM (Compare PF Members)Comparar fuentes
git init / commitGit en PASE (nativo)Git funciona en IFS via PASE
python / node / javaPython/Node/Java en PASETodos disponibles en PASE
pip install pkgpip3 install pkg (PASE)Python packages en PASE
npm install pkgnpm install pkg (PASE)Node.js packages en PASE
docker run imgNo soportado nativamenteContainers no corren en IBM i

Monitoreo

Linux / WindowsIBM iNotas
top / htopWRKSYSSTSCPU, memoria, pool de almacenamiento
free -hWRKSYSSTS (pool sizes)Memoria por pool de trabajo
df -hWRKDSKSTSEspacio en disco (ASPs)
iostatWRKDSKSTS (I/O stats)Estadisticas de I/O de disco
vmstatDSPSYSSTSEstado general del sistema
/var/log/syslogDSPMSG QSYSOPRMensajes del sistema
/var/log/messagesDSPLOG LOG(QHST)Log historico del sistema
journalctl -f (follow)DSPMSG MSGQ(QSYSOPR)Monitorear mensajes en vivo
strace / ltraceTRCJOB / TRCTCPAPPTrace de llamadas y red
sar (sysstat)Collection Services + iDoctorMetricas historicas de performance
Nagios / ZabbixIBM Navigator for i / RobotsMonitoreo grafico web
CL — Monitoreo rapido del sistema
-- Dashboard rapido de estado del sistema
WRKSYSSTS            -- CPU%, memoria, disk I/O
WRKACTJOB            -- Jobs activos (F10 para elapsed)
WRKDSKSTS            -- Estado de discos
DSPMSG QSYSOPR       -- Mensajes criticos
DSPLOG               -- Log del sistema
WRKSBS               -- Subsistemas activos

Backup y Recovery

Linux / WindowsIBM iNotas
tar -czf backup.tar.gz /dirSAVLIB LIB(MYLIB) DEV(*SAVF)Backup de biblioteca a save file
tar -xzf backup.tar.gzRSTLIB SAVLIB(MYLIB) DEV(*SAVF)Restaurar biblioteca
dd if=/dev/sda of=disk.imgSAVSYS DEV(*SAVF)Backup del sistema completo
rsync -av src/ dest/SAVCHGOBJ (save changed objects)Backup incremental
cp -a file file.bakSAVOBJ OBJ(x) LIB(y)Backup de objeto individual
Amanda / BaculaBRMS (Backup Recovery Media Services)Herramienta de backup enterprise
aws s3 cp / gsutilICC (IBM Cloud Connector)Backup a cloud object storage
cron + backup scriptBRMS control groups + JOBSCDEBackup automatizado programado

Herramientas y utilidades

Linux / WindowsIBM iNotas
man commandF1 (help) o GO CMDHLPAyuda contextual sobre comandos
which / whereisDSPOBJD OBJ(*LIBL/cmdname)Encontrar donde esta un objeto
wc -l fileDSPFD FILE(LIB/FILE) TYPE(*MBR)Contar registros en archivo
head -n 10 fileDSPPFM FILE(LIB/FILE)Ver contenido de physical file
tail -f /var/log/xDSPMSG MSGQ(QSYSOPR) (con refresh)Seguir mensajes
sed / awkSQL UPDATE / CPYF con FMTOPTTransformar datos
curl / wgetSYSTOOLS.HTTPGETCLOB (SQL)Llamadas HTTP desde SQL
cronADDJOBSCDE / WRKJOBSCDEProgramar tareas recurrentes
mail / sendmailSNDDST / SNDSMTPEMMEnviar correo electronico
zip / unzipJAR (Java) o PASE zip/gzipCompresion de archivos
Recordatorio: IBM i tambien tiene un entorno Unix completo (PASE) donde se pueden ejecutar la mayoria de los comandos Linux directamente: ls,grep, vi,python3, node, etc. Acceder via SSH o CALL QP2TERM.