The dialog box is a graphical control element in the form of a small window that communicates information to the user and prompts them for a response. Dialog boxes are classified as "modal" or "modeless", depending on whether they block interaction with the software that initiated the dialog; the type of dialog box displayed is dependent upon the desired user interaction. The simplest type of dialog box is the alert, which displays a message and may require an acknowledgment that the message has been read by clicking "OK", or a decision as to whether or not an action should proceed, by clicking "OK" or "Cancel". Alerts are used to display a "termination notice"—sometimes requesting confirmation that the notice has been read—in the event of either an intentional closing or unintentional closing of an application or the operating system. Although this is a frequent interaction pattern for modal dialogs, it is criticized by usability experts as being ineffective for its intended use, to protect against errors caused by destructive actions, for which better alternatives exist.
An example of a dialog box is the about box found in many software programs, which displays the name of the program, its version number, may include copyright information. Non-modal or modeless dialog boxes are used when the requested information is not essential to continue, so the window can be left open while work continues elsewhere. A type of modeless dialog box is a toolbar, either separate from the main application, or may be detached from the main application, items in the toolbar can be used to select certain features or functions of the application. In general, good software design calls for dialogs to be of this type where possible, since they do not force the user into a particular mode of operation. An example might be a dialog of settings for the current document, e.g. the background and text colors. The user can continue adding text to the main window whatever color it is, but can change it at any time using the dialog. Modal dialog boxes temporarily halt the program: the user cannot continue without closing the dialog.
Usability practitioners regard modal dialogs as bad design-solutions, since they are prone to produce mode errors. Dangerous actions should be undoable. A modal dialog interrupts the main workflow; this effect has either been sought by the developer because it focuses on the completion of the task at hand or rejected because it prevents the user from changing to a different task when needed. The concept of a document modal dialog has been used, most notably in macOS and Opera Browser. In the first case, they are shown as sheets attached to a parent window; these dialogs block only that window until the user dismisses the dialog, permitting work in other windows to continue within the same application. In macOS, dialogs appear to emanate from a slot in their parent window, are shown with a reinforcing animation; this helps to let the user understand that the dialog is attached to the parent window, not just shown in front of it. No work can be done in the underlying document itself while the dialog is displayed, but the parent window can still be moved, re-sized, minimized, other windows can be brought in front so the user can work with them: The same type of dialog box can be compared with the "standard" modal dialog boxes used in Windows and other operating systems.
Similarities include: the parent window is frozen when the dialog box opens, one cannot continue to work with the underlying document in that window no work can be done with the underlying document in that window. The differences are that the dialog box may open anywhere in the parent window depending on where the parent window is located, the dialog box may open anywhere on screen the dialog box may be moved, in some cases may be resizable, but cannot be minimized, no changes to the parent window are possible while the dialog box is open. Both mechanisms have shortcomings: The Windows dialog box locks the parent window which can hide other windows the user may need to refer to while interacting with the dialog, though this may be mitigated since other windows are available through the task bar; the macOS dialog box blocks the parent window, preventing the user from referring to it while interacting with the dialog. This may require the user to close the dialog to access the necessary information re-open the dialog box to continue.
Windows 8.1 is a personal computer operating system, produced by Microsoft and released as part of the Windows NT family of operating systems. It was released to manufacturing on August 27, 2013, reached general availability on October 17, 2013, about a year after the retail release of its predecessor. Windows 8.1 was made available as a free upgrade for retail copies of Windows 8 and Windows RT users via the Windows Store. Windows 8.1 aimed to address complaints of Windows 8 reviewers on launch. Visible enhancements include an improved Start screen, additional snap views, additional bundled apps, tighter OneDrive integration, Internet Explorer 11, a Bing-powered unified search system, restoration of a visible Start button on the taskbar, the ability to restore the previous behavior of opening the user's desktop on login instead of the Start screen. Windows 8.1 added support for such emerging technologies as high-resolution displays, 3D printing, Wi-Fi Direct, Miracast streaming, as well as the ReFS file system.
Windows 8.1 received better positive reception than Windows 8, with critics praising the expanded functionality available to apps in comparison to 8, its OneDrive integration, along with its user interface tweaks and the addition of expanded tutorials for operating the Windows 8 interface. Despite these improvements, Windows 8.1 was still criticized for not addressing all digressions of Windows 8, the potential privacy implications of the expanded use of online services. As of February 2019, 6.55% of Windows computers are running Windows 8.1. In February 2013, ZDNet writer Mary Jo Foley disclosed potential rumors about "Blue", the codename for a wave of planned updates across several Microsoft products and services, including Windows 8, Windows Phone 8, Outlook.com, SkyDrive. In particular, the report detailed that Microsoft was planning to shift to a more "continuous" development model, which would see major revisions to its main software platforms released on a consistent yearly cycle to keep up with market demands.
Lending credibility to the reports, Foley noted that a Microsoft staff member had listed experience with "Windows Blue" on his LinkedIn profile, listed it as a separate operating system from 8. A post-RTM build of Windows 8, build 9364, was leaked in March 2013; the build, believed to be of "Windows Blue", revealed a number of enhancements across Windows 8's interface, including additional size options for tiles, expanded color options on the Start screen, the expansion of PC Settings to include more options that were exclusive to the desktop Control Panel, the ability for apps to snap to half of the screen, the ability to take screenshots from the Share charm, additional stock apps, increased SkyDrive integration and Internet Explorer 11. Shortly afterward on March 26, 2013, corporate vice president of corporate communications Frank X. Shaw acknowledged the "Blue" project, stating that continuous development would be "the new normal" at Microsoft, that "our product groups are taking a unified planning approach so people get what they want—all of their devices and services working together wherever they are and for whatever they are doing."In early May, press reports announcing the upcoming version in Financial Times and The Economist negatively compared Windows 8 to New Coke.
The theme was echoed and debated in the computer press. Shaw rejected this criticism as "extreme", adding that he saw a comparison with Diet Coke as more appropriate. On May 14, 2013, Microsoft announced that "Blue" would be named Windows 8.1. Following a keynote presentation focusing on this version, the public beta of Windows 8.1 was released on June 26, 2013 during Build. Build 9600 of Windows 8.1 was released to OEM hardware partners on August 27, 2013, became available on October 17, 2013. Unlike past releases of Windows and its service packs, volume license customers and subscribers to MSDN Plus and TechNet Plus were unable to obtain the RTM version upon its release. However, after criticism, Microsoft reversed its decision and released the RTM build on MSDN and TechNet on September 9, 2013. Prior to the release of Windows 8.1, Microsoft premiered a new television commercial in late-September 2013 that focused on its changes as part of the "Windows Everywhere" campaign. Shortly after its release, Windows RT 8.1 was temporarily recalled by Microsoft following reports that some users had encountered a rare bug which corrupted the operating system's Boot Configuration Data during installation, resulting in an error on startup.
On October 21, 2013, Microsoft confirmed that the bug was limited to the original Surface tablet, only affected 1 in 1000 installations. The company released recovery media and instructions which could be used to repair the device, restored access to Windows RT 8.1 the next day. It was found that changes to screen resolution handling on Windows 8.1 resulted in mouse input lag in certain video games that do not use the DirectInput API's—particularly first-person shooter games, including Deus Ex: Human Revolution, Hitman: Absolution, Metro 2033. Users found the issues to be more pronounced when using gaming mice with high resolution and/or polling rates. Microsoft released a patch to fix the bug on certain games in November 2013, acknowledged that it was caused by "changes to mouse-input processing for low-latency interaction scenarios". On April 8, 2014, a day of the End of Support for Windows XP, Microsoft released the Windows 8.1 Update, w
Windows XP is a personal computer operating system produced by Microsoft as part of the Windows NT family of operating systems. It was released to manufacturing on August 24, 2001, broadly released for retail sale on October 25, 2001. Development of Windows XP began in the late 1990s as "Neptune", an operating system built on the Windows NT kernel, intended for mainstream consumer use. An updated version of Windows 2000 was originally planned for the business market; as such, Windows XP was the first consumer edition of Windows not to be based on MS-DOS. Upon its release, Windows XP received positive reviews, with critics noting increased performance and stability, a more intuitive user interface, improved hardware support, expanded multimedia capabilities. However, some industry reviewers were concerned by the new licensing model and product activation system. Extended support for Windows XP ended on April 8, 2014, after which the operating system ceased receiving further support or security updates to most users.
As of March 2019, 1.75% of Windows PCs run Windows XP, the OS is still most popular in some countries with up to 38% of the Windows share. In the late 1990s, initial development of what would become Windows XP was focused on two individual products. However, the projects proved to be too ambitious. In January 2000, shortly prior to the official release of Windows 2000, technology writer Paul Thurrott reported that Microsoft had shelved both Neptune and Odyssey in favor of a new product codenamed "Whistler", after Whistler, British Columbia, as many Microsoft employees skied at the Whistler-Blackcomb ski resort; the goal of Whistler was to unify both the consumer and business-oriented Windows lines under a single, Windows NT platform: Thurrott stated that Neptune had become "a black hole when all the features that were cut from were re-tagged as Neptune features. And since Neptune and Odyssey would be based on the same code-base anyway, it made sense to combine them into a single project". At PDC on July 13, 2000, Microsoft announced that Whistler would be released during the second half of 2001, unveiled the first preview build, 2250.
The build notably introduced an early version of Windows XP's visual styles system. Microsoft released the first beta build of Whistler, build 2296, on October 31, 2000. Subsequent builds introduced features that users of the release version of Windows XP would recognise, such as Internet Explorer 6.0, the Microsoft Product Activation system and the Bliss desktop background. On February 5, 2001, Microsoft announced that Whistler would be known as Windows XP, where XP stands for "eXPerience". In June 2001, Microsoft indicated that it was planning to, in conjunction with Intel and other PC makers, spend at least 1 billion US dollars on marketing and promoting Windows XP; the theme of the campaign, "Yes You Can", was designed to emphasize the platform's overall capabilities. Microsoft had planned to use the slogan "Prepare to Fly", but it was replaced due to sensitivity issues in the wake of the September 11 attacks. On August 24, 2001, Windows XP build. During a ceremonial media event at Microsoft Redmond Campus, copies of the RTM build were given to representatives of several major PC manufacturers in briefcases, who flew off on decorated helicopters.
While PC manufacturers would be able to release devices running XP beginning on September 24, 2001, XP was expected to reach general, retail availability on October 25, 2001. On the same day, Microsoft announced the final retail pricing of XP's two main editions, "Home" and "Professional". While retaining some similarities to previous versions, Windows XP's interface was overhauled with a new visual appearance, with an increased use of alpha compositing effects, drop shadows, "visual styles", which changed the appearance of the operating system; the number of effects enabled are determined by the operating system based on the computer's processing power, can be enabled or disabled on a case-by-case basis. XP added ClearType, a new subpixel rendering system designed to improve the appearance of fonts on liquid-crystal displays. A new set of system icons was introduced; the default wallpaper, Bliss, is a photo of a landscape in the Napa Valley outside Napa, with rolling green hills and a blue sky with stratocumulus and cirrus clouds.
The Start menu received its first major overhaul in XP, switching to a two-column layout with the ability to list and display used applications opened documents, the traditional cascading "All Programs" menu. The taskbar can now group windows opened by a single application into one taskbar button, with a popup menu listing the individual windows; the notification area hides "inactive" icons by default. A "common tasks" list was added, Windows Explorer's sidebar was updated to use a new task-based design with lists of common actions. Fast user switching allows additional users to log into a Windows XP machine without existing users having to close their programs and loggin
X86 is a family of instruction set architectures based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introduced in 1978 as a 16-bit extension of Intel's 8-bit 8080 microprocessor, with memory segmentation as a solution for addressing more memory than can be covered by a plain 16-bit address; the term "x86" came into being because the names of several successors to Intel's 8086 processor end in "86", including the 80186, 80286, 80386 and 80486 processors. Many additions and extensions have been added to the x86 instruction set over the years consistently with full backward compatibility; the architecture has been implemented in processors from Intel, Cyrix, AMD, VIA and many other companies. Of those, only Intel, AMD, VIA hold x86 architectural licenses, are producing modern 64-bit designs; the term is not synonymous with IBM PC compatibility, as this implies a multitude of other computer hardware. As of 2018, the majority of personal computers and laptops sold are based on the x86 architecture, while other categories—especially high-volume mobile categories such as smartphones or tablets—are dominated by ARM.
In the 1980s and early 1990s, when the 8088 and 80286 were still in common use, the term x86 represented any 8086 compatible CPU. Today, however, x86 implies a binary compatibility with the 32-bit instruction set of the 80386; this is due to the fact that this instruction set has become something of a lowest common denominator for many modern operating systems and also because the term became common after the introduction of the 80386 in 1985. A few years after the introduction of the 8086 and 8088, Intel added some complexity to its naming scheme and terminology as the "iAPX" of the ambitious but ill-fated Intel iAPX 432 processor was tried on the more successful 8086 family of chips, applied as a kind of system-level prefix. An 8086 system, including coprocessors such as 8087 and 8089, as well as simpler Intel-specific system chips, was thereby described as an iAPX 86 system. There were terms iRMX, iSBC, iSBX – all together under the heading Microsystem 80. However, this naming scheme was quite temporary.
Although the 8086 was developed for embedded systems and small multi-user or single-user computers as a response to the successful 8080-compatible Zilog Z80, the x86 line soon grew in features and processing power. Today, x86 is ubiquitous in both stationary and portable personal computers, is used in midrange computers, workstations and most new supercomputer clusters of the TOP500 list. A large amount of software, including a large list of x86 operating systems are using x86-based hardware. Modern x86 is uncommon in embedded systems and small low power applications as well as low-cost microprocessor markets, such as home appliances and toys, lack any significant x86 presence. Simple 8-bit and 16-bit based architectures are common here, although the x86-compatible VIA C7, VIA Nano, AMD's Geode, Athlon Neo and Intel Atom are examples of 32- and 64-bit designs used in some low power and low cost segments. There have been several attempts, including by Intel itself, to end the market dominance of the "inelegant" x86 architecture designed directly from the first simple 8-bit microprocessors.
Examples of this are the iAPX 432, the Intel 960, Intel 860 and the Intel/Hewlett-Packard Itanium architecture. However, the continuous refinement of x86 microarchitectures and semiconductor manufacturing would make it hard to replace x86 in many segments. AMD's 64-bit extension of x86 and the scalability of x86 chips such as the eight-core Intel Xeon and 12-core AMD Opteron is underlining x86 as an example of how continuous refinement of established industry standards can resist the competition from new architectures; the table below lists processor models and model series implementing variations of the x86 instruction set, in chronological order. Each line item is characterized by improved or commercially successful processor microarchitecture designs. At various times, companies such as IBM, NEC, AMD, TI, STM, Fujitsu, OKI, Cyrix, Intersil, C&T, NexGen, UMC, DM&P started to design or manufacture x86 processors intended for personal computers as well as embedded systems; such x86 implementations are simple copies but employ different internal microarchitectures as well as different solutions at the electronic and physical levels.
Quite early compatible microprocessors were 16-bit, while 32-bit designs were developed much later. For the personal computer market, real quantities started to appear around 1990 with i386 and i486 compatible processors named to Intel's original chips. Other companies, which designed or manufactured x86 or x87 processors, include ITT Corporation, National Semiconductor, ULSI System Technology, Weitek. Following the pipelined i486, Intel introduced the Pentium brand name for their new set of superscalar x86 designs.
String (computer science)
In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed. A string is considered a data type and is implemented as an array data structure of bytes that stores a sequence of elements characters, using some character encoding. String may denote more general arrays or other sequence data types and structures. Depending on programming language and precise data type used, a variable declared to be a string may either cause storage in memory to be statically allocated for a predetermined maximum length or employ dynamic allocation to allow it to hold a variable number of elements; when a string appears in source code, it is known as a string literal or an anonymous string. In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set called an alphabet. Let Σ be a non-empty finite set of symbols, called the alphabet.
No assumption is made about the nature of the symbols. A string over Σ is any finite sequence of symbols from Σ. For example, if Σ = 01011 is a string over Σ; the length of a string s can be any non-negative integer. The empty string is the unique string over Σ of length 0, is denoted ε or λ; the set of all strings over Σ of length n is denoted Σn. For example, if Σ = Σ2 =. Note that Σ0 = for any alphabet Σ; the set of all strings over Σ of any length is the Kleene closure of Σ and is denoted Σ*. In terms of Σn, Σ ∗ = ⋃ n ∈ N ∪ Σ n For example, if Σ = Σ* =. Although the set Σ* itself is countably infinite, each element of Σ* is a string of finite length. A set of strings over Σ is called a formal language over Σ. For example, if Σ =, the set of strings with an number of zeros, is a formal language over Σ. Concatenation is an important binary operation on Σ*. For any two strings s and t in Σ*, their concatenation is defined as the sequence of symbols in s followed by the sequence of characters in t, is denoted st.
For example, if Σ =, s = bear, t = hug st = bearhug and ts = hugbear. String concatenation is an non-commutative operation; the empty string ε serves as the identity element. Therefore, the set Σ* and the concatenation operation form a monoid, the free monoid generated by Σ. In addition, the length function defines a monoid homomorphism from Σ* to the non-negative integers. A string s is said to be a substring or factor of t if there exist strings u and v such that t = usv; the relation "is a substring of" defines a partial order on Σ*, the least element of, the empty string. A string s is said to be a prefix of t if there exists a string u such that t = su. If u is nonempty, s is said to be a proper prefix of t. Symmetrically, a string s is said to be a suffix of t if there exists a string u such that t = us. If u is nonempty, s is said to be a proper suffix of t. Suffixes and prefixes are substrings of t. Both the relations "is a prefix of" and "is a suffix of" are prefix orders. A string s = uv.
For example, if Σ = the string 0011001 is a rotation of 0100110, where u = 00110 and v = 01. The reverse of a string is a string in reverse order. For example, if s = abc the reverse of s is cba. A string, the reverse of itself is called a palindrome, which includes the empty string and all strings of length 1, it is useful to define an ordering on a set of strings. If the alphabet Σ has a total order one can define a total order on Σ* called lexicographical order. For example, if Σ = and 0 < 1 the lexicographical order on Σ* includes the relationships ε < 0 < 00 < 000 <... < 0001 < 001 < 01 < 010 < 011 < 0110 < 01111 < 1 < 10 < 100 < 101 < 111 < 1111 < 11111... The lexicographical order is total if the alphabetical order is, but isn't well-founded for any nontrivial alphabet if the alphabetical order is. See Shortlex for an alternative string ordering that preserves well-foundedness. A number of additional operations on strings occur in the formal theory; these are given in the article on string operations.
Strings admit the following interpretation as nodes on a graph: Fixed-length strings can be viewed as nodes on a hypercube Variable-length strings can be viewed as nodes on the k-ary tree, where k is the number of symbols in Σ Infinite strings can be viewed as i
A debugger or debugging tool is a computer program, used to test and debug other programs. The code to be examined might alternatively be running on an instruction set simulator, a technique that allows great power in its ability to halt when specific conditions are encountered, but which will be somewhat slower than executing the code directly on the appropriate processor; some debuggers offer two modes of operation, partial simulation, to limit this impact. A "trap" occurs when the program cannot continue because of a programming bug or invalid data. For example, the program might have tried to use an instruction not available on the current version of the CPU or attempted to access unavailable or protected memory; when the program "traps" or reaches a preset condition, the debugger shows the location in the original code if it is a source-level debugger or symbolic debugger now seen in integrated development environments. If it is a low-level debugger or a machine-language debugger it shows the line in the disassembly.
Debuggers offer a query processor, a symbol resolver, an expression interpreter, a debug support interface at its top level. Debuggers offer more sophisticated functions such as running a program step by step, stopping at some event or specified instruction by means of a breakpoint, tracking the values of variables; some debuggers have the ability to modify program state. It may be possible to continue execution at a different location in the program to bypass a crash or logical error; the same functionality which makes a debugger useful for eliminating bugs allows it to be used as a software cracking tool to evade copy protection, digital rights management, other software protection features. It also makes it useful as a general verification tool, fault coverage, performance analyzer if instruction path lengths are shown. Most mainstream debugging engines, such as gdb and dbx, provide console-based command line interfaces. Debugger front-ends are popular extensions to debugger engines that provide IDE integration, program animation, visualization features.
Some debuggers include a feature called "reverse debugging" known as "historical debugging" or "backwards debugging". These debuggers make it possible to step a program's execution backwards in time. Various debuggers include this feature. Microsoft Visual Studio offers IntelliTrace reverse debugging for Visual Basic. NET, some other languages, but not C++. Reverse debuggers exist for C, C++, Python and other languages; some are open source. Some reverse debuggers slow down the target by orders of magnitude, but the best reverse debuggers cause a slowdown of 2× or less. Reverse debugging is useful for certain types of problems, but is still not used yet; some debuggers operate on a single specific language while others can handle multiple languages transparently. For example, if the main target program is written in COBOL but calls assembly language subroutines and PL/1 subroutines, the debugger may have to dynamically switch modes to accommodate the changes in language as they occur; some debuggers incorporate memory protection to avoid storage violations such as buffer overflow.
This may be important in transaction processing environments where memory is dynamically allocated from memory'pools' on a task by task basis. Most modern microprocessors have at least one of these features in their CPU design to make debugging easier: Hardware support for single-stepping a program, such as the trap flag. An instruction set that meets the Popek and Goldberg virtualization requirements makes it easier to write debugger software that runs on the same CPU as the software being debugged. In-system programming allows an external hardware debugger to reprogram a system under test. Many systems with such ISP support have other hardware debug support. Hardware support for code and data breakpoints, such as address comparators and data value comparators or, with more work involved, page fault hardware. JTAG access to hardware debug interfaces such as those on ARM architecture processors or using the Nexus command set. Processors used in embedded systems have extensive JTAG debug support.
A floating-point unit is a part of a computer system specially designed to carry out operations on floating point numbers. Typical operations are addition, multiplication, square root, bitshifting; some systems can perform various transcendental functions such as exponential or trigonometric calculations, though in most modern processors these are done with software library routines. In general purpose computer architectures, one or more FPUs may be integrated as execution units within the central processing unit; when a CPU is executing a program that calls for a floating-point operation, there are three ways to carry it out: A floating-point unit emulator Add-on FPU Integrated FPU Historically systems implemented floating point via a coprocessor rather than as an integrated unit. This could be an entire circuit board or a cabinet. Where floating-point calculation hardware has not been provided, floating point calculations are done in software, which takes more processor time but which avoids the cost of the extra hardware.
For a particular computer architecture, the floating point unit instructions may be emulated by a library of software functions. Emulation can be implemented on any of several levels: in the CPU as microcode, as an operating system function, or in user space code; when only integer functionality is available the CORDIC floating point emulation methods are most used. In most modern computer architectures, there is some division of floating-point operations from integer operations; this division varies by architecture. CORDIC routines has been implemented in the Intel 8087, 80287, 80387 up to the 80486 coprocessor series as well as in the Motorola 68881 and 68882 for some kinds of floating-point instructions as a way to reduce the gate counts of the FPU sub-system. Floating-point operations are pipelined. In earlier superscalar architectures without general out-of-order execution, floating-point operations were sometimes pipelined separately from integer operations. Since the early 1990s, many microprocessors for desktops and servers have more than one FPU.
The modular architecture of Bulldozer microarchitecture uses a special FPU named FlexFPU, which uses simultaneous multithreading. Each physical integer core, two per module, is single threaded, in contrast with Intel's Hyperthreading, where two virtual simultaneous threads share the resources of a single physical core; some floating-point hardware only supports the simplest operations – addition and multiplication. But the most complex floating-point hardware has a finite number of operations it can support – for example, none of them directly support arbitrary-precision arithmetic; when a CPU is executing a program that calls for a floating-point operation, not directly supported by the hardware, the CPU uses a series of simpler floating-point operations. In systems without any floating-point hardware, the CPU emulates it using a series of simpler fixed-point arithmetic operations that run on the integer arithmetic logic unit; the software that lists the necessary series of operations to emulate floating-point operations is packaged in a floating-point library.
In some cases, FPUs may be specialized, divided between simpler floating-point operations and more complicated operations, like division. In some cases, only the simple operations may be implemented in hardware or microcode, while the more complex operations are implemented as software. In some current architectures, the FPU functionality is combined with units to perform SIMD computation. In the 1980s, it was common in IBM PC/compatible microcomputers for the FPU to be separate from the CPU, sold as an optional add-on, it would only be purchased if needed to enable math-intensive programs. The IBM PC, XT, most compatibles based on the 8088 or 8086 had a socket for the optional 8087 coprocessor; the AT and 80286-based systems were socketed for the 80287, 80386/80386SX based machines for the 80387 and 80387SX although early ones were socketed for the 80287, since the 80387 did not exist yet. Other companies manufactured co-processors for the Intel x86 series; these included Weitek. Coprocessors were available for the Motorola 68000 family, the 68881 and 68882.
These were common in Motorola 68020/68030-based workstations like the Sun 3 series. They were commonly added to higher-end models of Apple Macintosh and Commodore Amiga series, but unlike IBM PC-compatible systems, sockets for adding the coprocessor were not as common in lower end systems. There are add-on FPUs coprocessor units for microcontroller units /single-board computer, which serve to provide floating-point arithmetic capability; these add-on FPUs are host-processor-independent, possess their own programming requirements and are pro