⬆️ ⬇️

History of Apple operating systems. Part 3. Generation NeXT

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 be mainly about projects that haven’t taken off and deep OS bugs.



New Hope



Windows NT 3.1


Microsoft Windows 3.x branches quickly became widespread, immediately after the release in 1990. The new generation system codenamed “Chicago” was planned for 1993, but it was clear when Windows 95 was released. At the same time, in 1993, Windows NT was released - an advanced OS for client-server applications. Features include Win32 APIs, preemptive multitasking with a 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 the run-up to Windows 95.

Projects Pink and Red did not cope with this role. Ahead there were many attempts to create a new competitive OS.
Star trek


There was a bold attempt to port Mac OS to the x86 architecture with Novell. A team of engineers from both companies very quickly was able 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, uncertainty 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 release of the iPhone, ARM was added to the list. Darwin is UNIX's open source, which is released by Apple and very roughly represents Mac OS X without an interface and part of the libraries - approx. trans.



Raptor


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



NuKernel


So called the project of development of a modern kernel which would not be required to be rewritten at least in the near future.



TalOS


Taligent is a company founded by Apple and IBM in early 1992 to continue working on the Pink project. Pink was originally planned as an object-oriented OS, but instead it turned out to be an object-oriented cross-platform CommonPoint environment. It could work on AIX, HP-UX, OS / 2 and Windows 95 / NT. NuKernel support was 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-demanding operating system.

OOP at TalOS was everywhere, from the kernel to the interface. The TalOS modules were called frameworks. There were frameworks for the interface, text, documents, graphics, multimedia, fonts, printing, and low-level things such as drivers and network protocols. Such an ideology in combination with a specific development toolkit 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, such as NEXTSTEP. But all the same, the developer had to organize the interaction of his objects with the 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 at all.

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 promises to introduce experience gained over the decade and move Windows from the throne. The project code name is Copland. Work on it began shortly before. Sample plans:



To do this, it was necessary to introduce such components:



Work on Copland accelerated in the early 90s, 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 expected release in 1996 did not take place. During development, they silently protected memory protection. Gil Amelio (Apple CEO in those years) said that Copland is a set of pieces, each of which is developed by a separate team, and everyone expects that they will magically grow into one.

The project was finally buried in May 1996. Amelio said that some particularly successful designs will be included in the next OS, starting with System 7.6. It probably did. At a minimum, it was renamed Mac OS 7.6.



Gershwin


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



BeOS


Apple has been discussing a partnership with Microsoft for a while to create a new OS based on Windows NT. Another considered Sun Solaris and BeOS. Everything almost worked out with Be. Be founded by Jean-Louis Gasse, previously a senior executive at Apple. He led a team of intelligent engineers who developed a very impressive operating system. It supported memory protection, preemptive multitasking, multiprocessing, a metadata file system, and the PowerPC platform along with x86. Multimedia was also on top. But entering the market as a whole failed due to many shortcomings. For example, network support, printers and a set of applications were not particularly extensive.

image

Gassé was confident in this deal, and requested more than 500 megabucks. The total investment in Be at that time was at the level of 20 million, Apple offered 50 at first, and then raised the bid to 125. Be went down to 300, but the deal never took place. In the last rush, Apple offers 200. Greed won out. Gassé almost agreed, but then he requested 275 and received nothing.

Somewhere nearby was the more commercially successful NeXT. His OPENSTEP somehow sold on the corporate market. Steve Jobs, the founder, obviously knew something, and argued that OPENSTEP has been ahead of all competitors for 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 Bi.



NeXT Generation



Steve Jobs was kicked out of Apple on May 31, 1985. He launches a startup and dabs over 5 more of his former employees. They wanted to create a perfect computer for universities and laboratories. Shortly before, Jobs spoke with the Nobel laureate in biology Paul Berg. Berg endorsed this idea. Apple as a whole was interested in investing in this project, but anger filled my eyes. There were court trials, but they ended peacefully. A startup called NeXT Computer, Inc.

imageimage

The beginning was quite successful. Jobs has 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 is perfect in form and content. Even the motherboard was beautiful. The magnesium cubic case was painted matt 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 worked on the Mach 2.0 kernel and the 4.3BSD environment. The kernel was refined and incorporated both NeXT-specific features and back-ported features from the new Mach versions. The window server was based on Display Postscript, a mixture of page description language and window system. Something similar was at Sun and was called NeWS.

image

The main programming language was Objective-C, using Interface Builder to develop the interface. To facilitate the work of programmers, libraries of “kitI” were supplied, such as the Application Kit, the Music Kit, and the Sound Kit.

At the time of the release of the Cube, 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. This version adds support for CD-ROM, color monitors, network file system NFS, on-the-fly spelling, loadable device drivers, and so on.

In the fall of 1990, Tim Berners-Lee at CERN on the NeXT computer created the first browser, with WYSIWYG and the “Post” button. His employee, Robert Cayo, said that the program was created in just a few months, thanks to a well-designed development system for NEXTSTEP.

image

In 1992, the exhibition NeXTWORLD Expo. They showed NEXTSTEP 486 worth $ 995, the version for which platform is clear.

The latest version of NEXTSTEP 3.3 was released in February 1995. By this time there were already the most powerful development tools and many libraries for user interfaces, databases, distributed objects, multimedia, networks, etc. For the development of drivers, there was an object-oriented toolkit Driver Kit. NEXTSTEP worked on Motorola 68k, x86, PA-RISC and SPARC platforms. Supported fat binaries that worked on any supported platform.

Although NEXTSTEP was cool, and the NeXT iron was stylish, they did not survive. In the winter of 1993, NeXT refused to manufacture its own computers and focused on NEXTSTEP for x86.

image

Together with Sun Microsystems, NeXT releases the OpenStep specification, an open set of APIs and frameworks for developing object-oriented operating systems on top of any third-party kernel. Out of the box supported SunOS, HP-UX and Windows NT. Own implementation based on NEXTSTEP was released in July 1996 under the name OPENSTEP 4.0. Updates 4.1 and 4.2 soon appeared. The OpenStep API and OPENSTEP did not particularly help NeXT. The main product was WebObjects, a framework for developing web applications. He switched to Apple when merging companies 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 superstructure over pure C, with dynamic binding and messaging on the Smalltalk principle. This language is easier to learn and functionality 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 gets all the 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 it was only in earlier versions of Xcode. Then he was gradually abandoned in favor of clang - approx. trans.



Mach numbers



Included with the Apple operating system got the kernel Mach. Briefly look at his story.

image



Rochester's Intelligent Gateway


A group of researchers at the University of Rochester in 1975 began the development of an advanced RIG (Rochester's Intelligent Gateway). It was needed to provide uniform access to a variety of local and remote computing resources. Local resources could be disks, tapes, printers, plotters, computers as a whole, and remote resources could be ARPANET nodes or another network. The RIG operating system was called Aleph and worked on the Data General Eclipse minicomputer.

image

Aleph - the first letter is clear what alphabet



The Aleph core was built around IPC interprocess communication. Processes could send each other messages addressed by process number and port address. The port was a message queue for a specific process inside the kernel. The process could have several ports that would listen to the broadcast while waiting for a message. A process could silently receive copies of messages addressed to another process or interfere with the exchange and intercept all its messages, incoming and outgoing.

RIG was bent 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. Ports were not protected at all, and access to them was not controlled in any way. There was no way 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 send messages to processes of a remote computer. Accent was created for two distributed computing projects: Spice for personal use and the DSN sensor network that is resistant to failures. The name came out because of the play on words. Accent is a seasoning produced by Accent Inc., consisting only of monosodium glutamate, aka monosodium glutamate, MSG. And programmers love to designate messages as msg.

For several years of development, no imputed result has not happened. It was time to update the hardware, add support for multiprocessing and portability. There were also problems with compatibility with Unix.



Mach


Continued Accent called Mach. By the time of the Mach UNIX release, it had already been developing for a decade and a half. Mach developers were aware of the importance and practicality of UNIX, but noted that the original simplicity had disappeared somewhere. Richard Rashid said that the core turned into a dump of all that is possible.

Mach developed in peak UNIX bulkiness. The goals were:



Mach began to build based on the 4.3BSD code. As examples used and RIG with Accent. Details of the implementation of virtual memory peeped in Tenex Operating System production DEC. As the project progressed, 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 adopted the name MUCK, Multiprocessor Universal Communication Kernel. One of his co-workers, Dario Juze, pronounced it with an Italian accent as Mach-Mac. So it stuck.

After Mach’s release in 1986, he was praised as “... a new core for UNIX development”. 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:



Another important abstraction was the memory object. This is a container for data of any kind, including files, which is mapped into the address space of the task. Mach could not work without a memory management unit, and provided a convenient pmap interface for working with it. UNIX memory management assumed a continuous address space, with a heap and a stack growing towards each other. And in Mach, a virtual memory system was developed with an eye to huge and sparse virtual address spaces. Widely supported the separation of read and write operations and copy while writing to speed up the work. 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.

Because of the micronuclear concept, the kernel itself does not know how to provide I / O, network, or access to file systems to programs. This is all shifted 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 executed in the same address space. Based on version 2.5, Open Software Foundation releases the kernel for its OSF / 1 system. You can also recall the use of Mach in Mt. Xinu, NEXTSTEP, OPENSTEP, Omron LUNA / 88k, Multimax (Encore) and much more.



Mach 3 began to develop in CMU. and continued to OSF. This was the first true micronuclear version in which BSD was performed as a task. The Mach core was a bit of a hypervisor, and many operating systems were ported to it. Some could be run at all in user mode.

The Mach-US 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:





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



Mklinux


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



About project names


After acquiring NeXT, Apple developed two directions for the development of operating systems: the revision of Mac OS for the consumer market and the development of the new advanced NexT-based Rhapsody OS.

Apple used for projects not only color names like Pink and Red. There were music. Copland and Gerswhin were named after the composers Aaron Copland and George Gershwin. “Rhapsody in Blue” is a famous work by Gershwin.



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

Source: https://habr.com/ru/post/197160/



All Articles