Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
en:docs:os2:architecture [2014/06/06 19:34] – [Compatibility with OS/2 (Intel)] valerius | en:docs:os2:architecture [2016/03/11 00:22] – [Other OS's personalities] valerius | ||
---|---|---|---|
Line 52: | Line 52: | ||
The term " | The term " | ||
- | === MVM server === | + | Read more on [[en: |
- | The MVM server is a central server of the MVM personality -- the infrastructure for running multiple virtual machines on top of L4 microkernel. It is almost separate from OS/2 personality, | + | ==== Other OS' |
- | So, the MVM server exposes some interfaces to other OS personalities to be controlled by them. Also, it starts VM's, which are executed in the context of a VM monitor, running a guest OS (DOS, for example). The VM environment is defined by VDD' | + | The microkernel is a ' |
- | === Virtual Device Drivers (VDD's) === | + | But it is not a clever idea to create each OS from scratch. So, some higher level abstractions needed to be created on top of the microkernel, |
- | A VDD is like a plugin | + | See [[en: |
- | Originally, the MV(D)M were used to emulate a 8086 machine with BIOS and DOS/Win 3.1. But now it is a trend for many OS'es to have the kernel virtual machines, like kvm in Linux or VirtualPC in WinNT. Our MVM personality is our solution | + | === "The one Ring to Bind Them all" |
- | Also, as we're told previously, to share the screen with OS/2 apps and apps of other personalities, | + | OS/2 personality is proposed to be a dominant personality. It governs all Personalities |
- | This is done with a special VDD's, like VVIDEO (VVGA, VSVGA, etc) implementiing a video mode support in a DOS window (or fullscreen). | + | I heard that IBM registered |
- | For windowed WinOS/2 sessions, it existed the solution of using a so-called PM shield (seamless.dll) and WinOS/2 shield (winsheld.exe). The 1st one is an " | + | It advertised as "DOS better than DOS" and " |
- | Also, the second solution exists, based on GRADD video driver model. It works via VVMI (vmanwin.sys in the Intel OS/2). It is the VDD related to the communication of windows video driver (ifgdi2vm.drv for fullscreen, isgdi2m.drv for seamless mode) with GRADD' | + | |
- | === Virtual Machine Monitor === | + | The osFree Demo setup was demonstrated in 2011, Aug, 22, on the Chaos Constructions' |
- | The VMM ((Virtual Machine Monitor)) is a program implementing the environment of guest hardware platform, with help of VDD's. It handles the traps redirecting them to the needed VDD, loads the IST ((Instruction Set Translator)) for different processor instruction sets, utilizes the hardware emulation features of the CPU, like VM86, AMD SVM, Intel VT-x etc. | + | The current demo CD can be downloaded from our [[en: |
- | It maintains the address space layout of a VM application, | + | Here is described |
- | + | ||
- | === The DOS emulation kernel (doskrnl) === | + | |
- | + | ||
- | The DOS emulation kernel | + | |
- | + | ||
- | === Instruction Set Translator (IST) === | + | |
- | + | ||
- | The IST is a DLL, emulating the instructions of Guest hardware via Host CPU instructions. It exports a set of entry points, each correspoinding the emulated instruction. | + | |
- | + | ||
- | The similar component exist in QEMU -- but it is linked statically with the emulator binary. | + | |
- | + | ||
- | === VM86 on Intel, and Hardware-assisted virtualization === | + | |
- | + | ||
- | Some processors implement special compatibility modes (VM86 allows creation of special task in protected mode, which emulates a virtual i8086 processor) or special instruction to assist the Virtual Machines Monitors creation. (Like " | + | |
- | + | ||
- | These extensions can be used to run unmodified OS'es on top of a hypervisor (it is supported in newer versions of Xen, VBox, VMWare, VPC). | + | |
- | + | ||
- | === Microkernels as Hypervisors === | + | |
- | + | ||
- | Microkernels and Hypervisors are very similar things. Microkernels implement similar features. For example, the Fiasco.OC microkernel supports SVM and VT-x and allows to run unmodified Linux in very thin VM's. This feature can be utilized in our MVM personality too. | + | |
- | + | ||
- | ==== Other OS's personalities ==== | + | |
- | + | ||
- | === "The one Ring to Bind Them all" (OS/2 as an integration platform for different types of applications) === | + | |
- | + | ||
- | ==== The current OS/2 personality prototype ==== | + | |
==== osFree PM ==== | ==== osFree PM ==== | ||
Line 108: | Line 82: | ||
The osFree PM is an osFree version of FreePM, which was began by Evgeny Kotsuba, and then abandoned. After that, we did some changes to it, and called it " | The osFree PM is an osFree version of FreePM, which was began by Evgeny Kotsuba, and then abandoned. After that, we did some changes to it, and called it " | ||
- | * [[http:// | + | * [[http:// |
* [[http:// | * [[http:// | ||
- | * [[en: | + | * [[en:docs:os2: |
- | * [[en: | + | * [[en:docs:os2: |
- | + | ||
- | === Graphical Program Interface (GPI) === | + | |
- | + | ||
- | The GPI ((Graphical Program Interface)) is the graphical engine of Presentation Manager. It is based on PM GRE ((Graphics Runtime Engine)). The GPI/GRE is the counterparts of Windows GDI. The GPI/GRE pair is designed as an enhanced version of Windows Graphics Engine. Contrary to Windows, they are decomposed to two layers. The GPI is the high-level layer. | + | |
- | + | ||
- | The Windows programs API's operate directly on DC ((Device Context)). OS/2 PM is redesigned, so Programs operate on PS ((Presentation Space)), not the DC. The DC is something related to the instance of graphics device (the video screen, a window or printer). | + | |
- | + | ||
- | The PS is a higher level abstraction. It can be treated as a canvas in other graphics libraries. It maintain such things as current background/ | + | |
- | + | ||
- | The GPI functions have the " | + | |
- | + | ||
- | === Graphics Runtime Environment (OS/2 PM GRE) and Presentation Drivers === | + | |
- | + | ||
- | The GRE is a low-level graphics API which operates DC's. It handles all kinds of graphics deviices like video cards and printers. | + | |
- | + | ||
- | The GPI contains an array of pointers called the Dispatch Table. This table stores pointers to the most lowlevel GRE functrions. | + | |
- | + | ||
- | The graphics device drivers are called also " | + | |
- | + | ||
- | === The GRADD model === | + | |
- | + | ||
- | === Video Protected Mode Interface (PMI) === | + | |
- | + | ||
- | ==== VIO/KBD/MOU (Console API) ==== | + | |
- | + | ||
- | === VIO and BVH's (Base Video Handlers) === | + | |
- | + | ||
- | ==== Framebuffer Interface ==== | + | |
- | + | ||
- | === Virtual Framebuffer over GRADD driver === | + | |
- | + | ||
- | === BVH and PM GRE on top of a Framebuffer interface === | + | |
- | + | ||
- | + | ||
- | ==== The current osFree PM prototype ==== | + | |
~~DISCUSSION~~ | ~~DISCUSSION~~ |