Master/slave is a
model of asymmetric communication or control where one
device
A device is usually a constructed tool. Device may also refer to:
Technology Computing
* Device, a colloquial term encompassing desktops, laptops, tablets, smartphones, etc.
* Device file, an interface of a device driver
* Peripheral, any devi ...
or
process (the "master") controls one or more other devices or processes (the "slaves") and serves as their communication hub. In some systems, a master is selected from a group of eligible devices, with the other devices acting in the role of slaves.
The ''master/slave'' terminology was first used in 1904. Since the early 21st century, the terms have become a subject of controversy from their association with
slavery and some organizations have opted to replace them with alternative terms.
Examples
* In electronics, master/slave relationships are used to describe some of the following scenarios:
** In
parallel ATA
Parallel ATA (PATA), originally , also known as IDE, is a standard interface designed for IBM PC-compatible computers. It was first developed by Western Digital and Compaq in 1986 for compatible hard drives and CD or DVD drives. The connection ...
hard drive arrangements, the terms master and slave are used to describe drives on the same cable, but neither drive has control or priority over the other.
** A
master clock that provides
time signals used to synchronize one or more
slave clocks as part of a
clock network
A clock network or clock system is a set of synchronized clocks designed to always show exactly the same time by communicating with each other. Clock networks usually consist of a central master clock kept in sync with an official time source, ...
.
** In
AXI
AXI or ''variation'', may refer to:
* Automated X-ray inspection
* Advanced eXtensible Interface of ARM for Advanced Microcontroller Bus Architecture (AMBA)
* AXI car, the right-hand-drive version of the DMC DeLorean
* Aeron International Airlines ...
, master and slave have differing roles, with master initiating transactions and the slave responding to those transactions.
** A
Serial Peripheral Interface bus typically has a single master controlling multiple slaves. Many people recommend using more modern terms (controller, peripheral, etc.) and discontinuing the use of master/slave terms.
** Edge-triggered flip-flops can be created by arranging two latches (master latch and slave latch) in a
master-slave configuration. It is named because the master latch controls the slave latch's value and forces the slave latch to hold its value, as the slave latch always copies its new value from the master latch.
* In
database replication, the master database is regarded as the authoritative source, and the slave (also called replica) databases are synchronized to it.
* In photography, secondary or
slave flash units may be synchronized to the master unit to provide light from additional directions.
*
Duplication is often done with several
cassette tape
The Compact Cassette or Musicassette (MC), also commonly called the tape cassette, cassette tape, audio cassette, or simply tape or cassette, is an analog magnetic tape recording format for audio recording and playback. Invented by Lou Ottens ...
s or
compact disc recorders linked together. Operating the controls on the master triggers the same commands on the slaves so that
recording is done in parallel.
* Railway
locomotive
A locomotive or engine is a rail transport vehicle that provides the Power (physics), motive power for a train. If a locomotive is capable of carrying a payload, it is usually rather referred to as a multiple unit, Motor coach (rail), motor ...
s operating in multiple (for example: to pull loads too heavy for a single locomotive) can be referred to as a master/slave configuration with the operation of all locomotives in the train slaved to the controls of the first locomotive. See
Multiple-unit train control.
* In automotive engineering, the
master cylinder is a control device that converts force into hydraulic pressure in the
brake
A brake is a mechanical device that inhibits motion by absorbing energy from a moving system. It is used for slowing or stopping a moving vehicle, wheel, axle, or to prevent its motion, most often accomplished by means of friction.
Background ...
system. This device controls slave cylinders located at the other end of the hydraulic system.
Early usages
The ''master/slave'' terminology was used in 1988 for RFC 1059 and in 1997 for RFC 2136, related to the
domain name system. In 2020,
Paul Vixie commented on his choice of words:
I introduced the master/slave terminology in RFC 2136, because I needed names for the roles in an AXFR/IXFR transaction, and the zone transfer hierarchy could be more than one layer deep, such that a server might initiate some AXFR/IXFR's to the "primary master" but then respond to AXFR/IXFR's from other servers. In retrospect I should have chosen the terms, "transfer initiator" and "transfer responder". However, the hydraulic brake
A hydraulic brake is an arrangement of braking mechanism which uses brake fluid, typically containing glycol ethers or diethylene glycol, to transfer pressure from the controlling mechanism to the braking mechanism.
History
During 1904, Frederick ...
and clutch systems in my car had " master cylinders" and "slave cylinders", and so I did not think I was either inventing a new use for the words "master" and "slave", or that my use of them for this purpose would be controversial.
Said
hydraulic brake
A hydraulic brake is an arrangement of braking mechanism which uses brake fluid, typically containing glycol ethers or diethylene glycol, to transfer pressure from the controlling mechanism to the braking mechanism.
History
During 1904, Frederick ...
s for the automotive industry were patented in 1917 by
Malcolm Loughead
Malcolm Lockheed ((né Malcolm Loughead; - ) was an American aviation engineer who formed the Alco Hydro-Aeroplane Company along with his brother, Allan Loughead, also known as Allan Lockheed. This company went on to become the Lockheed Corpora ...
. The term ''slave cylinder'' was used in other patent applications, including one by
Robert Esnault-Pelterie, published in 1919.
Terminology concerns
In 2003 after receiving a discrimination complaint from a county employee, the
County of Los Angeles in
California asked that manufacturers, suppliers and contractors stop using ''master'' and ''slave'' terminology on products.
Following complaints, the County of Los Angeles issued a statement saying that the decision was "nothing more than a request".
Media analytics company
Global Language Monitor placed the term first in their annual list of politically charged language for 2004. In 2018, after a heated debate, developers of the
Python programming language replaced the term.
The
Black Lives Matter movement in the United States sparked renewed discussion and terminology changes in 2020.
Some have argued that the change is superficial and that companies should make real change to support the black community.
Google's developer documentation
style guide
A style guide or manual of style is a set of standards for the writing, formatting, and design of documents. It is often called a style sheet, although that term also has multiple other meanings. The standards can be applied either for gene ...
recommends avoiding the term ''master'' in software documentation, especially in combination with ''slave''.
Other terminology
Various replacement terms for 'master' or 'slave' have been proposed and implemented. In 2020, GitHub replaced the default 'master'
git branch with 'main', although this action was controversial because of the term's etymology—for example, a
master copy
Mastering, a form of audio post production, is the process of preparing and transferring recorded audio from a source containing the final mix to a data storage device (the master), the source from which all copies will be produced (via meth ...
of an audio recording.
Other replacement names include 'default', 'primary', 'controller', 'root', 'initiator', 'leader', 'director'; and for 'slave', 'performer', 'worker', 'responder', 'device', 'replica', and 'secondary'.
Python switched to 'main', 'parent', and 'server'; and 'worker', 'child', and 'helper', depending on context.
The
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
has adopted a similar policy to use more specific terms in new code or documentation.
Many projects and standards have already used alternative terms since their inception.
See also
*
Flexible single master operation
*
Bus mastering
*
Master clock
*
Multi-master replication
*
SCSI initiator and target
References
{{Reflist
Network protocols
Distributed computing architecture