Public Discussions > General Discussion

ES/2, the open source OS/2

(1/6) > >>

RickCHodgin:
I've been going over the OS/2 API and there is so much in there that can be removed or combined to be made simpler overall.

I really think the OS/2 designers made things much more difficult than it needed to be, and probably some of that was for legacy purposes.  But to create a new OS/2, one with a simple, elegant, yet completely robust and powerful API, to be created for a very powerful operating system ... I think a from-scratch effort would desire to pare down significantly the API, and provide a much better tool for development, debugging, maintenance, and expansion.

There are so many aspects of design I'd like to keep in moving forward, so the open source ES/2 looks and feels very much like OS/2 even down to many of the same settings levels, but I have come to realize that about half of the API can be dropped (at least for the initial release), and then anything that is deemed essential can be added back in later.

There are also new features that need to be added, like full 64-bit support, NUMA awareness, plug-in abilities for expansions available on certain hardware architectures (like Intel's AVX).  And there needs to be support for a modern bootable version on newer BIOSes.  I would also like to create a translation layer between Windows and ES/2, so that a person can #include <es2_windows.h> instead of #include <windows.h> and have it automatically compile and run their 32- or 64-bit Windows apps in ES/2 without changing anything.  I began working on one of these translation layers for Linux to Windows in 2014, and got it nearly 100% designed for my project's needs, and about 40% coded.  I'd like to do the same for Windows, so that we can have access to all software that would run on Windows 7 or Windows XP or earlier.

I'm looking to make ES/2 be a modern OS, but one that is designed in the OS/2 tradition and likeness.  I am looking to do this because we already have OS/2, eCM, and ArcaOS for true OS/2 implementations, and these can be run in a virtual machine if true OS/2 is needed.  But a new thing needs to be addressing current and future hardware trends, and that's where I want to position ES/2.

I am still planning ES/1 as an interim release for simple testing of device drivers that will become part of the full ES/2.  And I would also like to make ES/2 be a non-monolithic kernel, but one made up of discrete servers that all interact with one another, linked together dynamically at bootup, able to have individual modules unplugged, then plugged back in so that updates can occur without rebooting.

I would appreciate any feedback (positive, neutral, or negative).  I'd like to hear what you think.

Martin Iturbide:
Hi Rick

My opinion is that it will be better to start with something smaller and that can allow you to show progress in a positive way. I would lean more on trying to replicate/clone some of the OS/2 API working over OS/2 and ArcaOS. For example: Trying to create a CPI clone that works over OS/2 and that can little by little replace DOSCALL1.DLL. Like creating a fake "DOSCALL1.DLL" with some of the functions replacements and rename IBM's DOSCALL1.DLL to "DOSCALLX.DLL" and what can not be cloned yet forward it to the IBM's DLL until with time and more development a full "DOSCALL1.DLL"  clone can be achieved. The first version does not has to be perfect, the idea will be to have a starting point of something that can grow with time, and that is also the importance of using an open source license.

Or it can be with some other PM DLLs (PMMMERGE.DLL?) or any other component. So, instead of trying to go directly from scratch and from zero, you can do something over OS/2 that can be growing and showing progress at the same time. It would be interesting to show some accomplishment in a component that can be used under OS/2 and that is open source so it can keep growing.

The idea is not to take you away of the path of you ES/2 goal, the idea is to make something that can work on the current OS/2, show accomplishment, show benefits for the OS/2 user/community, and that can also be part of the bigger ES/2 when you get more time and support to accomplish a full OS.

Like I said before, this is just my opinion.

Regards

RickCHodgin:
In the next several months I'm going to present a full API outlining the functions I believe should be kept, which kernel modules or DLLs they belong to, along with the functions that are able to be deleted with the reason(s) why.

There really is a lot of unnecessary baggage tied up in the API.  A much cleaner / smaller / more elegant API can be created, one which will allow us to develop powerful applications for everyone to use, and without losing any functionality, and in some cases gaining some new functionality more modern OSes have brought into existence.

Martin Iturbide:
Hi

The other crazy idea will be to replace the kernel with something Haiku OS, Zircon (Fuchsia OS) or any other open source Microkernel kernel. There is a very initial try to run OS/2 apps on Linux with 2ine but it requires a lot more work to be usable, and also, we are microkernel guys :)

Changing the kernel and making OS/2 IBM's binaries running over a different kernel, like tricking PM, SOM, WPS and OS/2 apps to run over a non OS/2 kernel, will be an scandal for the community. It is logical since in technical terms developers thinks that the kernel is the OS. On the other side the regular user does not interact directly with the kernel and does not know what a kernel is, while the user have the same apps and same GUI experience he think he is using the same OS he always used.

Sharing a kernel with another community can be a good thing. If we set a crazy example, that we make OS/2 components and apps to run over Zircon it will benefit both communities. Zircon (Fuchsia OS) will finally start to have a user base, while the OS/2 users can benefit from the drivers created for that platform (...and all the money that Google is putting on it ).

A crazy idea (and scandal) like this will also benefit the dream of an open source OS/2 clone and ES/2, since all the effort for cloning CPI required to run on a different kernel can be also reused for anybody that wants to create a OS/2 based open source kernel.

Regards

RickCHodgin:

--- Quote from: Martin Iturbide on October 24, 2018, 06:52:54 pm ---The other crazy idea will be to replace the kernel with something Haiku OS, Zircon (Fuchsia OS) or any other open source Microkernel kernel. There is a very initial try to run OS/2 apps on Linux with 2ine but it requires a lot more work to be usable, and also, we are microkernel guys :)

[snip]

Sharing a kernel with another community can be a good thing. If we set a crazy example, that we make OS/2 components and apps to run over Zircon it will benefit both communities. Zircon (Fuchsia OS) will finally start to have a user base, while the OS/2 users can benefit from the drivers created for that platform (...and all the money that Google is putting on it ).

A crazy idea (and scandal) like this will also benefit the dream of an open source OS/2 clone and ES/2, since all the effort for cloning CPI required to run on a different kernel can be also reused for anybody that wants to create a OS/2 based open source kernel.
--- End quote ---

One thing to remember about my efforts is I'm not just doing them to do them.  I have a purpose.  I have agreed not to discuss that purpose here on this forum, but it is my #1 driving force.

Remember also that the reason I started the Liberty Software Foundation under the flag and banner I did in July 2012 was following my desire to go to GNU and finish their HURD kernel for them.  I was going to give GNU a viable non-Linux alternative.  In researching that kernel, more about GNU, about the FSF and even Richard Stallman himself, I came across some information that made me abandon that effort and begin anew from a fresh ground-up creation of a new kernel.

In 2012 I had planned to create an open source replacement for Visual FoxPro, which had been cancelled shortly before.  I had expected many developers to come on board and help me complete that project because it was a very popular tool used by many 10s of thousands of developers, and I was looking to release it under a basic clone of the GPLv3 at that time (later changed to more of a Public Domain style license).  However, because of the flag and banner I operated the project under, I literally only had two other developers step forward and agree to help and actually write any code toward the project.  As such, I spent the next 2.75 years of my life working on Visual FreePro effectively by myself, until I made myself sick in early 2015.  I went to the doctors and was examined and they couldn't find anything physically wrong with me.  People told me I had exhausted myself and maybe I did.  I don't know.  I know that since then I've had a more difficult time working and concentrating as deeply as before.  But I've stepped up my exercise, changed my eating habits, stopped drinking soda / colas / caffeinated beverages, and am mostly drinking water now, etc.  I feel better, and here in 2018 for the first time I've truly sort of come back to my own and am able to work almost as before.

I am older now.  When I began in 2012 I was 42, almost 43.  I'm now 49.  I have looked at those 6+ years of development and where I am compared to where I wanted to be.  The flag and banner I operate under has been a great hindrance to me in getting people to work on my projects, but slowly and steadily I am making real progress toward my goals.  I have about 200,000 lines of code written by now in various projects, and am moving forward atop those building blocks so much of the later code I write (in terms of line count) actually does considerably more than the early code.

My goals are to create a new OS/2 that is not OS/2.  I want the existing code bases that were written for OS/2 to be re-compilable under ES/2, but I am not going to design it the same way, and I am not going to support all of the existing API features.  I can add back in any that people need, but initially it's literally going to be about half the overall API, and if applications are written to use those features, no user will be able to tell a difference between running in OS/2 and running in ES/2, save the more modern color scheme, etc.

With ES/2, I am creating an offering for the world.  It's not just another project.  It's a project explicitly given under that flag and banner I'm in pursuit of.  I have the skills and talents to accomplish this, and I am working with great diligence to get to the place where I'm able to devote my full time to these projects, and to even be able to hire other developers.

It is a long-term goal, and I am committed.  If some people could look past the flag and banner, and see the raw me at work with such passion, they would be moved by what I'm doing, and seeking to do.  And while I don't do it for people primarily, they are my secondary goal.  My first goal is to honor that which I refer to when I say I operate under a particular flag and banner.

I am resolute in moving forward.  I have to go through steps to get there so that the foundation is built before the upper structures.  But keep watching.  Provided nothing happens to me, and if it is willed to be so, I will continue on this project and in time will give the world something new they can use that is distinctly different from other things, because of the flag and banner I operate under.

It's going to be a regular OS, very similar in overall design and feel to OS/2.  I will have regular apps.  Be completely usable by people to do their daily work.  It will connect to the Internet and there will be web browsers, email, all manner of socket connections, office apps, databases, compilers, form developer tools, etc.  It will be a complete system.  All of the steps I'm working on now are heading toward that end.  And if I could find developers willing to come on board and operate under that same flag and banner I do/am, then it would be done that much faster.  But to date ... nobody finds enough value in that flag and banner to put in the time.

It will come.  When the time is right it will all break loose very quickly because each of the pieces are close.  If I can get the situation worked out so I can devote more time to these projects, and even hire other developers to help me, then we'll really see some things moving forward.

In time.  Patience.  Persistence.  Vision.  Hard work.  Dreams of the end goal.  These are all required, and they are all in effect.

Navigation

[0] Message Index

[#] Next page

Go to full version