Skip to content
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

Open
perlun opened this issue Jan 1, 2014 · 6 comments
Open

Support for ldc2 #8

perlun opened this issue Jan 1, 2014 · 6 comments

Comments

@perlun
Copy link

perlun commented Jan 1, 2014

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?

@wolfwood
Copy link
Member

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.

@lonnietc
Copy link

lonnietc commented Feb 1, 2022

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?

@wolfwood
Copy link
Member

wolfwood commented Feb 2, 2022

@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?

@lonnietc
Copy link

lonnietc commented Feb 2, 2022

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.

@wolfwood
Copy link
Member

wolfwood commented Feb 3, 2022

Hi, we made a discord, why don't you join us there to talk some more https://discord.gg/2BeSJ4fz

@lonnietc
Copy link

lonnietc commented Feb 3, 2022

Thanks for the invite on Discord and I have just joined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants