Accent is an
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
kernel, most notable for being the predecessor to the
Mach kernel. Originally developed at
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
(CMU), Accent was influenced by the
Aleph kernel developed at the
University of Rochester
The University of Rochester is a private university, private research university in Rochester, New York, United States. It was founded in 1850 and moved into its current campus, next to the Genesee River in 1930. With approximately 30,000 full ...
. Accent improves upon Aleph, fixing several problems and re-targeting hardware support for networks of
workstation
A workstation is a special computer designed for technical or computational science, scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating syste ...
machines (specifically, the
Three Rivers PERQ) instead of
minicomputer
A minicomputer, or colloquially mini, is a type of general-purpose computer mostly developed from the mid-1960s, built significantly smaller and sold at a much lower price than mainframe computers . By 21st century-standards however, a mini is ...
s. Accent was part of the
SPICE Project at CMU which ran from 1981 to 1985. Development of Accent led directly to the introduction of Mach, used in
NeXTSTEP
NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT, founded by Steve Jobs, in the late 1980s and early 1990s and was initially used for its ...
,
GNU Hurd, and modern Apple operating systems including
Mac OS
Mac operating systems were developed by Apple Inc. in a succession of two major series.
In 1984, Apple debuted the operating system that is now known as the classic Mac OS with its release of the original Macintosh System Software. The system ...
and
iOS.
The original Aleph project used data copying to allow programs to communicate. Applications could open ''ports'', which would allow them to receive data sent to them by other programs. The idea was to write a number of ''servers'' that would control resources on the machine, passing data along until it reached an end user. In this respect it was similar in concept to
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, although the implementation was much different, using messages instead of memory. This turned out to have a number of problems, notably that copying memory on their
Data General Eclipse was very expensive.
In 1979 one of the Aleph engineers,
Richard Rashid
Richard Farris Rashid is the founder of Microsoft Research, which he created in 1991. Between 1991 and 2013, as its chief research officer and director, he oversaw the worldwide operations for Microsoft Research which grew to encompass more than ...
, left for CMU and started work on a new version of Aleph that avoided its problems. In particular, Accent targeted workstation machines featuring a
MMU, using the MMU to "copy" large blocks of memory via ''mapping'', making the memory appear to be in two different places. Only data that was changed by one program or another would have to be physically copied, using the
copy-on-write algorithm.
To understand the difference, consider two interacting programs, one feeding a file to another. Under Aleph the data from the provider would have to be copied 2kB at a time (due to features of the Eclipse) into the user process. Under Accent the data simply "appeared" in the user process for the cost of a few instructions sent to the MMU. Only if the user process changed the data would anything need to be copied, and even then, only the portions of the data that actually changed.
Another problem in Aleph was that its ports were identified by unique ID's that were assigned sequentially. It was simple for a program to "guess" them, thereby gaining access to resources on the computer that it had not been granted. This made the Aleph system rather insecure.
To address this, Accent made the port ID's internal to the kernel only. Instances of a program opening ports were handed back different IDs, stored in a mapping in the kernel. Whenever a message was sent to the kernel for delivery, it would first check that the program had access to the port in question by comparing with the mapping table for that program. Guessing port numbers no longer worked, the program's port IDs gave no clue of the "real" IDs in the kernel, and any attempt to talk on one not explicitly handed out by the kernel was an error. Thus Accent's ports represented ''
capabilities'', granting rights to use resources as the result of being handed a valid port ID. This kind of capability system, using
subject-specific identifiers for capabilities, is called a
C-list system.
After a few years the Accent project started looking less and less interesting. In the early 1980s many felt that future gains in performance would be made by adding more
CPUs
A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
to machines, something the Accent kernel was not really equipped to handle. Adding to the problem was that a new generation of more powerful workstations were appearing, meaning that Accent would likely have to be ported to them anyway. Likewise Unix had grown into ''the'' operating system of choice for experimental work, both on operating system design, as well as a development platform for user applications.
In order to address these changes, it was decided to end work on Accent and start again. The new system would use Accent's ports system within a Unix kernel, creating the famed
Mach kernel.
Some features of Accent:
* Port capabilities
*
Copy-on-write virtual memory
In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
management
*
Distributed file management
*
Distributed process management
* Protected message-based
inter-process communication
In computer science, interprocess communication (IPC) is the sharing of data between running Process (computing), processes in a computer system. Mechanisms for IPC may be provided by an operating system. Applications which use IPC are often cat ...
* Ability to run processes with different
microcode
In processor design, microcode serves as an intermediary layer situated between the central processing unit (CPU) hardware and the programmer-visible instruction set architecture of a computer. It consists of a set of hardware-level instructions ...
d instruction sets.
References
External links
* {{cite book
, url=https://dl.acm.org/doi/10.1145/800216.806593
, title=Accent: A communication oriented network operating system kernel
, authorlink=Richard Rashid
, last=Rashid
, first=Richard F.
, author2=George G. Robertson
, series=Sosp '81
, date=December 1981
, pages=64–75
, doi=10.1145/800216.806593
, isbn=9780897910620
, s2cid=15890135
, format=PDF
* Myers, Brad A.
"The User Interface for Sapphire," Human Factors in Computing Systems; SIGCHI '85 Videotape Review. San Francisco, CA. Apr 14-18, 1985.
Monolithic kernels
Carnegie Mellon University software