OS2 World Community Forum

Public Discussions => General Discussion => Topic started by: RickCHodgin on April 01, 2016, 03:13:09 pm

Title: ES/2 open source OS/2 kernel
Post by: RickCHodgin 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 (https://www.youtube.com/watch?v=gxLEv1k8VMI&t=2m43s)).

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
Title: Re: Exodus OS/3
Post by: RickCHodgin on April 01, 2016, 04:16:02 pm
I have spoken with Valerius on #osFree (http://irc://irc.inet.tele.dk/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
Title: Re: Exodus OS/3
Post by: RickCHodgin 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 (http://www.tweaktown.com/news/49408/intels-3d-point-technology-enables-up-6tb-system-memory/index.html)

Best regards,
Rick C. Hodgin
Title: Re: Exodus OS/3
Post by: Martin Iturbide 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
Title: Re: Exodus OS/3
Post by: RickCHodgin 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. :-)
Title: Re: Exodus OS/3
Post by: Neil Waldhauer 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 (https://archive.org/details/DesignOfOS2)

Title: Re: Exodus OS/3
Post by: Sergey Posokhov 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.
Title: Re: Exodus OS/3
Post by: RickCHodgin 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 (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
Title: Re: Exodus OS/3
Post by: RickCHodgin 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
Title: Re: Exodus OS/3
Post by: RickCHodgin 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 (http://www.libsf.org/es2/tasks.html)

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

Best regards,
Rick C. Hodgin
Title: Exodus/2 Development
Post by: RickCHodgin 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 (http://www.libsf.org/es2/tasks.html)
GitHub source code repository commits (https://github.com/RickCHodgin/libsf/commits/master)

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
Title: Re: Exodus/2 Development
Post by: RickCHodgin 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 (http://www.libsf.org/es2/tasks.html)
GitHub source code repository commits (https://github.com/RickCHodgin/libsf/commits/master)

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 --
Title: Re: Exodus/2 Development
Post by: RickCHodgin 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 (http://www.libsf.org/es2/tasks.html)
GitHub source code repository commits (https://github.com/RickCHodgin/libsf/commits/master)

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 (https://github.com/RickCHodgin/libsf/blob/master/exodus/source/boot/boot.asm)
LibSF assembler (https://github.com/RickCHodgin/libsf/blob/master/exodus/source/boot/boot.lasm)
Visual FoxPro source code I wrote to convert MASM 6.11d to lasm (https://github.com/RickCHodgin/libsf/blob/master/exodus/tools/xbase/convert_asm_to_lasm.prg)

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 --
Title: Re: Exodus/2 Development
Post by: Olafur Gunnlaugsson 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?
Title: Re: Exodus/2 Development
Post by: RickCHodgin 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 (https://en.wikipedia.org/wiki/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
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 03, 2016, 09:41:44 pm
I'm going to try some live coding sessions and see how they go.  I'm working on getting the microphone setup.  Please see the development blog for the URL.  It will appear at the top.  It's pretty boring, so just stop by and tell me if it's working. :-)

This session began at 3:35pm EDT on Sunday, July 3, 2016.

Development Blog (http://www.libsf.org/es2/tasks.html)

UPDATE:  The session went well.  I had three visitors that weren't immediate family members. :-)

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 04, 2016, 07:14:49 pm
Live coding again today.  Click the "live coding now" link to join in.  I can chat briefly if you have questions:

Development Blog (http://www.libsf.org/es2/tasks.html)

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: Martin Iturbide on July 04, 2016, 08:38:02 pm
Just as a sidenote:
The screen sharing (join.me) works fine on Firefox OS/2, even the full-screen. But the audio  and video requires an special app.

Regards
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 04, 2016, 09:39:25 pm
Live coding again today.  Click the "live coding now" link to join in.  I can chat briefly if you have questions:
Development Blog (http://www.libsf.org/es2/tasks.html)

It worked well.  I had posted that I would be live coding on this machine to the comp.lang.c group, and I had a total of four visitors at various times, excluding family. :-)

It slows down my development speed notably.  It may be because I'm on my laptop, but I'm guessing because it's compressing and broadcasting the video at the same time.  I may need to limit my live coding to when I'm not on a virtual machine, but when I'm on a real machine, and possibly only when I'm on my desktop machine.

We'll see.  It may not be something people are interested in.  Nonetheless, I enjoy the company. :-)

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 04, 2016, 09:46:20 pm
Just as a sidenote:
The screen sharing (join.me) works fine on Firefox OS/2, even the full-screen. But the audio  and video requires an special app.
Live-Join-Me.png (468.52 kB, 1444x944 - viewed 7 times.)
Regards

That's not very good quality of video there.  I can see there it was a snapshot when switching between the debugging and the development screens.  It gets fuzzy when it does that due to the large number of screen changes coupled to the video compression algorithm in trying to deal with the large number of changes over a short period of time.  After the screen switch it continues to redraw itself and in a few seconds comes back to good quality.

I believe you're in Ecuador, so I hope in normal debugging and development mode it looked better.

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: Martin Iturbide on July 04, 2016, 11:05:15 pm
Hi Rick.

It may be because I reduced the size of the screen to take the screenshot. When I was checking it on full  screen it was readable from here.

Regards
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 04, 2016, 11:44:27 pm
It may be because I reduced the size of the screen to take the screenshot. When I was checking it on full  screen it was readable from here.

Possibly.  When I tested join.me I saw it was fuzzy on major screen changes, but during normal typing and so forth it was good.  It may also be because I'm on WiFi.  When I'm on the LAN it may be better.

I've also tested it using Microsoft's Edge browser on Xbox One, and it worked on there!  :o  I was amazed.

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 04, 2016, 11:48:11 pm
All it takes is the lot of us working together and we can do this. :-)

I'm very excited about this project!

I've done some significant refactoring to make some of the fundamental libraries in the LibSF toolchain a little more generic, and, therefore, more robust.  Once everything's completed, they should provide a nice well-debugged set of tools for people to use for low-level file processing algorithms, including parsing keywords into a type of known language, as well as having a new OS/2 developer toolchain.

 ;) Here's to the future of OS/2 software!

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 10, 2016, 11:01:04 pm
;) Here's to the future of OS/2 software!

I spent some time in GIMP dreaming today:

http://www.libsf.org/images/es2_slipstream.png (http://www.libsf.org/images/es2_slipstream.png)

A reference to technology introduced on Stark Trek Voyager that's much faster than warp (http://memory-alpha.wikia.com/wiki/Quantum_slipstream_drive) (and a YouTube video (https://www.youtube.com/watch?v=Shb1IsoUMzs)).

Adapted (http://www.libsf.org/images/es2_slipstream.png) from IBM's OS/2 logo (http://img08.deviantart.net/01ab/i/2013/101/6/2/ibm_os2_warp_blue_wallpaper_by_tempest790-d618ykz.png).

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on July 11, 2016, 01:30:57 am
;) Here's to the future of OS/2 software!

I spent some time in GIMP dreaming today:

And I considered a version that's more like DNA ... though it still needs some tweaking:

http://www.libsf.org/images/es2_slipstream_dna.png (http://www.libsf.org/images/es2_slipstream_dna.png)

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on August 10, 2016, 03:23:31 pm
These past few days I've taken a brief break to work on another real-world project in my garage.

Developer Blog (http://www.libsf.org/es2/tasks.html)

I plan to come back to my assembler tonight and to work on it continually, with periodic breaks where I alternate between the real-world project and my es/2 project.

Right now I plan to have the kernel booting and the bulk of the OS/2 API implemented in source code by January 1, 2017.  All of 2017 will be devoted to getting my simple C compiler created, and then all of those functions in the kernel working properly.  I already have a kernel debugger, and I have an IDE I've designed for another project.  Those will be integrated into my kernel to provide native facilities for handling forms and objects.

I could use help.  The door remains open to anyone willing to contribute.

Best regards,
Rick C. Hodgin

PS - My real-world project is SuperJet (http://www.libsf.org/images/superjet/), an EFI replacement for Ford F-150 4.9L 300 I6 engines.  See also GitHub (https://github.com/RickCHodgin/libsf/tree/master/source/superjet) for all source code.
Title: Re: Exodus/2 (ES/2)
Post by: Martin Iturbide on August 10, 2016, 11:16:02 pm
Hi Rick

I wish you the best with your projects, even the one with the F-150 which looks interesting :) 

I really hope you can eventually produce something that can work on the current OS/2 as an open source replacement of the old IBM close source code. For example if you manage to complete your kernel and some basic CPI API in a way you can "trick" OS/2's Presentation Manager to run over it (even if it is not completely stable on the first releases), that can be a good starting point to get more support or feedback from the community. Sure, a different kernel will break current OS/2 drivers compatibility, but in my opinion drivers come and go, CPI API and PM are the soul of OS/2 apps.

I think I told you before, my main concern is to have replacements that retains the compatibility with OS/2 (some exceptions may apply), so it can keep running OS/2 applications on it, instead of having a new OS/2 inspired OS that can not run OS/2 apps.

Regards.

Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on August 10, 2016, 11:30:35 pm
Hi Rick

I wish you the best with your projects, even the one with the F-150 which looks interesting :) 

I really hope you can eventually produce something that can work on the current OS/2 as an open source replacement of the old IBM close source code. For example if you manage to complete your kernel and some basic CPI API in a way you can "trick" OS/2's Presentation Manager to run over it (even if it is not completely stable on the first releases), that can be a good starting point to get more support or feedback from the community. Sure, a different kernel will break current OS/2 drivers compatibility, but in my opinion drivers come and go, CPI API and PM are the soul of OS/2 apps.

I think I told you before, my main concern is to have replacements that retains the compatibility with OS/2 (some exceptions may apply), so it can keep running OS/2 applications on it, instead of having a new OS/2 inspired OS that can not run OS/2 apps.

Regards.

My goal is to be almost fully API compatible (no Win16 support), but not binary compatible.  Nearly every OS/2 app that has source code could be recompiled with my C/C++ compiler, and run without change.  The rest would require tiny changes, and then recompile.

Binary compatibility would require reverse engineering some of the existing code base, and that's simply illegal.  If someone can get me permission from IBM to reverse engineer the portions of their binary code I'll need to do this, I'd be happy to also make it fully binary compatible.

However, my true goals are to have OS/2 live on in ES/2, which will provide everything outwardly that OS/2 originally had, with some evolution for modern OS, hardware, network, and UI features.  I think OS/2 is the best OS ever, and it deserves this devotion.

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on August 10, 2016, 11:43:12 pm
I really hope you can eventually produce something that can work on the current OS/2 as an open source replacement of the old IBM close source code. For example if you manage to complete your kernel and some basic CPI API in a way you can "trick" OS/2's Presentation Manager to run over it (even if it is not completely stable on the first releases), that can be a good starting point to get more support or feedback from the community. Sure, a different kernel will break current OS/2 drivers compatibility, but in my opinion drivers come and go, CPI API and PM are the soul of OS/2 apps.

I explicitly intend to write a complete replacement for OS/2 which is fully API compatible, and UI-identical, to the OS/2 PM, down to the full object model.

We'll see what happens though.  That is my plan ... but life is what goes on around you when you're busy making other plans, right? :-)

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: Martin Iturbide on August 11, 2016, 12:11:17 am
I explicitly intend to write a complete replacement for OS/2 which is fully API compatible, and UI-identical, to the OS/2 PM, down to the full object model.

It is always good to validate it :)

... but life is what goes on around you when you're busy making other plans, right? :-)

Yes, you never know.

Regards
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on August 11, 2016, 02:02:58 pm
I explicitly intend to write a complete replacement for OS/2 which is fully API compatible, and UI-identical, to the OS/2 PM, down to the full object model.

It is always good to validate it :)

Absolutely.  When I get to that point, I intend to stress test it.  I want to create a complete system that is server quality, ready to go into the most intense stressful 24/7/365 service.

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on August 23, 2016, 02:44:28 pm
I will be offering a class online teaching C to xbase developers.

The approach comes from that knowledge background as I am trying to get those interested in having Visual FreePro, Jr. (a free open source Visual FoxPro follow-on) completed to come on board and help out with development.  There are 172 members in my Visual FreePro Facebook group, and about 20 of them have expressed interest in wanting to help me complete development, but not having strong enough C/C++ development skills.

I am hoping that from the class one, two or three people will gain enough development skills to help out.  It's why I'm devoting some of my time toward this goal, because if one or more can help me out, then together we'll be able to do far more than I can do alone:

Intro2C Tutorial (http://www.libsf.org/intro2c/intro2c.html)

I began the class in 2013, but very few people were interested.  I mapped out and prepared several more lessons, but none of them were ever published.

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on September 21, 2016, 06:04:32 pm
I've had a requirement come up at work which has taken my development time the past few weeks.  When it is completed I intend to return to my assembler development.

I made the decision to modify some of the support libraries I had previously developed for use in the assembler.  I had previously designed things to operate around a line + component model, such that "x = a + b" would be broken out into parts:
Code: [Select]
line ---> [x][whitespace][=][whitespace][a][whitespace][+][whitespace][b]

After simplification:
line ---> [x][=][a][+][b]

This model would probably work fine for an assembler, because most things in assembly are single-line syntax forms.  However, my next goal is my lsc C compiler and it needs syntax constructs which are entirely outside of line references.  As such, I've migrated the line+comp model to now use a comp-only model, which has an internal line reference, but is largely unimportant.

Code: [Select]
[[x] ---> line][[=] ---> line]...
By using this model, I can inject and delete components as needed, allowing for a far more robust and free form translation from C code to assembly code.

It may not seem like I'm making any progress, but I am.  It's just a lot of foundation to lay properly so that everything built atop is correct.

Best regards,
Rick C. Hodgin
Title: Re: Exodus/2 (ES/2)
Post by: RickCHodgin on June 04, 2017, 01:49:44 am
I may pick this effort back up (to create a drop-in replacement kernel for OS/2).  It's a big job, but I truly believe it's the right place to start.  We need a completely flexible base to build everything atop, which can also be tweaked and extended as needed.  We also need a full kernel debugger.

I'm going to give it some thought over the next week.

Thank you,
Rick C. Hodgin
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on June 04, 2017, 11:00:33 pm
I have discovered the OS/2 kernel API is not published anywhere, except through illegally leaked IBM original kernel source code, which I've been told is what the Phoenix OS/4 project is based on.

UPDATE:  I've been told by developers on #os2russian on EFnet that the Phoenix OS/4 kernel is not based on leaked IBM kernel sources.  So, my apologies for having written that.  However, they have also told me that the kernel is written in "poetic form" and is to simply be accepted "as-is" ... so it has me in a wondering state to be honest. :)

As such, I'm going to focus on a full ground-up new effort, similar to what Linux did for UNIX.  This will be the ES/2 project, and it will be a complete mimic / duplication of everything in OS/2, but it will be made from all new sources.  Every main exe, dll, file, file format, etc., will be replicated.  Except for the fact that it won't be binary compatible, I believe every piece of code written for OS/2 that has sources, will be able to be re-compiled in the new ES/2 environment and work without change.

This is going to be a very large effort.  And I'm going to need help.  I'm going to start trying to recruit developers.  If any of you are interested in trying to help out, I'm willing to teach a class on C/C++ programming and even assembly programming on x86-based CPUs so you learn enough to start port user apps, including even low-level things like cmd.exe, a text-based version of e.exe, etc.

Thank you,
Rick C. Hodgin
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on June 05, 2017, 06:09:46 pm
I began looking at my assembler last night, and when I stopped regular development last September, and worked only sporadically on the project since then (see blog (http://www.libsf.org/es2/tasks.html)), it was up to a point where the assembler was loading source code, expanding macros, and parsing top-down.  The parsing algorithms are partially complete, and development will continue from that point forward.  I've also since migrated my source code off of GitHub to my own Git server.  You can see the source code here (http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/exodus/tools/lsa).

My goals once again are to have the kernel up and running by the end of this year, first part of next year, and to be able to begin replicating the OS/2 command prompt on boot, as we add more and more abilities on top.

My first goals are to support the FAT32 and HPFS file systems, and a small range of video hardware devices, and to use BIOS for standard disk access.  This will allow more people to use the system in stages as it's being developed.  It will initially only be 16-bit and 32-bit, but eventually will be extended to be a true hybrid 32-bit / 64-bit kernel, capable of launching both from the single kernel.

My second goal is to have armies of developers come on board and begin helping write the lower-level drivers and devices, and then to begin porting apps from OS/2 to ES/2, as the API and compiler environment should be the same, but it will not be binary compatible any longer.

Here's to success!

Thank you, and God bless,
Rick C. Hodgin
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 02, 2017, 08:14:59 pm
I am migrating my ES/2 developer environment to a full OS/2 environment (previously it was on Windows).  It will be developed from this point forward in an OS/2 4.5 developer environment running on native hardware (not a VM), with a second native hardware machine used for testing the code.

My goals are to use the OS/2 developer environment to get my kernel compiled, to create a stable serial interface between the OS/2 machine and my ES/2 machine so I can rapidly send updates to my kernel while it's running, to do remote debugging, and so on.

The code I've previously written in Windows will be ported to OS/2 and the Presentation Manager.  I've written it generically all along as I originally was targeting Windows, Linux, and FreeBSD, so there is nothing Windows-specific to it that shouldn't be easily adapted to integrate well with OS/2.

----
Again, if you have the skills, I would like to invite you to come and help out on this project.  It's to be an offering of the skills and abilities God first gave us, and the opportunities He's given us since then to harness and hone them, to return them back to Him directly, and not for money, not for fame, not for personal glory, but because we have these interests, and we recognize all of our abilities come from Him.

Consider:
If someone gave you $10 million to build a company and some large campus, you would begin work and invite that person to be a part of all of your project, opening ceremonies, you'd give speeches which include parts like, "Without so-and-so, we wouldn't be here today."  You would name a building after that person, or the whole campus even.  There would be plaques commemorating that individual, with their picture here and there all around.  The "About us..." documentation within the company would include references to that individual's generosity.  And so on.

All I'm trying to do here with these projects of mine is give God His proper place in my life.  He made the Earth, Sun, air, trees, animals, plants, everything, including me and you.  It is desirous, and proper, to give Him all that He is rightly due with our lives.

ES/2 is to be a ground-up open-source OS/2-like operating system.  The compilers I'm writing are ground-up open-source creations using some familiar languages as a starting point (assembly, C, Java, Julia, and others), but then extending them forward.  And the same holds true for apps that will be developed which are similar to other apps.

All of these are ground-up, sanctified, purposeful efforts given over to Him acknowledging His rightful place in our lives.

Please ... look up to God.  Look within your heart.  And come and be a part of this project.  Let His gifts to you shine outwardly to others in this endeavor, so that you can receive from Him the reward of your efforts given over to Him here in this world.

--
Rick C. Hodgin
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 04, 2017, 12:23:22 am
On the machine I had to use (VIA-based chipset + AMD CPU), I couldn't get native IBM OS/2 Warp 4 or 4.52 to boot.  It got to the end of the third diskette and crashed.  I also had to reduce the RAM to 1 GB and enable an OS/2 option in BIOS to avoid SYS2025 and SYS2027 errors at Installation Diskette boot.

Ultimately, I was able to get my copy of ArcaOS to boot and install.  Everything worked there.  I was able to get my original kernel code copied over, and OS/2 versions of the assembler and C compiler installed.  I still have to migrate my DOS .BAT files to REXX scripts, and then it should be compiling.

I am also pleased to announce nearly everything I've written in my LibSF library for Windows, Linux, and FreeBSD will migrate with little modification to OS/2 and the Presentation Manager based on what I've researched thus far.

OS/2 programming with the PM is easier than Windows programming with the GDI.  However, I have greater knowledge of Windows so it will be a learning curve.

I'm looking forward to getting Visual FreePro, Jr. (VJr) running in OS/2.  It will serve as my primary developer base as it is well-developed for these purposes (meaning the facilities created to support VJr are generic, and can be used for other purposes).

It took me one day to make the migration, and it will take probably a week to get VJr all compiling, running, and ES/2 installing and booting natively on my second machine.  And a while to get the serial driver working.

I did verify the version of my kernel I had on that hard drive boots from floppy disk with the compiled code that's there, but I think the source code base there is about 10% behind my current version, so I will be switching to the newer one.

Am very pleased with how smooth the migration has gone thus far.
Title: Re: ES/2 open source OS/2 kernel
Post by: ivan on November 04, 2017, 01:25:04 am
Keep up the good work.

When you get to the testing stage I have several new mini itx motherboard computers with AMD 2 and 4 core APUs as well as a couple of AMD multi processor, multi core HP server boxes that I can make available if that would help.
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 04, 2017, 01:48:03 am
Keep up the good work.

When you get to the testing stage I have several new mini itx motherboard computers with AMD 2 and 4 core APUs as well as a couple of AMD multi processor, multi core HP server boxes that I can make available if that would help.

Will do.  Still have a long way to go.  One of my primary goals is to try and find developer recruits.  I will be pursuing that avenue with vigor as I want this project to succeed.  A fully open-source modern OS/2 running in 64-bits on modern hardware would be a thing of beauty.
Title: Re: ES/2 open source OS/2 kernel
Post by: ivan on November 04, 2017, 10:28:17 am
As you say 'A fully open-source modern OS/2 running in 64-bits on modern hardware would be a thing of beauty.' I couldn't agree more.

Unfortunately I am a hardware engineer (now retired) so there is not much that I can do to help with the development other than testing whatever you produce.
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 04, 2017, 11:12:12 am
As you say 'A fully open-source modern OS/2 running in 64-bits on modern hardware would be a thing of beauty.' I couldn't agree more.

Unfortunately I am a hardware engineer (now retired) so there is not much that I can do to help with the development other than testing whatever you produce.

You might find my L1 cache design of interest then:
 L1 cache cell (http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxoda/core/cache_l1/cache1__4read_4write_poster.png)

And my Arxoda CPU register model:
 40-bit registers, windowed access (http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxoda/core/wex_register_mapping.png)

I have long-term goals to design my own 40-bit 80386-like core, part of creating a full new hardware and software stack.  Removing legacy limitations, and making everything completely open source.  I am prepared to use older methodologies to work around patents, and to integrate / roll out newer features over time.

 Basic Arxoda CPU core design (http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxoda/oppie/oppie-6.png)

It uses a pivot, which allows each core to come over and help the other core perform work on single-threaded apps, allowing serial performance gains.  I call it "love-threading" because it's how two people who love each other help the other out when one has a temporary need, "Honey, can you come here and help me a moment?"

 Pivoting CPU State "Love Threading" (http://www.libsf.org:8990/projects/LIB/repos/libsf/browse/arxoda/oppie/oppie-6-love-threading.png)

I want to empower people.  Make them owners, not renters.
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 07, 2017, 04:00:00 am
I was looking for a test machine for ES/2 development.  I think I'm going to start with this VIA-based machine (https://www.viatech.com/en/boards/mini-itx/epia-m910/).  They have published their VX900 Chipset System Programming Manual (http://linux.via.com.tw/support/downloadFiles.action) online.  I've emailed them to find out about any example / template source code released for Linux drivers.  I could use that information to drawn from to create ES/2 drivers.

I am so excited about this project.
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 07, 2017, 02:10:23 pm
I was looking for a test machine for ES/2 development.  I think I'm going to start with this VIA-based machine (https://www.viatech.com/en/boards/mini-itx/epia-m910/).  They have published their VX900 Chipset System Programming Manual (http://linux.via.com.tw/support/downloadFiles.action) online.  I've emailed them to find out about any example / template source code released for Linux drivers.  I could use that information to drawn from to create ES/2 drivers.

I received an email response from VIA.  The source code for their Linux graphics driver is available.  If you choose "Ubuntu 12.04.5" from the list, and VX900, the driver shows up.  And their System Programming manual is comprehensive.  Every port.  Every value.  It's even written as a manual should be. :-)

These resources should provide all VIA-specific information I need, and with input from other sources it should all come together so this little x86-64 VIA Eden-powered dual-core EPIA-M910 machine will be the vehicle which brings ES/2 to life.  A new kernel, new drivers, and apps.

UPDATE:  If you download the source code and unzip it, you'll see in the TTM\bios\ folder information about the motherboard.  It includes everything related to video timing.  The cbios_cea_timing.h/.c files contain absolutely straight-forward information about the register timings involved to enter each video mode.  And the entire source code structure contains well-written code.
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 07, 2017, 05:09:33 pm
After getting IBM PC DOS 7 installed the other day, I've decided to move to DOS for development of ES/2.  I'll use BIGREAL mode, which allows access to all of memory through FS: and GS: segments, but CS:, DS:, ES:, and SS: are all in real mode in the normal 0..1MB range.  I'll use VESA BIOS Extensions to give DOS some graphics, as I've already written graphics algorithms for Visual FreePro and Visual FreePro, Jr.

So, except for answering questions, I'm going into stealth mode for a while to focus on development.

You'll be able to keep track of my work on LibSF's Git server for ES/2 (http://libsf.org:8990/projects/LIB/repos/libsf/browse/es2).  If you'd like to follow along, you can download a .ZIP (http://libsf.org/es2/dev.zip) of the ES2 portion of the repository (useful in DOS where you can't use git), buy the same VIA machine (https://www.viatech.com/en/boards/mini-itx/epia-m910/) I'm using, keep up with source code, run the buildme script, and generally speaking follow the BUILDME.TXT (http://libsf.org:8990/projects/LIB/repos/libsf/browse/es2/buildme.txt) on how to keep up with development each day.

I would welcome your assistance on this project.  Please contact me via email.  Use rick.c.hodgin@gmail.com and "ES/2" in the subject.

If you are a reasonably skilled C/C++ developer you can be of use.  You don't have to have great skills or hardware system knowledge, but just decent skills in C/C++ development, and mostly C, and a desire to learn and help out.  If you don't have enough skills, I'll be happy to teach you, or to help sharpen the skills you're missing.
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 13, 2017, 04:20:01 am
A quick update:

I've begun coding a DOS-like ES/1 operating system as a precursor to my ES/2 kernel.  It will be a simple text-based kernel in real-mode allowing me to port compilers, assemblers, linkers, debuggers, to that system, allowing me to test code in a simple environment, one I can easily mimic in IBM PC DOS 7.

ES/1 will also be released as a simple public OS people will be able to download and use for FAT12 and FAT16 disks.  It will also natively allow serial port networks. :-)
Title: Re: ES/2 open source OS/2 kernel
Post by: RickCHodgin on November 16, 2017, 12:32:12 pm
I have a text-based forms mechanism.  I'm currently developing my own master boot record, partition, FAT12 and FAT16 drivers, as well as an ES/1 compiler, assembler, linker, and debugger.  A large portion of that code is being ported from my existing kernel code.

I still have to complete:  COM port I/O, the basic ES/1 command prompt.

I will send screenshots at some point.  I'm using a 3dfx Voodoo3 2000 card as it does a 132x60 text mode (at 0xb8000 for those who know what that means, allowing me to reclaim 0xa0000 - 0xb7fff for real mode memory).

ES/1 will boot like a basic 16-bit DOS running on an 80386 or higher, and have a developer environment.  It will be a springboard for 16-bit ES/2 development.

It will boot up as:
Code: [Select]
ES/1 Operating System - Command Prompt
Nov.16.2017 06:30 am

[c:\es1\] _