Safeguarding the past, present and future of RISC OS for everyone
Account
News | Downloads | Bugs | Bounties | Forums | Library
Forums → Porting RISC OS →

RISC OS with Minix 3?

Subscribe to RISC OS with Minix 3?4 posts, 2 voices

 
Nov 20, 2021 1:39pm
Avatar Glenn Moeller-Holst (8768) 16 posts

Hopefully when RISC OS (kernel) has been ported to C (C++ ?), it could be interesting to have RISC OS support for multicore microprocessors.

Instead of “merging” RISC OS kernel with Linux kernel (millions source code lines), it might be better to considering “merging” RISC OS kernel with Minix 3.3 kernel (only about 4000 source code lines).

Minix do not yet support multicore.

.

References:

Book about Minix 3:
Operating Systems Design And Implementation: Design and Implementation with CD-Rom. Third Edition (Prentice Hall Software Series) von Andrew S. Tanenbaum

https://en.wikipedia.org/wiki/Minix_3
Quote: “…
The main goal of the project is for the system to be fault-tolerant by detecting and repairing its own faults on the fly, with no user intervention.
…
[ If it is good enough for Intel …]
MINIX 3 is believed to be used in the Intel Management Engine (ME) found in Intel’s Platform Controller Hub starting with the introduction of ME 11 which is used with Skylake and Kaby Lake processors.1213
…
Initially released under the same BSD-3-Clause license that MINIX was licensed under since 2000.2122 In late 2005, the copyright owner was changed and a fourth clause was added.12326
…
If a driver gets into an infinite loop, the scheduler will gradually lower its priority until it becomes idle. Eventually the reincarnation server will see that it is not responding to status requests, so it will kill and restart the looping driver. In a monolithic kernel, a looping driver could hang the system.
…
As can be seen, at the bottom level is the microkernel, which is about 4,000 lines of code (mostly in C, plus a small amount of assembly language).
…
User programs cannot make these calls. Instead, they can issue POSIX system calls which send messages to the servers.
…
MINIX 3.3.0 was released in September 2014. This release is the first version to support the ARM architecture in addition to x86. It also supports a NetBSD userland, with thousands of NetBSD packages running right out of the box.
…”

http://www.minix3.org/

This page describes how to build and run Minix/ARM
Quote: “…
The code is developed and integrated in the same (master) code branch as the official MINIX3 x86 port.
…
Feature Matrix
This is a preliminary list of what’s supported and what isn’t. Feel free to add anything important that was left off the list and/or update the list with the latest developments.
…”

Will MINIX be ported to ARM/MIPS/SPARC/x86-64/Raspberry Pi?
Quote: “…
Yes. Porting to ARM is a top priority for the MINIX team.
…”

.

Source code:

https://github.com/Stichting-MINIX-Research-Foundation/minix

https://git.minix3.org/index.cgi?p=minix.git;a=summary

.

Pkgsrc on ARM
Quote: “…
Right now, no pkgsrc packages are available on the ARM port for MINIX3.
…
However, the main problem with this approach is that crosscompiling pkgsrc is not yet supported properly by pkgsrc itself.
…”

.

usenix.org: MINIX 3: status report and current research
Quote: “…
SUPPORT FOR MULTICORE CHIPS
…
Instead, we intend to treat each core as a separate computer and not share memory among them. In effect, our approach is to treat a multicore chip more or less like a rack full of independent PCs connected by Ethernet, only smaller. But we are not sure yet quite how this will work out, so we may allow some restricted sharing. We do believe (along with the designers of Barrelfish 6) that not sharing kernel data structures across cores will scale better to the large chips expected in the future.
…”

.

https://en.wikipedia.org/wiki/POSIX

 
Nov 20, 2021 9:02pm
Avatar Simon Willcocks (1499) 503 posts

Tanenbaum wrote the textbook for OS’s in my 1980’s CS degree.

My C kernel includes multi-processing, although there will have to be modifications to many modules and probably APIs to move on from the single processor expectation of the OS. I’m still working on getting all ROM modules to initialise properly.

https://www.riscosopen.org/forum/forums/9/topics/16166

 
Nov 21, 2021 9:00am
Avatar Glenn Moeller-Holst (8768) 16 posts

Thanks for your answer.

I did read “Porting RISC OS → C Kernel” but did not catch that you were that far in the process. Good luck with the work ahead.

 
Nov 21, 2021 8:08pm
Avatar Simon Willcocks (1499) 503 posts

At the moment, I’m wrestling with vectors again. Previously, I failed to return errors correctly, but now I changed it, I get a problem far earlier in the ROM Modules’ initialisations. I hope to have some more progress in the next few days.

(I may have exaggerated with “all ROM modules”, I’ve been going through, and excluding all the ones that don’t.)

Reply

To post replies, please first log in.

Forums → Porting RISC OS →

Search forums

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Description

Technical discussions for people porting RISC OS to new hardware.

Voices

  • Glenn Moeller-Holst (8768)
  • Simon Willcocks (1499)

Options

  • Forums
  • Login
Contact Us  |  About Us

The RISC OS Open Beast theme is based on Beast's default layout
Site design © RISC OS Open Limited 2024 except where indicated

Hosted by Arachsys

Powered by Beast © 2006 Josh Goebel and Rick Olson
This site runs on Rails