-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for ldc2 #8
Comments
sorry, I 've been a bit distracted since the holidays. Yes the kernel, and userspace, is written in D1. ldc has dropped support for this but a working D1 compiler is still hidden in their git repo. I will fork and create a branch with the version of the repo I use to build xomb. As far as porting to D2 it is certainly possible, but I have not investigated it. The porting process will require a D2 runtime to be created (we can't use the ones for linux or windows as they make direct use of the OS, and/or libc). If you are interested in helping with this, I would suggest getting a D2 app running on the current xomb codebase as a first step. Currently C and D1 applications are supported. Fortran apps used to work and I haven't checked C++ in some time now. Point is, this is a reasonably manageable task :) I should note that while a rewrite is inevitable, D2 as a choice of language is not. Many of the other contributors favored Rust in the past. That being said, I think at this point D2 is less of a moving target. |
Hello, Hope that you are doing well and I was wondering if there was ever any progress in this since I have also just now come across the project and would like to see it in action even if it is using D1 for now. Maybe, I could also start digging into helping to make it up to D2 or possibly even Rust from what I am reading here. Is there, by chance any ISO that could be downloaded and booted up just to see something run? |
@lonnietc hello! unfortunately the D1 compiler I was most familiar with (ldc) would likely take quite some work to get running on a modern system, as it depends on very outdated versions of other packages, such as llvm. I honestly can't remember if it was ever possible to build the project with dmd or gdc in its current state. Its possible that I have a 'known-good' bootable ISO in cold storage, but it will take some digging. XoMB boots to a simple shell (xsh) and has a few posix-style filesystem commands provided busybox-style. I think that at this point reviving the code would look more like a rewrite. Since the XoMB kernel does no memory allocation, it would seem to me that the effort of producing a stubbed out runtime for D2 would be wasted (although its possible that one already exists from other hobby OSes). I think that there were enough changes to the language that the XoMB D1 code won't 'just compile' as D2 code. switching to a language like Zig or Rust might be a better starting place, imo. both have runtimes and standard libraries designed to support running without a host OS. Zig has not yet stabilized, but the language is relatively small, so it is easy to learn. Rust has a bigger ecosystem of libraries and related projects to draw on. is there something specific you are interested in trying to do? |
Hello and thanks for getting back to me on this. My background is namely coming from C/C++ (asm, and some others) and I am namely interested in developing a net type of small-footprint secure RAM-based and cutting-edge hypervisor that might be based upon an exokernel design rather than a microkernel or monolithic kernel design. Of course those designs are standard in many modern hypervisors like Xen, VMware, ACRN, and others, but based upon a lot of review and research, I feel that an exokernel might be a diamond-in-the-rough when it comes to being able to be used as a foundation for a new design. In the past I had been set on using the NOVA Microhypervisor (https://hypervisor.org/) design which is more of a microkernel but still better than other existing solutions, and have been working along these lines with that kernel but felt that it might be still missing something so I set out to see what other solutions might be available which led me to exokernels and then XOmB. There may be other exokernels out there and I am actively seeking them out to see their status as well as it seems like Rust is an extremely popular language to use for this purpose as well. I would be very happy to discuss the project over all with you if interested as it is MUCH more than just a new type of hypervisor, but a whole topology change in that it will also have extremely lightweight VMM's and heavily use Unikernels for applications with a LibOS paradigm. The goal is a shift from an OS-centric approach to an Application-centric approach, but we can chat more on this later. Right now, I am researching exokernels and have also just come across what is termed a "parakernel" (https://manticoreos.io/) and found it to be extremely interesting after reading their publication which in inline with exokernels as well. Best Regards and have a great day, my friend. |
Hi, we made a discord, why don't you join us there to talk some more https://discord.gg/2BeSJ4fz |
Thanks for the invite on Discord and I have just joined. |
Hi,
I stumbled upon your project the other day, seems interesting. 😄 I'm playing around with D and thought it would be interesting to take a look at a real-world example of a system implemented using it. Anyway, I wonder if it would be feasible to build it with the current version of LDC, i.e. https://github.com/ldc-developers/ldc/releases? It seems to only provide the D2 compiler, i.e.
ldc2
. Do you reckon it could be used?It seems like there's a lot of stuff which is more-or-less hardwired to use
ldc
, so it might be a bit of work to get it done. Perhaps no-one has experimented with this?The text was updated successfully, but these errors were encountered: