On many
computing platform
A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of abstraction, the ''summation of the requi ...
s
everything is a file
"Everything is a file" is an approach to interface design in Unix derivatives.
While this turn of phrase does not as such figure as a Unix design principle or philosophy,
it is a common way to analyse designs, and informs the design of new interfa ...
, but in contrast in
IBM i
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 2 ...
everything is an object.
Overview
IBM i objects share similarities with objects in
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
, but there are differences as well. There are similarities in that when
storage is allocated for something, that something is of a specific type, and only a specific set of programs are allowed to act upon that object. There are differences in that IBM i objects cannot be inherited, and the set of object types is fixed, and only IBM has the ability to create new ones.
The number of object types is huge and a small subset of them are available to users. The human readable form of the object type is always a three to six character mnemonic preceded by an asterisk. What follows is a short list of the more commonly used objects and their mnemonics:
* *LIB: Library (where everything below, except directories and stream files, is stored; libraries cannot exist within other libraries).
* *PGM: Program (for compiled languages: CL, RPG-IV, C, C++, COBOL, etc. and there are no interface restrictions between the languages).
* *MODULE: Module (linkable into a program from a compiled language above and here too there are no restrictions on linkability between languages).
* *SRVPGM: Service program (dynamic set of one or more modules, akin to a DLL file in
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
).
* *BNDDIR: Binding directory (holds a list of modules and service programs and is used when creating programs).
* *CMD: Command (an object used for calling programs that allows users to prompt for their parameters; can be created with the Command Definition language). See
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 ...
for more information.
* *MENU: Menu (accessed with the GO command).
* *FILE: File (IBM i files can be used for data, input/output devices, and source code, depending on sub type).
* *DTAARA: Data area (small bits of storage used to store tiny items of data for fast access).
* *DIR: Directory (part of the Integrated File System that is equivalent to
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user 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, a ...
and
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
hierarchical file systems).
* *STMF: Stream file (traditional file that would be familiar to most
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user 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, a ...
and
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
users and only stored in directories).
* *JRN & *JRNRCV: Journal and journal receiver (used to journal changes to files, data areas, and stream files).
* *USRPRF: User profile (allows users to sign-on to the system).
* *JOBD: Job description (used when submitting/starting jobs).
* *SBSD: Subsystem description (used when starting subsystems; this is the place where user jobs run).
* *JOBQ: Job queue (used to queue up batch jobs to run in a subsystem).
* *LIND: Line description (communications line: Ethernet, token ring, etc.).
* *CTLD: Controller description (communications controller for lines, workstations, etc.).
* *DEVD: Device description (communications device for lines, workstations, printers tape drives, etc.)
* *DTAQ: Data queue (used to queue up data entries for fast retrieval by other jobs).
* *MSGQ: Message queue (used to send message to users, can also be used like a data queue).
* *OUTQ: Output queue (used to queue up output to a printer).
* *USRSPC: User space - a generic data-containing object of arbitrary size (up to 16T).
Libraries
A library (*LIB) on
IBM i
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 2 ...
is an object that is used as a system
directory to keep track of other objects. Objects are not stored inside libraries, but rather libraries are used as namespaces for objects. Libraries are a "system" object, and therefore only one instance of any given Library "name" is possible. They're made to appear as if they're stored in the QSYS library.
Standard libraries
Generally speaking all libraries created by IBM for use by the
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
begin with the letter 'Q'.
IBM Standard Libraries:
*QSYS - System Parent Library
*QSYS2 - System Library for CPI's(Characters Per Inch)
*QHLPSYS - Online Documentation Library for Users
*QTCP - TCP Connectivity Utilities
*QAFP - Advanced Function Printing
*QGPL - General Purpose Library
*QTEMP - Job specific temporary Library (deleted when the job ends)
Library List
A library list (
*LIBL
) is an object which specifies a default set of locations to look for an object (similar to the
PATH
A path is a route for physical travel – see Trail.
Path or PATH may also refer to:
Physical paths of different types
* Bicycle path
* Bridle path, used by people on horseback
* Course (navigation), the intended path of a vehicle
* Desir ...
mechanism of other operating systems). This object doesn't exist on its own and is always associated with another object like a job or a job description (
*JOBD
). Some job descriptions specify the special value
*SYSVAL
which means that the library list can be found in the system value
QUSRLIBL
. As of
OS/400
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 2 ...
V5R1, the user portion of the Library List can contain up to 250 library names. Prior to that it could only have 25 libraries.
A job's library list consists of four sections:
* System portion: Always at the top and contains system libraries like
QSYS
,
QHLPSYS
,
QUSRSYS
, etc. The system portion can hold up to 15 library names. The default contents of the system portion are specified in the
QSYSLIBL
system value. The contents of the system portion can be changed for the current job to differ from
QSYSLIBL
by using the
CHGSYSLIBL
command
Command may refer to:
Computing
* Command (computing), a statement in a computer language
* command (Unix), a Unix command
* COMMAND.COM, the default operating system shell and command-line interpreter for DOS
* Command key, a modifier key on A ...
.
* Product portion: When a CL command is executed that specifies a production
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
, that library will be added to the product portion of the library list for the duration of the command. It follows the system portion and the O/S will maintain up to two libraries in it.
* Current library: Is a special
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
associated with a user profile and there can only be one in the list at a time. This library is useful for programmers to have their personal library at the top of the list regardless of what the user portion is changed to. It can be changed locally using the
CHGCURLIB
/code> command. To change it for the user on all future jobs use the CHGUSRPRF
command.
* User portion: The last part of the library list that contains all of the application libraries
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
. The list is normally assigned to the job from the job description but for batch jobs this can be overridden using the SBMJOB
command's INLLIBL
parameter. A job's library list can be changed locally with the EDTLIBL
(Edit Library List), CHGLIBL
(Change Library List), ADDLIBLE
(Add Library List Entry), and RMVLIBLE
(Remove Library List Entry) command.
References
AS/400 Objects
{{IBM midrange computers
AS/400