OS2 World Community Forum

Public Discussions => General Discussion => Topic started by: Jan-Erik Lärka on July 07, 2015, 01:31:14 pm

Title: Open Source / 2
Post by: Jan-Erik Lärka on July 07, 2015, 01:31:14 pm
Hello,

the open source movement is strong and we that use OS/2 and eComStation benefit from several projects that originate or build on open source projects. Martin has done a great job to open source software and collecting sources.

What's the plan and how do we make best use of the source code?! Source code doesn't compile itself, someone has to do it and get a project afloat?

Regards,
//Jan-Erik
Title: Re: Open Source / 2
Post by: Dave Yeo on July 07, 2015, 04:27:04 pm

What's the plan and how do we make best use of the source code?! Source code doesn't compile itself, someone has to do it and get a project afloat?


Basically with open source, volunteers do what ever interests them (and occasionally what they get paid to do). For example a long time ago I wanted to play an open source game, so I downloaded the source code and the EMX development environment and learned how to compile it. Been learning ever since and still compile stuff such as this SeaMonkey I'm posting this on and when things go good, share the results with the community.
Title: Re: Open Source / 2
Post by: Martin Iturbide on July 07, 2015, 04:33:12 pm
Hi Jan.

It is good that you bring up the subject. I will like to bring my personal comments based on the "open source" perspective, which it does not mean it is good or bad, it is just a perspective looked from that side.

I think that is some part we are in a good track. It is very good the job that are doing some guys to keep porting things that use Libc and Qt and the stuff that is doing Bitwise. While we get ported more open source libraries, software dev tools and applications, it will be better for us. 

My first issue is that there are people that do not understand the open source model. Open source is not a magic formula, it a development methodology and software licensing, that will help us to 1)Reduce the risk of having dependencies on a single person or group, 2) Will allow us grow our user base eventually. There are people that thinks that the only and most important resource is money, and no matter how much money you put on OS/2, people will not look at this platform if it is controlled by a single company or individual because you have several alternatives on the market that are 100% independent and open source. This is why to get more people into this platform we need to say convinced that "we are trying to be open source, and this is our roadmap for the next 20 years".

On the side that we are not good, and I got a lot of heat when I discuss about this subject, is the things that are under the hood. The close source components of OS/2 that nobody wants to even think about it, because they are working fine today, and those are the things that are limiting the freedom of the platform. There seems that there are no much interest on the OS/2 internal components today, and there is no constructive discussion about how to clone/replace/improve this components focused on open source.  When I try to get a constructive discussion, I don't get ideas on how to do it or different ways to approach this problem, just excuses on how hard it is.

The other part that is not doing good is that there is not effort on open source drivers. The efforts are focused on using IBM DDK code which can not be open sourced, because it is easier and fast to use the IBM DDK to create drivers. There was even discussion on the chat rooms and Warpstock telling to port BSD drivers to mix it with IBM DDK, so it will remain close source. (The BSD license allows it).  Maybe it is practical to use IBM DDK code but it will only lock us in the future to the developer, it will be better to release open source drivers and try to isolate as much as possible the IBM DDK code.

So, quick summary of my open source issues:

1) There are important community members that are not convinced yet on the value of open source, they just believe that if it works (open or close) it is good enough.
2) There is a lack of interest on the OS/2 internal components that has to change, people just gives the OS/2 base components for granted and there should be more interest on getting open source alternatives to work on OS/2.
3) There is no current effort on open source drivers, there is only focus on making drivers based on IBM DDK code.

If I will like "dare" to put a priority on this subject right now (Since we already have Arca working on drivers and Bitwise working on Firefox) , it will be to start thinking about an open source clone for Presentation Manager. I even wrote this, which may be a stupid, but the idea will be to have some discussion on this topic: http://www.os2world.com/wiki/index.php/Wild_Idea:_A_PM_clone_using_the_Qt_library (http://www.os2world.com/wiki/index.php/Wild_Idea:_A_PM_clone_using_the_Qt_library)

If anybody has interest on discussing this in a constructive matter (instead of giving excuses on why we should not even try to start)  maybe we should try to open a new thread.

Regards





Title: Re: Open Source / 2
Post by: Mentore on July 07, 2015, 11:11:28 pm

What's the plan and how do we make best use of the source code?! Source code doesn't compile itself, someone has to do it and get a project afloat?


Basically with open source, volunteers do what ever interests them (and occasionally what they get paid to do). For example a long time ago I wanted to play an open source game, so I downloaded the source code and the EMX development environment and learned how to compile it. Been learning ever since and still compile stuff such as this SeaMonkey I'm posting this on and when things go good, share the results with the community.

I completely second the views of Dave. I too am involved in porting efforts for some of my little personal passions like 8-bit (mostly Sinclair computers) emulators, but I'm also interested in music typesetting and others (actually I'm struggling to understand Cmake because it's needed by GUIDOlib and other Qt software to compile).
Title: Re: Open Source / 2
Post by: Jan-Erik Lärka on July 08, 2015, 02:18:51 pm
Very good points!

The important thing to come up with is how Open Source / 2 should attract enough developers and users so the large crowd of people will be attracted and come our way later on. There has to be more to Open Source / 2 and a long term plan to attract enough attention. Nothing should be left to coincidence.
Open Source / 2 can be based on substantial ideas and methods that we improve and not force one opinion or the other. Some should be able to work on it as spare time projects, some in full time and others everything in between.

What attract the developers? What can the OS/2 community attract them with?
Why would a developer choose to join the OS/2 community?

The proper answer to that is important if Open Source / 2 should play an important part.

Regards,
//Jan-Erik
Title: Re: Open Source / 2
Post by: Boris on July 14, 2015, 05:03:27 pm
(actually I'm struggling to understand Cmake because it's needed by GUIDOlib and other Qt software to compile)

I probably can help you with CMake and Qt, as I'm using the former as a build system for OS/2 applications using the latter quite successfully, if you reach me.

If I will like "dare" to put a priority on this subject right now (Since we already have Arca working on drivers and Bitwise working on Firefox) , it will be to start thinking about an open source clone for Presentation Manager. I even wrote this, which may be a stupid, but the idea will be to have some discussion on this topic: http://www.os2world.com/wiki/index.php/Wild_Idea:_A_PM_clone_using_the_Qt_library (http://www.os2world.com/wiki/index.php/Wild_Idea:_A_PM_clone_using_the_Qt_library)

If anybody has interest on discussing this in a constructive matter (instead of giving excuses on why we should not even try to start)  maybe we should try to open a new thread.

Maybe you are not aware of it, but there is FreePM project aiming at rewriting Presentation Manager under an OSS license with very, very good thoughts about its architecture.

I've once (or twice) even thought of looking at it, but now am quite busy with another thingie...
Title: Re: Open Source / 2
Post by: Martin Iturbide on July 14, 2015, 05:42:13 pm

Maybe you are not aware of it, but there is FreePM project aiming at rewriting Presentation Manager under an OSS license with very, very good thoughts about its architecture.

Yes, I know about FreePM. My issue is that I don't have the skill to know if FreePM is a 5%, 20% or 80% clone of PM.
I need someone that starts building FreePM and check ways to put it inside of OS2-eCS  and replace some of the PM IBM close source files/components.  Even if it is only a partial PM Clone that still requires IBM's PMMERGE,  I want to find ways to have FreePM to replace parts PM on OS/2-eCS.  I will like to help and collaborate with  somebody willing to do this.

I have no idea to be honest, but something like having a PMMERGE.DLL OSS replacement that keeps calling IBM PMMERGE.DLL (Maybe renamed to PMMERGEX.DLL) in the back. So the functions that are replaced are responded by the OSS PMMERGE.DLL, and the ones that not cloned are sent to IBM's PMMERGEX.DLL which is the original one.  With that we can keep growing the OSS PMMERGE.DLL until we can just remove complete IBM's PMMERGEX.DLL. It may sounds very stupid to someone that know how DLLs works, but I want to see alternatives to keep replacing PM, even if they are timid or very small.

Regards
Title: Re: Open Source / 2
Post by: Pete on March 02, 2016, 05:57:16 pm
Hi All

Looking through the newsgroups comp.os.os2.apps and comp.os.os2.misc I noticed a post with the subject Creating an open source OS/2 kernel.

Looks like the poster has big plans that could become an open source OS/2 - with a bit of help.

Maybe Martin wants to have a look into this - along with anyone else interested.


Regards

Pete


Title: Re: Open Source / 2
Post by: Martin Iturbide on March 02, 2016, 08:12:02 pm
Thanks for the heads up.

It seems that there are people sending "Cease and desist" letters on the forums without even starting to break the law :)

Regards
Title: Re: Open Source / 2
Post by: Olafur Gunnlaugsson on March 03, 2016, 05:00:53 am
but something like having a PMMERGE.DLL OSS replacement that keeps calling IBM PMMERGE.DLL (Maybe renamed to PMMERGEX.DLL) in the back. So the functions that are replaced are responded by the OSS PMMERGE.DLL, and the ones that not cloned are sent to IBM's PMMERGEX.DLL which is the original one.  With that we can keep growing the OSS PMMERGE.DLL until we can just remove complete IBM's PMMERGEX.DLL.

I know the quoted  post is older than the current thread, but

While I think the whole idea of replacing the system with something identical is brain dead in general (now wait for last year type scenario), but if you want to replace the PMMERGE.DLL you have an easier starting point in replacing the dummy DLL's that point to PMMERGE one by one with active one and then tackling either PMMERGE later or replacing it with other DLL's, PMMERGE is one huge file to speed up performance on 386 system, on a modern system the speed difference will be negligible

This will get rid of the danger of cross referencing of a un-replaced DLL function with replaced DLL function which could easily happen the other way around.

But if people are interested in replacing system components, why not start with something that would give us greater capabilities such as replacing SVGA.SYS with something that supports modern resolutions ....
Title: Re: Open Source / 2
Post by: Martin Iturbide on March 03, 2016, 10:00:43 pm
....but if you want to replace the PMMERGE.DLL you have an easier starting point in replacing the dummy DLL's that point to PMMERGE one by one

Here it is the list of files that (I consider) are part of Presentation Manager (http://www.edm2.com/index.php/Presentation_Manager). Starting with the forwarder files can be a good idea.

But if people are interested in replacing system components, why not start with something that would give us greater capabilities such as replacing SVGA.SYS with something that supports modern resolutions ....

Every OSS replacement is welcome. I will support any developer going on that direcction.

Regards.
Title: Re: Open Source / 2
Post by: RickCHodgin on March 16, 2016, 09:27:47 pm
Hello all.  My name is Rick C. Hodgin.  I'm a software developer from Indianapolis, IN, USA.  I began working on my own kernel back in the mid-90s, and worked extensively on it from 1998-2002.  It boots, has full support for everything internally except paging (by design).  I got married in 2002 and my priorities changed.  However, I've always maintained plans to come back to it and complete it.

As of earlier this year I have resolved to do that with a full-throttle effort.  My family is on board with the project, and in the mean-time I've developed a host of other applications which will now benefit me greatly in moving forward.

I wanted to outline some of my plans for my kernel:

Originally I had planned to create my own custom beast.  I have a very solid mental image of what I want in a system design, and I will still in many ways target that end.  However, in reviewing operating systems a few weeks ago I came back across OS/2.  I had used OS/2 back in the 90s, but I was not aware of its amazing system design and robust capabilities until I came across some OS/2 videos (on OS/2 2.1 of all things).  As soon as I saw those features, namely the object-oriented design of the worksplace shell and the ability to close and resume tasks exactly where they were when the system went down, I resolved to incorporate those fundamental abilities into my OS.

As such, my previous kernel (called Exodus) has now had its goals revamped somewhat and will be called ExoduS/2, or ES/2 for short. I also plan to port the kernel to ARM-based CPUs, and will call it ArmoduS/2, or AS/2 for short.

My goals for development are vast.  I would like for other coders to come on board to help where they could once the system is to a particular level of development.  I believe together we could create a really amazing alternative to OS/2, which is very much OS/2-like in its operation, including supporting most of its API, the presentation manager, file system format, and more.

Here are my goals.  I will do my best to achieve them:

-----
Mar.01.2016 - Dec.31.2016
Complete low-level kernel development toolset, which includes a full edit-and-continue toolchain for real-time re-compilation and debugging while running in the kernel itself.

By Dec.31.2016 it should be booting in the new toolset, able to be debugged and developed in source-code form as we're going.

-----
Jan.01.2017 - Dec.31.2017
Support paging in the kernel, add necessary drivers, develop and complete the workplace shell clone, presentation manager clone, and port the kernel developer toolset to a full edit-and-continue developer suite occupying all of the kernel, driver, and user app spaces.

Work on the port of ES/2 to ArmoduS/2 should begin somewhere during this timeframe as well.

-----
Jan.01.2017 - Dec.31.2018
Port or re-write as many system utilities and applications as possible to the kernel design, expanding the kernel abilities as needed.

This brings us to sometime in 2018 to 2019 when the system should be in a stable and usable state, able to be expanded on by the full community effort as more and more apps are ported.

At this time I would like to the necessary support to allow other developers to port whatever toolsets they'd like to use to ES/2 and AS/2, and to be at the community's call for what large goals should be worked on next.

My primary goals are to get the kernel working, in an easy development state, stable, robust, and to be able to build everything atop that solid bedrock foundation.

-----
The current state of my kernel can be seen here in source code:
https://github.com/RickCHodgin/libsf/tree/master/exodus/source (https://github.com/RickCHodgin/libsf/tree/master/exodus/source)

And here in a video outlining my monochrome graphical debugger, called Debi (for DEBug Intel, I plan to create a version called Debra for DEBug ARm):
http://www.visual-freepro.org/videos/2014_02_13__exodus_debi_debugger.ogv (http://www.visual-freepro.org/videos/2014_02_13__exodus_debi_debugger.ogv)

Note:
If you can't view the video, use VLC (http://www.videolan.org (http://www.videolan.org)).

-----
Please note also that I am a devout Christian.  But, don't let that derail your support.  It just means I have much love for you inside. :-)  I'm good people, and while I am giving this offering back to the Lord using the skills, talents, and abilities He first gave me, I am also giving it to the people He's placed me around here in this world.

This type of giving, one-to-another, using the skills we've been blessed with, it's something that strengthens and binds us together as a common people group interested in our common, shared thing (in this case an OS/2 operating system).  That binding together helps us grow with affinity toward one another because of the shared foundation.  It builds a solid base from which all other things can proceed.  In my experience, it's very rewarding.

If you'd like, you can reach me at my name below all squished together with periods (like.a.here) at gmail.

Best regards,
Rick C. Hodgin
Title: Re: Open Source / 2
Post by: ivan on March 17, 2016, 12:21:46 am
Hi Rick,

I am pleased that you found your way here.  You will find some of the same people you met in the newsgroups and some new people as well.
Title: Re: Open Source / 2
Post by: RickCHodgin on March 17, 2016, 01:04:12 pm
Hi Rick,

I am pleased that you found your way here.  You will find some of the same people you met in the newsgroups and some new people as well.

Thanks, Ivan.  Martin Iturbide has been a big help as a guide.

Best regards,
Rick C. Hodgin
Title: Re: Open Source / 2
Post by: Martin Iturbide on March 17, 2016, 01:33:55 pm
Hi Rick.

Welcome to the OS2World forums.

My interest is to promote any open source software project that will benefit the OS/2-eCS community.
There may not be funding, but we do as possible to try to organize the OS/2-eCS resourced and make them public for the benefit of the community. If you have interest on knowing something about the platform just post the question on the forums, it happens from time to time that there are is not a direct answer but sometimes the collaborative thinking allow us to find workarounds.

We tried to document as much as possible on the EDM/2 wiki (http://www.edm2.com/index.php/Main_Page), that site remains as the most important site for development knowledge on this platform. Other kind of OS/2 knowledge I'm trying to document it on the OS2World Wiki. (http://www.os2world.com/wiki/index.php/Main_Page)

I'm not a developer so I have limited skills on this area. My way of thinking about the continuity of OS/2 in the long term future is to try to grab little things from OS/2 and clone them as open source and test that it keep working on the OS/2 platform (trying not to break compatibility). I think that sometimes planning super big projects (without having high budgets) produce too much stress and people just dump out the idea because the lack of short term deliverable. So, I prefer when people do little things, even if the first version is not stable enough. But that little things can be added up to other things to produce a bigger things, and with time even bad open source code can be improved.

I wish you luck with your project and I'm here to help on whatever is on my hands.

Regards.
Title: Re: Open Source / 2
Post by: Martin Iturbide on March 17, 2016, 01:52:56 pm
Hi

There are also some open source projects that I consider that should be taken notice when trying to produce OS/2 clone alternatives.
If I'm based on the OS/2 components architecture (http://www.edm2.com/index.php/Category:Components) I think it is good to see the source code of this projects and check what can it be re-used.

- OS/2 Kernel (http://www.edm2.com/index.php/OS/2_Kernel):
* OS2Ldr (http://www.edm2.com/index.php/OS2LDR) - OS/2 Loader, there are some articles and samples on how to create an clone loader.

- CPI - Control Program Interface (http://www.edm2.com/index.php/Control_Program).
* OS2Linux (https://sourceforge.net/projects/os2linux/) - has some functions available
* OSFree (http://www.osfree.org/) - OSFree Project generated some of the forwarder's DLLs of this component.

- Presentation Manager (http://www.edm2.com/index.php/Presentation_Manager)
* OSFree (http://www.osfree.org/) - OSFree grabbed things from FreePM.

- SOM (http://System Object Model)
* somFree (https://sourceforge.net/projects/somfree/) - It was not created or ported to OS/2.
* NOM (http://trac.netlabs.org/v_nom) - Was a SOM replacement project created by Netlabs.

- Workplace Shell (http://www.edm2.com/index.php/Workplace_Shell)
* XWorkplace (http://xworkplace.netlabs.org/en/site/index.xml) - Some WPS classes replacement and improvements.
* Several open source WPS Classes. (http://www.os2world.com/wiki/index.php/Workplace_Shell_based_Applications)

There are some other projects that are not open source, but has the source code available:
- OS/2 Kernel (http://www.edm2.com/index.php/OS/2_Kernel):
* QSInit (http://www.os2world.com/wiki/index.php/QSINIT) - OS/2 Loader - Source code available - Free for Non commercial use.
* SCREEN01.SYS, PRINT01.SYS, KBDBASE.SYS, CLOCK01.SYS, RESOURCE.SYS - Source code is on the IBM DDK, but the source code can not be shared (only privately improved). Binaries can be freeware for any use.

But remember that some of this are only "half-baked" projects and was not completed.  This are the ones that came to my mind right now, there my be other out there.

Regards
Title: Re: Open Source / 2
Post by: RickCHodgin on March 17, 2016, 04:05:03 pm
I'm not a developer so I have limited skills on this area. My way of thinking about the continuity of OS/2 in the long term future is to try to grab little things from OS/2 and clone them as open source and test that it keep working on the OS/2 platform (trying not to break compatibility). I think that sometimes planning super big projects (without having high budgets) produce too much stress and people just dump out the idea because the lack of short term deliverable. So, I prefer when people do little things, even if the first version is not stable enough. But that little things can be added up to other things to produce a bigger things, and with time even bad open source code can be improved.

I wish you luck with your project and I'm here to help on whatever is on my hands.

I appreciate that.  I've had high hopes on the last two projects I've worked on that some developers would come and help out.  It didn't happen on the first project, but on the second I had two developers contribute source code:  http://www.visual-freepro.org/wiki/index.php/VXB#Contributions (http://www.visual-freepro.org/wiki/index.php/VXB#Contributions)

That project is an XBASE tool called Visual FreePro, Jr. (VJr), that is designed to be a nearly 100% compatible open alternative to Visual FoxPro.  I'm to the point in development on it where I need to complete the compiler.  I had previously planned to work on it this year and complete it, but there just isn't interest in the project right now, and no help.  I had planned to complete VJr by mid-2017 and resume development on my OS then.  However, I've revised that plan to get my kernel up and running and then complete development of VJr inside my kernel to give it a nice developer base for making business apps.

The kernel has been a long-time goal for me.  I began it when I was about 25 years old.  I'm now 46 years old and am resuming full-time (after my normal day job that is) development on it.  I'll try to get my developer toolsets completed this year, and have the kernel able to boot and launch and run apps using the basic video drivers in the emulation environment.

I may not post much here once I get deep into development.  Compiler development is particularly tricky, but I won't be worrying about optimization in the first release, so that will make it somewhat easier.  And, because it is my own kernel design, I will have free reign over what gets added and where.

I'd like to expose a fully compatible API with OS/2's kernel, allowing it ultimately to be a literal drop-in replacement, but unless I get some documentation that won't be possible because I refuse to reverse-engineer the kernel design since it's illegal to do so.

I've written an email to Scott Garfinkle at IBM.  No reply yet.  We'll see if anything comes from there.

As for now, my plans are to create a very OS/2-like system, with many of the same features, but it will be a new kernel, and a new system, new drivers, etc., and atop that I will expose an identical API to the published API, along with some extensions, allowing for existing code that relies upon many OS/2 features to be recompiled and work in ES/2 and AS/2.

And, I'm hoping other developers will come on board later this year when the toolset is maturing, or at least next year when some real progress is being shown.  These are my plans, but I keep them within the constraint of James 4:15 (Lord willing).  :)

Best regards,
Rick C. Hodgin
Title: Re: Open Source / 2
Post by: RickCHodgin on March 17, 2016, 04:07:48 pm
Hi

There are also some open source projects that I consider that should be taken notice when trying to produce OS/2 clone alternatives.
If I'm based on the OS/2 components architecture (http://www.edm2.com/index.php/Category:Components) I think it is good to see the source code of this projects and check what can it be re-used.

- OS/2 Kernel (http://www.edm2.com/index.php/OS/2_Kernel):
* OS2Ldr (http://www.edm2.com/index.php/OS2LDR) - OS/2 Loader, there are some articles and samples on how to create an clone loader.

- CPI - Control Program Interface (http://www.edm2.com/index.php/Control_Program).
* OS2Linux (https://sourceforge.net/projects/os2linux/) - has some functions available
* OSFree (http://www.osfree.org/) - OSFree Project generated some of the forwarder's DLLs of this component.

- Presentation Manager (http://www.edm2.com/index.php/Presentation_Manager)
* OSFree (http://www.osfree.org/) - OSFree grabbed things from FreePM.

- SOM (http://System Object Model)
* somFree (https://sourceforge.net/projects/somfree/) - It was not created or ported to OS/2.
* NOM (http://trac.netlabs.org/v_nom) - Was a SOM replacement project created by Netlabs.

- Workplace Shell (http://www.edm2.com/index.php/Workplace_Shell)
* XWorkplace (http://xworkplace.netlabs.org/en/site/index.xml) - Some WPS classes replacement and improvements.
* Several open source WPS Classes. (http://www.os2world.com/wiki/index.php/Workplace_Shell_based_Applications)

There are some other projects that are not open source, but has the source code available:
- OS/2 Kernel (http://www.edm2.com/index.php/OS/2_Kernel):
* QSInit (http://www.os2world.com/wiki/index.php/QSINIT) - OS/2 Loader - Source code available - Free for Non commercial use.
* SCREEN01.SYS, PRINT01.SYS, KBDBASE.SYS, CLOCK01.SYS, RESOURCE.SYS - Source code is on the IBM DDK, but the source code can not be shared (only privately improved). Binaries can be freeware for any use.

But remember that some of this are only "half-baked" projects and was not completed.  This are the ones that came to my mind right now, there my be other out there.

Excellent.  Thank you, Martin.  I was able to locate a copy of the IBM DDK from 2004.  I've had a preliminary look and it is an amazing treasure trove of information.  It should provide a solid map to the API.

Best regards,
Rick C. Hodgin
Title: Re: Open Source / 2
Post by: RickCHodgin on April 01, 2016, 02:03:48 am
With Martin's guidance, I have been able to find everything necessary to handle the kernel development, and API replication, so that the system I'm creating is as compatible with OS/2 as I'll be able to make it.

OS/2 4.5 Toolkit Documents (http://cyberkinetica.homeunix.net/os2tk45/)

Best regards,
Rick C. Hodgin
Title: Re: Open Source / 2
Post by: RickCHodgin on April 01, 2016, 03:09:15 pm
With Martin's guidance, I have been able to find everything necessary to handle the kernel development, and API replication, so that the system I'm creating is as compatible with OS/2 as I'll be able to make it.

OS/2 4.5 Toolkit Documents (http://cyberkinetica.homeunix.net/os2tk45/)

In reviewing this material, I have come to realize that there is a large portion of the system design that really isn't relevant any longer in 2016 and beyond.  In addition, there are some disruptive technologies due out in the middle of this year (namely Intel's 3D XPoint memory, which is a non-volatile memory 1000x faster than NAND, 10x more dense than DRAM, and has the ability to change the way operating systems are designed, and operate).

As such, I will be migrating my efforts to what I'm going to call Exodus OS/3, which will be basically OS/2 with the DOS and Windows portions stripped out, and some new extensions added which allow use of 3D graphics devices to provide a type of node-based connection mechanism between drivers and applications, rather than through config file settings (see Blender 3D software and specifically Blender's node editor for what I'm thinking about -- it won't be quite like that, but similar in that you hook things up using the lines/noodles which go between (see a YouTube video example here (https://www.youtube.com/watch?v=gxLEv1k8VMI&t=2m43s)), so imagine being able to route your digital sound to audio devices by simply plugging them in, or to be able to direct your printer driver to the network so it now exposes it as a device available on an OS/3 network, etc.).

I am also open to hearing input on what should be done.  Eventually I would like for Exodus OS/3 to support a virtual machine allowing for guest OSes as well, including a full version of OS/2 4.52 as it exists today.

Best regards,
Rick C. Hodgin
Title: Re: Open Source / 2
Post by: Anitha on July 31, 2018, 08:44:27 am
Hello all,

I came across this thread accidentally and am pleasantly surprised to see OS/2 world back in action. I was part of the Presentation Manager development team and very happy to be part of any initiative around OS/2.  I know this is an old thread but if there are any means to contact you and know more about this, I would be the happiest.

cheers,
Anitha
Title: Re: Open Source / 2
Post by: OS4User on July 31, 2018, 09:19:45 am
I was part of the Presentation Manager development team and very happy to be part of any initiative around OS/2

Hi,

It is exciting  to meet somebody from PM dev team. Do you remember  any details about PMMERGE.DLL ?

 
Title: Re: Open Source / 2
Post by: Rich Walsh on July 31, 2018, 10:29:34 am
I came across this thread accidentally and am pleasantly surprised to see OS/2 world back in action.

OS/2 development has never ceased though it certainly has slowed a lot. This particular thread may not be the most representative since the O.P.'s grandiose plans were largely a mixture of fantasy and self-deception that never amounted to anything.

Quote
I was part of the Presentation Manager development team and very happy to be part of any initiative around OS/2.

We would certainly all benefit if someone with your experience cared to do some original native programming (most development today seems to center around porting Linux apps).

As you may have seen, the current incarnation of OS/2 is "ArcaOS", a product of Arca Noae, LLC. Their goal is to enable OS/2 to run on modern hardware, so they have developed their own drivers for ACPI, AHCI, and the other things needed nowadays. Since their contract with IBM allows them to reverse-engineer the kernel, they've made some significant improvements there as well. (Full disclosure: I do development work for them so I may be biased, but I'm impressed nonetheless with what they've achieved.)

If you'd like more info, send me a private message or just open a new thread - you'll probably get an avalanche of opinions on what's needed.
Title: Re: Open Source / 2
Post by: Valery Sedletski on July 31, 2018, 04:19:56 pm
Yes, ArcaOS does good job with supporting OS/2 on modern hardware. Though, it is closed. It is even more closed than eComStation. They do copy protection by branding some binaries with user's own name. Neither IBM OS/2, nor eCS did not do such bad things. Newer drivers like DANIS506 or AHCI are linked with closed-source libraries (DRV16, DRV32 etc.), so that they are not fully open source while having been published under GNU GPL. And they now port drivers from FreeBSD, because BSD license allows them to not publish sources.
These are bad things, though I appreciate their successes with porting drivers from UNIX systems plus their very clean and updated OS/2 distribution called ArcaOS/BlueLion.
But except for that, there is open source OS/2 cloning project called osFree (http://osfree.org). And I'm participating in it. We are collecting existing open source OS/2 code. We have cloned some OS/2 command line utilities, plus borrowed existing open source code, including FreeDOS command line utilities (for both OS/2 CLI and VDM CLI), Regina REXX, a number of open source REXX DLL's. Also, an ongoing project is REXX.DLL and REXXAPI.DLL for Regina REXX, aiming to create a replacement for IBM classic REXX. Also, we have osFree PM project (based on FreePM project by Evgen Kotsuba). It is aiming to create a PM replacement. It is intended to support a remote network-transparent execution of PM programs. It is in early stage, yet, but we did proper structuring of it. PM programs can execute on a remote host, communicating with a "PM server" via a communication backend. So far, a "pmpipe" backend exist, which allows to communicate via a named pipe (local or remote.). PM server should draw windows on a screen via a PM presentation driver. For the first time, there is a "pmwindow" DLL (though, it is a stub for now, doing no real work, except for a drawing picture on a desktop, as a background). PMWINDOW.DLL draws a FreePM screen in a "host" PM window. So, it uses a PM of the host OS/2 system to draw a desktop. But now the missing part is PMGRE/PMGPI, so no real drawing, for now. A client program links with usual DLL's, like PMWIN, PMDRAG, PMGRE etc., most of which forward to PMMERGE.DLL. PMMERGE.DLL connects to PMSRV.DLL (a PM server), PM server is loaded by a first PM application started, like pmshell.exe (which is cloned by me). So far, only simplest PM applications are run, executing a message loop, having anchor block, message queue etc. So, unmodified PM application is run both on PM and FreePM. Though, as GRE/GPI is now missing, it does not draw anything on th screen. FreePM is an interesting development track, but we have currently too little manpower, so we focus on other tasks now (like L4-microkernel-based set of servers, supporting the OS/2 base API, called osFree OS/2 personality). You can join osFree development, if you interested. (It would be an area of your expertise).

Also, the most important sub-project within osFree project is OS/2 personality. We have a prototype based on L4Env (L4 Environment, a set of libraries on top of L4/Fiasco microkernel. It is now abandoned in favor of newer L4Re, L4 Runtime environment, based on Fiasco.OC, the new generation microkernel). Except for L4Env, there is also L4Re, and Genode (http://genode.org). Genode OS framework is most promising from the three mentioned OS frameworks. It supports creation of component-based OS'es from a number of small components, having a small number (about 15) orthogonal interfaces between them. So, they can be combined with special config files written in XML, in orbitrary ways. But it's ideology is best described on their site. Genode allows running the same components on top of about 8 microkernels of L4 family (Like Fiasco, Fiasco.OC, NOVA microhypervisor, L4Ka::Pistachio, OKL4, SeL4, HW ("execution on bare hardware" -- a special custom kernel, combined with Genode root component, called core)), and on top of Linux kernel. Genode has a number of DDE's (Device driver environments), for Linux kernel (dde_linux), which supports wrappers for Linux drivers (running unprivileged in ring3), e.g., Linux TCP-IP stack, Linux wireless drivers, Linux Intel framebuffer drivers. Also, there is dde_bsd, which ports Audio drivers from OpenBSD, dde_ipxe, porting NIC drivers from iPXE project, and dde_rump, porting NetBSD rump kernel to Genode. Rump kernel is a special usermode server/library, allowing to execute unmodified NetBSD drivers (like TCP/IP stack, file systems or device drivers) as a simple usermode libraries. So far, some file systems from NetBSD are running under dde_rump.

All these features make Genode a very attractive alternative to L4Env/L4Re, so we're now trying to port our OS/2 personality prototype to Genode.

So far, we have implemented a number of servers on top of L4Env, implementing the OS/2 API. 1) There is "os2exec" server, which loads sections of executable files into its own memory, and it implements a shared memory arena. All OS/2 DLL's load into shared memory. os2exec server loads support of different executable formats, implemented as L4Env shared libraries. These libraries implement support for executable formats, transparently for the rest of the system. They are called Installable eXecutable Formats (IXF, by analogy with IFS). 2) There is (currently a stub for)  a "os2fs" server, which implements the file system API's. In the future, it should run OS/2-like IFS drivers (LX binaries, loaded by "os2exec" into "os2fs" address space). So, we plan to implement an "os2fs" server as a "filesystem router" in which IFS drivers are plug-in as LX DLL's. These LX DLL's should support "FS32_*" entry points, as it's done by JFS.IFS, without the need to support the 16-bit FS_* entry points. The first driver ported will be "ramfs.ifs" ramdisk driver. Then we plan to port FAT32.IFS and JFS.IFS (there is OpenJFS project based on Linux JFS sources). 3) And there is the main "os2srv" (OS/2 Server) server, which parses CONFIG.SYS, processes the system initialization and starts other servers and programs 4) There is also "os2app" L4Env application, which is a "container" of an OS/2 application. It calls OS/2 personality servers to load the LX executable and all required DLL's, then jumps to its entry point. There is a number of CPI (Control program Interface, the OS/2 kernel base API) DLL's, which are implemented, to some extent. As in case with PM, there are a number of forwarder DLL's linked to DOSCALLS.DLL. API's like SESMGR, MOUCALLS, VIOCALLS, KBDCALLS, etc. are implemented in DOSCALLS, and are forwarded to DOSCALLS from DLL's like VIOCALLS.DLL/MOUCALLS.DLL/etc. Also, there is a virtual KAL.DLL (which stands for Kernel Abstraction Layer), which is a core of OS/2 API, implemented in OS/2 personality and L4Env Servers. DOSCALLS functions are built on top of them. The border between KAL and DOSCALLS separates "OS/2 world" and "L4 world". KAL is implemented as a native L4env shared library, DOSCALLS is a native LX OS/2 DLL. These two worlds are built with different toolchains. "OS/2 world" is built with OS/2-specific OpenWatcom tools, "L4 world" uses GNU toolchain, specific to the host environment (L4Env/L4Re/Genode).

So far, we have implemented support for pure 32-bit CLI OS/2 applications. There is about 70 API's implemented (with different level of readiness). VIO/MOU/KBD should be pure 32-bit in the future, but so far, they are not implemented. Now programs, based on stdin/stdout/stderr are working, based on Libc/VFS/terminal support in L4env. There is a small minishell is started, which can run external programs, like zip.exe, sed.exe, awk.exe, wasm.exe, wmake.exe (OpenWatcom assembler and make utility). Also, xmakeini.exe (a makeini clone by Ulrich Moeller) is run in the minishell. In the future, we will incrementally increase the functionality. We will first try to run 4OS/2 shell instead of a minishell. Then move towards VIO/KBD/MOU and try running FC/2

So far, we're a bit stick porting it to Genode. But moving on slowly. Unfortunately, there are only three more-less active developers, from which one became a big IT boss, which is very busy, another graduated from the university, so, he became very busy too. Only me is trying to do something currently. Though, I'm currently jobless this time, searching for a job, and could be overloaded by work soon too.

Anybody willing to help is welcome. The former PM developer could help a lot with advancing the FreePM project.

WBR,
valery.
Title: Re: Open Source / 2
Post by: Martin Iturbide on August 02, 2018, 01:40:33 am
Hi Anitha

Presentation Manager is considered an important part of OS/2 and it is one of its vital components. One of the greatest goals of the OS/2 community will be to finally clone it and offer it as open source software so it can keep evolving,  but we lack skill and hands for that tasks.

There are projects that can be the starting point for a Presentation Manager clone like:
- FreePM (part of the OSFree project) : http://osfree.org/
- 2ine: (https://www.patreon.com/posts/project-2ine-16513790) Which has some incomplete cloned components of PM.  https://hg.icculus.org/icculus/2ine/

It would be really great if someone can help on that task to improve FreePM and move it forward.

Regards

Title: Re: Open Source / 2
Post by: RickCHodgin on September 20, 2018, 03:57:54 am
Presentation Manager is considered an important part of OS/2 and it is one of its vital components. One of the greatest goals of the OS/2 community will be to finally clone it and offer it as open source software so it can keep evolving,  but we lack skill and hands for that tasks.

I would be willing to write an open source PM.  I'll look into the API and see what's required.

UPDATE:  I found documentation here:  http://www.os2museum.com/wp/os2-history/os2-library/os2-1-x-sdk/ (http://www.os2museum.com/wp/os2-history/os2-library/os2-1-x-sdk/) ... Does anybody have a link to something newer?  Or a copy of this book: https://books.google.com/books/about/OS_2_Warp_Presentation_Manager_API.html?id=nnIhAQAAIAAJ (https://books.google.com/books/about/OS_2_Warp_Presentation_Manager_API.html?id=nnIhAQAAIAAJ)
Title: Re: Open Source / 2
Post by: Martin Iturbide on September 20, 2018, 04:32:12 am
Hi Rick

It can be interesting if you can focus in a single component first to create a clone of it. PM is big and requires a lot of effort, here are some links.

For the latest Presentation Manager API documentation check the "Presentation Manager Programming Guide and Reference" from IBM on this place: http://www.edm2.com/index.php/IBM_OS/2_Warp_Development_Manuals (http://www.edm2.com/index.php/IBM_OS/2_Warp_Development_Manuals)
It is referred also as the PM1.INF, PM2.INF, PM3.INF, PM4.INF, PM5.INF books.

There are some other PM books available here:
http://www.edm2.com/index.php/List_of_OS/2_Software_Development_Related_Books (http://www.edm2.com/index.php/List_of_OS/2_Software_Development_Related_Books)
I was not able to find the one you are looking for.

You may also get some ideas/inspiration from the FreePM project (incomplete) of OSFree.
https://github.com/osfree-project/osfree

Regards

Title: Re: Open Source / 2
Post by: RickCHodgin on September 20, 2018, 04:56:50 am
It can be interesting if you can focus in a single component first to create a clone of it. PM is big and requires a lot of effort, here are some links.

That API is huge, probably 50x more complex than it needs to be.  I'll definitely pare it down.

I'll work on a creating the skeleton of an open PM on Windows using Visual Studio.  Once the base algorithms are developed and it's able to do basic things, it can be ported to OS/2 and expanded by somebody.
Title: Re: Open Source / 2
Post by: RickCHodgin on September 20, 2018, 02:36:13 pm
It would be really great if someone can help on that task to improve FreePM and move it forward.

Would anyone be interested in a PM-lite version?  Something that is very PM in nature and function, but doesn't include the full API?
Title: Re: Open Source / 2
Post by: Andi B. on September 20, 2018, 04:01:16 pm
Quote
That API is huge, probably 50x more complex than it needs to be.
Needs to be for what? I'm pretty sure the complexity isn't there for it's own sake. Maybe you only didn't understand fully for what it's good for?

Quote
Something that is very PM in nature and function, but doesn't include the full API?
IMHO then it's no PM. It's another graphic engine with limited functionality. Zero applications and no GUI. Or do you think WPS and SOM runs on your lightweight version? What is the benefit compared to our working PM. I fore myself hardly see any need for such thing.
Title: Re: Open Source / 2
Post by: RickCHodgin on September 20, 2018, 04:31:47 pm
Quote
That API is huge, probably 50x more complex than it needs to be.
Needs to be for what? I'm pretty sure the complexity isn't there for it's own sake. Maybe you only didn't understand fully for what it's good for?

For the needs of fully supporting apps running in an OS.

Quote
Quote
Something that is very PM in nature and function, but doesn't include the full API?
IMHO then it's no PM. It's another graphic engine with limited functionality. Zero applications and no GUI. Or do you think WPS and SOM runs on your lightweight version? What is the benefit compared to our working PM. I fore myself hardly see any need for such thing.

I know your position on my work, Andi.  Thank you for your feedback.

My long-term goals are ES/2, so this would serve as the PM for ES/2.  It could be expanded by anybody to include all of the features, but there are far fewer needed than what I began reading in that document last night.  More than an order of magnitude fewer.
Title: Re: Open Source / 2
Post by: RickCHodgin on September 20, 2018, 07:12:44 pm
That API is huge, probably 50x more complex than it needs to be.  I'll definitely pare it down.

I'll work on a creating the skeleton of an open PM on Windows using Visual Studio.  Once the base algorithms are developed and it's able to do basic things, it can be ported to OS/2 and expanded by somebody.

I was able to get the API list into function names, and it's 504 functions in it's full form, which is manageable.  I'll begin building the skeleton for that, and map out a strategy for completion.  If anyone would like to help me when I get it framed, please let me know.

Note:  I was mis-reading the IBM OS/2 Presentation Manager Programming Guide and Reference documentation.  I read each parameter as a variation of the function because it included its function name, but I now see it's simply an extended form of documentation for each parameter.
Title: Re: Open Source / 2
Post by: RickCHodgin on September 21, 2018, 12:08:39 pm
I was able to find the full range of functions defined in the OS/2 4.5 toolkit's .h files, and will use my CAlive source code parser to read the source files, load them into Wiki pages for full parameter-based documentation, creating a fully documented developer help system (to be added to the EDM/2?).

Maybe after it's completed, someone can read the Presentation Manager documentation, and add in the missing verbal descriptions over time, or at least cite the pages the functions fall in/on.
Title: Re: Open Source / 2
Post by: RickCHodgin on September 24, 2018, 03:06:39 pm
I began working on this task this past weekend.  My goal is to obtain all headers in a form that's able to be parsed out into documentation, and to associate every function with its published place in the system DLLs, creating a comprehensive database of every core OS file that is visible to developer code.

I was also thinking on the way in to work this morning of creating a much simpler Workplace Shell, one that does pretty much the same things we have today, but is done through a much simpler and smaller API.  I'll have to consider it.

I would like to have other developers help me at some point.  I'll lay the foundation and get things moving, but please know I am looking for help on this project.  I do not want to do it alone.  I want to be part of a team that is working together to create an open source OS/2 clone that will put both Linux and Windows to shame.