Author Topic: ES/2 open source OS/2 kernel  (Read 45961 times)

RickCHodgin

  • Guest
ES/2 open source OS/2 kernel
« on: April 01, 2016, 03:13:09 pm »
This thread is created to discuss the creation of the next-generation OS/2 operating system, one which removes some legacy baggage in the base OS/2 design, and extends the functionality of the kernel to include some features which have been introduced in the past 15 years, including an augment to the basic UI to include 3D graphics and a new driver model which uses nodes and node connections rather than manual settings as their primary form of setting things up (see an example of this node system here in Blender's 3D software node editor).

I am open to thoughts, suggestions on this migration.  Please know that it comes from examining the base OS/2 kernel design, along with its CPI and portions of its API.  There are simply some things which no longer seem completely relevant, and can be replaced with a few similar abilities for those people who have real needs in those areas.

Ultimately I would also like for Exodus OS/3 to be a full hypervisor, allowing for guest OSes (including OS/3 and the existing versions of OS/2) to run within the machine virtually.

All it takes is the lot of us working together and we can do this. :-)

Best regards,
Rick C. Hodgin
« Last Edit: June 04, 2017, 01:58:42 am by Rick C. Hodgin »

RickCHodgin

  • Guest
Re: Exodus OS/3
« Reply #1 on: April 01, 2016, 04:16:02 pm »
I have spoken with Valerius on #osFree and discovered that "osFree" was supposed to be a similar sounding name, pronounced almost like "OS/3".

The osFree project and I have a lot of the same goals, but not all of them.  I'll keep working with the folk there to see what we can come up with.  In the mean-time, I'm continuing to develop my kernel toolset (assembler, and C compiler).

Best regards,
Rick C. Hodgin

RickCHodgin

  • Guest
Re: Exodus OS/3
« Reply #2 on: April 01, 2016, 05:47:16 pm »
There's something else that's factoring in to my future outlook for this OS/3 I'm targeting... and that's new technology coming out from Micron and Intel.  It promises to deliver 6TB (six terabytes) of non-volatile DRAM on a dual-cpu system.

What does this mean?  No more hard disks.   No more block storage devices except for loading and interchange between machines (USB disks, etc).  It means computers that instantly shut down, and come back on, with everything running exactly as it was before it was shut down, with the only things required to re-sync are live protocol devices, like internet connections, wifi, etc.

This is game changing technology and the OS of the future must target it appropriately.

3D XPoint non-volatile memory

Best regards,
Rick C. Hodgin

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4696
  • Karma: +41/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: Exodus OS/3
« Reply #3 on: April 01, 2016, 09:27:30 pm »
Hi Rick

My only advice (based on my limited knowledge) to you is to try grab as much as possible of open source code that we have available for other attempts to clone the platform. Like I told you on the other post there are several other projects that can be recycled to allow you to save some time. Just check that the open source license of those projects are compatible with what you are trying to do.

Like I told you before my interest it is for projects that are compatible with OS/2, for something this is the OS2World community :)

Good luck with this project. I think that if it shows some progress and benefit for the OS/2 community some other people will join to help.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

RickCHodgin

  • Guest
Re: Exodus OS/3
« Reply #4 on: April 02, 2016, 04:25:33 pm »
Like I told you before my interest it is for projects that are compatible with OS/2, for something this is the OS2World community :)

Good luck with this project. I think that if it shows some progress and benefit for the OS/2 community some other people will join to help.

Regards

I will do my best.

Best regards,
Rick C. Hodgin

PS - I have dyslexia.  I'm amazed at the things I write (or don't write) sometimes when I go back to re-read it.  In my head, it's all good.  Even when I proof-read it at the time it's all good.  My eyes don't see what my mind thinks is there. :-)  So, out of my fingers and apart from my eyes, some stuff gets lost in translation rather often. :-)
« Last Edit: April 04, 2016, 12:40:05 am by Rick C. Hodgin »

Neil Waldhauer

  • Hero Member
  • *****
  • Posts: 1020
  • Karma: +24/-0
    • View Profile
    • Blonde Guy
Re: Exodus OS/3
« Reply #5 on: April 03, 2016, 04:16:20 pm »
I want to recommend  The Design of OS/2 by Deitel and Kogan. The book will give you a general idea of how OS/2 works. It will also give you insight on how existing OS/2 programs can transcend their limitations in RAM and disk size.

https://archive.org/details/DesignOfOS2

Expert consulting for ArcaOS, OS/2 and eComStation
http://www.blondeguy.com

Sergey Posokhov

  • Full Member
  • ***
  • Posts: 169
  • Karma: +8/-6
    • View Profile
    • OS/2 API Research
Re: Exodus OS/3
« Reply #6 on: April 04, 2016, 12:11:35 pm »
There are some books at Hobbes,
http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/dev/info
For example, DDK/2 FAQ explains how device drivers works with program data, interrupts and other drivers .

Also,
Some people who reads the forum (David, Steve, Paul, AltSan, AlexT, Pasha etc. etc.) knows a lot about kernel internals.
Question your answers and we will ignore them^W^W help.

RickCHodgin

  • Guest
Re: Exodus OS/3
« Reply #7 on: May 16, 2016, 02:26:40 pm »
I have settled on the name ExoduS/2, which I will call ES/2.  I have plans for work to complete, and an initial timeframe for completion.  These are all very rough estimates, but we'll see how it goes:

My current plans are (if all goes well (James 4:15 :-) "Lord willing")):

#1 -- (thru May 31) Develop a sanitizing debugger for Windows (a personal project I need to track down specific bugs)
#2 -- (thru Jun 15) Complete my 386 assembler
#3 -- (thru July 15) Complete my simple C compiler (no standard library support, just syntax parsing)
#4 -- (thru Aug 1) Get my kernel to boot in my own assembler
#5 -- (thru Sep 1) Begin porting portions of my kernel to my simple C compiler
#6 -- (thru Oct 1) Port my xbase application (Visual FreePro, Jr., VJr for short) to my kernel *
* Note:  I'll then use the system I've developed for VJr as the base for my IDE and object-oriented GUI.
#7 -- (thru Nov 1) Begin extending the IDE to support my integrated debugger model (kernel and application level in one tool)
#8 -- (thru Jan 1, 2017) Have my kernel booting and running well, with API support for OS/2 added, but not all of it will yet be fully functional (just the main parts I'm using).
* Note:  Once I get those stages completed, I'll be ready to begin porting and working on creating new applications.

-----
Once I get to #8, I'll have a solid system created from the ground up which I can use to develop all future products.  It will use the base OS/2 API, along with some extensions, and my ultimate goal is to allow any OS/2 application which has source code to be recompiled without any changes to get it to work.

-----
Currently I'm working on my sanitizing debugger (if you want to follow along):
https://github.com/RickCHodgin/libsf/tree/master/utils/sdebug

After that, my assembler.  I am currently re-writing my token parsing algorithms to no longer be line-based, so that there can be a free-flow syntax form that doesn't require line-by-line breakouts (something I previously had determined I did want because it often make source code easier to read, but I later decided not to enforce the requirement in source code for those who don't see value there):
https://github.com/RickCHodgin/libsf/tree/master/exodus/tools/lasm

And then my simple C compiler (this will be a simple translation mechanism from C source code into assembly, without optimization at first, but just a way to manipulate complex objects without having to do so in assembly):
https://github.com/RickCHodgin/libsf/tree/master/exodus/tools/lcc

-----
I've been working on a project so far this year called gforms2.  It is for my regular day job, and it has taken six weeks longer than I had planned to get completed because the customer changed some of the specs at the 11th hour, and I redesigned part of the system to accommodate those changes.

It's working now, and my evenings and weekends are again returned to me. :-)  So ... the train is now beginning to move:  https://www.youtube.com/watch?v=RDZxvHE2s60&t=0m38s

"I think I can.  I think I can.  I think I can.  I think I can."  :-)

Best regards,
Rick C. Hodgin
« Last Edit: May 16, 2016, 02:32:44 pm by Rick C. Hodgin »

RickCHodgin

  • Guest
Re: Exodus OS/3
« Reply #8 on: May 30, 2016, 03:37:58 am »
#1 -- (thru May 31) Develop a sanitizing debugger for Windows (a personal project I need to track down specific bugs)

In the process of creating this feature, I'm extending my Visual FreePro, Jr. IDE to include drag-and-drop feature like those seen in Visual Studio where the various developer / debugger windows can be moved around in a free form manner, dropped into other windows as tabs, created as stand-alone windows, and so on.  It's pushing my time frame out commensurately.

Best regards,
Rick C. Hodgin

RickCHodgin

  • Guest
Re: Exodus OS/3
« Reply #9 on: June 08, 2016, 06:49:03 pm »
I'm extending my Visual FreePro, Jr. IDE to include drag-and-drop feature like those seen in Visual Studio where the various developer / debugger windows can be moved around in a free form manner, dropped into other windows as tabs, created as stand-alone windows, and so on.  It's pushing my time frame out commensurately.

I am still working on this, but I have had my normal job-related work that has taken my time.  Completing these tasks are my biggest non-life-need priority right now.  I have no other projects ahead of them.

I started an offline blog the other day outlining my progress.  I'll try to update it each day with notes on anything that's happened, or whatever's prevented me from working on the system that evening/day.

The blog is here:  http://www.libsf.org/es2/tasks.html

The GitHub repository commits are here:  https://github.com/RickCHodgin/libsf/commits/master
Note:  Look for anything that has "carousel" or "rider" in the title.

Best regards,
Rick C. Hodgin
« Last Edit: June 09, 2016, 02:25:31 pm by Rick C. Hodgin »

RickCHodgin

  • Guest
Exodus/2 Development
« Reply #10 on: June 20, 2016, 06:15:15 pm »
For the past several weeks I've been working on a project at my job.  It has wound up evolving into a much larger project than when it started.  It is now a complete graphical forms engine which users can wield to create ad hoc data input, query, reporting, and storage systems.  I call it "general forms" and it will be a feature that is added in to a project I have called Visual FreePro, Jr., and its parent project Visual FreePro.

I plan to return to Exodus/2 (ES/2) development this week.
You'll be able to keep track here:

Blog
GitHub source code repository commits

I'll only be able to work on it on evenings, weekends, and holidays.  If you'd like to keep in touch on chat or email, send me an email and let me know.  I am at my name at gmail.com.  Use periods for spaces like "john.x.doe" but with my name in there. :-)

Best regards,
Rick C. Hodgin
« Last Edit: June 20, 2016, 06:32:11 pm by Rick C. Hodgin »

RickCHodgin

  • Guest
Re: Exodus/2 Development
« Reply #11 on: June 22, 2016, 06:42:14 pm »
I plan to return to Exodus/2 (ES/2) development this week.
You'll be able to keep track here:

Blog
GitHub source code repository commits

It's official!  I've completed my work-related tasks.  My "free time" is now purposed fully on ES/2 development.  I plan to begin tonight.

If any of you have C/C++ coding skills and would like to help, please email me.  Even if your skills aren't very good, you could still help with testing, documentation, etc.  It would be appreciated.

Best regards,
Rick C. Hodgin
-- May the Lord lead me and guide me --

RickCHodgin

  • Guest
Re: Exodus/2 Development
« Reply #12 on: July 03, 2016, 12:09:59 am »
I plan to return to Exodus/2 (ES/2) development this week.
You'll be able to keep track here:

Blog
GitHub source code repository commits

I'm now working on developing the LibSF assembler (lasm) to get my Microsoft MASM 6.11d source code to compile.  I have previously run a conversion on the Microsoft source code syntax to convert to lasm's syntax.

See the syntax variations if interested:
Microsoft MASM 6.11d
LibSF assembler
Visual FoxPro source code I wrote to convert MASM 6.11d to lasm

The only additional changes I plan to make are (1) changing "<u32>" to only "u32", and for all similar forms.  I'm finding the < and > somewhat annoying as I look at them later. :-)  And (2) to make the default operand size the target ISA size (16-bit, 32-bit, or 64-bit), thereby removing the need to include it on most source code lines.  However, I will complete that change later.

This development should produce a kernel which is identical to the one which would be compiled by Microsoft's ml.exe.  When lasm is completed, I'll then port the OS/2 API to my kernel, make decisions about what will and will not be supported.  I've already decided to throw out Win16 support, but will support DOS, and will also extend the kernel to support 64-bit code at a later date.

I made the decision to drop Win16 support because I plan to port a modified version of Bochs to my kernel, allowing for true soft machines which can run any x86-based code, including 64-bit code, on any machine.  Since Win16 code was designed to run on much slower machines, even in full software emulation under Bochs, it should run at speeds commensurate or greater than those seen on the hardware of the day.

If anyone has any particular needs for Win16 code, please let me know.  And as I make decisions about what to keep and what not to keep, if you have any thoughts about those decisions, please let me know as well.

Best regards,
Rick C. Hodgin
-- May the Lord lead me and guide me --
« Last Edit: July 03, 2016, 12:22:39 am by Rick C. Hodgin »

Olafur Gunnlaugsson

  • Full Member
  • ***
  • Posts: 244
  • Karma: +5/-0
    • View Profile
Re: Exodus/2 Development
« Reply #13 on: July 03, 2016, 02:05:28 am »
I'm now working on developing the LibSF assembler (lasm) to get my Microsoft MASM 6.11d source code to compile. 
Why not use one of the WASM derivatives that are already MASM 6.x compatible?

RickCHodgin

  • Guest
Re: Exodus/2 Development
« Reply #14 on: July 03, 2016, 04:05:34 am »
I'm now working on developing the LibSF assembler (lasm) to get my Microsoft MASM 6.11d source code to compile. 
Why not use one of the WASM derivatives that are already MASM 6.x compatible?

I also have the original MASM 6.11d that still works properly, along with the Microsoft C 6.0 compiler I used for C code at the time, and the CodeView debuggers that go along with them.

It's because I'm creating the Village Freedom Project for the Liberty Software Foundation.  I want to create something similar to what the Free Software Foundation has done with GNU, but to do it with an effort focused on expressly serving the Lord, rather than expressly not serving the Lord.

My backstory is here if anyone's interested:
[brief summary] I was an atheist until 2004.  I met Jesus Christ and was changed that year, and have been changed ever since.  I've been amazed at the changes.  It's taken me time to sort out things in my life.  I kept trying to assert things that weren't truly what I believed in and felt, so it was a slow process because I'm pretty hard headed.  In 2009-2010 I had decided to start working on some free software projects (free software meaning copyleft).  Free software uses the copyright system for the benefit of the recipients rather than the authors.  It's like copyright flipped over, so they call it copyleft.  I continued on those efforts creating my own original software, and decided in June 2012 that I would use my OS development skills and complete GNU's HURD kernel for the Free Software Foundation.  I contacted Richard Stallman and told him my plans.  He suggested I don't work on the HURD kernel, but instead work on creating a better Adobe Acrobate clone, and some other similar apps.  I considered these things, and did some research into Stallman.  I discovered some disturbing things about him, and I confirmed them in email.  They were exceedingly non-Christian viewpoints, and decided that I could not do any work for either the FSF or GNU because both are Stallman's creation, and because Proverbs 29:12 is real.

I then reflected upon who I was, what I served (God, Jesus Christ), and what I could do with my talents.  I had begun work in 2010 on a free software replacement for Visual FoxPro (called Visual FreePro), but I didn't get very far on it.  It was now July, 2012 and I considered several possibilities.  I decided to create an alternative to the Free Software Foundation and it's non-belief in God foundation and form, and to create one that was a pursuit of serving God.  I created the Liberty Software Foundation, and called my software liberty software instead of free software.

That was July 12, 2012, and I've been pursuing those goals ever since.  During that time I've had two other developers come on board in 2015 and help me for several months, but the rest of the work has been my own.  I have asked on forums for help, gone places offering my skills and abilities, and because I am someone who places a priority on Jesus Christ at the head of my life, making it something that's visibly out front in my endeavors, I just can't find people who are willing to get past that and come on board and help.  I've even had several people who profess to have a strong relationship with Jesus Christ to tell me how I am doing it so very wrong.

I desire with the software I'm creating for the Liberty Software Foundation to create a full ground-up effort, from even the hardware and machine BIOS at some point, but for now the OS kernel, to drivers, to OS utilities, to applications, to toolsets, etc., to be an offering unto the Lord explicitly, by name, because I acknowledge that everything I have has come from Him, that I am not a self-made man, and that without Him I would've had nothing.

It doesn't seem to be something people want to be a part of ... so I continue on alone (much to my sadness).

Best regards,
Rick C. Hodgin