Linked by Thom Holwerda on Mon 25th Nov 2013 17:43 UTC
IBM

The Ars Technica article on OS/2 mentions, in passing, Workplace OS, the pie-in-the-sky successor to OS/2 IBM was working on. I found this fantastic journal article written by Brett D. Fleisch and Mark Allan A. Co, which goes into this failed project in great detail.

IBM's Microkernel, named Workplace OS microkernel, was the core components of Workplace OS, a portable successor of OS/2. The basic premise of Workplace OS work was: 1) IBM would adopt and improve the CMU Mach 3.0 microkernel for use on PDAs, the desktop, workstations, and massively parallel machines, and 2) that several operating system personalities would execute on the microkernel platform concurrently. This architecture would allow users to switch between applications written for different operating systems while IBM would also benefit by having one common platform for all product lines. The goals of the microkernel and the technical features of design are described in this paper. We also present lessons that may benefit future projects with similar goals.

Also, I get to use the IBM icon!

Order by: Score:
Link...
by Kochise on Mon 25th Nov 2013 17:50 UTC
Kochise
Member since:
2006-03-03

malformed : remove the trailing double quote.

Kochise

Edited 2013-11-25 17:51 UTC

Reply Score: 2

RE: Link...
by Thom_Holwerda on Mon 25th Nov 2013 18:00 UTC in reply to "Link..."
Thom_Holwerda Member since:
2005-06-29

I actually forgot the opening quote.

Thanks and fixed!

Reply Score: 2

RE[2]: Link...
by Kochise on Mon 25th Nov 2013 20:24 UTC in reply to "RE: Link..."
Kochise Member since:
2006-03-03

You're... welcome ?

Kochise

Reply Score: 1

Interesting
by phoenix on Mon 25th Nov 2013 19:49 UTC
phoenix
Member since:
2005-07-11

Wonder if this is the reason that Windows NT supported OS personalities as well. The original goals for NT were similar, with the ability to run DOS, OS/2, Win16, and Win32 apps simultaneously, each in their own interchangable personalities. The NT kernel was also originally very portable, with versions for x86, MIPS, PowerPC, Alpha, and one or two other CPU architectures.

Reply Score: 4

RE: Interesting
by boofar on Mon 25th Nov 2013 20:06 UTC in reply to "Interesting"
boofar Member since:
2008-04-23

There is even a posix subsystem, "Subsystem for UNIX-based Applications", which is still supported on the latest Windows versions. I believe its a proper personality, not just a layer on top of the regular Windows APIs.

Myself, I just installed Cygiwn the last time I had to work on that cursed platform. ;)

Edit: Great article by the way. One phrase kept pooping into my head while reading it: "Second system effect". I was glad to see exactly that was the second item in the Lessons learned chapter.

Edited 2013-11-25 20:09 UTC

Reply Score: 1

RE[2]: Interesting
by moondevil on Mon 25th Nov 2013 20:30 UTC in reply to "RE: Interesting"
moondevil Member since:
2005-07-08

Not any longer, deprecated as of Windows Server 2012

http://technet.microsoft.com/en-us/library/hh831568.aspx

Reply Score: 4

RE[2]: Interesting
by Vanders on Mon 25th Nov 2013 21:56 UTC in reply to "RE: Interesting"
Vanders Member since:
2005-07-06

One phrase kept pooping into my head while reading it: "Second system effect". I was glad to see exactly that was the second item in the Lessons learned chapter.

Ah, I wasn't the only one doing that then!

These grand unifying projects are almost always doomed to failure, precisely because they are by their very definition, second systems and therefore extremely prone to the effect.

Reply Score: 3

RE: Interesting
by moondevil on Mon 25th Nov 2013 20:26 UTC in reply to "Interesting"
moondevil Member since:
2005-07-08

The POSIX personality has some special rights, because you need kernel level support for fork().

But other than that they are quite independent.

According to the official documentation, Windows NT family of kernels follows a micro-kernel design, even if to the outside world it looks monolithic.

For example, there are RPC mechanisms at the kernel level that help to modularize the kernel as if it was a micro-kernel one.

Since Windows 7, there are now quite a good support for user space drivers as well.

Reply Score: 3

RE[2]: Interesting
by some1 on Tue 26th Nov 2013 00:30 UTC in reply to "RE: Interesting"
some1 Member since:
2010-10-05

The POSIX personality has some special rights, because you need kernel level support for fork().

Fork is built into NT kernel and one doesn't need any special rights to execute it. More specifically, NtCreateProcess is a generalization of fork. Just pass your process handle as InheritFromProcessHandle, don't pass SectionHandle, and you're done. One can quite easily fork a Win32 process (e.g. see example 6.1 in "Windows NT/2000 Native API Reference" book). The main problem with that is that Win32 libraries, including kernel32 and mscvrt, are not fork-safe -- they cache per-process state in global variables. If you don't depend on Win32 libraries or agree to work-around, you can fork all you want.

Reply Score: 4

RE[3]: Interesting
by kwan_e on Tue 26th Nov 2013 07:09 UTC in reply to "RE[2]: Interesting"
kwan_e Member since:
2007-02-18

I may not be understanding those APIs correctly, but it doesn't look like they resume the process at the point execution of the the child process like it does in fork().

Reply Score: 2

RE[4]: Interesting
by some1 on Tue 26th Nov 2013 13:38 UTC in reply to "RE[3]: Interesting"
some1 Member since:
2010-10-05

NtCreateProcess creates a process without any threads in it. You then manually create a thread with NtCreateThread, where you specify the context (values of all registers) you want.

Reply Score: 3

RE[5]: Interesting
by kwan_e on Tue 26th Nov 2013 15:15 UTC in reply to "RE[4]: Interesting"
kwan_e Member since:
2007-02-18

So it's not really a fork, or a generalization of fork, but a component of what could become a fork. As a matter of semantics.

Reply Score: 2

RE[6]: Interesting
by some1 on Tue 26th Nov 2013 15:20 UTC in reply to "RE[5]: Interesting"
some1 Member since:
2010-10-05

OK, let's say that NtCreateProcess and NtCreateThread together allow one to write fork(), fork()+exec(), spawn(), subset of clone(), and some other similar functions.

Reply Score: 3

RE[7]: Interesting
by kwan_e on Tue 26th Nov 2013 15:29 UTC in reply to "RE[6]: Interesting"
kwan_e Member since:
2007-02-18

Okay, I get it.

Reply Score: 2

RE[3]: Interesting
by moondevil on Tue 26th Nov 2013 13:56 UTC in reply to "RE[2]: Interesting"
moondevil Member since:
2005-07-08

I was speaking from memory, about I passage I remember reading on the "Inside the Windows Kernel" book series.

Sadly I don't have the books around me to search for it.

Reply Score: 2

RE: Interesting
by phoenix on Mon 25th Nov 2013 20:45 UTC in reply to "Interesting"
phoenix Member since:
2005-07-11

Also forgot to mention that NT originally started out as the successor to OS/2 2.x and didn't get the Windows personality (and Windows NT name) until very late in development when Windows 3.x took off.

Reply Score: 3

Remember it from BYTE's coverage
by StephenBeDoper on Tue 26th Nov 2013 18:36 UTC
StephenBeDoper
Member since:
2005-07-06

An old issue of BYTE that I have kicking around (April 94) has an article on IBM plans for the PReP platform - and it had a few mentions of WorkPlace OS:


Operating System Issues

The IBM Power Personal Systems Division intends to have three operating systems availabile for its systems when they start shipping: AIX, Windows NT, and Workplace OS with OS/2 personality.
[...]
Workplace OS is a new operating system, although IBM has been working on it for years and has extensive experience with it on Intel platforms. With over 400 people working to bring it up on Power Personal hardware, IBM thinks it can include Worplace OS with the initial systems.

Reply Score: 3