History of Apple operating systems. Part 3. Generation NeXT

Original author: Amit Singh
  • Transfer
The first part: habrahabr.ru/post/194696
The second part: habrahabr.ru/post/196276
Today there will be a lot of text and few screenshots, because it will mainly focus on projects that have not taken off and the deep guts of the OS

New Hope


Windows NT 3.1

Microsoft Windows 3.x branches quickly became widespread, right after the release in 1990. The next-generation system, code-named “Chicago,” was planned for 1993, but it came out under the name Windows 95 when. At the same time, in 1993, Windows NT was released - an advanced OS for client-server applications. Among the features are the Win32 API, which displaces multitasking with the scheduler, network support, OS / 2 and POSIX compatibility subsystems, virtual machines for DOS and old 16-bit Windows applications, the new NTFS file system and multiprocessor support.
image
Apple clearly expected an answer, especially in anticipation of the release of Windows 95.
Pink and Red projects could not cope with this role. There were many attempts to create a new competitive OS.
Star trek

There was a bold attempt to port Mac OS to x86 architecture together with Novell. A team of engineers from both companies very quickly managed to make a very promising prototype. The project was canceled for various reasons: the upcoming transition to PowerPC, managers were afraid of the destruction of Apple's business model, insecurity in suppliers and so on. Many years later, Darwin works on both PowerPC and x86. Star Trek showed the Happy Mac icon on boot, and Darwin / x86 wrote “Welcome to Macintosh.”

image
Happy mac

After the iPhone was released, ARM was added to the list. Darwin is the open source UNIX, which is released by Apple and very roughly represents Mac OS X without an interface and some libraries - approx. perev.

Raptor

Raptor inherited a lot from the Red project. He was not tied to a specific processor architecture and suggested the development of a new generation microkernel. After the cancellation of Star Trek, it was planned to include its achievements in Raptor. In turn, Raptor also did not live long because of budget cuts, pessimism of employees and other reasons.

Nukernel

This is the name of the modern core development project, which would not have to be rewritten at least in the near future.

Talos

Taligent is a company founded by Apple and IBM in early 1992 to continue work on the Pink project. Pink was originally planned as an object-oriented OS, but instead turned out to be an object-oriented cross-platform CommonPoint environment. It could work on AIX, HP-UX, OS / 2, and Windows 95 / NT. Support NuKernel supported, but failed. Taligent Object Services (TalOS) is a set of services on the core of Mach 3.0. The plans were to create an expandable, portable, resource-friendly operating system.
OOP in TalOS was everywhere, from the kernel to the interface. TalOS modules were called frameworks. There were frameworks for the interface, text, documents, graphics, multimedia, fonts, printing, and low-level things like drivers and network protocols. This ideology, combined with specific development tools, made it possible to transfer the load from programmers to system engineers.
It should be noted that at that time there were systems with object-oriented application frameworks, for example NEXTSTEP. But still, the developer had to organize the interaction of their objects with lower-level libraries, Unix system calls and Display PostScript. And they were all procedural. Taligent was object oriented from top to bottom. CommonPoint applications were supposed to be written without using the operating system API in general.
In 1995, Taligent came under full control of IBM. The Pink project did not become the next Apple OS.

Copland

In early 1994, Apple announced a new version of the OS, Mac OS 8, and promised to introduce the experience gained over a decade and move Windows from the throne. The codename for the project is Copland. Work on it began shortly before. Sample plans:
  • Finally move to RISC-architecture and finally port the system to PowerPC
  • Enhance OpenDOC technology QuickDraw GX, ColorSync, QuickDraw 3D, PowerTalk and PowerShare
  • Make the system multi-user, but at the same time keep the interface simple.
  • Improve interaction with DOS and Windows
  • Make The Best Network Support
  • Implement automation tools for a wide range of tasks (something like Visual Basic? - approx. Transl.)
  • Allow licensing and development of Mac OS clones

To do this, it was necessary to introduce the following components:
  • Iron Abstraction Layer (HAL). This will help create compatible systems.
  • NuKernel Microkernel
  • Support for multiprocessor systems and preemptive multitasking
  • Advanced virtual memory and memory protection
  • Flexible system expansion mechanism
  • Removing important services such as I / O, network and file systems from the kernel
  • Support for low-level network services such as the X / Open Transport Interface (OTI), System V STREAMS, Data Link Provider Interface (DLPI)

Work on Copland accelerated in the early 90's, and after a few years everyone was waiting for a miracle. But the project skidded. They released several raw driver development kits (Driver Development Kit, DDK), but the release expected in 1996 did not take place. During development, they quietly cheated on memory protection. Jill Amelio (Apple CEO in those years) said that Copland is a collection of pieces, each designed by a separate team, and everyone expects them to magically blend together.
The project was finally buried in May 1996. Amelio said that some particularly successful developments will be included in the next OS, starting with System 7.6. That is probably what happened. At a minimum, it was renamed to Mac OS 7.6.

Gershwin

After the shameful failure of Copland, the problem of updating the OS has become even more acute. The Gershwin project briefly surfaced. Of its features, one can recall perhaps very conditional support for virtual memory. It is likely that this was only a project idea, and no one worked on it at all.

Beos

Apple has been discussing a partnership with Microsoft for a while to create a new Windows NT-based OS. Still considered Sun Solaris and BeOS. With Be, it almost worked out. Be founded by Jean-Louis Gasset, previously a senior employee of Apple. He led a team of intelligent engineers who developed a very impressive operating system. It supported memory protection, crowding out multitasking, multiprocessing, a metadata file system, and the PowerPC platform along with x86. Multimedia was also on top. But access to the market as a whole did not succeed due to many shortcomings. For example, network support, printers, and a set of applications were not particularly extensive.
image
Gasse was confident in this deal, and requested more than 500 megabytes. The total investment in Be at that time was at the level of 20 million, Apple first offered 50, and then raised the rate to 125. Be went down to 300, but the deal did not take place. In the last rush, Apple offers 200. Greed has triumphed. Gasse almost agreed, but then requested 275 and received nothing.
Somewhere nearby was the more commercially successful NeXT. His OPENSTEP somehow sold in the corporate market. Steve Jobs, the founder, obviously knew something, and claimed that OPENSTEP was ahead of all competitors by many years.

Plan a

NeXT did not break. Apple absorbs it in February 1997 for $ 400 million. Amelio said they chose Plan A instead of Plan B.

Generation NeXT


Steve Jobs was kicked out of Apple on May 31, 1985. He launches a startup and drags another 5 of his former employees there. They wanted to create the perfect computer for universities and laboratories. Shortly before this, Jobs talked with Nobel laureate in biology Paul Berg. Berg endorsed the idea. Apple as a whole was interested in investing in this project, but anger was blind. There were judicial dismantlings, but they ended peacefully. The startup was called NeXT Computer, Inc.
imageimage
The start was quite successful. Jobs invested 7 million from his own pocket. There were other investments, such as 20M from Ross Perot or 100M from Canon. NeXT was able to create a computer that was perfect in form and content. Even the motherboard was beautiful. The magnesium cubic body was painted matte black. Even the monitor stand was made with love. On board was a sound chip that supported stereo with decent quality. These computers were produced in their own factory.

NEXTSTEP

Jobs introduced the NeXT cube on October 12, 1988 in San Francisco. The operating system was called NEXTSTEP and ran on the Mach 2.0 kernel and the 4.3BSD environment. The kernel was modified and incorporated both NeXT-specific features and ported functions from the new versions of Mach. The window server was based on Display Postscript, a cross between the page description language and the window system. Something similar was in Sun and was called NeWS.
image
The main programming language was Objective-C, Interface Builder was used to develop the interface. To facilitate the work of programmers, “Kit” libraries were delivered, for example, Application Kit, Music Kit, and Sound Kit.
At the time of the release of Cuba, NEXTSTEP was in version 0.8. Release 1.0 took place only a year later.
NEXTSTEP 2.0 was released exactly one year after 1.0. In this version, they added support for CD-ROMs, color monitors, the NFS network file system, spell checking on the fly, loadable device drivers, and so on.
In the fall of 1990, Tim Berners-Lee at CERN on NeXT created the first browser, with WYSIWYG and the “Post” button. Staff member Robert Cayo said the program was created in just a few months, thanks to a well-thought-out development system for NEXTSTEP.
image
In 1992, the exhibition NeXTWORLD Expo. They showed NEXTSTEP 486 worth $ 995, a version for which platform it’s clear.
The latest version of NEXTSTEP 3.3 was released in February 1995. By this time, there were already powerful development tools and many libraries for user interfaces, databases, distributed objects, multimedia, networks, etc. For the development of drivers was an object-oriented toolkit Driver Kit. NEXTSTEP worked on Motorola 68k, x86, PA-RISC and SPARC platforms. Fat binaries were supported that worked on any supported platform.
Although the NEXTSTEP was cool and the NeXT hardware stylish, they did not survive. In the winter of 1993, NeXT abandoned the production of its own computers and focused on NEXTSTEP for x86.
image
Together with Sun Microsystems, NeXT is launching specifications for OpenStep, an open set of APIs and frameworks for developing object-oriented operating systems on top of any third-party kernel. Out of the box, SunOS, HP-UX, and Windows NT were supported. Own implementation based on NEXTSTEP was released in July 1996 under the name OPENSTEP 4.0. Soon updates 4.1 and 4.2 appeared. The OpenStep API and OPENSTEP didn't really help NeXT. The main product was WebObjects, a web application development framework. He moved Apple at the merger and is widely used to this day.

Objective-c

Objective-C is an object-oriented language developed by Brad Cox and Tom Love in the early 80s. This is an object add-on over pure C, with dynamic linking and messaging based on the Smalltalk principle. This language is easier to learn and more functional than C ++. For example, multiple inheritance and operator overloading are not supported. Cox and Love founded StepStone Corporation and licensed the NeXT language and compiler. In 1995, NeXT acquired all intellectual property rights of StepStone, which is related to Objective-C. The Objective-C compiler on Mac OS X is based on a modified version of GCC. The comments suggest that this was only the case in earlier versions of Xcode. Then he was gradually abandoned in favor of clang - approx. perev.

Mach Numbers


Complete with the Apple operating system, the core of the Mach also got. A brief look at his story.
image

Rochester's intelligent gateway

A group of researchers at the University of Rochester in 1975 began developing the advanced RIG (Rochester's Intelligent Gateway). It was needed to provide consistent access to many local and remote computing resources. Local resources could be disks, ribbons, printers, plotters, entire computers, and remote resources could be ARPANET nodes or another network. The RIG operating system was called Aleph and ran on the Data General Eclipse minicomputer.
image
Aleph - the first letter is still clear what alphabet

The Aleph core was built around IPC interprocess communication. Processes could send each other messages with addressing by process number and port address. The port was a message queue for a specific process within the kernel. A process could have several ports that listened to the broadcast while waiting for a message. A process could quietly receive copies of messages addressed to another process or interfere with the exchange and intercept all its messages, incoming and outgoing.
RIG bent over a few years later due to fundamental limitations. Messages could be no more than 2 Kb due to limited address space. This has led to IPC inefficiencies. The ports were not protected at all, and access to them was not controlled at all. There were no ways to control failures, and so on.

Accent

Richard Rashid, one of the RIG developers, moved to Carnegie Mellon University (CMU) in 1979. There he joined the Accent Network OS kernel project. Like RIG, it was based on IPC, but had fewer flaws. There was port protection and virtual memory. It was possible to forward messages to processes on a remote computer. Accent was created for two distributed computing projects: Spice for personal use and a fault-tolerant DSN sensor network. The name is due to a pun. Accent is a seasoning manufactured by Accent Inc., consisting only of monosodium glutamate, also known as monosodium glutamate, MSG. And programmers love to label messages as msg.
For several years of development, no sane result has happened. It was time to update the hardware, add support for multiprocessing and portability. There were problems with compatibility with Unix.

Mach

The sequel to Accent was called Mach. By the time Mach UNIX was released, it had been developing for a decade and a half. Mach developers recognized the importance and practicality of UNIX, but noted that the original simplicity had disappeared. Richard Rashid said that the core has become a dump of all that is possible.
Mach was designed to cope with UNIX bulkiness. The goals were as follows:
  • Full support for multiprocessor systems
  • Support for all sorts of features of modern architectures. For example, various memory access models - NUMA and NORMA
  • Transparent distributed computing support
  • Minimize the size of the kernel and simplify the API, but do not lose functionality
  • Full UNIX compatibility
  • Allow Accent Restrictions

Mach began to build on the basis of 4.3BSD code. As examples used and RIG with Accent. Details of the implementation of virtual memory spied in the Tenex Operating System manufactured by DEC. As the project developed, the BSD code was replaced with a self-written one, and of course, new components were added.
Richard Rashid recalls that after many unsuccessful options, they took the name MUCK, Multiprocessor Universal Communication Kernel. One of his collaborators, Dario Giuse, pronounced it with an Italian accent as Mach - Mac. And it took root.
After Mach came out in 1986, he was hailed as “... a new kernel for developing UNIX.” The “new core” in English is quite consonant with NuKernel. The core went to some success, although not everyone noticed it.
The Mach core was built on four basic principles:
  • A task is a container for resources (memory, ports, processors) belonging to one or more threads
  • The basic unit of execution is a thread. They are executed in the execution environment provided by the task. Each thread has its own set of registers, but their memory is shared and belongs to the task
  • The port is similar to Accent. This is an intranuclear message queue for process interactions in Mach.
  • A message is a set of data that a stream can send to the port of another stream.

Another important abstraction was the object of memory. This is a container for data of any kind, including files, that maps to the task address space. Mach could not work without a memory management unit, and provided a convenient pmap interface for working with it. Memory management on UNIX involved a continuous address space, with heaps and stacks growing towards each other. And at Mach, a virtual memory system was developed with an eye to huge and sparse virtual address spaces. Widely supported separation of read and write operations and copying during recording to speed up work. The abstraction of memory through objects made it possible to use external memory, which could even be on another computer. Of the other nice buns, you can recall the relatively free license.
Due to the microkernel concept, the kernel itself is not able to provide I / O, network or access to file systems to programs. It all shifts to the operating system. It was supposed to be easier. The operating system itself is one of the tasks on top of the Mach kernel. In versions 2.0 and 2.5, this was not respected - BSD and Mach were running in the same address space. Based on version 2.5, the Open Software Foundation releases the kernel for its OSF / 1 system. You can still recall the use of Mach in Mt. Xinu, NEXTSTEP, OPENSTEP, Omron LUNA / 88k, Multimax (Encore) and many more.

Mach 3 started developing at CMU. but continued to OSF. This was the first truly microkernel version in which BSD was run as a task. The Mach core was a bit of a hypervisor, and many operating systems ported to it. Some could be run at all in user mode.
Mach-US's symmetric multi-server operating system provided system services through servers and libraries loaded by each process. Services included interprocess communication, process management, interaction with the network and local devices. Libraries could intercept system calls and emulate other operating systems. There were emulators for various versions of BSD, DOS, OSF / 1, SVR4, VMS, OS / 2, Mac OS, HP-UX and many others.
Other updates in the third version:
  • Real time support. Paged kernel and real-time scheduler framework
  • Low level device support. The device appears as a port for messages with support for synchronous and asynchronous I / O
  • Reworked IPC Implementation
  • Redirecting system calls and taking them out to user space
  • Using continuations This is a kernel service that allows a process to block when defining a continuation function that will be called when the process is running (??? - approx. Transl.)


Richard Rashid resigned as chief research officer at Microsoft; another leader, Evi Tevanyan, joined Apple as chief technology officer.

Mklinux

Apple and OSF (later Open Group, later Silicomp) began porting the Linux kernel to Power Macintosh hardware and the modified Mach microkernel. It turned out the osfmk core and a system called MkLinux. The monolithic Linux kernel worked as the only microkernel process. The first Linux 1.3 release was released in early 1996 under the name MkLinux DR1. Later versions were based on 2.0 kernels. One of the releases was included in Apple's Reference Release. Many developments on this project were included in Mac OS X.

About project names

After NeXT was acquired by Apple, two areas of development of operating systems appeared: refinement of Mac OS for the consumer market and development of a new advanced server system Rhapsody based on NeXT.
Apple used for projects not only colored names like Pink and Red. There were also musical ones. Copland and Gerswhin were named after composers Aaron Copland and George Gershwin. “Rhapsody in Blue Tones” is Gershwin’s famous work.

One question. Already in the process of translating this part I came across an existing Russian translation - appleinsider.ru/istoriya-apple/istoriya-operacionnyx-sistem-apple-chast-9.html . Now in thought - continue or leave as is

Only registered users can participate in the survey. Please come in.

Should I continue to translate, or is that enough?

  • 91% Continue 1379
  • 8.9% Score 135

Also popular now: