All Topics  
OpenStep

 
OpenStep

   Email Print
   Bookmark   Link






 

OpenStep



 
 
OpenStep is an object-oriented application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 (API) specification for an object-oriented operating system
Object-oriented operating system

An object-oriented operating system is an operating system which internally uses Object-oriented programming.An object-oriented operating system is in contrast to an object-oriented user interface or programming framework, which can be placed above a non-object-oriented operating system like DOS, Microsoft Windows or Unix....
 that uses any modern operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 as its core, principally developed by NeXT
NeXT

NeXT, Inc. was an American computer company headquartered in Redwood City, California, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets....
 with Sun Microsystems
Sun Microsystems

Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
. OPENSTEP (all capitalized) is a specific implementation of the OpenStep API, developed by NeXT. While originally built on a Mach-based Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 (such as the core of NEXTSTEP
NEXTSTEP

Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
), versions of OPENSTEP were available for Solaris and Windows NT
Windows NT

Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix....
 as well. The software libraries that shipped with OPENSTEP are a superset of the original OpenStep specification.

History
The OpenStep API was created as the result of a 1993 collaboration between NeXT
NeXT

NeXT, Inc. was an American computer company headquartered in Redwood City, California, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets....
 and Sun Microsystems
Sun Microsystems

Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
, allowing this cut-down version of NeXT's NEXTSTEP
NEXTSTEP

Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 object layers to be run on Sun's Solaris operating system (more specifically, Solaris on SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
-based hardware).






Discussion
Ask a question about 'OpenStep'
Start a new discussion about 'OpenStep'
Answer questions from other users
Full Discussion Forum



Encyclopedia


OpenStep is an object-oriented application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 (API) specification for an object-oriented operating system
Object-oriented operating system

An object-oriented operating system is an operating system which internally uses Object-oriented programming.An object-oriented operating system is in contrast to an object-oriented user interface or programming framework, which can be placed above a non-object-oriented operating system like DOS, Microsoft Windows or Unix....
 that uses any modern operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 as its core, principally developed by NeXT
NeXT

NeXT, Inc. was an American computer company headquartered in Redwood City, California, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets....
 with Sun Microsystems
Sun Microsystems

Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
. OPENSTEP (all capitalized) is a specific implementation of the OpenStep API, developed by NeXT. While originally built on a Mach-based Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 (such as the core of NEXTSTEP
NEXTSTEP

Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
), versions of OPENSTEP were available for Solaris and Windows NT
Windows NT

Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix....
 as well. The software libraries that shipped with OPENSTEP are a superset of the original OpenStep specification.

History


The OpenStep API was created as the result of a 1993 collaboration between NeXT
NeXT

NeXT, Inc. was an American computer company headquartered in Redwood City, California, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets....
 and Sun Microsystems
Sun Microsystems

Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
, allowing this cut-down version of NeXT's NEXTSTEP
NEXTSTEP

Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 object layers to be run on Sun's Solaris operating system (more specifically, Solaris on SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
-based hardware). Most of the OpenStep effort was to strip away those portions of NEXTSTEP that depended on Mach
Mach (kernel)

Mach is an operating system microkernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation....
 or NeXT-specific hardware being present. This resulted in a smaller system that consisted primarily of Display PostScript
Display PostScript

Display PostScript is an on-screen display system. As the name implies, DPS uses the PostScript imaging model and language to generate on-screen graphics....
, the Objective-C
Objective-C

Objective-C is a Reflection , Object-oriented programming programming language which adds Smalltalk-style message passing to C .Today it is used primarily on Mac OS X, iPhone OS, and GNUstep, three environments based on the OpenStep standard, and is the primary language used for the NEXTSTEP, OpenStep#OPENSTEP, and Cocoa application framew...
 runtime and compilers, and the majority of the NEXTSTEP Objective-C libraries. Not included was the basic operating system, or the display system.

The first draft of the API was published by NeXT in summer 1994. Later that year they released an OpenStep compliant version of their flagship operating system NEXTSTEP
NEXTSTEP

Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
, rebranded as OPENSTEP and supported on several of their platforms as well as Sun SPARC systems. The official OpenStep API, published in September 1994, was the first to split the API between Foundation and Application Kit and the first to use the “NS” prefix. OPENSTEP remained NeXT's primary operating system product until they were purchased by Apple Computer
Apple Computer

Apple Inc., formerly Apple Computer Inc., is an United States multinational corporation which designs and manufactures consumer electronics and software products....
 in 1996. OPENSTEP was then combined with technologies from the existing Mac OS
Mac OS

Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems....
 to produce Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
.

Sun originally adopted the OpenStep environment with the intent of complementing Sun's CORBA
Çorba

Chorba , shurpa , sorpa , or shorpo is one of various kinds of soup or stew found in national cuisines across Eurasia. The term is likely of Persian language or Turkic languages origin....
-compliant object system, Solaris NEO
Distributed Objects Everywhere

Distributed Objects Everywhere was a long-running Sun Microsystems project to build a distributed computing environment based on the CORBA system in the 'back end' and OpenStep as the user interface....
 (formerly known as Project DOE), by providing an object-oriented user interface toolkit to complement the object-oriented CORBA plumbing. The port involved integrating the OpenStep AppKit with the Display PostScript layer of the Sun X11 server, making the AppKit tolerant of multi-threaded code (as Project DOE was inherently heavily multi-threaded), implementing a Solaris daemon to simulate the behavior of Mach ports, extending the SunPro C++ compiler to support Objective-C
Objective-C

Objective-C is a Reflection , Object-oriented programming programming language which adds Smalltalk-style message passing to C .Today it is used primarily on Mac OS X, iPhone OS, and GNUstep, three environments based on the OpenStep standard, and is the primary language used for the NEXTSTEP, OpenStep#OPENSTEP, and Cocoa application framew...
 using NeXT's ObjC runtime, writing an X11 window manager
Window manager

A window manager is computer software that controls the placement and appearance of window within a windowing system in a graphical user interface....
 to implement the NEXTSTEP look and feel as much as possible, and integrating the NeXT development tools, such as Project Manager and Interface Builder, with the SunPro compiler. In order to provide a complete end-user environment, Sun also ported the NEXTSTEP-3.3 versions of several end-user applications, including Mail.app, Preview.app, Edit.app, Workspace Manager, and the dock.

The OpenStep and CORBA parts of the products were later split, and NEO was released in late 1995 without the OpenStep environment. In March 1996, Sun announced Joe, a product to integrate NEO with Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
. Sun shipped a beta release of the OpenStep environment for Solaris on July 22, 1996, and made it freely available for download in August 1996 for non-commercial use, and for sale in September 1996. OpenStep/Solaris only shipped for the SPARC architecture.

Description


The API OpenStep contrasts with the earlier NEXTSTEP primarily in five ways:

  • OpenStep describes only the upper-level libraries and services (like Display PostScript
    Display PostScript

    Display PostScript is an on-screen display system. As the name implies, DPS uses the PostScript imaging model and language to generate on-screen graphics....
    ), whereas NEXTSTEP referred to both these libraries and the operating system as well.
  • Any code depending entirely on the Mach kernel was removed, so that OpenStep could be run on top of any reasonably powerful operating system.
  • A significant amount of effort was put into making the system "endian
    Endianness

    In computing, endianness is the byte ordering used to represent some kind of data. Typical cases are the order in which integer values are stored as bytes in computer memory and the transmission order over a network or other medium....
    -free", an issue NeXT had already faced during a port of NEXTSTEP to the Intel platform.
  • Low-level objects such as strings were represented with C data types in NEXTSTEP, whereas in OpenStep a number of new classes (NSString, NSNumber, etc.) were introduced to support endian-conversion as well as provide added functionality and become platform-independent. This had ripple-effects throughout the API, mostly for the better. This set of classes (a framework) was called the Foundation Kit
    Foundation Kit

    The Foundation Kit, or just Foundation for short, is a framework specified under the OpenStep specification. It specifies device independent class and programming functionality....
    , or just Foundation for short.
  • Memory management evolved from a simple alloc/free mechanism to a new retain/release paradigm: If a piece of code needs to keep an object valid, it retains it, and when it doesn't need it anymore, it releases it.


The API specification itself is composed of the two main sets of object oriented classes: the GUI
Gui

Gui or guee is a generic term to refer to grillinged dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients....
 and graphics front-end known as the Application Kit
Application Kit

The Application Kit is a collection of classes within the OpenStep specification and provided by such operating systems as OPENSTEP, GNUstep, and Mac OS X under Cocoa , providing classes oriented around graphical user interface capabilities....
, and the aforementioned Foundation Kit.

However, OpenStep also specified the use of Display PostScript, a versatile and powerful PostScript
PostScript

PostScript is a dynamically typed concatenative programming language programming language created by John Warnock and Charles Geschke in 1982. PostScript is best known for its use as a page description language in the electronic and desktop publishing areas....
-based method of drawing windows and graphics on screen. NeXT, with its devotion to implementing object-oriented solutions, supplied pswraps for interfacing C code to Display PostScript. pswraps acted in an encapsulative way and was somewhat object oriented. The Application Kit, Foundation, and Display PostScript comprise the three key technologies in the OpenStep specification; however, Display PostScript was featured in older NeXT technologies, such as NEXTSTEP.

Building on OpenStep


The standardization on OpenStep also allowed for the creation of several new library packages that were delivered on the OPENSTEP platform. Unlike the operating system as a whole, these packages were designed to run stand-alone on practically any operating system. The idea was to use OpenStep code as a basis for network-wide applications running across different platforms, as opposed to using CORBA
Çorba

Chorba , shurpa , sorpa , or shorpo is one of various kinds of soup or stew found in national cuisines across Eurasia. The term is likely of Persian language or Turkic languages origin....
 or some other system.

Primary among these packages was Portable Distributed Objects
Portable Distributed Objects

Portable Distributed Objects, or PDO, is a programming Application programming interface for creating object-oriented code that can be executed remotely on a computer network of computers....
 (PDO). PDO was essentially an even more "stripped down" version of OpenStep containing only the Foundation Kit technologies, combined with new libraries to provide remote invocation with very little code. Unlike OpenStep, which defined an operating system that applications would run in, under PDO the libraries were compiled into the application itself, creating a stand-alone "native" application for a particular platform. PDO was small enough to be easily portable, and versions were released for all major server vendors.

PDO became somewhat infamous in the mid-1990s when NeXT staff took to writing in solutions to various CORBA magazine articles in a few lines of code, whereas the original article would fill several pages. Even though using PDO required the installation of a considerable amount of supporting code (Objective-C and the libraries), PDO applications were nevertheless considerably smaller than similar CORBA solutions, typically about one-half to one-third the size.

The similar D'OLE provided the same types of services, but presented the resulting objects as DCOM objects, with the goal of allowing programmers to create DCOM services running on high-powered platforms, called from Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 applications. For instance one could develop a high-powered financial modeling application using D'OLE, and then call it directly from within Microsoft Excel
Microsoft Excel

Microsoft Excel is a spreadsheet-application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables and a macro programming language called VBA ....
. When D'OLE was first released, OLE by itself only communicated between applications running on a single machine. PDO enabled NeXT to demonstrate Excel talking to other Microsoft applications across a network before Microsoft themselves were able to implement this functionality.

Another package developed on OpenStep was Enterprise Objects Framework
Enterprise Objects Framework

The Enterprise Objects Framework was introduced by NeXT in 1994 as a pioneering object-relational mapping product for its NeXTSTEP and OpenStep development platforms....
 (EOF), a tremendously powerful (for the time) object-relational mapping
Object-relational mapping

Object-relational mapping is a Computer programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages....
 product. EOF became very popular in the enterprise market, notably in the financial sector where OPENSTEP caused something of a minor revolution.

Implementations


OPENSTEP/Mach

Openstep Workspace Manager
NeXT's first operating system was NEXTSTEP
NEXTSTEP

Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
, a sophisticated Mach-UNIX based operating system that was ported to run on several architectures (PA-RISC, SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
, i386 and 68k
Motorola 68000

The Motorola 68000 is a 16/32-bit Complex instruction set computer microprocessor core designed and marketed by Freescale Semiconductor ....
). However, NeXT's new direction for NEXTSTEP was to free the operating system libraries from being tied to UNIX and becoming more device independent.

NeXT completed an implementation of OpenStep on their existing Mach-based OS and called it OPENSTEP for Mach 4.0, 4.1 and 4.2. It was, for all intents, NEXTSTEP 4.0, and still retained flagship NEXTSTEP technologies (such as DPS
Display PostScript

Display PostScript is an on-screen display system. As the name implies, DPS uses the PostScript imaging model and language to generate on-screen graphics....
, UNIX underpinnings, user interface characteristics like the Dock
Dock (computing)

The Dock is a prominent feature of the graphical user interface of Apple Inc.'s Mac OS X operating system, which is used to launch applications, and switch between running applications....
 and Shelf
Shelf (computing)

The Shelf is an interface feature in NeXTSTEP and OpenStep, and is used as a repository to store links to commonly used files, directories and programs, and as a temporary "holding" place to move/copy files and directories around in the file system hierarchy....
, and so on), and retained the classic NEXTSTEP user interface and styles. OPENSTEP/Mach was further improved, in comparison to NEXTSTEP 3.3, with vastly improved driver support – however the environment to actually write drivers was changed with the introduction of the object-oriented DriverKit.

OPENSTEP/Mach supported Intel x86, Sun's SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
 and NeXT's own Motorola based 68k architectures, while the HP PA-RISC version was dropped. These versions continued to run on the underlying Mach-based OS used in NEXTSTEP. OPENSTEP/Mach became NeXT's primary OS from 1995 on, and was used mainly on the Intel platform. In addition to being a complete OpenStep implementation, the system was delivered with a complete set of NEXTSTEP libraries for backward compatibility. This was an easy thing to do in OpenStep due to library versioning, and OPENSTEP did not suffer in bloat because of it.

OPENSTEP Solaris


In addition to the OPENSTEP/Mach port for SPARC, Sun and NeXT developed an OpenStep compliant set of frameworks to run on Sun's Solaris operating system. After developing OPENSTEP Solaris, Sun lost interest in OpenStep and shifted its attention toward Java. As a virtual machine development environment, Java served as a direct competitor to OpenStep.

OPENSTEP Enterprise


NeXT also delivered an implementation running on top of Windows NT 4.0 called OPENSTEP Enterprise (often abbreviated OSE). This was an unintentional demonstration on the true nature of the portability of programs created under the OpenStep specification. Programs for OPENSTEP/Mach could be ported to OSE with little difficulty. This allowed their existing customer base to continue using their tools and applications, but running them inside the Windows system which many of them were in the process of switching to. Never a clean match from the UI perspective -- probably due to OPENSTEP's routing of window graphics through the Display Postscript server, which was also ported to Windows -- OSE nevertheless managed to work fairly well and allowed OpenStep to exist for perhaps another year.

OPENSTEP and OSE had two revisions (and one major one that was never released) before NeXT was purchased by Apple in 1997.

Rhapsody, Mac OS X Server 1.0

After acquiring NeXT, Apple intended to ship Rhapsody as a reworked version of OPENSTEP/Mach for both the Mac and standard PCs. Rhapsody was OPENSTEP/Mach with a Copland appearance from Mac OS 8
Mac OS 8

Mac OS 8 is an operating system released by Apple Inc. on July 26 1997. It represented the largest overhaul of the Mac OS since the release of System 7 , some six years previous....
 and support for Java and Apple's own technologies, including ColorSync and QuickTime; it could be regarded as OPENSTEP 5. Two developer versions of Rhapsody were released, known as Developer Preview 1 and 2, these ran on both Intel and PowerPC hardware, though with lacking support for nonstandard hardware. Mac OS X Server 1.0
Mac OS X Server 1.0

Mac OS X Server 1.0, released on March 16 1999, is the first operating system released by Apple Computer based on their acquisition of NeXT. Although it had a variation of the Platinum "look and feel" from Mac OS 8, it is based on the OPENSTEP operating system instead of the classic Mac OS, giving users a preview of the future operating sy...
 was the first commercial release of this operating system, and was delivered exclusively for PowerPC Mac hardware.

Mac OS X 10.0 and later

After replacing the Display Postscript WindowServer with Quartz
Quartz (graphics layer)

Quartz specifically refers to a pair of Mac OS X technologies, each part of the Core Graphics framework: Quartz 2D and Quartz Compositor. It includes both a 2D renderer in Core Graphics and the composition engine that sends instructions to the graphics card....
, and responding to developers by including better backward compatibility for Mac OS applications through the addition of Carbon
Carbon (API)

Carbon is one of Apple Inc.'s procedural Application programming interfaces for the Apple Macintosh operating system. It permits a good degree of forward and backward compatibility between source code written to run on the older and now dated Mac OS history , and the newer Mac OS X....
, Apple released Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
 and Mac OS X Server
Mac OS X Server

Mac OS X Server is Apple's UNIX server operating system. Based on the same architecture as Mac OS X, Mac OS X Server includes additional services, applications and administration tools for managing and deploying servers....
, starting at version 10.0.

Mac OS X's primary programming environment is essentially OpenStep (with certain additions such as XML property lists and URL classes for Internet connections) with Mac OS X ports of the development libraries and tools, now called Cocoa
Cocoa (API)

Cocoa is one of Apple Inc.'s native object-oriented application program environment for the Mac OS X operating system. It is one of four major Application programming interfaces available for Mac OS X; the others are Carbon , POSIX , and Java platform....
. However, Mac OS X diverges from the OpenStep specification to the point that it is now closer to NeXTSTEP as a product. Mac OS X 10.0 could be considered NeXTSTEP 5.

Mac OS X has since become the single most popular Unix in the world, although Mac OS X is no longer an OpenStep compliant operating system.

GNUstep


GNUstep, a free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 implementation of the NeXT
NeXT

NeXT, Inc. was an American computer company headquartered in Redwood City, California, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets....
 libraries, began at the time of NEXTSTEP, predating OPENSTEP. While OPENSTEP and OSE were purchased by Apple, who effectively ended the commercial development of implementing OpenStep for other platforms, GNUstep is an ongoing open source project aiming to create a portable, free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 implementation of the OPENSTEP libraries.

The Foundation and AppKit libraries are completed except for a few classes which are rarely used. GNUstep also features a fully functional development environment, reimplementations of some of the newer innovations from Mac OS X's Cocoa
Cocoa (API)

Cocoa is one of Apple Inc.'s native object-oriented application program environment for the Mac OS X operating system. It is one of four major Application programming interfaces available for Mac OS X; the others are Carbon , POSIX , and Java platform....
 framework, as well as its own extensions to the API.

External links