OpenStep

Last updated
OpenStep
Developer(s) NeXT, Sun Microsystems
Initial releaseOctober 19, 1994;29 years ago (1994-10-19)
Written in Objective-C
Operating system Solaris; Windows NT; Unix-like operating systems with the Mach kernel
Platform IA-32, PA-RISC, SPARC
Available inEnglish
Type Application programming interface
Website www.gnustep.org/resources/OpenStepSpec/OpenStepSpec.html

OpenStep is an object-oriented application programming interface (API) specification developed by NeXT. It provides a framework for building graphical user interfaces (GUIs) and developing software applications. OpenStep was designed to be platform-independent, allowing developers to write code that could run on multiple operating systems, including NeXTSTEP, Windows NT, and various Unix-based systems. It has influenced the development of other GUI frameworks, such as Cocoa for macOS and GNUstep.

Contents

OpenStep was principally developed by NeXT and Sun Microsystems, to allow advanced application development on Sun's operating systems, specifically Solaris. NeXT produced a version of OpenStep for its own Mach-based Unix OS, stylized in all capital letters as OPENSTEP. [1] The software libraries that shipped with OPENSTEP are a superset of the original OpenStep specification, including many features from the original NeXTSTEP.

History

Workstations from Sun Microsystems were originally programmed at a relatively low-level making calls directly to the underlying Unix operating system and the SunView window system toolkit, and to libraries built atop those interfaces. This led to complex programming even for simple projects. An attempt to address this with an object oriented programming model was made in the mid-1980s with Sun's NeWS windowing system, but the combination of a complex application programming interface (API) and generally poor performance led to little real-world use and the system was eventually abandoned.

Sun then began looking for other options. Taligent was considered to be a competitor in the operating system and object markets, and Microsoft's Cairo was at least a consideration, even without any product releases from either. Taligent's theoretical newness was often compared to NeXT's older but mature and commercially established platform. Sun held exploratory meetings with Taligent before deciding upon building out its object application framework OpenStep in partnership with NeXT as a "preemptive move against Taligent and Cairo". Bud Tribble, a founding designer of the Macintosh and of NeXTStep, was now SunSoft's Vice President of Object Products to lead this decision. The 1993 partnership included a $10 million investment from Sun into NeXT. The deal was described as "the first unadulterated piece of good news in the NeXT community in the last four years". [2]

The basic concept was to take a cut-down version of the NeXTSTEP operating system's object layers and adapt them to run on Sun's Solaris operating system, more specifically, Solaris on SPARC-based hardware. Most of the OpenStep effort was to strip away those portions of NeXTSTEP that depended on Mach or NeXT-specific hardware being present. This resulted in a smaller system that consisted primarily of Display PostScript, the Objective-C runtime and compilers, and the majority of the NeXTSTEP Objective-C libraries. Not included was the basic operating system, or the lower-level display system.

Steve Jobs said "We are ahead today, but the race is far from over. ... [In 1996,] Cairo will be very close behind, and Taligent will be very far behind." Sun's CEO Scott McNealy said, "We have no insurance policy. We have made a firm one-company, one-architecture decision, not like Taligent getting a trophy spouse by signing up HP." [2] :13

The first draft of the API was published by NeXT in mid 1994. Later that year they released an OpenStep compliant version of NeXTSTEP as OPENSTEP, supported on several of their platforms as well as Sun SPARC systems. NeXT submitted the OpenStep specification to the industry's object standards bodies. [2] 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. [3] Early versions of NeXTSTEP use an "NX" prefix and contain only the Application Kit, relying on standard Unix libc types for low-level data structures. OPENSTEP remained NeXT's primary operating system product until the company was purchased by Apple Computer in 1997. OPENSTEP was then combined with technologies from the existing classic Mac OS to produce Mac OS X. iPhone and iPad's iOS is also a descendant of OPENSTEP, but targeted at touch devices.

Sun originally adopted the OpenStep environment with the intent of complementing Sun's CORBA-compliant object system, Solaris NEO (formerly known as Project DOE), by providing an object-oriented user interface toolkit to complement the object-oriented CORBA plumbing. [2] 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 using NeXT's ObjC runtime, writing an X11 window manager to implement the NeXTSTEP look and feel as much as possible, and integrating the NeXT development tools, such as Project Builder 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. Sun shipped a beta release of the OpenStep environment for Solaris on July 22, 1996, [4] and made it freely available for download in August 1996 for non-commercial use, and for sale in September 1996. OpenStep/Solaris was shipped only for the SPARC architecture.

Description

OpenStep differs from NeXTSTEP in various ways:

The OpenStep API specification defines three major components: Foundation Kit, the software framework; Application Kit, the GUI and graphics front-end; and Display PostScript, a 2D graphics system (for drawing windows and other graphics on the screen).

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 or some other system.

Primary among these packages was Portable Distributed Objects (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.

In the mid-1990s, 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 COM objects, with the goal of allowing programmers to create COM services running on high-powered platforms, called from Microsoft Windows applications. For instance one could develop a high-powered financial modeling application using D'OLE, and then call it directly from within Microsoft Excel. 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 (DCOM).

Another package developed on OpenStep was Enterprise Objects Framework (EOF), a object-relational mapping product.

Implementations

OPENSTEP for Mach

NeXT's first operating system was NeXTSTEP, a sophisticated Mach-UNIX based operating system that originally ran only on NeXT's Motorola 68k-based workstations and that was then ported to run on 32-bit Intel x86-based "IBM-compatible" personal computers, PA-RISC-based workstations from Hewlett-Packard, and SPARC-based workstations from Sun Microsystems.

NeXT completed an implementation of OpenStep on their existing Mach-based OS and called it OPENSTEP for Mach 4.0 (July, 1996), 4.1 (December, 1996), and 4.2 (January, 1997). It was, for all intents, NeXTSTEP 4.0, and still retained flagship NeXTSTEP technologies (such as DPS, UNIX underpinnings, user interface characteristics like the Dock and Shelf, and so on), and retained the classic NeXTSTEP user interface and styles. OPENSTEP for 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 for Mach supported Intel x86-based PC's, Sun's SPARC workstations, and NeXT's own 68k-based architectures, while the HP PA-RISC version was dropped. These versions continued to run on the underlying Mach-based OS used in NeXTSTEP. OPENSTEP for 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.

Solaris OpenStep

In addition to the OPENSTEP for Mach port for SPARC, Sun and NeXT developed an OpenStep compliant set of frameworks to run on Sun's Solaris operating system. After developing Solaris OpenStep, 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. Unlike other versions, Solaris OpenStep had Interface Builder and Project Builder sold in a separate package called Workshop OpenStep. [5] [6]

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 for 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 on Windows, to which many of them were in the process of switching. Never a clean match from the UI perspective, probably due to OPENSTEP's routing of window graphics through the Display Postscript serverwhich was also ported to WindowsOSE nevertheless managed to work fairly well and extended OpenStep's commercial lifespan.

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 for Mach for both the Mac and standard PCs. Rhapsody was OPENSTEP for Mach with a Copland appearance from Mac OS 8 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 a limited subset of both Intel and PowerPC hardware. Mac OS X Server 1.0 was the first commercial release of this operating system, and was delivered exclusively for PowerPC Mac hardware.

Darwin, Mac OS X 10.0 and later

After replacing the Display Postscript WindowServer with Quartz, and responding to developers by including better backward compatibility for classic Mac OS applications through the addition of Carbon, Apple released Mac OS X and Mac OS X Server, starting at version 10.0; Mac OS X is now named macOS.

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

macOS has since become the single most popular desktop Unix-like operating system in the world, although macOS is no longer an OpenStep compliant operating system.[ citation needed ]

GNUstep

GNUstep, a free software implementation of the NeXT 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 implementation of the Cocoa/OPENSTEP libraries.

GNUstep also features a fully functional development environment, reimplementations of some of the newer innovations from macOS's Cocoa framework, as well as its own extensions to the API.

See also

Related Research Articles

<span class="mw-page-title-main">NeXT</span> American technology company (1985–1997)

NeXT, Inc. was an American technology company headquartered in Redwood City, California that specialized in computer workstations for higher education and business markets, and later developed web software. It was founded in 1985 by CEO Steve Jobs, the Apple Computer co-founder who had been forcibly removed from Apple that year. NeXT debuted with the NeXT Computer in 1988, and released the NeXTcube and smaller NeXTstation in 1990. The series had relatively limited sales, with only about 50,000 total units shipped. Nevertheless, the object-oriented programming and graphical user interface were highly influential trendsetters of computer innovation.

<span class="mw-page-title-main">NeXTSTEP</span> Operating system from NeXT Computer

NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT Computer, founded by Steve Jobs, in the late 1980s and early 1990s and was initially used for its range of proprietary workstation computers such as the NeXTcube. It was later ported to several other computer architectures.

Darwin is the core Unix operating system of macOS, iOS, watchOS, tvOS, iPadOS, visionOS, and bridgeOS. It previously existed as an independent open-source operating system, first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, FreeBSD, other BSD operating systems, Mach, and other free software projects' code, as well as code developed by Apple.

<span class="mw-page-title-main">GNUstep</span> Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

Portable Distributed Objects (PDO) is an application programming interface (API) for creating object-oriented code that can be executed remotely on a network of computers. It was created by NeXT Computer, Inc. using their OpenStep system, whose use of Objective-C made the package very easy to write. It was characterized by its very light weight and high speed in comparison to similar systems such as CORBA.

The history of macOS, Apple's current Mac operating system formerly named Mac OS X until 2011 and then OS X until 2016, began with the company's project to replace its "classic" Mac OS. That system, up to and including its final release Mac OS 9, was a direct descendant of the operating system Apple had used in its Mac computers since their introduction in 1984. However, the current macOS is a UNIX operating system built on technology that had been developed at NeXT from the 1980s until Apple purchased the company in early 1997.

An object-oriented operating system is an operating system that is designed, structured, and operated using object-oriented programming principles.

<span class="mw-page-title-main">A/UX</span> Early Unix-based operating system from Apple Computer

A/UX is a Unix-based operating system from Apple Computer for Macintosh computers, integrated with System 7's graphical interface and application compatibility. It is Apple's first official Unix-based operating system, launched in 1988 and discontinued in 1995 with version 3.1.1. A/UX requires select 68k-based Macintosh models with an FPU and a paged memory management unit (PMMU), including the Macintosh II, SE/30, Quadra, and Centris series.

The Foundation Kit, or just Foundation for short, is an Objective-C framework in the OpenStep specification described by NeXT Computer, Inc.. It provides basic classes such as wrapper classes and data structure classes. This framework uses the prefix NS. It is also part of Cocoa and of the Swift standard library.

<span class="mw-page-title-main">Window Maker</span>

Window Maker is a free and open-source window manager for the X Window System, allowing graphical applications to be run on Unix-like operating-systems. It is designed to emulate NeXTSTEP's GUI as an OpenStep-compatible environment. Window Maker is part of the GNU Project.

<span class="mw-page-title-main">XNU</span> Computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which in addition to macOS is also the basis for the Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS OSes.

Distributed Objects Everywhere (DOE) 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. First started in 1990 and announced soon thereafter, it remained vaporware for many years before it was finally released as NEO in 1995. It was sold for only a short period before being dropped in 1996. In its place is what is today known as Enterprise JavaBeans.

<span class="mw-page-title-main">Rhapsody (operating system)</span> Apple operating system

Rhapsody is an operating system that was developed by Apple Computer after its purchase of NeXT in the late 1990s. It is the fifth major release of the Mach-based operating system that was developed at NeXT in the late 1980s, previously called OPENSTEP and NEXTSTEP. Rhapsody was targeted to developers for a transition period between the Classic Mac OS and Mac OS X. Rhapsody represented a new and exploratory strategy for Apple, more than an operating system, and runs on x86-based PCs and on Power Macintosh.

<span class="mw-page-title-main">AppKit</span> Graphical user interface toolkit

AppKit is a graphical user interface toolkit. It initially served as the UI framework for NeXTSTEP. Along with Foundation and Display PostScript, it became one of the core parts of the OpenStep specification of APIs. Later, AppKit and Foundation became part of Cocoa, the Objective-C API framework of macOS. GNUstep, GNU's implementation of the OpenStep/Cocoa API, also contains an implementation of the AppKit API.

In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files.

<span class="mw-page-title-main">SPARCstation 10</span> Sun Microsystems workstation computer

The SPARCstation 10 is a workstation computer made by Sun Microsystems. Announced in May 1992, it was Sun's first desktop multiprocessor. It was later replaced with the SPARCstation 20.

<span class="mw-page-title-main">Architecture of macOS</span> Layers of the operating system

The architecture of macOS describes the layers of the operating system that is the culmination of Apple Inc.'s decade-long research and development process to replace the classic Mac OS.

A hybrid kernel is an operating system kernel architecture that attempts to combine aspects and benefits of microkernel and monolithic kernel architectures used in operating systems.

Two major families of Mac operating systems were developed by Apple Inc.

The Cocoa text system is the linked network of classes, protocols, interfaces and objects that provide typography and text field editing capabilities and to Cocoa applications on Apple's macOS, where it is the primary text-handling system. Although "extremely complex", the standard text-handling abilities of the Cocoa text system have been widely praised as without peer. It is possible to implement a fully featured rich text editor in only a few lines of code.

References

  1. Lineback, Nathan. "OPENSTEP 4.2, Intel version. Screen shots". Toastytech.com.
  2. 1 2 3 4 Tribble, Bud (February 1994). "Bud Tribble Explains It All". NeXTWORLD (Interview). Interviewed by NeXTWORLD. p. 23–24. Retrieved February 10, 2019.
  3. Cocoa Fundamentals Guide: A Bit of History
  4. "Sun announces availability of Solaris OpenStep and Workshop OpenStep Beta" (Press release). Sun Microsystems, Inc. Retrieved 2006-10-25.
  5. "OpenStep Development Tools - 1 Introduction". docs.sun.com. Archived from the original on 27 Apr 2005. Retrieved 21 May 2023.
  6. McGirr, Lili (22 Jul 1996). "Sun Announces Availability of Solaris OpenStep and Workshop OpenStep Beta; Meets Customer Demand For Operating System and Object-based Development Environment". thefreelibrary.com. Business Wire. Archived from the original on 23 Oct 2012. Retrieved 21 May 2023.