OS/400
   HOME

TheInfoList



OR:

IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS in 2004, before being renamed a second time to IBM i in 2008. It is an evolution of the System/38 CPF operating system, with compatibility layers for
System/36 The IBM System/36 (often abbreviated as S/36) was a midrange computer marketed by IBM from 1983 to 2000 - a multi-user, multi-tasking successor to the System/34. Like the System/34 and the older System/32, the System/36 was primarily pro ...
SSP and
AIX Aix or AIX may refer to: Computing * AIX, a line of IBM computer operating systems *An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set * Athens Internet Exchange, a European Internet exchange point Places Belgiu ...
applications. It inherits a number of distinctive features from the System/38 platform, including the Machine Interface, the implementation of object-based addressing on top of a single-level store, and the tight integration of a relational database into the operating system.


History


Origin

OS/400 was developed alongside the AS/400 hardware platform beginning in December 1985. Development began in the aftermath of the failure of the Fort Knox project, which left IBM without a competitive midrange system. During the Fort Knox project, a
skunkworks project A skunkworks project is a project developed by a relatively small and loosely structured group of people who research and develop a project, often with a very large degree of autonomy, primarily for the sake of radical innovation. The term orig ...
was started at Rochester by engineers, who succeeded in developing code which allowed System/36 applications to run on top of the System/38, and when Fort Knox was cancelled, this project evolved into an official project to replace both the System/36 and System/38 with a single new hardware and software platform. The project became known as ''Silverlake'' (named for Silver Lake in Rochester, Minnesota). The operating system for Silverlake was codenamed ''XPF'' (Extended CPF), and had originally begun as a port of CPF to the Fort Knox hardware. In addition to adding support for System/36 applications, some of the user interface and ease-of-use features from the System/36 were carried over to the new operating system. Silverlake was available for field test in June 1988, and was officially announced in August of that year. By that point, it had been renamed to the ''Application System/400'', and the operating system had been named ''Operating System/400''.


The move to PowerPC

The port to PowerPC required a rewrite of most of the code below the
TIMI The Thrombolysis In Myocardial Infarction, or TIMI Study Group, is an Academic Research Organization (ARO) affiliated with Brigham and Women's Hospital and Harvard Medical School dedicated to advancing the knowledge and care of patients with ca ...
. Early versions of OS/400 inherited the Horizontal and Vertical Microcode layers of the System/38, although they were renamed to the ''Horizontal Licensed Internal Code'' (HLIC) and ''Vertical Licensed Internal Code'' (VLIC) respectively. The port to the new hardware led to the IMPI instruction set and the horizontal microcode implementing it being replaced by the PowerPC AS instruction set and its implementation in PowerAS processors. This required the VLIC to be rewritten to target PowerPC instead of IMPI, and for the operating system functionality previously implemented in the HLIC to be re-implemented elsewhere. This led to the HLIC and VLIC being replaced with a single layer named the ''System Licensed Internal Code'' (SLIC). The SLIC was implemented in an
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
style with over 2 million lines of
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
code, replacing some of the HLIC code, and most of the VLIC code. Owing to the amount of work needed to implement the SLIC, IBM Rochester hired several hundred C++ programmers for the project, who worked on the SLIC in parallel to new revisions of the VLIC for the CISC AS/400 systems. The first release of OS/400 to support PowerPC-based hardware was V3R6.


Rebranding

The AS/400 product line was rebranded multiple times throughout the 1990s and 2000s. As part of the 2004 rebranding to ''eServer i5'', OS/400 was renamed to ''i5/OS''; the ''5'' signifying the use of POWER5 processors. The first release of i5/OS, V5R3, was described by IBM as "a different name for the same operating system". In 2006, IBM rebranded the AS/400 line one last time to ''System i''. In April 2008, IBM consolidated the System i with the
System p The IBM System p is a high-end line of RISC (Power)/ UNIX-based servers. It was the successor of the RS/6000 line, and predecessor of the IBM Power Systems server series. History The previous RS/6000 line was originally a line of workstation ...
platform to create IBM Power Systems. At the same time, i5/OS was renamed to ''IBM i'', in order to remove the association with POWER5 processors. The two most recent versions of the operating system at that time, which had been released as i5/OS V5R4 and V6R1, were renamed to IBM i 5.4 and 6.1. Along with the rebranding to IBM i, IBM changed the versioning nomenclature for the operating system. Prior releases used a ''Version, Release, Modification'' scheme, e.g. V2R1M1. This was replaced with a ''Version.Release'' scheme, e.g. 6.1. Beginning with IBM i 7.1, IBM replaced the Modification releases with ''Technology Refreshes''. Technology Refreshes are delivered as optional PTFs for specific releases of the operating system which add new functionality or hardware support to the operating system.


Architecture

When IBM i was first released as OS/400, it was split into two layers, the hardware-dependent ''System Licensed Internal Code'' (SLIC) and the hardware-independent ''Extended Control Program Facility'' (XPF). These are divided by a
hardware abstraction layer Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
called the ''Technology Independent Machine Interface'' (TIMI). Later versions of the operating system gained additional layers, including an
AIX Aix or AIX may refer to: Computing * AIX, a line of IBM computer operating systems *An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set * Athens Internet Exchange, a European Internet exchange point Places Belgiu ...
compatibility layer In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With s ...
named ''Portable Application Solutions Environment'' (originally known as the ''Private Address Space Environment''), and the ''Advanced 36 Machine'' environment which ran System/36 SSP applications in emulation. IBM often uses different names for the TIMI, SLIC and XPF in documentation and marketing materials, for example, the IBM i 7.4 documentation refers to them as the ''IBM i Machine Interface'', ''IBM i Licensed Internal Code'' and ''IBM i Operating System'' respectively.


TIMI

The TIMI isolates users and applications from the underlying hardware. This isolation is more thorough than the hardware abstractions of other operating systems, and includes abstracting the
instruction set architecture In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ...
of the processor, the size of the
address space In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity. For software programs to save and retrieve s ...
and the specifics of I/O and persistence. This is accomplished through two interrelated mechanisms: * Compilers for IBM i do not generate native
machine code In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a ve ...
directly, instead they generate a high level
intermediate representation An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good" ...
defined by the TIMI. When a program is run, the operating system carries out ahead-of-time translation of the TIMI instructions into native machine code for the processor, and stores the generated machine code for future execution of the program. If the translation process changes, or a different CPU instruction set is adopted, the operating system can transparently regenerate the machine code from the TIMI instructions without needing to recompile from source code. * Instead of operating on memory addresses, TIMI instructions operate on ''objects''. All data in IBM i, such as data files, source code, programs and regions of allocated memory, are encapsulated inside objects managed by the operating system (c.f. the "
Everything is a file Everything is a file is an idea that Unix, and its derivatives handle input/output to and from resources such as documents, hard-drives, modems, keyboards, printers and even some inter-process and network communications as simple streams of bytes ...
" model in
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, ...
). IBM i objects have a fixed type, which defines the set of applicable operations which may be carried out on them (for example, a ''Program'' object can be executed, but cannot be edited). The object model hides whether data is stored in
primary Primary or primaries may refer to: Arts, entertainment, and media Music Groups and labels * Primary (band), from Australia * Primary (musician), hip hop musician and record producer from South Korea * Primary Music, Israeli record label Works ...
, or
secondary storage Computer data storage is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers. The central processing unit (CPU) of a compute ...
. Instead, the operating system automatically handles the process of retrieving and then storing the changes to permanent storage. The hardware isolation provided by the TIMI allowed IBM to replace the AS/400's 48-bit IMPI architecture with the 64-bit
RS64 The IBM RS64 is a family of microprocessors used in IBM's RS/6000 and AS/400 servers in the late 1990s. These microprocessors implement the "Amazon", or "PowerPC-AS", instruction set architecture (ISA). Amazon is a superset of the PowerPC ins ...
architecture in 1995. Applications compiled on systems using the IMPI instruction set could run on top of the newer RS64 systems without any code changes, recompilation or emulation, while also allowing those applications to avail of 64-bit addressing. There are two different formats of TIMI instructions, known as the ''Original Machine Interface'' (OMI) and ''New Machine Interface'' (NMI) formats. OMI instructions are essentially the same as the System/38 Machine interface instructions, whereas NMI instructions are lower-level, resembling the ''W-code''
intermediate representation An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good" ...
format used by IBM's compilers. IBM partially documents the OMI instructions, whereas the NMI instructions are not officially documented. OMI instructions are used by the original AS/400 compilers, whereas NMI instructions are used by the Integrated Language Environment compilers. During the PowerPC port, native support for the OMI format was removed, and replaced with a translator which converted OMI instructions into NMI instructions. The storing of the TIMI instructions alongside the native machine code instructions is known as ''observability''. In 2008, the release of i5/OS V6R1 (later known as IBM i 6.1) introduced a number of changes to the TIMI layer which caused problems for third-party software which removed observability from the application objects shipped to customers.


SLIC

The SLIC consists of the code which implements the TIMI on top of the IBM Power architecture. In addition to containing most of the functionality typically associated with an operating system
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learn ...
, it is responsible for translating TIMI instructions into machine code, and it also implements some high level functionality which is exposed through the TIMI, such as IBM i's integrated relational database. The SLIC implements IBM i's object-based storage model on top of a single-level store addressing scheme, which does not distinguish between primary and secondary storage, and instead manages all types of storage in a single
virtual address space In computing, a virtual address space (VAS) or address space is the set of ranges of virtual addresses that an operating system makes available to a process. The range of virtual addresses usually starts at a low address and can extend to the hig ...
. The SLIC is primarily implemented in C++, and replaced the HLIC and VLIC layers used in versions of OS/400 prior to V3R6.


XPF

The XPF consists of the code which implements the hardware-independent components of the operating system, which are compiled into TIMI instructions. Components of the XPF include the user interface, the
Control Language The Control Language (CL) is a scripting language originally created by IBM for the System/38 Control Program Facility and later used in OS/400 (now known as IBM i). It bears a resemblance to the IBM Job Control Language and consists of a set of ...
, data management and query utilities, development tools and system management utilities. The XPF also contains the ''System/36 Environment'' and ''System/38 Environment'', which provide backwards compatibility APIs and utilities for applications and data migrated from SSP and CPF systems. The XPF is IBM's internal name for this layer, and as the name suggests, began as an evolution of the System/38
Control Program Facility Control Program Facility (CPF) is the operating system of the IBM System/38. CPF represented an independendent line of development at IBM Rochester, and was unrelated to the earlier and more widely used System Support Program operating system. ...
. The XPF is mostly implemented in PL/MI, although other languages are also used.


PASE

PASE (Portable Applications Solutions Environment) provides
binary compatibility Binary-code compatibility (binary compatible or object-code-compatible) is a property of a computer system, meaning that it can run the same executable code, typically machine code for a general-purpose computer CPU, that another computer system ...
for
user mode A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
AIX
executables In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fil ...
which do not interact directly with the AIX kernel, and supports the 32-bit and 64-bit AIX
Application Binary Interface In computer software, an application binary interface (ABI) is an interface between two binary program modules. Often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user. An ...
s. PASE was first included in a limited and undocumented form in the V4R3 release of OS/400 to support a port of
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan ...
. It was first announced to customers at the time of the V4R5 release, by which time it had gained significant additional functionality. PASE consists of the AIX userspace running on top of a system call interface implemented by the SLIC. The system call interfaces allows interoperability between PASE and native IBM i applications, for example, PASE applications can access the integrated database, or call native IBM i applications, and vice versa. During the creation of PASE, a new type of single level storage object named a ''Teraspace'' was added to the operating system, which allows each PASE process to have a private 1TiB space which is addressed with 64-bit pointers. This was necessary since all IBM i jobs (i.e. processes) typically share the same address space. PASE applications do not use the hardware-independent TIMI instructions, and are instead compiled directly to Power machine code. PASE is distinct from the
Qshell Qshell is an optional command-line interpreter (shell) for the IBM i operating system. Qshell is based on POSIX and X/Open standards. It is a Bourne-like shell that also includes features of KornShell. The utilities (or commands) are external ...
environment, which is an implementation of a Unix shell and associated utilities built on top of IBM i's native POSIX-compatible APIs.


Advanced 36 Machine

Introduced in 1994, the Advanced/36 platform ran unmodified System/36 applications and the SSP operating system in emulation on top of the OS/400 SLIC using hardware which was mostly identical to that of contemporary AS/400 systems. This functionality was incorporated into OS/400 itself from V3R6 through V4R4, making it possible to run up to four System/36 "virtual machines" (to use IBM's term) using the so-called ''Advanced 36 Machine'' feature of the operating system. Support was discontinued in the V4R5 release, coinciding with IBM's discontinuation of the Advanced/36 product line as a whole. The Advanced 36 Machine feature is distinct from the System/36 Environment introduced in the initial OS/400 release and still supported in current IBM i versions. Prior to the Advanced/36, the System/36 line used two different processors in each system - the Main Storage Processor (MSP) which ran most of the SSP operating system as well as user code, and the Control Storage Processor (CSP) which ran so-called "microcode" which implemented core operating system functionality as well as I/O. The CSP microcode was invoked from the MSP through the use of the Supervisor Call (SVC) instruction. On the Advanced/36, the CSP microcode was reimplemented inside the SLIC. An MSP emulator was also built into the SLIC, sometimes referred to as the ''Technology Independent Emulation Interface''. Even with the overhead of emulation, the Advanced/36 systems were significantly faster than the original System/36 systems they replaced due to the performance of their PowerPC AS processors.


Features


Database management

IBM i features an integrated relational database currently known as IBM Db2 for IBM i. The database evolved from the non-relational System/38 database, gaining support for the relational model and SQL. The database originally had no name, instead it was described simply as "data base support". It was given the name ''DB2/400'' in 1994 to indicate comparable functionality to IBM's other commercial databases. Despite the Db2 branding, Db2 for IBM i is an entirely separate codebase to Db2 on other platforms, and is tightly integrated into the SLIC layer of IBM i as opposed to being an optional product. IBM i provides two mechanisms for accessing the integrated database - the so-called ''native interface'', which is based on the database access model of the System/38, and SQL. The native interface consists of the ''Data Description Specifications'' (DDS) language, which is used to define schemas and the OPNQRYF command or QQQQRY query API. Certain Db2 for i features such as object-relational database management require SQL and cannot be accessed through the native interface. IBM i has two separate query optimizers known as the ''Classic Query Engine'' (CQE) and ''SQL Query Engine'' (SQE). These are implemented inside the SLIC alongside a ''Query Dispatcher'' which selects the appropriate optimizer depending on the type of the query. Remote access through the native interface and SQL is provided by the
Distributed Data Management Architecture Distributed Data Management Architecture (DDM) is IBM's open, published software architecture for creating, managing and accessing data on a remote computer. DDM was initially designed to support record-oriented files; it was extended to support ...
(DDM) and Distributed Relational Database Architecture respectively. A storage engine for
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
and
MariaDB MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the ori ...
named IBMDB2I allows applications designed for those databases to use Db2 for i as a backing store. Other open source databases have been ported to IBM i, including
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the ...
,
MongoDB MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the S ...
and
Redis Redis (; Remote Dictionary Server) is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, s ...
. These databases run on the PASE environment, and are independent of the operating system's integrated database features.


Networking

IBM i supports
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the su ...
networking in addition to the proprietary IBM
Systems Network Architecture Systems Network Architecture (SNA) is IBM's proprietary networking architecture, created in 1974. It is a complete protocol stack for interconnecting computers and their resources. SNA describes formats and protocols but, in itself, is not a pi ...
. IBM i systems were historically accessed and managed through
IBM 5250 IBM 5250 is a family of block-oriented terminals originally introduced with the IBM System/34 midrange computer systems in 1977. It also connects to the later System/36, System/38, and IBM AS/400 systems, and to IBM Power Systems systems runni ...
terminals attached to the system with
twinax Twinaxial cabling, or "Twinax", is a type of cable similar to coaxial cable, but with two inner conductors instead of one. Due to cost efficiency it is becoming common in modern (2013) very-short-range high-speed differential signaling applicatio ...
cabling. With the decline of dedicated terminal hardware, modern IBM i systems are typically accessed through 5250
terminal emulator A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term ''terminal'' covers all remote term ...
s. IBM provides two terminal emulator products for IBM i: * IBM i Access Client Solutions is a
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
-based client that runs on
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
to provide 5250 emulation. * IBM i Access for Web/Mobile provides web-based 5250 emulation. In addition, IBM provides a web-based management console and performance analysis product named IBM Navigator for i.


Open-source

Some of the open source applications ported to IBM i include: *
Apache HTTP Server The Apache HTTP Server ( ) is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache S ...
*
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
*
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript cod ...
*
OpenSSL OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping or need to identify the party at the other end. It is widely used by Internet servers, including the majority of HT ...
*
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
* gcc *
nginx Nginx (pronounced "engine x" ) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source softw ...
* PHP *
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
*
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
*
Lua Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
* R *
MariaDB MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the ori ...
*
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
*
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
*
Redis Redis (; Remote Dictionary Server) is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, s ...
*
MongoDB MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the S ...
*
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the ...
* Vim Open source software for IBM i is typically packaged using the RPM package format, and installed with the YUM package manager. YUM and RPM replaced the 5733-OPS product, which was previously used to install open source software on IBM i. Ports of open source software to IBM i typically target PASE instead of the native IBM i APIs in order to simplify porting.


Programming

Programming languages available from IBM for IBM i include RPG,
Control Language The Control Language (CL) is a scripting language originally created by IBM for the System/38 Control Program Facility and later used in OS/400 (now known as IBM i). It bears a resemblance to the IBM Job Control Language and consists of a set of ...
, C,
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, EGL,
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily u ...
, and
REXX Rexx (Restructured Extended Executor) is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw. It is a structured, high-level programming language designed for ease of learning and reading. P ...
. Compilers were previously available for
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
,
BASIC BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
,
PL/I PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language developed and published by IBM. It is designed for scientific, engineering, business and system programming. I ...
and
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan ...
but have since been discontinued. The Integrated Language Environment (ILE) allows programs from ILE compatible languages (C, C++, COBOL, RPG, and CL), to be bound into the same executable and call procedures written in any of the other ILE languages. When PASE was introduced, it was necessary to compile code for PASE on an AIX system. This requirement was removed in OS/400 V5R2 when it became possible to compile code using the IBM XL compiler suite inside PASE itself. Since then, other compilers have been ported to PASE, including gcc. Certain development tools for IBM i run on top of the operating system itself, such as the Source Edit Utility (SEU)
text editor A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be ...
and
Programming Development Manager PDM (Programming development manager) was installed on most AS/400 The IBM AS/400 (Application System/400) is a family of midrange computers from IBM announced in June 1988 and released in August 1988. It was the successor to the System/36 and ...
. IBM also provides an
Eclipse An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three c ...
-based
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
(IDE) for IBM i named
IBM Rational Rational Machines is an enterprise founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development. It changed its n ...
Developer for i which runs on developer workstations instead of IBM i. Prior to the Eclipse-based IDE, IBM provided an IDE based on WorkFrame/2 which ran on
OS/2 OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 r ...
named ''CODE/400'' and an IDE based on VisualAge which ran on
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
systems. IBM i uses
EBCDIC Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight- bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding ...
as the default
character encoding Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values tha ...
, but also provides support for
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
,
UCS-2 The Universal Coded Character Set (UCS, Unicode) is a standard set of characters defined by the international standard ISO/IEC 10646, ''Information technology — Universal Coded Character Set (UCS)'' (plus amendments to that standard), w ...
and
UTF-16 UTF-16 (16-bit Unicode Transformation Format) is a character encoding capable of encoding all 1,112,064 valid code points of Unicode (in fact this number of code points is dictated by the design of UTF-16). The encoding is variable-length, as cod ...
.


Storage

In IBM i, disk drives may be grouped into an ''auxiliary storage pool'' (ASP) in order to organize data to limit the impact of storage-device failures and to reduce recovery time. If a disk failure occurs, only the data in the pool containing the failed unit needs to be recovered. ASPs may also be used to improve performance by isolating objects with similar performance characteristics, for example journal receivers, in their own pool. By default, all disk drives are assigned to pool 1. The concept of IBM i pools is similar to the
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, ...
/
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
concept of volume groups; however, with IBM i it is typical for all disk drives to be assigned to a single ASP.


Security

Security in IBM i is defined in terms of ''authorities'', which represents the permission to carry out a specific action on a specific object. Authorities can be granted to individual users (known as ''user profiles''), groups (known as ''group profiles'') or all users (''public'' authorities). Related objects can be grouped together in an ''authorization list'', making it possible to grant authorities on all objects in the list by granting authorities on the authorization list. User profiles have an associated ''user class'' which dictates the set of default authorities available to that user profile. There are five standard user classes which, in order of increasing privilege, are: ''Workstation User'', ''System Operator'', ''System Programmer'', ''Security Administrator'' and ''Security Officer''. IBM i ships with a default user profile for each user class, and the default Security Officer user profile, named QSECOFR, is the closest equivalent to the
root user In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of th ...
of a Unix-like operating system. IBM i can be set to use one of five levels of security, which control the extent to which the operating system's security features are enforced: * ''Level 10'' – Users can log in without a password, and have full access to the system. If a user logs in with an unknown username, a new user profile will be automatically created. * ''Level 20'' – Users must log in with a username and password of a known user profile, but will have almost full access to the system once logged in. Creation or modification of user profiles is restricted to user profiles which have been granted authorities for profile management. Limited access accounts can be created, which can be restricted to accessing certain objects, or running certain commands. * ''Level 30'' – Authorities are enforced, meaning that users cannot access objects unless they have an authority for the object. * ''Level 40'' – Access to certain system programs and MI instructions are restricted, and can only be used by operating system code. * ''Level 50'' – Includes changes needed for the system to achieve TCSEC C2 compliance, and adds a security audit journal. The first three levels correspond to the security levels available in CPF and the initial releases of OS/400. Security level 40 was added in OS/400 V1R3 and become the default security level for the operating system. The addition of Level 40 required the removal of the capability addressing model of the System/38 which was also present in earlier releases of OS/400. Security level 50 was added in V2R3 when OS/400 was certified to TCSEC C2 security.


Release timeline


See also

*
Comparison of operating systems These tables provide a comparison of operating systems, of computer devices, as listing general and technical information for a number of widely used and currently available PC or handheld (including smartphone and tablet computer) operating sy ...
*
Object (IBM i) On many computing platforms everything is a file, but in contrast in IBM i everything is an object. Overview IBM i objects share similarities with objects in object-oriented programming, but there are differences as well. There are similarities ...


References


External links


IBM i siteIBM i DocumentationIT Jungle
- IBM i news website
MC Press Online
- IBM Midrange Computer news website {{IBM midrange computers 1988 software AS/400 IBM operating systems Object-oriented operating systems Power ISA operating systems Proprietary operating systems