Kenneth Lane Thompson is an American pioneer of computer science. Having worked at Bell Labs for most of his career, Thompson designed and implemented the original Unix operating system, he invented the B programming language, the direct predecessor to the C programming language, was one of the creators and early developers of the Plan 9 operating systems. Since 2006, Thompson has worked at Google. Other notable contributions included his work on regular expressions and early computer text editors QED and ed, the definition of the UTF-8 encoding, his work on computer chess that included creation of endgame tablebases and the chess machine Belle. Thompson was born in New Orleans; when asked how he learned to program, Thompson stated, "I was always fascinated with logic and in grade school I'd work on arithmetic problems in binary, stuff like that. Just because I was fascinated." Thompson received a Bachelor of Science in 1965 and a Master's degree in 1966, both in Electrical Engineering and Computer Science, from the University of California, where his master's thesis advisor was Elwyn Berlekamp.
Thompson was hired by Bell Labs in 1966. In the 1960s at Bell Labs and Dennis Ritchie worked on the Multics operating system. While writing Multics, Thompson created the Bon programming language, he created a video game called Space Travel. Bell Labs withdrew from the MULTICS project. In order to go on playing the game, Thompson found an old PDP-7 machine and rewrote Space Travel on it; the tools developed by Thompson became the Unix operating system: Working on a PDP-7, a team of Bell Labs researchers led by Thompson and Ritchie, including Rudd Canaday, developed a hierarchical file system, the concepts of computer processes and device files, a command-line interpreter, some small utility programs. In 1970, Brian Kernighan suggested the name "Unix", in a somewhat treacherous pun on the name "Multics". After initial work on Unix, Thompson decided that Unix needed a system programming language and created B, a precursor to Ritchie's C. In the 1960s, Thompson began work on regular expressions. Thompson had developed the CTSS version of the editor QED, which included regular expressions for searching text.
QED and Thompson's editor ed contributed to the eventual popularity of regular expressions, regular expressions became pervasive in Unix text processing programs. All programs that work with regular expressions today use some variant of Thompson's notation, he invented Thompson's construction algorithm used for converting regular expression into nondeterministic finite automaton in order to make expression matching faster. Throughout the 1970s, Thompson and Ritchie collaborated on the Unix operating system. In a 2011 interview, Thompson stated that the first versions of Unix were written by him, that Ritchie began to advocate for the system and helped to develop it: I did the first of two or three versions of UNIX all alone, and Dennis became an evangelist. There was a rewrite in a higher-level language that would come to be called C, he worked on the language and on the I/O system, I worked on all the rest of the operating system. That was for the PDP-11, serendipitous, because, the computer that took over the academic community.
Feedback from Thompson's Unix development was instrumental in the development of the C programming language. Thompson would say that the C language "grew up with one of the rewritings of the system and, as such, it became perfect for writing systems". In 1975, Thompson went to his alma mater, UC Berkeley. There, he helped to install Version 6 Unix on a PDP-11/70. Unix at Berkeley would become maintained as its own system, known as the Berkeley Software Distribution. Along with Joseph Condon, Thompson created the hardware and software for Belle, a world champion chess computer, he wrote programs for generating the complete enumeration of chess endings, known as endgame tablebases, for all 4, 5, 6-piece endings, allowing chess-playing computer programs to make "perfect" moves once a position stored in them is reached. With the help of chess endgame expert John Roycroft, Thompson distributed his first results on CD-ROM. Throughout the 1980s, Thompson and Ritchie continued revising Research Unix, which adopted a BSD codebase for the 8th, 9th, 10th editions.
In the mid-1980s, work began at Bell Labs on a new operating system as a replacement for Unix. Thompson was instrumental in the design and implementation of the Plan 9 from Bell Labs, a new operating system utilizing principles of Unix, but applying them more broadly to all major system facilities; some programs that were part of versions of Research Unix, such as mk and rc, were incorporated into Plan 9. Thompson tested early versions of the C++ programming language for Bjarne Stroustrup by writing programs in it, but refused to work in C++ due to frequent incompatibilities between versions. In a 2009 interview, Thompson expressed a negative view of C++, stating, "It does a lot of things half well and it's just a garbage heap of ideas that are mutually exclusive." In 1992, Thompson developed the UTF-8 encoding scheme together with Rob Pike. UTF-8 encoding has since become the dominant character encoding for the World Wide Web, accounting for more than half of all web pages. In the 1990s, work began on the Inferno operating system, another research operating system, based around a portable
Junos OS is the FreeBSD-based operating system used in Juniper Networks hardware routers. It is an operating system, used in Juniper's routing and security devices. Juniper offers a Software Development Kit to partners and customers to allow additional customization; the biggest competitor of Junos is Cisco Systems' IOS. Junos OS was branded as Juniper Junos, is referred to as Junos, though this is a general brand name of Juniper Networks, including other product lines such as Junos Fusion; some of the key benefits Junos OS include: Modular design: Every process and component in a Juniper network setup is shielded from every other. One module crashing will have no effect on the rest of the system. Single train compatibility: Every Juniper switch, router, or other product runs the same JUNOS system; the system is built for simple inter-operability across the system. Junos provides a single code base across most of Juniper's platforms. Juniper has issued a new release of Junos every 90 days since 1998.
Junos supports a variety of routing protocols. With the introduction of the SRX and J-series platforms, it supports "flow mode", which includes stateful firewalling, NAT, IPsec, its a flexible routing policy language, used for controlling route advertisements and path selection. Junos adheres to industry standards for routing and MPLS; the operating system supports high availability mechanisms that are not standard to Unix, such as Graceful Restart. Junos operating system is based on Linux and FreeBSD, with Linux running as bare metal, FreeBSD running in a QEMU Virtual machine; because FreeBSD is a Unix implementation, customers can access a Unix shell and execute normal Unix commands. Junos runs on all Juniper hardware systems. After Juniper acquired NetScreen, it integrated ScreenOS security functions into its own Junos network operating system; the Junos CLI is a text-based command interface for configuring and monitoring the Juniper device and network traffic associated with it. It supports two types of command modes.
Operational Mode Configuration ModeThe functions of Operational Mode include control of the CLI environment, monitoring of hardware status, display of information about network data that passes though or into the hardware. The Configuration mode is used for configuring the Juniper router, switch, or security device, by adding, deleting, or modifying statements in the configuration hierarchy. Through the Juniper Developer Network Juniper Networks provides the Junos SDK to its customers and 3rd-party developers who want to develop applications for Junos-powered devices such as Juniper Networks routers and service gateway systems, it provides a set of tools and application programming interfaces, including interfaces to Junos routing, firewall filter, UI and traffic services functions. Juniper Networks employs the Junos SDK internally to develop parts of Junos and many Junos applications such as OpenFlow for Junos, other traffic services; as of 2016, Juniper maintains a market share in Ethernet Switching of 16.9% and a market share in Enterprise Routing of 16.1%.
Juniper generated a $2,353 million revenue in Routing, $858 million in Switching, $318 million in Security during 2016. Most of Juniper's revenue stems from The Americas, with Europe, Middle East, Africa, Asia combining for the rest of their annual revenue as of 2016. Official website Juniper Networks to Use Oracle Berkeley DB in JUNOS Software
Unix is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, development starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, others. Intended for use inside the Bell System, AT&T licensed Unix to outside parties in the late 1970s, leading to a variety of both academic and commercial Unix variants from vendors including University of California, Microsoft, IBM, Sun Microsystems. In the early 1990s, AT&T sold its rights in Unix to Novell, which sold its Unix business to the Santa Cruz Operation in 1995; the UNIX trademark passed to The Open Group, a neutral industry consortium, which allows the use of the mark for certified operating systems that comply with the Single UNIX Specification. As of 2014, the Unix version with the largest installed base is Apple's macOS. Unix systems are characterized by a modular design, sometimes called the "Unix philosophy"; this concept entails that the operating system provides a set of simple tools that each performs a limited, well-defined function, with a unified filesystem as the main means of communication, a shell scripting and command language to combine the tools to perform complex workflows.
Unix distinguishes itself from its predecessors as the first portable operating system: the entire operating system is written in the C programming language, thus allowing Unix to reach numerous platforms. Unix was meant to be a convenient platform for programmers developing software to be run on it and on other systems, rather than for non-programmers; the system grew larger as the operating system started spreading in academic circles, as users added their own tools to the system and shared them with colleagues. At first, Unix was not designed to be multi-tasking. Unix gained portability, multi-tasking and multi-user capabilities in a time-sharing configuration. Unix systems are characterized by various concepts: the use of plain text for storing data; these concepts are collectively known as the "Unix philosophy". Brian Kernighan and Rob Pike summarize this in The Unix Programming Environment as "the idea that the power of a system comes more from the relationships among programs than from the programs themselves".
In an era when a standard computer consisted of a hard disk for storage and a data terminal for input and output, the Unix file model worked quite well, as I/O was linear. In the 1980s, non-blocking I/O and the set of inter-process communication mechanisms were augmented with Unix domain sockets, shared memory, message queues, semaphores, network sockets were added to support communication with other hosts; as graphical user interfaces developed, the file model proved inadequate to the task of handling asynchronous events such as those generated by a mouse. By the early 1980s, users began seeing Unix as a potential universal operating system, suitable for computers of all sizes; the Unix environment and the client–server program model were essential elements in the development of the Internet and the reshaping of computing as centered in networks rather than in individual computers. Both Unix and the C programming language were developed by AT&T and distributed to government and academic institutions, which led to both being ported to a wider variety of machine families than any other operating system.
Under Unix, the operating system consists of many libraries and utilities along with the master control program, the kernel. The kernel provides services to start and stop programs, handles the file system and other common "low-level" tasks that most programs share, schedules access to avoid conflicts when programs try to access the same resource or device simultaneously. To mediate such access, the kernel has special rights, reflected in the division between user space and kernel space - although in microkernel implementations, like MINIX or Redox, functions such as network protocols may run in user space; the origins of Unix date back to the mid-1960s when the Massachusetts Institute of Technology, Bell Labs, General Electric were developing Multics, a time-sharing operating system for the GE-645 mainframe computer. Multics featured several innovations, but presented severe problems. Frustrated by the size and complexity of Multics, but not by its goals, individual researchers at Bell Labs started withdrawing from the project.
The last to leave were Ken Thompson, Dennis Ritchie, Douglas McIlroy, Joe Ossanna, who decided to reimplement their experiences in a new project of smaller scale. This new operating system was without organizational backing, without a name; the new operating system was a single-tasking system. In 1970, the group coined the name Unics for Uniplexed Information and Computing Service, as a pun on Multics, which stood for Multiplexed Information and Computer Services. Brian Kernighan takes credit for the idea, but adds that "no one can remember" the origin of the final spelling Unix. Dennis Ritchie, Doug McIlroy, Peter G. Neumann credit Kernighan; the operating system was written in assembly language, but in 1973, Version 4 Unix was rewritten in C. Version 4 Unix, still had many PDP-11 dependent codes, is not suitable for porting; the first port to other platform was made five years f
An operating system is system software that manages computer hardware and software resources and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may include accounting software for cost allocation of processor time, mass storage and other resources. For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware, although the application code is executed directly by the hardware and makes system calls to an OS function or is interrupted by it. Operating systems are found on many devices that contain a computer – from cellular phones and video game consoles to web servers and supercomputers; the dominant desktop operating system is Microsoft Windows with a market share of around 82.74%. MacOS by Apple Inc. is in second place, the varieties of Linux are collectively in third place. In the mobile sector, use in 2017 is up to 70% of Google's Android and according to third quarter 2016 data, Android on smartphones is dominant with 87.5 percent and a growth rate 10.3 percent per year, followed by Apple's iOS with 12.1 percent and a per year decrease in market share of 5.2 percent, while other operating systems amount to just 0.3 percent.
Linux distributions are dominant in supercomputing sectors. Other specialized classes of operating systems, such as embedded and real-time systems, exist for many applications. A single-tasking system can only run one program at a time, while a multi-tasking operating system allows more than one program to be running in concurrency; this is achieved by time-sharing, where the available processor time is divided between multiple processes. These processes are each interrupted in time slices by a task-scheduling subsystem of the operating system. Multi-tasking may be characterized in co-operative types. In preemptive multitasking, the operating system slices the CPU time and dedicates a slot to each of the programs. Unix-like operating systems, such as Solaris and Linux—as well as non-Unix-like, such as AmigaOS—support preemptive multitasking. Cooperative multitasking is achieved by relying on each process to provide time to the other processes in a defined manner. 16-bit versions of Microsoft Windows used cooperative multi-tasking.
32-bit versions of both Windows NT and Win9x, used preemptive multi-tasking. Single-user operating systems have no facilities to distinguish users, but may allow multiple programs to run in tandem. A multi-user operating system extends the basic concept of multi-tasking with facilities that identify processes and resources, such as disk space, belonging to multiple users, the system permits multiple users to interact with the system at the same time. Time-sharing operating systems schedule tasks for efficient use of the system and may include accounting software for cost allocation of processor time, mass storage and other resources to multiple users. A distributed operating system manages a group of distinct computers and makes them appear to be a single computer; the development of networked computers that could be linked and communicate with each other gave rise to distributed computing. Distributed computations are carried out on more than one machine; when computers in a group work in cooperation, they form a distributed system.
In an OS, distributed and cloud computing context, templating refers to creating a single virtual machine image as a guest operating system saving it as a tool for multiple running virtual machines. The technique is used both in virtualization and cloud computing management, is common in large server warehouses. Embedded operating systems are designed to be used in embedded computer systems, they are designed to operate on small machines like PDAs with less autonomy. They are able to operate with a limited number of resources, they are compact and efficient by design. Windows CE and Minix 3 are some examples of embedded operating systems. A real-time operating system is an operating system that guarantees to process events or data by a specific moment in time. A real-time operating system may be single- or multi-tasking, but when multitasking, it uses specialized scheduling algorithms so that a deterministic nature of behavior is achieved. An event-driven system switches between tasks based on their priorities or external events while time-sharing operating systems switch tasks based on clock interrupts.
A library operating system is one in which the services that a typical operating system provides, such as networking, are provided in the form of libraries and composed with the application and configuration code to construct a unikernel: a specialized, single address space, machine image that can be deployed to cloud or embedded environments. Early computers were built to perform a series of single tasks, like a calculator. Basic operating system features were developed in the 1950s, such as resident monitor functions that could automatically run different programs in succession to speed up processing. Operating systems did not exist in their more complex forms until the early 1960s. Hardware features were added, that enabled use of runtime libraries and parallel processing; when personal computers became popular in the 1980s, operating systems were made for them similar in concept to those used on larger computers. In the 1940s, the earliest electronic digital systems had no operating systems.
Electronic systems of this time were programmed on rows of mechanical switches or by jumper wires on plug boards. These were special-purpose systems that, for example, generated ballistics tables for the military or controlled the pri
Microsoft Windows is a group of several graphical operating system families, all of which are developed and sold by Microsoft. Each family caters to a certain sector of the computing industry. Active Windows families include Windows Embedded. Defunct Windows families include Windows Mobile and Windows Phone. Microsoft introduced an operating environment named Windows on November 20, 1985, as a graphical operating system shell for MS-DOS in response to the growing interest in graphical user interfaces. Microsoft Windows came to dominate the world's personal computer market with over 90% market share, overtaking Mac OS, introduced in 1984. Apple came to see Windows as an unfair encroachment on their innovation in GUI development as implemented on products such as the Lisa and Macintosh. On PCs, Windows is still the most popular operating system. However, in 2014, Microsoft admitted losing the majority of the overall operating system market to Android, because of the massive growth in sales of Android smartphones.
In 2014, the number of Windows devices sold was less than 25 %. This comparison however may not be relevant, as the two operating systems traditionally target different platforms. Still, numbers for server use of Windows show one third market share, similar to that for end user use; as of October 2018, the most recent version of Windows for PCs, tablets and embedded devices is Windows 10. The most recent versions for server computers is Windows Server 2019. A specialized version of Windows runs on the Xbox One video game console. Microsoft, the developer of Windows, has registered several trademarks, each of which denote a family of Windows operating systems that target a specific sector of the computing industry; as of 2014, the following Windows families are being developed: Windows NT: Started as a family of operating systems with Windows NT 3.1, an operating system for server computers and workstations. It now consists of three operating system subfamilies that are released at the same time and share the same kernel: Windows: The operating system for mainstream personal computers and smartphones.
The latest version is Windows 10. The main competitor of this family is macOS by Apple for personal computers and Android for mobile devices. Windows Server: The operating system for server computers; the latest version is Windows Server 2019. Unlike its client sibling, it has adopted a strong naming scheme; the main competitor of this family is Linux. Windows PE: A lightweight version of its Windows sibling, meant to operate as a live operating system, used for installing Windows on bare-metal computers, recovery or troubleshooting purposes; the latest version is Windows PE 10. Windows IoT: Initially, Microsoft developed Windows CE as a general-purpose operating system for every device, too resource-limited to be called a full-fledged computer. However, Windows CE was renamed Windows Embedded Compact and was folded under Windows Compact trademark which consists of Windows Embedded Industry, Windows Embedded Professional, Windows Embedded Standard, Windows Embedded Handheld and Windows Embedded Automotive.
The following Windows families are no longer being developed: Windows 9x: An operating system that targeted consumers market. Discontinued because of suboptimal performance. Microsoft now caters to the consumer market with Windows NT. Windows Mobile: The predecessor to Windows Phone, it was a mobile phone operating system; the first version was called Pocket PC 2000. The last version is Windows Mobile 6.5. Windows Phone: An operating system sold only to manufacturers of smartphones; the first version was Windows Phone 7, followed by Windows Phone 8, the last version Windows Phone 8.1. It was succeeded by Windows 10 Mobile; the term Windows collectively describes any or all of several generations of Microsoft operating system products. These products are categorized as follows: The history of Windows dates back to 1981, when Microsoft started work on a program called "Interface Manager", it was announced in November 1983 under the name "Windows", but Windows 1.0 was not released until November 1985.
Windows 1.0 was to achieved little popularity. Windows 1.0 is not a complete operating system. The shell of Windows 1.0 is a program known as the MS-DOS Executive. Components included Calculator, Cardfile, Clipboard viewer, Control Panel, Paint, Reversi and Write. Windows 1.0 does not allow overlapping windows. Instead all windows are tiled. Only modal dialog boxes may appear over other windows. Microsoft sold as included Windows Development libraries with the C development environment, which included numerous windows samples. Windows 2.0 was released in December 1987, was more popular than its predecessor. It features several improvements to the user memory management. Windows 2.03 changed the OS from tiled windows to overlapping windows. The result of this change led to Apple Computer filing a suit against Microsoft alleging infringement on Apple's copyrights. Windows 2.0
A workstation is a special computer designed for technical or scientific applications. Intended to be used by one person at a time, they are connected to a local area network and run multi-user operating systems; the term workstation has been used loosely to refer to everything from a mainframe computer terminal to a PC connected to a network, but the most common form refers to the group of hardware offered by several current and defunct companies such as Sun Microsystems, Silicon Graphics, Apollo Computer, DEC, HP, NeXT and IBM which opened the door for the 3D graphics animation revolution of the late 1990s. Workstations offered higher performance than mainstream personal computers with respect to CPU and graphics, memory capacity, multitasking capability. Workstations were optimized for the visualization and manipulation of different types of complex data such as 3D mechanical design, engineering simulation and rendering of images, mathematical plots; the form factor is that of a desktop computer, consist of a high resolution display, a keyboard and a mouse at a minimum, but offer multiple displays, graphics tablets, 3D mice, etc.
Workstations were the first segment of the computer market to present advanced accessories and collaboration tools. The increasing capabilities of mainstream PCs in the late 1990s have blurred the lines somewhat with technical/scientific workstations; the workstation market employed proprietary hardware which made them distinct from PCs. However, by the early 2000s this difference disappeared, as workstations now use commoditized hardware dominated by large PC vendors, such as Dell, Hewlett-Packard and Fujitsu, selling Microsoft Windows or Linux systems running on x86-64 processors; the first computer that might qualify as a "workstation" was the IBM 1620, a small scientific computer designed to be used interactively by a single person sitting at the console. It was introduced in 1960. One peculiar feature of the machine was. To perform addition, it required a memory-resident table of decimal addition rules; this saved on the cost of logic circuitry. The machine was code-named CADET and rented for $1000 a month.
In 1965, IBM introduced the IBM 1130 scientific computer, meant as the successor to the 1620. Both of these systems came with the ability to run programs written in other languages. Both the 1620 and the 1130 were built into desk-sized cabinets. Both were available with add-on disk drives and both paper-tape and punched-card I/O. A console typewriter for direct interaction was standard on each. Early examples of workstations were dedicated minicomputers. A notable example was the PDP-8 from Digital Equipment Corporation, regarded to be the first commercial minicomputer; the Lisp machines developed at MIT in the early 1970s pioneered some of the principles of the workstation computer, as they were high-performance, single-user systems intended for interactive use. Lisp Machines were commercialized beginning 1980 by companies like Symbolics, Lisp Machines, Texas Instruments and Xerox; the first computer designed for single-users, with high-resolution graphics facilities was the Xerox Alto developed at Xerox PARC in 1973.
Other early workstations include the Terak 8510/a, Three Rivers PERQ and the Xerox Star. In the early 1980s, with the advent of 32-bit microprocessors such as the Motorola 68000, a number of new participants in this field appeared, including Apollo Computer and Sun Microsystems, who created Unix-based workstations based on this processor. Meanwhile, DARPA's VLSI Project created several spinoff graphics products as well, notably the SGI 3130, Silicon Graphics' range of machines that followed, it was not uncommon to differentiate the target market for the products, with Sun and Apollo considered to be network workstations, while the SGI machines were graphics workstations. As RISC microprocessors became available in the mid-1980s, these were adopted by many workstation vendors. Workstations tended to be expensive several times the cost of a standard PC and sometimes costing as much as a new car. However, minicomputers sometimes cost as much as a house; the high expense came from using costlier components that ran faster than those found at the local computer store, as well as the inclusion of features not found in PCs of the time, such as high-speed networking and sophisticated graphics.
Workstation manufacturers tend to take a "balanced" approach to system design, making certain to avoid bottlenecks so that data can flow unimpeded between the many different subsystems within a computer. Additionally, given their more specialized nature, tend to have higher profit margins than commodity-driven PCs; the systems that come out of workstation companies feature SCSI or Fibre Channel disk storage systems, high-end 3D accelerators, single or multiple 64-bit processors, large amounts of RAM, well-designed cooling. Additionally, the companies that make the products tend to have good repair/replacement plans. However, the line between workstation and PC is becoming blurred as the demand for fast computers and graphics have become
NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution. It was the first open-source BSD descendant released after 386BSD was forked, it continues to be developed and is available for many platforms, including servers, handheld devices, embedded systems. The NetBSD project focuses on code clarity, careful design, portability across many computer architectures, its source code is permissively licensed. NetBSD was derived from the 4.3BSD-Reno release of the Berkeley Software Distribution from the Computer Systems Research Group of the University of California, via their Net/2 source code release and the 386BSD project. The NetBSD project began as a result of frustration within the 386BSD developer community with the pace and direction of the operating system's development; the four founders of the NetBSD project, Chris Demetriou, Theo de Raadt, Adam Glass, Charles Hannum, felt that a more open development model would benefit the project: one centered on portable, correct code.
They aimed to produce a multi-platform, production-quality, BSD-based operating system. The name "NetBSD" was suggested by De Raadt, based on the importance and growth of networks such as the Internet at that time, the distributed, collaborative nature of its development; the NetBSD source code repository was established on 21 March 1993 and the first official release, NetBSD 0.8, was made on 19 April 1993. This was derived from 386BSD 0.1 plus the version 0.2.2 unofficial patchkit, with several programs from the Net/2 release missing from 386BSD re-integrated, various other improvements. The first multi-platform release, NetBSD 1.0, was made in October 1994, being updated with 4.4BSD-Lite sources, it was free of all encumbered 4.3BSD Net/2 code. In 1994, for disputed reasons, one of the founders, Theo de Raadt, was removed from the project, he founded a new project, OpenBSD, from a forked version of NetBSD 1.0 near the end of 1995. In 1998, NetBSD 1.3 introduced the pkgsrc packages collection.
Until 2004, NetBSD 1.x releases were made at annual intervals, with minor "patch" releases in between. From release 2.0 onwards, NetBSD uses semantic versioning, each major NetBSD release corresponds to an incremented major version number, i.e. the major releases following 2.0 are 3.0, 4.0 and so on. The previous minor releases are now divided into two categories: x.y "stable" maintenance releases and x.y.z releases containing only security and critical fixes. As the project's motto suggests, NetBSD has been ported to a large number of 32- and 64-bit architectures; these range from VAX minicomputers to Pocket PC PDAs. As of 2009, NetBSD supports 57 hardware platforms; the kernel and userland for these platforms are all built from a central unified source-code tree managed by CVS. Unlike other kernels such as μClinux, the NetBSD kernel requires the presence of an MMU in any given target architecture. NetBSD's portability is aided by the use of hardware abstraction layer interfaces for low-level hardware access such as bus input/output or DMA.
Using this portability layer, device drivers can be split into "machine-independent" and "machine-dependent" components. This makes a single driver usable on several platforms by hiding hardware access details, reduces the work to port it to a new system; this permits a particular device driver for a PCI card to work without modifications, whether it is in a PCI slot on an IA-32, PowerPC, SPARC, or other architecture with a PCI bus. A single driver for a specific device can operate via several different buses, like ISA, PCI, or PC Card. In comparison, Linux device driver code must be reworked for each new architecture; as a consequence, in porting efforts by NetBSD and Linux developers, NetBSD has taken much less time to port to new hardware. This platform independence aids the development of embedded systems since NetBSD 1.6, when the entire toolchain of compilers, assemblers and other tools support cross-compiling. In 2005, as a demonstration of NetBSD's portability and suitability for embedded applications, Technologic Systems, a vendor of embedded systems hardware and demonstrated a NetBSD-powered kitchen toaster.
Commercial ports to embedded platforms, including the AMD Geode LX800, Freescale PowerQUICC processors, Marvell Orion, AMCC 405 family of PowerPC processors, Intel XScale IOP and IXP series, were available from and supported by Wasabi Systems. The NetBSD cross-compiling framework lets a developer build a complete NetBSD system for an architecture from a more powerful system of different architecture, including on a different operating system. Several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost. NetBSD features pkgsrc, a framework for building and managing third-party application software packages; the pkgsrc collection consists of more than 18,000 packages as of April 2018. Building and installing packages such as KDE, GNOME, the Apache HTTP Server or Perl is performed through the use of a system of makefiles; this can automatically fetch the source code, patch, configure and install the package such that it can be removed again later.
An alternative to compiling from source is to use a precompiled binary package. In either case, any prerequisites/dependencies will be installed automatically by the package system, without need for manual intervention. Pkgsrc supports not only NetBSD, but several other BSD variants like