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

Rebuild Minix with GNU/GCC natively #341

Open
Phrunsys opened this issue Feb 15, 2023 · 7 comments
Open

Rebuild Minix with GNU/GCC natively #341

Phrunsys opened this issue Feb 15, 2023 · 7 comments

Comments

@Phrunsys
Copy link

Hello guys I have been working with Minix for a long while and one of the main key points that honestly comes to mind as to why we are not on the Linux level is because Minix's build system is too complicated and huge for contribution - Consider outdated too.
I am suggesting we rebuild minix with GCC naively (no cross compile) then we add an x86_64 architecture on the Micro kernel.

With Minix, I intend to base my research around AI but the build system is still a mess and makes the entire code base look so huge. If in favor of my point, Kindly contribute to my Minix Branch that way we can request pull requests. Or if merges are declined, who cares. Its all a hobbyist venture

@petershh
Copy link

petershh commented Feb 15, 2023 via email

@Phrunsys
Copy link
Author

Hello,

Operating systems can be built without cross compiling. Assuming you are only building for one architecture and expect that build to run all all supportive architectures like the one that built the binaries, that way consider the building of Linux and busybox, One downloads the kernel - builds the kernel using a native compiler and in turn gets a bzImage - he/she also downloads busybox builds and creates an initramfs - afterwards they have a working kernel and a ram filesystem. They can later use qemu or choose to create a bootable iso using grub-mkrescue.

Points to note:

  1. The iso image created using grub-mkrescue can be run on any architecture the kernel was compiled for.
  2. The user has atleast a minimal OS with Linux as a kernel and busybox as the user end programs
  3. This all thing requires no cross compilation just uses the native compiler as a cross compiler if need

But for Minix:

  1. One has to compile a compiler then that compiler compiles the code base which is so time consuming and also makes the source tree so big as it contains sources of these compilers: llvm/clang and GCC
  2. Compare and bench mark the build time of Linux - Busybox (an OS of itself) and Minix

NOTE:
You can build an OS without building a cross compiler like is the case in Minix. And yes, Minix might never catch to the speed of linux but It can dominate some fields and in the looks of it. None of you guys seem to care about the project any more

MORE IMPORTANTLY:
We can have AI in the kernel space and amongst all kernel types, A micro kernel is the number one contender and sorry to say this but Minix is the best Micro kernel as of date. (Point me to any best). For AI in the kernel, please refer to https://www.scpel.org/artificial_systems.html

@Phrunsys
Copy link
Author

A point you should note:
Operating systems cannot be built without a cross compiler but still You do not need to build a cross compiler before building the OS - so if its possible to use the native compiler as a cross compiler, why not use the same for Minix in the stead of having toolchain sources in Minix code base

Consider building Linux and Busybox - all you do is not even cross compile, you just build binaries that expect an x86_64 CPU for the case of linux and also tune your busybox the same

@Phrunsys
Copy link
Author

For that case too, too dominate at least a field off Linux calls to first majorly build and develop Minix on on architecture or CPU (AMD or Intel) - and for your point that: "AI has nothing to do with operating systems, and with Minix in
particular." Micro kernels can perform nicely in AI than monolithic kernels

@Phrunsys
Copy link
Author

Phrunsys commented Feb 15, 2023 via email

@auronandace
Copy link

In the interests of not leaving you wondering if anyone has read your comments I have the following input:

  1. The GitHub issue tracker is intended (in the case of the Minix project) to help people with issues they are currently having in getting Minix running or reporting bugs.
  2. Historically Minix has been geared towards education. Since version 3 it is intended as a general purpose operating system. Anyone can use it for whatever they want (be it AI research or teaching OS design principles).
  3. Currently, Minix is not under development. The reasons for this are complex and best discussed elsewhere.

I am pleased you have taken an interest in Minix. If you wish for further discussion in a more appropriate setting there is an IRC channel on Libera Chat that you can join. Please be mindful that asking for sweeping changes may not go down very well. We do welcome interested ones and if you decide to fork Minix some may be curious to see how you get along.

Just in case you were unaware there are a few other microkernel systems that you may be interested in:

  • HelenOS (written in C++)
  • Helios (written in hare)
  • Managarm (written in C++)
  • RedoxOS (written in Rust)

I am going to refrain from replying to any other comments in this thread since I don't consider this a valid issue. You can find me on the previously mentioned IRC network should you wish to discuss further. It would be a shame if someone had to lock this thread.

@smatter52
Copy link

Hi,

I have had an interest in Minix since the original release for the PC on floppy. What I require for my Rasberry PI4 is :

A Minix I can compile under Raspian with GCC

A Minix that does not have the bloat of Linux, is secure and suitable for single application realish time use.

A Minix I can modify as required.

When my other system development work is complete I will put some time into this.

Advice ?

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

4 participants