A totally New OS with .NET Core on top


#1

I own a new/old Operating System. It is not a clone of UNIX or Windows. It was from scratch written back in the 1980s as a multi platform, multi tasking, process to process, architecture.

At that time it was ported to the 386, the Fairchild Clipper, the Motorola 68020 and the IBM 9370(370) architectures. It looked like a Mac on steroids. The UI was a Xerox PARC type. The process to process messages were a bit like HTTP in that they were fully compatible with all of interconnected, supported, hardware architectures.

I nearly sold RING to IBM for a product that was code named the “370MK” for MacKiller. The 370MK was based on an IBM 370 chip set named “Churchill”, with only 3 chips. After a fun presentation in Armonk with 80 engineers attending, an IBM VP vetoed the entire project in favor of continuing with OS2. We all know where that went.

It appears to me that Microsoft has invested seriously in the implementation of .NET Core. I haven’s been able to contact anyone in Microsoft to discuss my thoughts. I’m interested to determine if the .NET Core team is interested in support for a unique, new OS.

Last summer I mentored an intern to transcompile RING’s proprietary source code, over 1 million lines, to C#. We made progress until the intern returned to college. We gained enough traction to conclude it was a feasible task.

Once the transcompiler would become operational, and the RING source converted to C#, we would adapt .NET Core to run upon RING . If any kernel level code was not appropriate for C#, it would be written in C.

The target here would be a solution for IoT real-time devices. Not graphical type smartphones. The human interface would be solely command line or browser based.

My goal would be to re-implement RING as full real-time OS, optimized for the ARM architecture and initially deployed on the Raspberry Pi 3 at no charge for experimentation while available for small per unit fees for commercial products.

I would having feedback other than, " no one needs another Operating System". I heard that before the Android and Steve’s Unix variant, iOS.

Thanks,

Jim Lennane


#2

I hate to say it but do we really need another operating system? :wink:
Anyways, we basically have the MS-DOS/Windows family of operating systems and the UNIX/BSD family. So the first thing I have to ask is if this “new” operating system is similar to one of these two. What kind of file system will it use? Will it support multi-threading? What kind of hardware would it support? and more importantly, why choose C#?
IOS is based on UNIX, Linux is based on UNIX. Android is based on Linux. A lot of free operating systems are basically based on UNIX in some way. Even Microsoft is embracing UNIX more and more these days. So I have to wonder why I would pay a small fee to use your operating system instead of just developing my own branch of Linux or FreeBSD. So, let me ask a slightly different question:
Why would we need a new, Commercial operating system?


#3

First of all, if you want to discuss porting .Net Core to a new OS, including attracting the attention of Microsoft engineers, I think that creating an issue in one of the https://github.com/dotnet repos is your best choice. Specifically, I think the CoreCLR repo would be the best fit.

I’m interested to determine if the .NET Core team is interested in support for a unique, new OS.

My guess:

  • They won’t implement and maintain the port themselves, because the OS is not popular enough.
  • They will probably be willing to help you with issues you encounter if you do the port yourself.
  • I don’t know if they would accept your changes that add support for the OS into the official .Net Core codebase. If not, you will have to maintain your own fork.

we would adapt .NET Core to run upon RING . If any kernel level code was not appropriate for C#, it would be written in C.

Keep in mind that CoreCLR is written in C++. If you want almost everything to be in C#, you would have to transpile that code too. (And I think that wouldn’t be an easy task.)

I would having feedback other than, " no one needs another Operating System". I heard that before the Android and Steve’s Unix variant, iOS.

Both have the backing of a huge corporation (and even that is not enough, see Windows Phone), I assume you don’t. It’s possible that an OS written by a single person or a small team becomes successful (see Linux), but I think it’s very unlikely to happen nowadays.


#4

Thank you for your thoughts. I will look into the references you supplied.

When RING was initially authored back in the 80s my company spent about $7 million on it. I was quite complete as a product. It was successfully deployed on 100s of Mortorola 68020 custom workstations we manufactured. into corporate publishing environments.

Earlier in evaluating the .NET project I did look into the implementation of Console.WriteLine. It is clear that the interface is at least into a C environment from the .NET Core code to the underlying OS.

However, it could possibly be implemented as some type of hybrid interface into C#.

My goal would be to avoid touching the .NET Core itself, rather to focus on the RING OS itself. I believe the goal of .NET Core itself is that it is OS agnostic.

One problem I face is that I do not have a bootable media that would allow me to demonstrate, today, the finished product from the 80s on a standard modern PC. I have all of the source code.

Last summer when we were examined the project, a choice was to work on the transcompiler or to work on a exe of the existing product for purposes of demonstration. In my current opinion, if I were to hire more interns this summer I would split the project into two tasks. 1) Create an executable for a PC using solely the existing code base, 2 ) continue to work on the transcompiler into C#

The original innovator of RING, was a recently graduated employee of mine. He is now a Senior Scientist at Google.

There is no doubt this would be an expensive project. I’ll tackle that if I can formulate a plan.

Jim Lennane


#5

The initial design was implemented on a number of hardware platforms. The most well known of which were the Intel 386 and the IBM 370. In this implementation I would focus on ARM devices.

It was multi tasking rather that threading. It could start, execute and end multiple tasks simultaneously. I noticed recently that Apple is now touting multitasking on the iPhones. RING was full OS in that respect for example a file to file copy while executing a word processor.

The file format was its own. I think today it would be better to implement a standard.

The goal here is not to create a free OS. Rather one that was commercially available for the RealTime market which at the moment seems supportive of the ARM design. Having income of some form helps with design continuity.

As I mentioned in the original post individual users such as in Visual Studio Community, would not pay anything.


#6

I doubt that’s possible, at least not without the OS implementing an API that makes it pretend to be Windows or Unix.

I don’t think it is. It certainly contains lots of OS-specific code. (And in rare cases, even distro-specific code.)


#7

Your main problem would be to convince others to buy a commercial product instead of using one that is open source, and thus free. You’re also asking users to rely on a closed-source product that is basically maintained by a small number of people instead of an open source product that actually has millions of people who are familiar with some of the code. You’re not just competing with windows, Linux and various BSD versions but also with FreeDOS, Plan 9, Darwin, GNU, ReactOS and several others.
If I look at the total list of operating systems that already exist, I think you will have a very strong competition. So, how useful will your operating system be compared to the ones that already exist or have existed?
Just the fact that it’s ARM-specific is no good reason as many operating systems nowadays will support ARM and other processors. Intel/AMD aren’t in control over the processor market anymore.
Would RING be good enough for IOT devices? I wonder, as it would have to support a lot of modern hardware. The Pi has an USB port, after all. And it would need to support WiFi, various different printers, BlueTooth and a lot more. Support for this hardware is already available in Linux, FreeBSD and windows IOT.
And I remember the SCO/Linux controversies where SCO claimed copyright over various pieces of code that were included in Linux. And a few more issues. But it makes me wonder about how much of RING has been built on open source software and how much more open source code it would need. As it is closed source, we don’t even know if it has any code that violates some other copyrighted code or worse, we don’t know if it uses GPL’ed code. It would be bad when users invest in RING to use it and discover that they have to abandon it again as you violated some copyright.
Reality is that closed source operating systems are losing grounds real fast. Even Microsoft is starting to give in to the demand for more free operating systems as they now support Linux applications within Windows.
So even while it would be free for experimental purposes, what advantage would RING give us over other operating systems?
As for the use of .NET core on my Raspberry Pi… Well, i could always use Windows 10 IOT or else stick to the .NET Core, which runs fine on Linux


#8

Perhaps I was too absolute in stating that we wouldn’t touch .NET Core itself. At present there are calls in .NET Core to each of the three OSs it is intended to support.
At least the simpler calls such as Console.WriteLine are quite easy to understand.
For some basis trials it would be possible to say translate a Console.WriteLine call to the Windows API into a call appropriate to RING.
I’m not saying any of this is trivial. I’m just investigating.


#9

This is an interesting point about how much of RING was based on open source. The answer in “None of it”. At the time it was being created in the 1980’s we were working on Tandem’s Fault Tolerant systems. Open Source wasn’t what is is today. I cant remember if the name Open Source had been coined.
RING didn’t copy anything. In some ways it was unfortunately written from scratch. Not even using UNIX or C. It was a massive effort including out only the OS itself but also a custom compiler and a custom Graphical UI that was only black and white.
I’m not arguing that almost any task can be implemented with today’s tools. I wish I had a demonstrable copy. It was fun, powerful and beautiful.


#10

Not many people realise it but open source is a very old concept that goes back to the time when programmers had to go to the customer’s location with the source code on magnetic tape or other mechanism, load the code on the customer’s system and compile it with the compiler that the customer had to provide. It used to be extremely common when there was a lack of standards in operating systems. Especially for academic purposes it used to be very common to share code without any licenses. The A-2 system was one of the earliest open source projects and is from 1953.
It wasn’t called “Open Source” back then as companies and universities just shared code. But any code generated back then would still be copyrighted and could have ended up in RING. If it did, I don’t know.
But if you’re going to modernize RING to modern hardware and modern standards then it’s likely that you will be using various different libraries. For example, libraries for the use of TCP/IP or WiFi. They already exist so why rewrite them? And I do know that there was no WiFi in the 1980’s. Even the Internet barely existed and not as we know it these days.
So RING will be an old legacy operating system running on modern hardware or a lot of code will need to be rewritten to adjust it to modern times. And there are plenty of old, legacy systems available that can run on e.g. the Raspberry Pi. The Amiga, MS-DOS, MSX, ZX Spectrum and all those other operating systems from the past are nuw running either natively or within emulators on modern hardware. And some of them have been modernized. (Amiga and DOS have more modern versions these days.) But these systems are all open source, as far as I know.
So, that brings me back to the question why RING would be worth spending money on? It would be interesting if it became open source but otherwise…


#11

One of the questions is where money would be spent. I have already spent a few bucks on it. If products are deployed in commercial wrappers, money is often spent by companies for a component of the solution. Right now I am not as concerned about the money that would be spent in modernizing it. I like it so I’ll keep looking into ways to integrate it into .NET Core. So for me its a technical endeavor at this point.
I was also back there in the beginning. Pinboards and paper tape.


#12

Here is a assumption and a related question. The assumption is: For the ,NET Core package to operate on any given OS, there must be a set of defined services that the OS must support. i.e. Console.WriteLine interfaces to the OS’s console i/o. So the OS would have code to support console I/O.
Does anyone know the publication that would specify the list of mandatory services an OS shall supply to support .NET Core?


#13

NET Core to run upon RING sound great and RING as full real-time OS, optimized for the ARM architecture.it great too.it seem we need new PC architecture purpose built for today challanges and future need. with this RING can be no 1 OS


#14

The concept is a purpose built product. The work I have funded recently was ti create a C# version of ring with a very limited set of I/O hardware handlers written in C or C++. It appears to me the standard interface between .NET Core and the three current O/S types has been designed as C interfaces.
I dont believe that would be necessary in a C# implementation of an OS. Comments please.


#15

i see that.great work man…yes i heared microsoft come with +20k API for .NET standard 2.0.and C# seem automate C++.maybe i must waiting that +20k API become new framework or not


#16

What are the benefits of your RING compared to something like Redux?


#17

I wasn’t familiar with Redux so I took a few minutes to look at it to respond to your inquiry.
If I am interpreting it correctly Redux would run inside some other environment such as a Windows, LINUX or a browser. I’ll study it more later.

RING runs at the machine level directly on the hardware. That is analogous to Windows OS, LINUX or VxWorks.

There are allot of other features in RING that wouldn’t have a role in the proposed implementation. For example, it had a small spreadsheet, graphics and a graphical user interface.

Certainly the spreadsheet would be superfluous. Only a basic graphical interface would be supported. My goal would be the support a standard browser as a the web server.

The RING implementation would host the .NET Core Standard.

Thanks for your interest


#18

Well no, its just in its early stages, so much drivers are not written yet. The UI in Redox is of course optional.

I see a huge issue in your OS: It is written in C# and that even transpiled from another language

So, the code is basically uneditable by others, right?


#19

The original language was C like. It wasn’t object oriented like C#. The work we did last summer created a very readable product.
I’ll send you a bit of each. I’m in the middle of something right now but I’ll get to it this weekend.

It’s a shame the original version wasn’t written in C. It was written in a language named OPL that was a clone of Tandem’s Fault Tolerant language named TAL. We did it that way because we wanted code compatibility between our own manufactured workstations and the Tandem Main Frames.

I’m sending you a copy of a 1986 Annual Report from System Integrators. The person on the front page is the principal architect of RING. Now a senior scientist at Google. The workstation he is working is running RING. Hundreds of those work stations were deployed with RING world wide.

I was the founder and head of System Integrators.


#20

Well, if you want widespread adoption, IOT is definitely a way to go for, since there is until not really a default operating system for those devices and .Net Core can give you a broad band of possible adopters on the development side.


.NET Foundation Website | Blog | Projects | Code of Conduct