Misplaced Pages

Input–output memory management unit

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In computing , an input–output memory management unit ( IOMMU ) is a memory management unit (MMU) connecting a direct-memory-access –capable (DMA-capable) I/O bus to the main memory . Like a traditional MMU, which translates CPU -visible virtual addresses to physical addresses , the IOMMU maps device-visible virtual addresses (also called device addresses or memory mapped I/O addresses in this context) to physical addresses. Some units also provide memory protection from faulty or malicious devices.

#988011

46-508: An example IOMMU is the graphics address remapping table (GART) used by AGP and PCI Express graphics cards on Intel Architecture and AMD computers. On the x86 architecture, prior to splitting the functionality of northbridge and southbridge between the CPU and Platform Controller Hub (PCH), I/O virtualization was not performed by the CPU but instead by the chipset . The advantages of having an IOMMU, compared to direct physical addressing of

92-594: A common printing language released in 1982. The X Window System originated from MIT 's Project Athena in 1984 and allowed for the display of an application to be disconnected from the machine where the application was running, separated by a network connection. Sun's original bundled SunView application suite was ported to X. Sun later dropped support for legacy SunView applications and NeWS with OpenWindows 3.3, which shipped with Solaris 2.3, and switched to X11R5 with Display Postscript support. The graphical look and feel remained based upon OPEN LOOK . OpenWindows 3.6.2

138-490: A large layoff of Solaris development engineering staff, development continued and Solaris 11.4 was released in 2018. Solaris uses a common code base for the platforms it supports: 64-bit SPARC and x86-64 . Solaris has a reputation for being well-suited to symmetric multiprocessing , supporting a large number of CPUs . It has historically been tightly integrated with Sun's SPARC hardware (including support for 64-bit SPARC applications since Solaris 7), with which it

184-606: A member of the Common Open Software Environment (COSE) initiative, Sun helped co-develop the Common Desktop Environment (CDE). This was an initiative to create a standard Unix desktop environment. Each vendor contributed different components: Hewlett-Packard contributed the window manager , IBM provided the file manager , and Sun provided the e-mail and calendar facilities as well as drag-and-drop support ( ToolTalk ). This new desktop environment

230-505: A ship of the First Fleet to Australia ). On October 17, 2008, a prototype release of Sirius was made available and on November 19 the same year, IBM authorized the use of Sirius on System z Integrated Facility for Linux (IFL) processors. Solaris also supports the Linux platform application binary interface (ABI), allowing Solaris to run native Linux binaries on x86 systems. This feature

276-419: A support credential, thus are not freely available to the public. Early releases of Solaris used OpenWindows as the standard desktop environment. In Solaris 2.0 to 2.2, OpenWindows supported both NeWS and X applications, and provided backward compatibility for SunView applications from Sun's older desktop environment. NeWS allowed applications to be built in an object-oriented way using PostScript ,

322-466: A unified source code base. In 2011, the Solaris 11 kernel source code leaked . On September 2, 2017, Simon Phipps , a former Sun Microsystems employee not hired by Oracle in the acquisition, reported on Twitter that Oracle had laid off the Solaris core development staff, which many interpreted as sign that Oracle no longer intended to support future development of the platform. While Oracle did have

368-458: A year until the next official release comes out. The Solaris version under development by Sun since the release of Solaris 10 in 2005, was codenamed Nevada , and is derived from what is now the OpenSolaris codebase. In 2003, an addition to the Solaris development process was initiated. Under the program name Software Express for Solaris (or just Solaris Express ), a binary release based on

414-557: Is based on GNOME and comes with a large set of applications, including StarOffice , Sun's office suite . Sun describes JDS as a "major component" of Solaris 10. The Java Desktop System is not included in Solaris 11 which instead ships with a stock version of GNOME. Likewise, CDE applications are no longer included in Solaris 11, but many libraries remain for binary backwards compatibility. The open source desktop environments KDE and Xfce , along with numerous other window managers , also compile and run on recent versions of Solaris. Sun

460-462: Is called Solaris Containers for Linux Applications (SCLA), based on the branded zones functionality introduced in Solaris 10 8/07. Solaris can be installed from various pre-packaged software groups, ranging from a minimalistic Reduced Network Support to a complete Entire Plus OEM . Installation of Solaris is not necessary for an individual to use the system. The DVD ISO image can be used to load Solaris, running in-memory, rather than initiating

506-437: Is marketed as a combined package. This has led to more reliable systems, but at a cost premium compared to commodity PC hardware. However, it has supported x86 systems since Solaris 2.1 and 64-bit x86 applications since Solaris 10, allowing Sun to capitalize on the availability of commodity 64-bit CPUs based on the x86-64 architecture. Sun heavily marketed Solaris for use with both its own x86-64-based Sun Java Workstation and

SECTION 10

#1732858116989

552-618: Is simple. But some cases may require quite a bit of fine-tuning. I think that Sun has put some really nice touches on Solaris 10 that make it a better operating system for both administrators and users. The security enhancements are a long time coming, but are worth the wait. Is Solaris 10 perfect, in a word no it is not. But for most uses, including a desktop OS I think Solaris 10 is a huge improvement over previous releases. We've had fun with Solaris 10. It's got virtues that we definitely admire. What it needs to compete with Linux will be easier to bring about than what it's already got. It could become

598-438: Is the platform's reliability, flexibility, and power. Be that as it may, since the Solaris 10 download is free, it behooves any IT manager to load it on an extra server and at least give it a try. Solaris 10 provides a flexible background for securely dividing system resources, providing performance guarantees and tracking usage for these containers. Creating basic containers and populating them with user applications and resources

644-589: Is used almost exclusively to refer only to the releases based on SVR4-derived SunOS 5.0 and later. For releases based on SunOS 5, the SunOS minor version is included in the Solaris release number. For example, Solaris 2.4 incorporates SunOS 5.4. After Solaris 2.6, the 2. was dropped from the release name, so Solaris 7 incorporates SunOS 5.7, and the latest release SunOS 5.11 forms the core of Solaris 11.4. Although SunSoft stated in its initial Solaris 2 press release their intent to eventually support both SPARC and x86 systems,

690-609: The Sun acquisition by Oracle in 2010, it was renamed Oracle Solaris. Solaris was registered as compliant with the Single UNIX Specification until 29 April 2019. Historically, Solaris was developed as proprietary software . In June 2005, Sun Microsystems released most of the codebase under the CDDL license, and founded the OpenSolaris open-source project. Sun aimed to build a developer and user community with OpenSolaris; after

736-505: The Intel Itanium architecture was announced in 1997 but never brought to market. On November 28, 2007, IBM , Sun, and Sine Nomine Associates demonstrated a preview of OpenSolaris for System z running on an IBM System z mainframe under z/VM , called Sirius (in analogy to the Polaris project, and also due to the primary developer's Australian nationality: HMS Sirius of 1786 was

782-518: The OpenSolaris project, replacing SXDE. The first release of this distribution was OpenSolaris 2008.05 . The Solaris Express Community Edition (SXCE) was intended specifically for OpenSolaris developers. It was updated every two weeks until it was discontinued in January 2010, with a recommendation that users migrate to the OpenSolaris distribution. Although the download license seen when downloading

828-618: The Oracle Technology Network and used without a support contract indefinitely; however, the license only expressly permits the user to use Solaris as a development platform and expressly forbids commercial and "production" use. Educational use is permitted in some circumstances. From the OTN license: If You are an educational institution vested with the power to confer official high school, associate, bachelor, master and/or doctorate degrees, or local equivalent, ("Degree(s)"), You may also use

874-465: The Oracle acquisition in 2010, the OpenSolaris distribution was discontinued and later discontinued providing public updates to the source code of the Solaris kernel, effectively turning Solaris version 11 back into a closed source proprietary operating system. Following that, OpenSolaris was forked as Illumos and is alive through several Illumos distributions . In September 2017, Oracle laid off most of

920-751: The Programs as part of Your educational curriculum for students enrolled in Your Degree program(s) solely as required for the conferral of such Degree (collectively "Educational Use"). When Solaris is used without a support contract it can be upgraded to each new "point release"; however, a support contract is required for access to patches and updates that are released monthly. Notable features of Solaris include DTrace , Doors , Service Management Facility , Solaris Containers , Solaris Multiplexed I/O , Solaris Volume Manager , ZFS , and Solaris Trusted Extensions . Updates to Solaris versions are periodically issued. In

966-404: The Solaris 2 FAQ. The underlying Solaris codebase has been under continuous development since work began in the late 1980s on what was eventually released as Solaris 2.0. Each version such as Solaris 10 is based on a snapshot of this development codebase, taken near the time of its release, which is then maintained as a derived project. Updates to that project are built and delivered several times

SECTION 20

#1732858116989

1012-423: The Solaris teams. In 1987, AT&T Corporation and Sun announced that they were collaborating on a project to merge the most popular Unix variants on the market at that time: Berkeley Software Distribution , UNIX System V , and Xenix . This became Unix System V Release 4 (SVR4). On September 4, 1991, Sun announced that it would replace its existing BSD-derived Unix, SunOS 4 , with one based on SVR4. This

1058-451: The amount of video memory available for systems with only integrated or shared graphics (i.e. no discrete or inbuilt graphics processor), such as Intel HD Graphics processors. However, this type of memory (expansion) remapping has a caveat that affects the entire system: specifically, any GART, pre-allocated memory becomes pooled and cannot be utilised for any other purposes but graphics memory and display rendering. Jeff Hartmann served as

1104-547: The current development basis was made available for download on a monthly basis, allowing anyone to try out new features and test the quality and stability of the OS as it progressed to the release of the next official Solaris version. A later change to this program introduced a quarterly release model with support available, renamed Solaris Express Developer Edition (SXDE). In 2007, Sun announced Project Indiana with several goals, including providing an open source binary distribution of

1150-692: The first two Solaris 2 releases, 2.0 and 2.1, were SPARC-only. An x86 version of Solaris 2.1 was released in June 1993, about 6 months after the SPARC version, as a desktop and uniprocessor workgroup server operating system. It included the Wabi emulator to support Windows applications. At the time, Sun also offered the Interactive Unix system that it had acquired from Interactive Systems Corporation . In 1994, Sun released Solaris 2.4, supporting both SPARC and x86 systems from

1196-519: The graphics card direct memory access (DMA) to the host system memory, through which buffers of textures , polygon meshes and other data are loaded. AMD later reused the same mechanism for I/O virtualization with other peripherals including disk controllers and network adapters . A GART is used as a means of data exchange between the main memory and video memory through which buffers (i.e. paging/swapping) of textures , polygon meshes and other data are loaded, but can also be used to expand

1242-417: The image files indicates its use is limited to personal, educational and evaluation purposes, the license acceptance form displayed when the user actually installs from these images lists additional uses including commercial and production environments. SXCE releases terminated with build 130 and OpenSolaris releases terminated with build 134 a few weeks later. The next release of OpenSolaris based on build 134

1288-660: The installation. Additional software, like Apache, MySQL, etc. can be installed as well in a packaged form from sunfreeware and OpenCSW . Solaris can be installed from physical media or a network for use on a desktop or server, or be used without installing on a desktop or server. There are several types of updates within each major release, including the Software Packages, and the Oracle Solaris Image. Additional minor updates called Support Repository Updates (SRUs) and Critical Patch Update Packages (CPUs), require

1334-496: The like. The license varied only little through 2004. From 2005 to 2010, Sun began to release the source code for development builds of Solaris under the Common Development and Distribution License (CDDL) via the OpenSolaris project. This code was based on the work being done for the post-Solaris 10 release (code-named "Nevada"; eventually released as Oracle Solaris 11). As the project progressed, it grew to encompass most of

1380-426: The memory (DMA), include: For system architectures in which port I/O is a distinct address space from the memory address space, an IOMMU is not used when the CPU communicates with devices via I/O ports . In system architectures in which port I/O and memory are mapped into a suitable address space, an IOMMU can translate port I/O accesses. The disadvantages of having an IOMMU, compared to direct physical addressing of

1426-466: The memory, as the hardware does not know about the mapping between the guest-physical and host-physical addresses for the given virtual machine. The corruption can be avoided if the hypervisor or host OS intervenes in the I/O operation to apply the translations. However, this approach incurs a delay in the I/O operation. An IOMMU solves this problem by re-mapping the addresses accessed by the hardware according to

Input–output memory management unit - Misplaced Pages Continue

1472-465: The memory, include: When an operating system is running inside a virtual machine , including systems that use paravirtualization , such as Xen and KVM , it does not usually know the host-physical addresses of memory that it accesses. This makes providing direct access to the computer hardware difficult, because if the guest OS tried to instruct the hardware to perform a direct memory access (DMA) using guest-physical addresses, it would likely corrupt

1518-424: The necessary code to compile an entire release, with a few exceptions. When Sun was acquired by Oracle in 2010, the OpenSolaris project was discontinued after the board became unhappy with Oracle's stance on the project. In March 2010, the previously freely available Solaris 10 was placed under a restrictive license that limited the use, modification and redistribution of the operating system. The license allowed

1564-424: The past, these were named after the month and year of their release, such as "Solaris 10 1/13"; as of Solaris 11, sequential update numbers are appended to the release name with a period, such as "Oracle Solaris 11.4". In ascending order, the following versions of Solaris have been released: A more comprehensive summary of some Solaris versions is also available. Solaris releases are also described in

1610-487: The port was canceled before the Solaris 2.6 release. In January 2006, a community of developers at Blastwave began work on a PowerPC port which they named Polaris . In October 2006, an OpenSolaris community project based on the Blastwave efforts and Sun Labs' Project Pulsar , which re-integrated the relevant parts from Solaris 2.5.1 into OpenSolaris, announced its first official source code release. A port of Solaris to

1656-507: The primary maintainer of the Linux kernel 's agpgart driver, which began as part of Brian Paul 's Utah GLX accelerated Mesa 3D driver project. The developers primarily targeted Linux 2.4.x kernels, but made patches available against older 2.2.x kernels. Dave Jones heavily reworked agpgart for the Linux 2.6.x kernels, along with more contributions from Jeff Hartmann. In FreeBSD , the agpgart driver appeared in its 4.1 release. AGPgart support

1702-452: The same (or a compatible) translation table that is used to map guest-physical address to host-physical addresses. Graphics address remapping table The graphics address remapping table ( GART ), also known as the graphics aperture remapping table , or graphics translation table ( GTT ), is an I/O memory management unit (IOMMU) used by Accelerated Graphics Port (AGP) and PCI Express (PCIe) graphics cards . The GART allows

1748-412: The use of the accompanying binary software in machine-readable form, together with accompanying documentation ("Software"), by the number of users and the class of computer hardware for which the corresponding fee has been paid. In addition, the license provided a "License to Develop" granting rights to create derivative works, restricted copying to only a single archival copy, disclaimer of warranties, and

1794-508: The user to download the operating system free of charge, through the Oracle Technology Network , and use it for a 90-day trial period. After that trial period had expired the user would then have to purchase a support contract from Oracle to continue using the operating system. With the release of Solaris 11 in 2011, the license terms changed again. The new license allows Solaris 10 and Solaris 11 to be downloaded free of charge from

1840-502: The x86-64 models of the Sun Ultra series workstations , and servers based on AMD Opteron and Intel Xeon processors, as well as x86 systems manufactured by companies such as Dell , Hewlett-Packard , and IBM . As of 2009 , the following vendors support Solaris for their x86 server systems: Solaris 2.5.1 included support for the PowerPC platform ( PowerPC Reference Platform ), but

1886-632: Was based upon the Motif look and feel and the old OPEN LOOK desktop environment was considered legacy. CDE unified Unix desktops across multiple open system vendors. CDE was available as an unbundled add-on for Solaris 2.4 and 2.5, and was included in Solaris 2.6 through 10. In 2001, Sun issued a preview release of the open-source desktop environment GNOME 1.4, based on the GTK+ toolkit, for Solaris 8. Solaris 9 8/03 introduced GNOME 2.0 as an alternative to CDE. Solaris 10 includes Sun's Java Desktop System (JDS), which

Input–output memory management unit - Misplaced Pages Continue

1932-537: Was due in March 2010, but it was never fully released, though the packages were made available on the package repository. Instead, Oracle renamed the binary distribution Solaris 11 Express, changed the license terms and released build 151a as 2010.11 in November 2010. All in all, Sun has stayed the course with Solaris 9. While its more user-friendly management is welcome, that probably won't be enough to win over converts. What may

1978-454: Was identified internally as SunOS 5 , but a new marketing name was introduced at the same time: Solaris 2 . The justification for this new overbrand was that it encompassed not only SunOS, but also the OpenWindows graphical user interface and Open Network Computing (ONC) functionality. Although SunOS 4.1. x micro releases were retroactively named Solaris 1 by Sun, the Solaris name

2024-512: Was introduced into Solaris Express Developer Edition as of its 7/05 release. SXDE Oracle Solaris is a proprietary Unix operating system offered by Oracle for SPARC and x86-64 based workstations and servers . Originally developed by Sun Microsystems as Solaris, it superseded the company's earlier SunOS in 1993 and became known for its scalability , especially on SPARC systems, and for originating many innovative features such as DTrace , ZFS and Time Slider. After

2070-450: Was investing in a new desktop environment called Project Looking Glass since 2003. The project has been inactive since late 2006. For versions up to 2005 (Solaris 9), Solaris was licensed under a license that permitted a customer to buy licenses in bulk, and install the software on any machine up to a maximum number. The key license grant was: License to Use. Customer is granted a non-exclusive and non-transferable license ("License") for

2116-502: Was the last release under Solaris 8. The OPEN LOOK Window Manager ( olwm ) with other OPEN LOOK specific applications were dropped in Solaris 9, but support libraries were still bundled, providing long term binary backwards compatibility with existing applications. The OPEN LOOK Virtual Window Manager (olvwm) can still be downloaded for Solaris from sunfreeware and works on releases as recent as Solaris 10. Sun and other Unix vendors created an industry alliance to standardize Unix desktops. As

#988011