Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Sprite (operating system)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Infobox OS | name = Sprite | logo = | screenshot = | caption = | developer = [[University of California, Berkeley]] | kernel_type = [[Monolithic kernel]] | supported_platforms = [[DECstation#DECstation 5000 Model 200 Series|DECstation 5000 Model 200]], [[SPARCstation 2]] | ui = [[Command-line interface]] | family = [[Unix-like]] | latest_release_date = 1992 | programmed_in = [[C (programming language)]] | working_state = Historic | license = [[MIT License]] | website = [https://www2.eecs.berkeley.edu/Research/Projects/CS/sprite/sprite.html Sprite home page] }} '''Sprite''' is an experimental [[Unix-like]] [[distributed operating system]] developed at the [[University of California, Berkeley]] by [[John Ousterhout]]'s research group between 1984 and 1992. Its notable features include support for [[single system image]] on [[computer cluster]]s<ref>{{Cite web|url=http://www.eecs.berkeley.edu/Research/Projects/CS/sprite/sprite.html|title = Sprite}}</ref> and the introduction of the [[log-structured file system]]. The [[Tcl]] scripting language also originated in this project. ==Early work== Early work on Sprite was based on the idea of making the operating system more "network aware", and thereby at the same time make it invisible to the user. The primary area of work was the building of a new network file system which made heavy use of local client-side caching in order to improve performance. After opening the file and some initial reads, the network is only used on-demand, and most user actions occur against the cache. Similar utilities allow remote devices to be mapped into the local computer's space, allowing for network printing and similar duties. Many of the key Unix files are based on the network, including things like the password file. All machines in a network share the root directory as well. Other common Unix utilities such as <code>finger</code> were re-written to make them network aware as well, listing all of the people logged on across the network. This makes a Sprite network appear as if it were a single large [[time-sharing]] system, or a [[single-system image]]. Another key addition to Sprite is [[process migration]], which allows programs to be moved between machines at any time. The system maintains a list of machines and their state, and automatically moves processes to idle machines to improve local performance. Processes can also be "evicted" from machines to improve their performance, causing the original starter to move it to another machine on the network, or take control of it locally again. Long tasks (like [[compiler|compiling]] the Sprite system) can appear very fast. ==Further development== Work on the "early" Sprite outlined above ended around 1987, but was improved{{clarify|date=May 2016|reason=if it ended, it couldn't be improved}} during the next year. Starting in 1990 Sprite was used as the basis for development of the first [[log-structured file system]] (LFS), development of which continued until about 1992. LFS dramatically increases the performance of file writes at the expense of read performance. Under Sprite, this tradeoff is particularly useful because most read access is cached anyway—that is, Sprite systems typically perform fewer reads than a normal Unix system. LFS-like systems also allow for much easier crash recovery, which became a major focus of the project during this period. Additional experimentation on [[RAID|striped]] file systems, both striped across different machines as well as clusters of drives, continued until about 1994. ==Discontinuation== Sprite was not a [[microkernel]] system, and suffers the same sort of problems as other [[Unix]]es in terms of development complexity, becoming increasingly difficult to develop as more functionality was added.<ref name="retrospective">{{Cite web |url=http://www.eecs.berkeley.edu/Research/Projects/CS/sprite/retrospective.html |title=Sprite Retrospective |last=Ousterhout |first=John |year=1992 |publisher=University of California at Berkeley |archive-url=https://web.archive.org/web/20150225073211/http://www.eecs.berkeley.edu/Research/Projects/CS/sprite/retrospective.html |archive-date=2015-02-25 |url-status=live |access-date=2015-10-05 |quote=... the Sprite kernel became harder and harder to maintain as it aged}}</ref> By the 1990s it was suffering and the small team supporting the project was simply not able to keep up with the rapid changes in Unix taking place during this time. The project was slowly shut down by 1994. ==See also== {{Portal|Free and open-source software}} * [[Amoeba (operating system)]] * [[Plan 9 from Bell Labs]] ==References== {{Reflist}} ==External links== * [https://web.archive.org/web/20040402163929/http://www.cs.berkeley.edu/projects/sprite/sprite.html Sprite home page] * [http://gavare.se/gxemul/gxemul-stable/doc/guestoses.html#sprite Booting a Sprite harddisk image on an emulated DECstation 5000/200] * [https://github.com/OSPreservProject/sprite Sprite Source Code on Github] {{Unix-like}} {{Distributed operating systems}} {{DEFAULTSORT:Sprite Operating System}} [[Category:Unix variants]] [[Category:Software using the MIT license]] [[Category:Discontinued operating systems]] [[Category:Distributed operating systems]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Clarify
(
edit
)
Template:Distributed operating systems
(
edit
)
Template:Infobox OS
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Unix-like
(
edit
)