VirtualBox
Original author(s) | InnoTek Systemberatung GmbH |
---|---|
Developer(s) | Oracle Corporation |
Initial release | 17 January 2007 |
Stable release | 7.0.16[1]
/ 16 April 2024 |
Repository | |
Written in | GNU GPLv3 only with linking exception to GNU GPLv2 incompatible licenses[4] |
Website | www |
Oracle VM VirtualBox (formerly Sun VirtualBox, Sun xVM VirtualBox and InnoTek VirtualBox) is a
VirtualBox may be installed on
Released under the terms of the GNU General Public License and, optionally, the CDDL for most files of the source distribution, VirtualBox is free and open-source software, though the Extension Pack is proprietary software, free of charge only to personal users. The License to VirtualBox was relicensed to GPLv3 with linking exceptions to the CDDL and other GPL-incompatible licenses.[12]
History
VirtualBox was first offered by InnoTek Systemberatung GmbH, a German company based in Weinstadt, under a proprietary software license, making one version of the product available at no cost for personal or evaluation use, subject to the VirtualBox Personal Use and Evaluation License (PUEL).[13] In January 2007, based on counsel by LiSoG, InnoTek released VirtualBox Open Source Edition (OSE) as free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2.[14]
InnoTek also contributed to the development of
Sun Microsystems acquired InnoTek in February 2008.[17][18][19]
Following the acquisition of Sun Microsystems by Oracle Corporation in January 2010, the product was re-branded as "Oracle VM VirtualBox".[20][21][22]
In December 2019, VirtualBox removed support for software-based virtualization and exclusively performs hardware-assisted virtualization.[23][2]
Release history
This section contains a list of miscellaneous information. (November 2021) |
Version | Release date | Notable changes |
---|---|---|
3.2 | May 19, 2010 |
|
4.0 |
| |
4.1 |
| |
4.2 |
| |
4.3 |
| |
5.0 |
| |
6.0 |
| |
6.1 |
| |
7.0 |
|
Licensing
The core package, since version 4 in December 2010, is
Prior to version 4, there were two different packages of the VirtualBox software. The full package was offered gratis under the PUEL, with licenses for other commercial deployment purchasable from Oracle. A second package called the VirtualBox Open Source Edition (OSE) was released under GPLv2. This removed the same proprietary components not available under GPLv2.[30][27]
Since version 4.2[
VirtualBox has experimental support for macOS guests. However, macOS's
Virtualization
Users of VirtualBox can load multiple guest OSes under a single host operating-system (host OS). Each guest can be started, paused and stopped independently within its own
Hardware-assisted
VirtualBox supports both
Starting with version 6.1, VirtualBox only supports this method.[23][2] Until then, VirtualBox specifically supported some guests (including 64-bit guests, SMP guests and certain proprietary OSs) only on hosts with hardware-assisted virtualization. [citation needed]
Devices and peripherals
VirtualBox emulates hard disks in three formats: the native VDI (Virtual Disk Image), controllers, to which hard drives can be attached.
VirtualBox has supported Open Virtualization Format (OVF) since version 2.2.0 (April 2009).[37]
Both
By default, VirtualBox provides graphics support through a custom virtual graphics-card that is
For an
- AMD PCnet PCI II (Am79C970A)
- AMD PCnet-Fast III (Am79C973)
- Intel Pro/1000 MT Desktop (82540EM)
- Intel Pro/1000 MT Server (82545EM)
- Intel Pro/1000 T Server (82543GC)
- Paravirtualized network adapter (virtio-net)
The emulated network cards allow most guest OSs to run without the need to find and install drivers for networking hardware as they are shipped as part of the guest OS. A special paravirtualized network adapter is also available, which improves network performance by eliminating the need to match a specific hardware interface, but requires special driver support in the guest. (Many distributions of
For a sound card, VirtualBox virtualizes Intel HD Audio, Intel ICH AC'97, and
A USB 1.1 controller is emulated, so that any USB devices attached to the host can be seen in the guest. The proprietary extension pack adds a USB 2.0 or USB 3.0 controller and, if VirtualBox acts as an RDP server, it can also use USB devices on the remote RDP client, as if they were connected to the host, although only if the client supports this VirtualBox-specific extension (Oracle provides clients for Solaris, Linux, and Sun Ray thin clients that can do this, and has promised support for other platforms in future versions).[41]
Software-based
In the absence of hardware-assisted virtualization, versions 6.0 and earlier of VirtualBox could adopt a standard
- The system reconfigures the guest OS code, which would normally run in ring 0, to execute in ring 1 on the host hardware. Because this code contains many privileged instructions which cannot run natively in ring 1, VirtualBox employs a Code Scanning and Analysis Manager (CSAM) to scan the ring 0 code recursively before its first execution to identify problematic instructions and then calls the Patch Manager (PATM) to perform in-situ patching. This replaces the instruction with a jump to a VM-safe equivalent compiled code fragment in hypervisor memory.
- The guest user-mode code, running in ring 3, generally runs directly on the host hardware in ring 3.
In both cases, VirtualBox uses CSAM and PATM to inspect and patch the offending instructions whenever a fault occurs. VirtualBox also contains a dynamic recompiler, based on QEMU to recompile any real mode or protected mode code entirely (e.g. BIOS code, a DOS guest, or any operating system startup).[42]
Using these techniques, VirtualBox could achieve performance comparable to that of VMware in its later versions.[43][44]
The feature was dropped starting with VirtualBox 6.1.[23][2]
Features
- Snapshots of the RAM and storage that allow reverting to a prior state.
- Screenshots and screen video capture
- "Host key" for releasing the keyboard and mouse cursor to the host system if captured (coupled) to the guest system, and for keyboard shortcuts to features such as configuration, restarting, and screenshot. By default, it is the right-side Ctrl key, or on Mac, the left ⌘ Command key.[45][46]
- Mouse pointer integration, meaning automatic coupling and uncoupling of mouse cursor when moved inside and outside the virtual screen, if supported by guest operating system.
- Seamless mode – the ability to run virtualized applications side by side with normal desktop applications
- Shared clipboard
- Shared folders through "guest additions" software[47]
- Special drivers and utilities to facilitate switching between systems
- Ability to specify amount of shared RAM, video memory, and CPU execution cap
- Ability to emulate multiple screens[48]
- Command line interaction (in addition to the GUI)
- Public API (Java, Python, SOAP, XPCOM) to control VM configuration and execution[49]
- Nested SLATand with SLAT enabled)
- Limited support for 3D graphics acceleration (including OpenGL up to (but not including) 3.0 and Direct3D 9.0c via Wine's Direct3D to OpenGL translation in versions prior to 7.0 or DXVK in later releases)
- SMP support (up to 32 virtual CPUs per virtual machine), since version 3.0
- Teleportation (aka Live Migration)
- 2D video output acceleration (not to be mistaken with video decoding acceleration), since version 3.1
Storage emulation
- Ability to mount virtual hard disk drives and disk images. Virtual optical discimages can be used for booting and sharing files to guest systems lacking networking support.
- raw disks and partitions
- SATA disk hotplugging
- Pass-through mode for solid-state drives
- Pass-through mode for CD/DVD/BD drives – allows users to play audio CDs, burn optical disks, and play encrypted DVD discs
- Can disable host OS I/O cache
- Allows limitation of IO bandwidth
- SAS, iSCSI, floppy diskcontrollers
- VM disk image encryption using AES128/AES256
Storage support includes:
- Raw hard disk access – allows physical hard disk partitions on the host system to appear in the guest system
- VMware Virtual Machine Disk (VMDK) format support – allows exchange of disk images with VMware
- Microsoft VHD support
- QEMU qed and qcow disks
- HDD format disks (only version 2; versions 3 and 4 are not supported) used by Parallels virtualization products
Limitations
- 3D graphics acceleration for Windows guests earlier than Windows 7 [53] was removed in version 6.1.[54] This affected Windows XP [55] and Windows Vista.
- VirtualBox has a very low transfer rate to and from USB2 devices.[56][57]
- For
- Guest Additions for macOS are unavailable at this time.[60]
- Native Guest Additions for
- Only older versions of DirectX and OpenGL pass-through are supported (the feature can be enabled using the 3D Acceleration option for each VM individually).[67]
- video RAM to a VM or manually editing the configuration file of a VM won't work and will result in a fatal error[68]).
- Zen and newer; Intel Tiger Lake and newer) and hardware assisted virtualization (VirtualBox 6.1 and higher). This is due to these OSes not being coded correctly.[69][70][71] An open source patch has been developed to fix the issue which also addresses Windows 95/98/98SE bug which makes the system crash when running on new fast CPUs.[72]
- VirtualBox 7.0 [73] and later is required to run a pristine Windows 11 guest.[74] Full compatibility with Windows 11 is achieved in VirtualBox version 7.0.14 and higher.
Host support
The supported operating systems include:[75]
- Windows 8.1 and higher. Support for 64-bit Windows was added with VirtualBox 1.5. Support for 32-bit Windows was removed in 6.0.
- Windows Server 2012 and higher.
- Linux distributions
- macOS from version 10.13 High Sierra to 10.15 Catalina (only on Intel-based Macs):
- Preliminary Mac OS X support (beta stage) was added with VirtualBox 1.4, full support with 1.6.
- Support for Mac OS X 10.4 (Tiger) and earlier was removed with VirtualBox 3.1.[80][81]
- Support for Mac OS X 10.5 (Leopard) was removed with VirtualBox 4.2.[82][83]
- Support for Mac OS X 10.6 (Snow Leopard) and 10.7 (Lion) was removed with VirtualBox 5.0.[76][77]
- Support for Mac OS X 10.8 (Mountain Lion) was removed with VirtualBox 5.1.[84][85]
- Support for Mac OS X 10.9 (Mavericks) was removed with VirtualBox 5.2.[86]
- Support for Mac OS X 10.10 (Yosemite) and OS X 10.11 (El Capitan) was removed with VirtualBox 6.0.
- Support for macOS 10.12 (Sierra) was officially removed with VirtualBox 6.1 (as of 6.1.16 it will still install and run, however)[75]
- Support for macOS 10.13 (High Sierra) and macOS 10.14 (Mojave) was officially removed with VirtualBox 7.0[78][79]
- Experimental support for Apple silicon-based Macs was added in version 7.0 beta.[87]
- Oracle Solaris
Guests
Some features require the installation of the closed-source "VirtualBox Extension Pack":[2]
- Support for a virtual USB2.0/3.0 controller (EHCI/xHCI)
- VirtualBox RDP: support for the proprietary remote connection protocol developed by Microsoft and Citrix Systems.
- PXE boot for Intel cards.
- VM disk image encryption
- Camera / webcam support[88]
While VirtualBox itself is free to use and is distributed under an open source license the VirtualBox Extension Pack is licensed under the VirtualBox Personal Use and Evaluation License (PUEL). Personal use of the extension pack is free but commercial users need to purchase a license.[89]
Guest Additions are installed within each guest virtual machine which supports them; the Extension Pack is installed on the host running VirtualBox.
See also
- Comparison of platform virtualization software
- VMware Workstation
- OS-level virtualization
- x86 virtualization
References
- ^ "VirtualBox 7.0.16 (released April 16 2024)". 16 April 2024. Retrieved 16 April 2024.
- ^ a b c d e "Downloads". Archived from the original on 2022-09-25. Retrieved 2012-02-02.
- ^ "Download VirtualBox". VirtualBox.org. Oracle. Archived from the original on 2022-09-25. Retrieved 2012-02-02.
- ^ "COPYING in vbox/trunk – Oracle VM VirtualBox". www.virtualbox.org. Archived from the original on 2023-01-11. Retrieved 2022-07-11.
- ^ "VirtualBox". Wiki.FreeBSD.org. 2009-06-16. Archived from the original on 2009-07-08. Retrieved 2009-07-04.
- ^ "Release Notes for the Genode OS Framework 14.02". Genode.org. Genode Labs. 28 February 2014. Archived from the original on 8 March 2014. Retrieved 19 March 2014.
- ^ "Guest_OSes". VirtualBox.org. 2009-06-12. Archived from the original on 2022-05-05. Retrieved 2009-07-04.
- ^ "How to Install Mac OS X Snow Leopard in VirtualBox on Windows 7". 10 July 2010. Archived from the original on 9 May 2012. Retrieved 8 May 2012.
- ^ Purdy, Kevin (4 May 2010). "VirtualBox 3.2 Beta Virtualizes Mac OS X (On Macs)". Lifehacker. Archived from the original on 7 May 2010. Retrieved 12 May 2010.
- ^ "Chapter 4: Guest Additions". VirtualBox. Archived from the original on 2018-06-26. Retrieved 2014-09-02.
- ^ "Oracle VM VirtualBox 4.3 Now Available" (Press release). Oracle Corporation. 2013-10-15. Archived from the original on 2014-10-12. Retrieved 2014-10-15.
- ^ "COPYING in vbox/trunk – Oracle VM VirtualBox". 2022-09-17. Archived from the original on 2022-09-17. Retrieved 2022-09-17.
- ^ "VirtualBox_PUEL". VirtualBox. 2008-09-10. Archived from the original on 2011-07-18. Retrieved 2009-07-04.
- ^ "GPL". VirtualBox. Archived from the original on 2018-06-21. Retrieved 2009-07-04.
- ^ Ong, Ronny. "Additions Version History". Newsgroup: microsoft.public.virtualpc. Archived from the original on 2012-11-10. Retrieved 2009-07-04.
- ^ "Connectix Announces First Virtual Computing Solution for OS/2 Users; Virtual PC Lets Enterprises Run OS/2 and Windows Concurrently on a Single PC | Business Wire | Find Articles at BNET". Findarticles.com. 2002-07-01. Archived from the original on 2012-07-11. Retrieved 2009-07-04.
- ^ "Sun Microsystems Announces Agreement to Acquire Innotek, Expanding Sun xVM Reach to the Developer Desktop" (Press release). Sun Microsystems. 12 February 2008. Archived from the original on 2008-02-13. Retrieved 2008-02-12.
- ^ "E-Commerce News: Business: Sun Gets Desktop Virtualization Chops With Innotek Buy". Ecommercetimes.com. Archived from the original on 2018-06-21. Retrieved 2009-07-04.
- ^ "Sun Welcomes Innotek". Sun Microsystems, Inc. Archived from the original on 2008-03-02. Retrieved 2008-02-26.
On February 20 Sun completed the acquisition of Innotek
- ^ "Oracle and Virtualization". Oracle Corporation. Archived from the original on 2011-07-24. Retrieved 2010-01-30.
- ^ "VirtualBox Joins Oracle's Enterprise Virtualization Portfolio". systemnews. 25 February 2010. Retrieved 6 March 2010.[dead link]
- ^ Hawley, Adam (26 February 2010). "The Oracle VM Product Line Welcomes Sun!". Oracle Virtualization Blog. Oracle Corporation. Archived from the original on 2010-04-07. Retrieved 6 March 2011.
- ^ a b c "Changelog-6.1". www.virtualbox.org. Archived from the original on 2023-01-11. Retrieved 2019-12-12.
- ^ "USB 3.0 Driver: Intel USB 3.0 eXtensible Host Controller Driver for Intel 7 Series/C216 Chipset Family". Archived from the original on 2023-01-11. Retrieved 2015-05-05.
- ^ "New separate GUI / VMM mode". Archived from the original on 2023-01-11. Retrieved 2015-04-02.
- ^ a b c d Proven, Liam (11 October 2022). "Oracle VirtualBox 7.0 released". The Register. Archived from the original on 2022-10-22. Retrieved 2022-10-22.
- ^ a b "Editions". VirtualBox. Archived from the original on 2009-06-27. Retrieved 2009-07-04.
- ^ "VirtualBox_PUEL". VirtualBox. 2010-04-19. Archived from the original on 2011-07-18. Retrieved 2011-04-20.
- ^ "PUEL no longer allowing commercial use with VB extension pack 5.1.30". forums.virtualbox.org. Archived from the original on 2018-06-20. Retrieved 2019-01-18.
- ^ a b "Licensing: Frequently Asked Questions". VirtualBox. Archived from the original on 2013-09-27. Retrieved 2017-11-28.
- ^ a b "Copyright file of Virtualbox". Debian. 2016-01-26. Archived from the original on 2016-03-04. Retrieved 2016-07-24.
- ^ "Open Source Licenses by Category". Palo Alto, California: Open Source Initiative. 19 September 2006. Non-reusable licenses. Archived from the original on 2016-07-21. Retrieved 2016-07-24.
- Boston, Massachusetts: Free Software Foundation. Nonfree Software Licenses. Archivedfrom the original on 2010-07-24. Retrieved 2016-07-24.
- ^ "Interview with Andy Hall, Product Manager for Oracle VM VirtualBox". Archived from the original on 2010-08-15. Retrieved 2010-08-12.
- ^ "Internal Networking". VirtualBox. Archived from the original on 2013-07-27. Retrieved 2013-07-31.
- ^ "Oracle® VM VirtualBox®". Archived from the original on 2013-08-13. Retrieved 2013-04-04.
- ^ "VirtualBox changelog". Archived from the original on 2010-02-05. Retrieved 2010-02-18.
- ^ "Chapter 4. Guest Additions". VirtualBox. Archived from the original on 2018-06-26. Retrieved 2011-01-17.
- ^ "Chapter 6. Virtual networking". VirtualBox. Archived from the original on 2013-07-27. Retrieved 2011-01-17.
- ^ "Chapter 3. Configuring Virtual Machines". VirtualBox. Archived from the original on 2010-12-30. Retrieved 2011-01-17.
- ^ "Chapter 7 Remote Virtual Machines". VirtualBox 4.1.4 Manual. Oracle. 2011-10-03. Archived from the original on 2011-11-20. Retrieved 2011-11-19.
- ^ "VirtualBox Manual, Section 10.4 Details about software virtualization". VirtualBox. Archived from the original on 2011-04-11. Retrieved 2011-04-25.
- ^ Dr. Diedrich, Oliver (2007-01-15). "VirtualBox". Heise.de. Archived from the original on 2007-12-10. Retrieved 2009-07-04.
- ^ Perlow, Jason (2010-05-21). "Virtualization Smackdown 2: Oracle VM VirtualBox 3.2 vs. VMware Workstation 7.1". ZDNET. Archived from the original on 2010-05-24. Retrieved 2010-05-24.
- ^ "Oracle VM VirtualBox User Manual". docs.oracle.com. Archived from the original on 2021-09-26. Retrieved 2021-10-31.
- ^ "Chapter 1. First Steps". www.virtualbox.org. Archived from the original on 2018-12-17. Retrieved 2021-10-31.
- ^ "Chapter 4. Guest Additions". www.virtualbox.org. Archived from the original on 2 December 2010. Retrieved 31 October 2021.
- ^ "Oracle VM VirtualBox User Manual". docs.oracle.com. Archived from the original on 2021-10-31. Retrieved 2021-10-31.
- ^ "Python API to the VirtualBox VM". Sun Microsystems. 2008-09-05. Archived from the original on 2008-09-10. Retrieved 2008-09-06.
- ^ "#7702 (UEFI support for Windows guests)". www.virtualbox.org. Archived from the original on 2019-01-11. Retrieved 2019-01-11.
- ^ "Chapter 3. Configuring Virtual Machines". www.virtualbox.org. Archived from the original on 2010-12-30. Retrieved 2019-01-11.
- ^ a b "Chapter 3. Configuring virtual machines". www.virtualbox.org. Archived from the original on 2010-12-30. Retrieved 2016-04-14.
- ^ "Chapter 3. Configuring Virtual Machines: Display Settings". Archived from the original on 2010-12-30. Retrieved 2020-07-27.
- ^ "Changelog for VirtualBox 6.1". Archived from the original on 2023-01-11. Retrieved 2019-12-12.
- ^ "Direct3D does not work on XP guest with SVGA". Archived from the original on 2020-07-27. Retrieved 2020-07-27.
- ^ "#2973 (USB extremely slow with USB-2.0 (very similar to #464))". Oracle. Archived from the original on 6 October 2014. Retrieved 10 October 2014.
- ^ "#4261 (Slow transfer speeds from USB disk)". Oracle. Archived from the original on 6 October 2014. Retrieved 10 October 2014.
- ^ "USB 3.0 support in XP guests". forums.virtualbox.org. Archived from the original on 2019-07-12. Retrieved 2020-01-25.
- ^ "USB 3.0 support in XP guests". forums.virtualbox.org. Archived from the original on 2020-09-19. Retrieved 2020-01-25.
- ^ a b "Chapter 14. Known limitations". www.virtualbox.org. Archived from the original on 2017-03-29. Retrieved 2017-03-28.
- ^ "Unofficial Windows 98 Second Edition Service Pack". www.majorgeeks.com. Archived from the original on 2023-01-11. Retrieved 2017-03-28.
- ^ "98SE Option Pack". www.majorgeeks.com. Archived from the original on 2017-03-29. Retrieved 2017-03-28.
- ^ "Windows 9x Power Pack". www.majorgeeks.com. Archived from the original on 2023-01-11. Retrieved 2017-03-28.
- ^ "Tutorial: Windows 95/98 guest OSes". forums.virtualbox.org. Archived from the original on 2023-01-11. Retrieved 2017-03-28.
- ^ "Win98SE with ACPI — Success At Last!". forums.virtualbox.org. Archived from the original on 2023-01-11. Retrieved 2017-03-28.
- ^ "Windows 98SE step by step". forums.virtualbox.org. Archived from the original on 2017-03-29. Retrieved 2017-03-28.
- ^ "Chapter 4. Guest Additions". www.virtualbox.org. Archived from the original on 2018-06-26. Retrieved 2017-03-28.
- ^ a b "Reason behind the 256MB vram limit". forums.virtualbox.org. Archived from the original on 2018-01-30. Retrieved 2018-01-29.
- ^ "#19275 (Windows 98SE is not installable in VirtualBox 6.1.2 with a Ryzen 3000 CPU)". www.virtualbox.org. Archived from the original on 2020-10-22. Retrieved 2020-02-14.
- ^ Wong, Henry (2015-08-10). "TLB and Pagewalk Coherence in x86 Processors". Archived from the original on 2020-06-04. Retrieved 2020-06-04.
- ^ "Windows 9x TLB Invalidation Bug". 2015-08-10. Archived from the original on 2020-06-04. Retrieved 2020-06-04.
- ^ JHRobotics (2022-07-18), Patch for Windows 95/98/98 SE/Me to fix CPU issues, archived from the original on 2022-07-23, retrieved 2022-07-23
- ^ "Changelog-7.0". www.virtualbox.org. Archived from the original on 2022-11-06. Retrieved 2022-10-11.
- ^ "Windows 11 compatibility is being worked on". forums.virtualbox.org. Archived from the original on 2021-10-23. Retrieved 2021-10-23.
- ^ a b "VirtualBox Manual: Chapter 1. First Steps". www.virtualbox.org. Archived from the original on 2018-12-17. Retrieved 2020-09-03. * "Oracle® VM VirtualBox User Manual for Release 6.1: Chapter 1. First Steps". www.virtualbox.org. Archived from the original on 2021-08-18. Retrieved 2020-11-13.
- ^ a b c "Oracle VirtualBox User Manual Version 4.3.40" (PDF). Retrieved 2023-11-10.
- ^ a b c "Oracle VirtualBox User Manual Version 5.0.0" (PDF). Retrieved 2023-11-10.
- ^ a b c "Oracle VirtualBox User Manual Version 6.1.44" (PDF). Retrieved 2023-06-28.
- ^ a b c "Oracle VirtualBox User Manual Version 7.0.0" (PDF). Retrieved 2023-06-28.
- ^ "Sun VirtualBox User Manual Version 3.0.2 (Archived)" (PDF). Archived from the original (PDF) on 2015-05-15.
- ^ "Sun VirtualBox User Manual Version 3.1.0 (Archived)" (PDF). Archived from the original (PDF) on 2015-05-15.
- ^ "Oracle VirtualBox User Manual Version 4.1.44" (PDF). Retrieved 2023-11-10.
- ^ "Oracle VirtualBox User Manual Version 4.2.0" (PDF). Retrieved 2023-11-10.
- ^ "Oracle VirtualBox User Manual Version 5.0.40" (PDF). Retrieved 2023-11-10.
- ^ "Oracle VirtualBox User Manual Version 5.1.0" (PDF). Retrieved 2023-11-10.
- ^ "VirtualBox Manual (Archived)". Archived from the original on 2018-12-17.
- ^ Espósito, Filipe (14 October 2022). "Oracle VirtualBox brings Apple Silicon Mac support in version 7.0 beta". 9to5Mac. Archived from the original on 15 October 2022. Retrieved 15 October 2022.
- ^ "Enabling Webcam in VirtualBox Guest OS on Windows Host". 23 January 2018. Archived from the original on 2021-06-24. Retrieved 2021-06-18.
- ^ "Licensing FAQ". Archived from the original on 2023-10-14. Retrieved 2024-02-27.