I am interested in porting LionOS to X64 architecture
Hello, I am a researcher at Intellisense Systems, Inc. We are a small business that performs R&D for the U.S. Military. We have an active contractor to build a hypervisor for a microkernel. We recently selected Sel4 as the microkernel and I learned that the Army (our customer) used a camKes implementation of a VMM to host a fork of Ubuntu, but the limitations prompted them to try another approach. I think since that time, microkit has developed quite a bit and I saw the trustworthy systems has even been developing an operating system on the Sel4 microkernel. However, LionOS appears to be developed for ARM systems as the use case. For the Army use, we are using a Nuvo7000LP: https://www.neousys-tech.com/Resource/Product_Document/Nuvo-7000LP/Nuvo-7000... Which is an X64 architecture. I just started learning microkit through your available tutorials and I am aware that building a comprehensive VMM is no easy task. However, I was wondering if you had some intuition or if you could provide me an estimate of the libraries in the LionOS that I would need to adjust/redesign to make an X64 architecture fork? Is this even a feasible approach? It looks like I just need to swap out the aarch64 libraries with compatible x64 libraries and do some testing. Before I commit, I just wanted to get some advice on the endeavor. Is forking LionOS to an X64 architecture feasible, or should I start at a lower level (i.e., redesigning the vmm?) Thanks so much for your time. Respectfully, Peter Relich Research Scientist Intellisense Systems, Inc. ________________________________ The information contained in this e-mail and any attachments from Intellisense Systems may contain confidential and/or proprietary information, and is intended only for the named recipient to whom it was originally addressed. If you are not the intended recipient, any disclosure, distribution, or copying of this e-mail or its attachments is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately by return e-mail and permanently delete the e-mail and any attachments.
Hi Peter,
"Peter" == Peter Relich via Devel
writes:
Peter> I just started learning microkit through your available Peter> tutorials and I am aware that building a comprehensive VMM is Peter> no easy task. However, I was wondering if you had some Peter> intuition or if you could provide me an estimate of the Peter> libraries in the LionOS that I would need to adjust/redesign to Peter> make an X64 architecture fork? Is this even a feasible Peter> approach? It looks like I just need to swap out the aarch64 Peter> libraries with compatible x64 libraries and do some Peter> testing. Before I commit, I just wanted to get some advice on Peter> the endeavor. We're currently working on getting the microkit working on X86. It's all out-of-public-tree work at the moment; but expect pull requests soon. In addition to a microkit that enables hypervisor mode, you'll need to look at https://github.com/au-ts/libvmm and either clone and modify for a libvmm-x86 or adapt it to be cover more architectures. Likewise, the sDDF (seL4 Device Driver Framework) will be needed for device sharing: it's intended to be architecture independent except or the drivers themselves. It's at https://github.com/au-ts/sddf Peter C -- Dr Peter Chubb https://trustworthy.systems/ Trustworthy Systems Group CSE, UNSW Core hours: Mon 8am-3pm; Wed: 8am-5pm; Fri 8am-12pm.
On 15 Jun 2024, at 02:52, Peter Relich via Devel
wrote: I just started learning microkit through your available tutorials and I am aware that building a comprehensive VMM is no easy task. However, I was wondering if you had some intuition or if you could provide me an estimate of the libraries in the LionOS that I would need to adjust/redesign to make an X64 architecture fork? Is this even a feasible approach? It looks like I just need to swap out the aarch64 libraries with compatible x64 libraries and do some testing. Before I commit, I just wanted to get some advice on the endeavor.
Is forking LionOS to an X64 architecture feasible, or should I start at a lower level (i.e., redesigning the vmm?)
On 15 Jun 2024, at 08:38, Peter Chubb via Devel
Likewise, the sDDF (seL4 Device Driver Framework) will be needed for device sharing: it's intended to be architecture independent except or the drivers themselves. It's at https://github.com/au-ts/sddf
we’re also working on some sDDF drivers for x86 platforms internally, but they may not help you much on your specific platform Gernot
Thanks to everyone for the information.
I think the work done so far on microkit and its verification process (i.e., the gordian) is more in line with a lot of the Army platforms compared to the existing CAmkES implementations. I wanted to follow up to see if there was any status on the microkit x86 version ? I need to write a proposal soon to specific the statement of work for building the libvmm and sDDF drivers for the specific x86-64 platform and would appreciate any possible timeline information or a best guess so I can set up a work schedule in my proposal. Thanks so much!
Best Regards,
Peter R
-----Original Message-----
From: Peter Chubb
"Peter" == Peter Relich via Devel
writes:
Peter> I just started learning microkit through your available tutorials Peter> and I am aware that building a comprehensive VMM is no easy task. Peter> However, I was wondering if you had some intuition or if you Peter> could provide me an estimate of the libraries in the LionOS that Peter> I would need to adjust/redesign to make an X64 architecture fork? Peter> Is this even a feasible approach? It looks like I just need to Peter> swap out the aarch64 libraries with compatible x64 libraries anvd Peter> do some testing. Before I commit, I just wanted to get some Peter> advice on the endeavor. We're currently working on getting the microkit working on X86. It's all out-of-public-tree work at the moment; but expect pull requests soon. In addition to a microkit that enables hypervisor mode, you'll need to look at https://github.com/au-ts/libvmm and either clone and modify for a libvmm-x86 or adapt it to be cover more architectures. Likewise, the sDDF (seL4 Device Driver Framework) will be needed for device sharing: it's intended to be architecture independent except or the drivers themselves. It's at https://github.com/au-ts/sddf Peter C -- Dr Peter Chubb https://trustworthy.systems/ Trustworthy Systems Group CSE, UNSW Core hours: Mon 8am-3pm; Wed: 8am-5pm; Fri 8am-12pm. ________________________________ The information contained in this e-mail and any attachments from Intellisense Systems may contain confidential and/or proprietary information, and is intended only for the named recipient to whom it was originally addressed. If you are not the intended recipient, any disclosure, distribution, or copying of this e-mail or its attachments is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately by return e-mail and permanently delete the e-mail and any attachments.
Hi Peter
Microkit support for x86-64 is currently planned to be usable/available within the next 2-3 months. It’s unlikely to be ready before October.
Ivan
On 13 Aug 2024, at 8:36 AM, Peter Relich via Devel
On 6/14/24 12:52, Peter Relich via Devel wrote:
Hello,
I am a researcher at Intellisense Systems, Inc. We are a small business that performs R&D for the U.S. Military. We have an active contractor to build a hypervisor for a microkernel. We recently selected Sel4 as the microkernel and I learned that the Army (our customer) used a camKes implementation of a VMM to host a fork of Ubuntu, but the limitations prompted them to try another approach. I think since that time, microkit has developed quite a bit and I saw the trustworthy systems has even been developing an operating system on the Sel4 microkernel. However, LionOS appears to be developed for ARM systems as the use case.
For the Army use, we are using a Nuvo7000LP: https://www.neousys-tech.com/Resource/Product_Document/Nuvo-7000LP/Nuvo-7000... Which is an X64 architecture.
I just started learning microkit through your available tutorials and I am aware that building a comprehensive VMM is no easy task. However, I was wondering if you had some intuition or if you could provide me an estimate of the libraries in the LionOS that I would need to adjust/redesign to make an X64 architecture fork? Is this even a feasible approach? It looks like I just need to swap out the aarch64 libraries with compatible x64 libraries and do some testing. Before I commit, I just wanted to get some advice on the endeavor.
Is forking LionOS to an X64 architecture feasible, or should I start at a lower level (i.e., redesigning the vmm?)
Do you need confidentiality? If so, kernel changes will be needed to mitigate speculation problems, unless you: 1. Enable IBPB on context switch. 2. Mark all memory that may contain sensitive data as device memory, therefore keeping it out of the kernel’s address space. This also means that kernel objects should not contain sensitive data. -- Sincerely, Demi Marie Obenour (she/her/hers)
participants (5)
-
Demi Marie Obenour
-
Gernot Heiser
-
Ivan Velickovic
-
Peter Chubb
-
Peter Relich