On May 6, 2002, Steve Jobs opened WWDC with a funeral for Classic Mac OS:
Yesterday, 18 years later, OS X finally reached its own end of the road: the next version of macOS is not 10.16, but 11.0.
There was no funeral.
The OS X Family Tree
OS X has one of the most fascinating family trees in technology; to understand its significance requires understanding each of its forebearers.
MacOS (originally named 'Mac OS X' until 2012 and then 'OS X' until 2016) is the current Mac operating system that officially succeeded the classic Mac OS in 2001. Although the system was originally marketed as simply 'version 10' of Mac OS, it has a history that is largely independent of the classic Mac OS. It is a Unix-based operating system built on NeXTSTEP and other technology developed. Using UNIX from a Macintosh OS X Computer. Download the FileZilla client for Mac OS X from here. Open the FileZilla installation file to unpack the application. You may run Filezilla.app from the Desktop, or you can instead move it to your Applications folder.
- The shell interprets command lines you enter, runs programs you ask for, and generally coordinates what happens between you and the Unix operating system. The default shell on Mac OS X is called tcsh (this could change in future versions of Mac OS X). Other available shells include the Bourne shell (sh), the C shell (csh), the Bourne-Again.
- OS X's status as a certified Unix is called out in Apple's Unix technology brief, which also has other good technical bits in it that will help you compare it to other UNIX® and Unix-like systems. I monitor Apple's page on the Open Group's web site due to the popularity of this answer, and I.
Unix: Unix does refer to a specific operating system that originated in AT&T’s Bell Labs (the copyrights of which are owned by Novell), but thanks to a settlement with the U.S. government (that was widely criticized for going easy on the telecoms giant), Unix was widely-licensed to universities in particular. One of the most popular variants that resulted was the Berkeley Software Distribution (BSD), developed at the University of California, Berkeley.
What all of the variations of Unix had in common was the Unix Philosophy; the Bell System Technical Journal explained in 1978:
A number of maxims have gained currency among the builders and users of the Unix system to explain and promote its characteristic style:
- Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new “features”.
- Expect the output of every program to become the input to another, as yet unknown, program. Don’t clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don’t insist on interactive input.
- Design and build software, even operating systems, to be tried early, ideally within weeks. Don’t hesitate to throw away the clumsy parts and rebuild them.
- Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you’ve finished using them.
[…]
The Unix operating system, the C programming language, and the many tools and techniques developed in this environment are finding extensive use within the Bell System and at universities, government laboratories, and other commercial installations. The style of computing encouraged by this environment is influencing a new generation of programmers and system designers. This, perhaps, is the most exciting part of the Unix story, for the increased productivity fostered by a friendly environment and quality tools is essential to meet every-increasing demands for software.
Today you can still run nearly any Unix program on macOS, but particularly with some of the security changes made in Catalina, you are liable to run into permissions issues, particularly when it comes to seamlessly linking programs together.
Mach: Mach was a microkernel developed at Carnegie Mellon University; the concept of a microkernel is to run the smallest amount of software necessary for the core functionality of an operating system in the most privileged mode, and put all other functionality into less privileged modes. OS X doesn’t have a true microkernel — the BSD subsystem runs in the same privileged mode, for performance reasons — but the modular structure of a microkernel-type design makes it easier to port to different processor architectures, or remove operating system functionality that is not needed for different types of devices (there is, of course, lots of other work that goes into a porting a modern operating system; this is a dramatic simplification).
More generally, the spirit of a microkernel — a small centralized piece of software passing messages between different components — is how modern computers, particularly mobile devices, are architected: multiple specialized chips doing discrete tasks under the direction of an operating system organizing it all.
Xerox: The story of Steve Jobs’ visiting Xerox is as mistaken as it is well-known; the Xerox Alto and its groundbreaking mouse-driven graphical user interface was well-known around Silicon Valley, thanks to the thousands of demos the Palo Alto Research Center (PARC) did and the papers it had published. PARC’s problem is that Xerox cared more about making money from copy machines than in figuring out how to bring the Alto to market.
That doesn’t change just how much of an inspiration the Alto was to Jobs in particular: after the visit he pushed the Lisa computer to have a graphical user interface, and it was why he took over the Macintosh project, determined to make an inexpensive computer that was far easier to use than anything that had come before it.
Apple: The Macintosh was not the first Apple computer: that was the Apple I, and then the iconic Apple II. What made the Apple II unique was its explicit focus on consumers, not businesses; interestingly, what made the Apple II successful was VisiCalc, the first spreadsheet application, which is to say that the Apple II sold primarily to businesses. Still, the truth is that Apple has been a consumer company from the very beginning.
This is why the Mac is best thought of as the child of Apple and Xerox: Apple understood consumers and wanted to sell products to them, and Xerox provided the inspiration for what those products should look like.
It was NeXTSTEP, meanwhile, that was the child of Unix and Mach: an extremely modular design, from its own architecture to its focus on object-oriented programming and its inclusion of different “kits” that were easy to fit together to create new programs.
And so we arrive at OS X, the child of the classic Macintosh OS and NeXTSTEP. The best way to think about OS X is that it took the consumer focus and interface paradigms of the Macintosh and layered them on top of NeXTSTEP’s technology. In other words, the Unix side of the family was the defining feature of OS X.
Return of the Mac
In 2005 Paul Graham wrote an essay entitled Return of the Mac explaining why it was that developers were returning to Apple for the first time since the 1980s:
All the best hackers I know are gradually switching to Macs. My friend Robert said his whole research group at MIT recently bought themselves Powerbooks. These guys are not the graphic designers and grandmas who were buying Macs at Apple’s low point in the mid 1990s. They’re about as hardcore OS hackers as you can get.
The reason, of course, is OS X. Powerbooks are beautifully designed and run FreeBSD. What more do you need to know?
Graham argued that hackers were a leading indicator, which is why he advised his dad to buy Apple stock:
If you want to know what ordinary people will be doing with computers in ten years, just walk around the CS department at a good university. Whatever they’re doing, you’ll be doing.
In the matter of “platforms” this tendency is even more pronounced, because novel software originates with great hackers, and they tend to write it first for whatever computer they personally use. And software sells hardware. Many if not most of the initial sales of the Apple II came from people who bought one to run VisiCalc. And why did Bricklin and Frankston write VisiCalc for the Apple II? Because they personally liked it. They could have chosen any machine to make into a star.
If you want to attract hackers to write software that will sell your hardware, you have to make it something that they themselves use. It’s not enough to make it “open.” It has to be open and good. And open and good is what Macs are again, finally.
What is interesting is that Graham’s stock call could not have been more prescient: Apple’s stock closed at $5.15 on March 31, 2005, and $358.87 yesterday;1 the primary driver of that increase, though, was not the Mac, but rather the iPhone.
The iOS Sibling
If one were to add iOS to the family tree I illustrated above, most would put it under Mac OS X; I think, though, iOS is best understood as another child of Classic Mac and NeXT, but this time the resemblance is to the Apple side of the family. Or to put it another way, while the Mac was the perfect machine for “hackers”, to use Graham’s term, the iPhone was one of the purest expressions of Apple’s focus on consumers.
The iPhone, as Steve Jobs declared at its unveiling in 2007, runs OS X, but it was certainly not Mac OS X: it ran the same XNU kernel, and most of the same subsystem (with some new additions to support things like cellular capability), but it had a completely new interface. That interface, notably, did not include a terminal; you could not run arbitrary Unix programs.2 That new interface, though, was far more accessible to regular users.
What is more notable is that the iPhone gave up parts of the Unix Philosophy as well: applications all ran in individual sandboxes, which meant that they could not access the data of other applications or of the operating system. This was great for security, and is the primary reason why iOS doesn’t suffer from malware and apps that drag the entire system into a morass, but one certainly couldn’t “expect the output of every program to become the input to another”; until sharing extensions were added in iOS 8 programs couldn’t share data with each other at all, and even now it is tightly regulated.
At the same time, the App Store made principle one — “make each program do one thing well” — accessible to normal consumers. Whatever possible use case you could imagine for a computer that was always with you, well, “There’s an App for That”:
Consumers didn’t care that these apps couldn’t talk to each other: they were simply happy they existed, and that they could download as many as they wanted without worrying about bad things happening to their phone — or to them. While sandboxing protected the operating system, the fact that every app was reviewed by Apple weeded out apps that didn’t work, or worse, tried to scam end users.
This ended up being good for developers, at least from a business point-of-view: sure, the degree to which the iPhone was locked down grated on many, but Apple’s approach created millions of new customers that never existed for the Mac; the fact it was closed and good was a benefit for everyone.
Download Unix Os
macOS 11.0
What is striking about macOS 11.0 is the degree to which is feels more like a son of iOS than the sibling that Mac OS X was:
- macOS 11.0 runs on ARM, just like iOS; in fact the Developer Transition Kit that Apple is making available to developers has the same A12Z chip as the iPad Pro.
- macOS 11.0 has a user interface overhaul that not only appears to be heavily inspired by iOS, but also seems geared for touch.
- macOS 11.0 attempts to acquire developers not primarily by being open and good, but by being easy and good enough.
The seeds for this last point were planted last year with Catalyst, which made it easier to port iPad apps to the Mac; with macOS 11.0, at least the version which will run on ARM, Apple isn’t even requiring a recompile: iOS apps will simply run on macOS 11.0, and they will be in the Mac App Store by default (developers can opt-out).
In this way Apple is using their most powerful point of leverage — all of those iPhone consumers, which compel developers to build apps for the iPhone, Apple’s rules notwithstanding — to address what the company perceives as a weakness: the paucity of apps in the Mac App Store.
Is the lack of Mac App Store apps really a weakness, though? When I consider the apps that I use regularly on the Mac, a huge number of them are not available in the Mac App Store, not because the developers are protesting Apple’s 30% cut of sales, but simply because they would not work given the limitations Apple puts on apps in the Mac App Store.
Unix Os Download Iso
The primary limitation, notably, is the same sandboxing technology that made iOS so trustworthy; that trustworthiness has always come with a cost, which is the ability to build tools that do things that “lighten a task”, to use the words from the Unix Philosophy, even if the means to do so opens the door to more nefarious ends.
Fortunately macOS 11.0 preserves its NeXTSTEP heritage: non-Mac App Store apps are still allowed, for better (new use cases constrained only by imagination and permissions dialogs) and worse (access to other apps and your files). What is notable is that this was even a concern: Apple’s recent moves on iOS, particularly around requiring in-app purchase for SaaS apps, feel like a drift towards Xerox, a company that was so obsessed with making money it ignored that it was giving demos of the future to its competitors; one wondered if the obsession would filter down to the Mac.
For now the answer is no, and that is a reason for optimism: an open platform on top of the tremendous hardware innovation being driven by the iPhone sounds amazing. Moreover, one can argue (hope?) it is a more reliable driver of future growth than squeezing every last penny out of the greenfield created by the iPhone. At a minimum, leaving open the possibility of entirely new things leaves far more future optionality than drawing the strings every more tightly as on iOS. OS X’s legacy lives, for now.
I wrote a follow-up to this article in this Daily Update.
- Yes, this incorporates Apple’s 7:1 stock split [↩]
- Unless you jailbroke your phone [↩]
Related
OS X is a modern operating system that combines the power and stability of UNIX-based operating systems with the simplicity and elegance of the Macintosh. For years, power users and developers have recognized the strengths of UNIX and its offshoots. While UNIX-based operating systems are indispensable to developers and power users, consumers have rarely been able to enjoy their benefits because of the perceived complexity. Instead consumers have lived with a generation of desktop computers that could only hope to achieve the strengths that UNIX-based operating systems have had from the beginning.
This chapter is for anyone interested in an overview of OS X—its lineage and its open source core, called Darwin. Here you will find background information about OS X and how your application fits in.
The Family Tree
Although this document covers the basic concepts in bringing UNIX applications to OS X, it is by no means comprehensive. This section is provided to give you a hint on where to look for additional documentation by outlining how OS X came to be. Knowing a little about the lineage of OS X will help you to find more resources as the need arises.
• BSD
Part of the history of OS X goes back to Berkeley Software Distributions (BSD) UNIX of the late seventies and early eighties. Specifically, it is based in part on BSD 4.4 Lite. On a system level, many of the design decisions are made to align with BSD-style UNIX systems. Most libraries and utilities are from FreeBSD (http://www.freebsd.org/), but some are derived from NetBSD (http://www.netbsd.org/). For future development, OS X has adopted FreeBSD as a reference code base for BSD technology. Work is ongoing to more closely synchronize all BSD tools and libraries with the FreeBSD-stable branch.
• Mach
Although OS X must credit BSD for most of the underlying levels of the operating system, OS X also owes a major debt to Mach. The kernel is heavily influenced in its design philosophy by Carnegie Mellon’s Mach project. The kernel is not a pure microkernel implementation, since the address space is shared with the BSD portion of the kernel and the I/O Kit.
• NEXTSTEP
In figuring out what makes OS X tick, it is important to recognize the influences of NEXTSTEP and OPENSTEP in its design. Apple’s acquisition of NeXT in 1997 was a major key in bringing OS X from the drawing board into reality. Many parts of OS X of interest to UNIX developers are enhancements and offshoots of the technology present in NEXTSTEP. From the file system layer to the executable format and from the high-level Cocoa API to the kernel itself, the lineage of OS X as a descendant of NEXTSTEP is evident.
• Earlier Version of the Mac OS
Although it shares its name with earlier versions of the Mac OS, OS X is a fundamentally new operating system. This does not mean that all that went before has been left out. OS X still includes many of the features that Mac OS 9 and earlier versions included. Although your initial port to OS X may not use any of the features inherited from Mac OS 9, as you enhance the application, you might take advantage of some of the features provided by technologies like ColorSync or the Carbon APIs. Mac OS 9 is also the source of much of the terminology used in OS X.
OS X and Darwin
Mw3 macmillan. The word Darwin is often used to refer to the underpinnings of OS X. In fact, in some circles OS X itself is rarely mentioned at all. It is important to understand the distinction between the two—how they are related and how they differ.
Darwin is the core of the OS X operating system. Although Darwin can stand alone as an independent operating system, it includes only a subset of the features available in OS X. Figure 1-1 shows how Darwin is related to OS X as a whole.
Darwin is an open source project. With it, you as a developer gain access to the foundation of OS X. Its openness also allows you to submit changes that you think should be reflected in OS X as a whole. Darwin has been released as a separate project that runs on PowerPC-based Macintosh computers as well as x86-compatible computers. Although it could be considered a standalone operating system in its own right, many of the fundamental design decisions of Darwin are governed by its being embedded within OS X. In bringing your applications to the platform, you should target OS X version 10.1.4 (Darwin 5.4) or later.
OS X itself is not an Open Source project. As you can see from Figure 1-1, there are many parts of OS X that are not included in the Open Source Darwin components. Part of your job while porting is deciding where your application will fit in OS X.
If you are a developer whose tool is a command-line tool (or has a useful subset that is a command-line tool), you can, of course, simply port your application as a command-line tool or service, which is usually not that complicated. By doing this you gain a small benefit, in that it is now available to OS X users who are familiar with the UNIX command-line environment. You will not be able to market it to OS X users as a whole though, since many users do not even know how to access the command line on their computers.
The basic steps in porting a UNIX application to OS X typically include:
Freebsd Vs Mac Os X
- Port to the command line.
- Provide a graphical user interface (GUI).
What Macintosh Users Expect
In bringing your UNIX application to OS X, you are entering a world where great emphasis is placed on user interactions. This brings you many opportunities and benefits as a developer, but also some responsibilities.
Benefits of Porting to OS X
Porting to OS X has three primary benefits:
- stable long-term customer base
- good inroad into education
- powerful developer tools
Bringing UNIX applications to OS X can be very profitable if done correctly. Well-designed Macintosh applications of years past are the standards of today. PhotoShop, Illustrator, and Excel are all applications that first made their name on the Macintosh. Now is the time to win the hearts of Macintosh users with the next great application. In a word, possibly millions of paying customers!
Macintosh users are willing to spend their money on great applications because they know that Apple strives to give them a high-quality user environment. Apple developers are known for providing great applications for that environment.
For years, Apple has been known for its commitment to education. OS X targets the education market for developers and is an ideal platform for learning for students. With its standards-based technologies as well as home-grown technologies, you have an ideal platform for use in educational application deployment and development.
OS X also provides benefits in a development environment. Apple strives for standards first, then it adds that little bit that makes it better on a Mac. As a developer, you have access to many of the development tools and environments that you have on other platforms, like Java, OpenGL, POSIX libraries, and the BSD TCP/IP stack, but you also have built-in benefits like the Apache Web server on every computer, the Cocoa object-oriented development environment, a PDF-based display system (Quartz), Kerberos, QuickTime, a dynamic core audio implementation, and a suite of world-class developer tools. By adding a native OS X front end to your application, you can achieve a cost-effective new deployment platform with minimal additional development effort.
OS X adds tremendous value both to you and your customers on a standards-based operating system.
Responsibilities of Porting to OS X
Along with benefits come responsibilities. If you have decided to make a full-featured Mac app, here are some guidelines to keep in mind.
- An OS X user should never have to resort to the command line to perform any task in an application with a graphical user interface. This is especially important to remember since the BSD user environment may not even be installed on a user’s system. The libraries and kernel environment are of course there by default, but the tools may not be.
- If you are making graphical design decisions, you need to become familiar with the OS X Human Interface Guidelines, available from the Apple developer website. These are the standards that Macintosh users expect their applications to live up to. Well-behaved applications from Apple and third-party developers give the Macintosh its reputation as the most usable interface on the planet.
The responsibilities boil down to striving for an excellent product from a user’s perspective. OS X gives you the tools to make your applications shine.
Mac Os Linux
A Practical Guide To Unix For Mac Os X Users
Copyright © 2002, 2012 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2012-06-11