Posted
by
timothy
on Thursday September 22, 2011 @09:30AM
from the how-does-being-assimilated-feel dept.

An anonymous reader writes "I just tried to install Subsystem for UNIX-based Applications (SUA) on Windows 8 Preview and found that it's marked as DEPRECATED: 'Subsystem for UNIX-based Applications (SUA) is a source-compatibility subsystem for compiling and running custom UNIX-based applications and scripts on a computer running Windows operating system. WARNING: SUA is deprecated starting with this release and will be completely removed in the next release. You should begin planning now to employ alternate methods for any applications, code, or usage that depend on this feature.'"

Nope. SUA is predominantly used for console applications. They've moved on from "Extend" to "Extinguish" now.

It's console-only, actually. It's just something that runs on the POSIX subsystem that NT provides, but it really sucks. First, it's an ancient POSIX interface. Second, it's command line only - it's not like you get X or anything. Third, well, you lose access to Win32 (can't cross subsystems).

If's really a checkbox item, just like how NT had the ability to run OS/2 programs too.

If you're porting a Unix app to Windows, you don't use SUA. You use a Unix-to-Win32 porting library (of which Cygwin is just one), just like how Windows apps can be ported to Linux using WineLib or its commercial equivalents as well.

Hell, a Cygwin program at least can mix Win32 API calls with POSIX calls, because Cygwin maps POSIX calls to Win32.

Why would someone use SUA, which is only contains very old versions of the software it bundles? There is Cygwin, which is a much much better alternative.
Sometimes, even MinGW is a valid alternative because it generates a native application (though it requires some porting effort, which may be unacceptable in many cases).

Parent might be a troll, but it's also somewhat true. Plenty of organizations out there unwilling or at least reluctant to deploy anything open source when there is a Microsoft-supported option. The bias in favor of propriety supported solutions remains even when the open source version is demonstrably better.

Maybe when they want a simple ls to take less than 5 minutes to complete on directories with even a moderate number of files? Cygwin is horrible. It's slow, buggy, and in constant flux. I much prefer natively compiling with something like MinGW when I can get away with it.

Look, I love Cygwin and have been using it since forever. But it's pretty slow at a lot of crucial operations, making it unsuitable for a large class of things folks use SUA for.

More importantly, it suffers from a serious lack of manpower and direction. For a project which is so vast and so important to open source, it has alarmingly few active maintainers. The lack of maintainers is made worse by the fact that a considerable amount of maintainer effort is duplicated between cygports and the official cygwin distribution.

Everybody uses cygwin but as far as I can tell very few people pay RH for cygwin support, and thus there are AFAIK only three people who are paid for their work on cygwin.

The lack of manpower really shows. Crucial packages go for long periods without important bugfixes, and new releases take a long time to get ported&integrated from upstream. Development on the cygwin core is fairly slow. NT-based versions of Windows offered quite considerable benefits over Win9x (lots of additional capabilities and much less of a mismatch with POSIX -> better security and performance), but the first version to really take advantage of these benefits was 1.7, released for Christmas 2009 [slashdot.org]- 7 years after the majority of users (much less the majority of technical users likely to use cygwin) had made the switch. The developers had their first serious discussion about the possibility of a 64-bit version of Cygwin in June of this year; it will likely be quite a while before a 64-bit version is released. A lot of cygwin's performance problems could be fixed if the core developers weren't already overburdened as it is.

Unless cygwin can attract a lot of new developers I don't think the project can stay up-to-date enough to continue to support the uses we all already rely on it for, much less be in a position to give SUA emigres a soft landing.

Yes. Where I work, we have a production load and test process for some of our hardware that depends on cygwin. We have had cygwin cause problems for us only once, and that happened to be on a non-production station. (Production stations had all their files on the local hard drive - this machine was performing some operations on LAN shares and the Cygwin issue was related to LAN shares.)

Now the Xilinx ISE toolchain that was being called from our scripts hosted in Cygwin... ugh that's a whole other story.

And cygwin is massively crippled compared to *nix. Wherever possible, I try to get native user land ports, and if I need more advanced things, well, there happen to be a number of open source *nix-like operating systems out there. It's one thing to want to run sed on your Windows box, quite another to basically try to port over the entire *nix environment.

I think you are exactly right. Most people in my experience that use SUA use it very little just to run that "one little script" occasionally or whatever. For that you can use a VM. Performance isn't that big a deal for something that is occasionally used. If performance is a big deal than you should be running *NIX natively. Most *NIX stuff used in the commercial environment are either very high end workstation apps or server based apps anyways... why would you want to run a oddball compatibility tool in

100% agreed. The commercial alternative - MKS Toolkit [mkssoftware.com] - integrates seamlessly with Windows, and is both more complete and faster than Cygin. Yes, it costs money, and no, it is not open source - but if you need to do Unix-like stuff on Windows, it actually makes life tolerable.

100% agreed. The commercial alternative - MKS Toolkit [mkssoftware.com] - integrates seamlessly with Windows, and is both more complete and faster than Cygin. Yes, it costs money, and no, it is not open source - but if you need to do Unix-like stuff on Windows, it actually makes life tolerable.

But Unix-like stuff itself is not tolerable, which is why it has to be reimplemented with GNU, Linux, Cygwin and other free software.

For instance, how does the vi editor in MKS stack up to Vim? If the following link gives a more or less complete manual, it's freaking pitiful:

This is how it is with microsoft. You cant rely on ANYthing from them - they can just shut down or bail out on you (bcentral, silverlight, soon.net), and you will have to spend a lot of time and funds to go around the pain they cause you.

We relied on FoxPro from the 2.5 DOS version through the upgrade path to Visual FoxPro6.0. Then, MS announced on the UniversalThread VFP forum that they were dropping VFP and set up classes on that forum to teach.NET, the "new" developer paradigm. They bestowed "MVP" badges to prominent VFP forum members who then played the.NET flutes that led the children out of the VFP villages. The outrage among a large number of the approximately 300,000 VFP developers, world wide, was palatable. MS was t

Now, it seems, MS has kicked the.NET/C# programmers to the curb, announcing that HTML5 and Javascript (??!!!!) were the "new" dev tools

Hello, I am billions of dollars of enterprise backend software written in C# and.net. Can you please explain to me how Microsoft is going to phase out C# and convince the millions of C# developers to rewrite their enterprise software in HTML5 and Javascript?

Can you explain to me how future versions of SQL Server, Exchange, Sharepoint, etc, are going to be written in HTML5?

Silverlight wasn't really killed in the niche where it was actually being used (for intranet apps, rather than as a Flash killer) - it just got a facelift. If you actually look at Win8 UI framework, it's basically Silverlight reimplemented in native code with a bunch of namespaces renamed. You can port a Silverlight app to Win8 in a few hours at most.

.net people were already going amok in their community forum, all ablaze due to rumors tied to win 8.

"Rumors" being the key word here. Going from "you can now write apps in HTML/JS" to ".NET is dead" was quite a stretch, but there were enough people willing t

Other than the LDAP extensions SFU/SUA added to the active directory what else was really used from it? It seemed to me that anything else you would use from it would be better handled with a real UNIX or Linux install, either on it's own box or in a VM.

Is this a shock to anyone after The Week of Windows 8 Hype? If there was a theme running through all of the stories it was this: Windows as you have known it is deprecated, a traditional Windows desktop will be available (certainly on x86, perhaps on arm) for those who are determined enough to figure out how to reenable it but don't expect it to last much longer. If Windows and native Win32 executables themselves are on the chopping block why would they have any interest in maintaining a UNIX command line layer?

Win32 (and UNIX more so) isn't going to lend itself to the sort of app store lockdown Microsoft is moving to. If you have a choice of buy Win32 apps/games at Walmart/Gamestop and Microsoft gets no taste of the action or buy everything at the App Store and give Microsoft 30%, which do you think they are going to 'nudge' you toward? And by 'nudge' I mean turn your PC into an iPhone with hard crypto locks and remove all options that do not let them rake off their 30 points.

> Windows as you have known it is deprecated, a traditional Windows desktop will be available (certainly on x86, perhaps on arm) for those who are determined enough to figure out how to reenable it but don't expect it to last much longer. If Windows and native Win32 executables themselves are on the chopping block

I think that's going to last about 6 months after Win8 release, and then they're going to realize that early adopters are putting keyboards and mice on their tablets and struggling to re-enable

Some have stated that Win8 is stated to be a failure already as far as x86 machines go, based on the fact that companies waited 10 years on XP and skipped Vista, and are only now moving to W7. Companies won't be going to W8 anytime soon. Consumer PC purchases in the windows market are down, so who's actually going to go with W8? Tablets and phones seem about all that's left, and they're not running x86. (That means no W7 interface on those devices)

The old rule was that there was always two reasonable windows releases for every bad one (win95, win98; winME), (win2000, WinXP, Vista). Now the rule appears to be every other release is going to suck. So though Win7 is ok, win8 appears doomed. That metro interface isn't going to fly in the corporate world where people are trying to get real work done.

"I think that's going to last about 6 months after Win8 release, and then they're going to realize that early adopters are putting keyboards and mice on their tablets and struggling to re-enable the traditional desktop"

You do realize that Windows 8 is for both desktops/laptops and tablets? Tablet users use keyboards as well (witness the sale of keyboards for the iPad); the Metro interface is just a touch-friendly environment. It takes all of one registry edit to kill it permanently and switch back to all-tr

Yep. It's inevitable. I think the even/odd thing is that in release (a) we try new stuff, and in release (b) we fix/withdraw it, and then in release (c) we try new stuff again, so it tends to devolve into even=suck odd=less_suck. Or the other way around, depending on if they start at "1" or "0".

photo shop / the adobe CS pack is a big windows and mac app that will not work good with a touch based ui (maybe for a photo shop light), also it has lot's of 3rd party plug ins' (I hear that the MS app store is more open to that then the apple one). Also big screens and dual or more helps with it as well.

"That may be Microsoft's plan, but it's a real loser for expensive specialty software. At my work, we have plenty of technical apps that cost more than the Windows machine they're running on, even though they require fairly hefty hardware. There's no way a company writing a $10K app is going to be willing to hand over $3K to Microsoft to get it on their appstore."

If you think that company is going to re-write their "$10k app" that requires "hefty hardware", in HTML5/Javascript, you've got a screw loose. Met

Metro apps can be written in native C++,.NET, or HTML5/JS. So, porting the guts of just about any app to metro is trivial. I've been working on the developer preview with our application, and the integration with the old code is trivially easy. It's the writing of a new interface that poses difficulty. I could see photoshop moving its browser to Metro, or Autocad providing a metro-style viewer - a full screen touch-based Autocad viewer could be pretty cool on a tablet actually.

One might gather that it's not worth the trouble for NT to ape Unix anymore. Chances are pretty good Linux is the new SUA and virtualization will be the new supported solution to this problem. I mean, why should Microsoft bother maintaining its own Unix tools when they're actively maintained elsewhere? Given the work they've done on both virtualization and linux integration I would say that there's no great conspiracy here.

I think you've hit the nail on the head. What's bothering me though are these draconian "walled gardens" that are continuing to be pushed onto us. What's bothering me even more is the move towards "leaseable" applications that if not in whole at least in part reside on a corporate server farm somewhere rather than my hard drive. Not only are we losing traditional ownership but the ability to use them is depending upon fragile infrastructure. They are creating huge vulnerabilities subject to the whims of

I always thought Microsoft could be unique from the likes of google, etc by doing just that. Take all the services google offers and provide them as microsoft server Apps. That way a business could have it's cake (all the cool web apps) and eat it too (have them hosted locally). I personally run an internal Windows SBS because I like all the capabilities exchange and a DC provide but I don't want them provided by some external service.

I think it's another indication that anyone who trusted MS to support functionality that didn't directly benefit MS was a damned fool. When it comes to Microsoft, the only way to win is to not play. i.e. Don't buy their stuff, ever.

Windows-only shops may tolerate you insisting on SUA, because it's a Microsoft product.

Start talking about CygWin or VMs and their eyes glaze over, they suck their thumbs, and moan "Wasn't on my MCSE, hippies will eat me, wasn't on my MCSE, hippies will eat me."

I know that there's not really any significant difference in support terms (other than not getting the flakey almost-POSIX and BSODs that continue to burden SUA), and that they'd be better off switching to a native POSIX environment anyway, but t

They've killed it by only supporting the features necessary to re-share existing NFS services using SMB and AD. Integration of Windows with non-AD LDAP and Kerberos is virtually non-existent and requires a ton of work and 3rd party utilities to get it working. I don't think NFSv4 is even supported.

...Which can be seen by viewing SUA based process in Windows's Task Manager.

Do this:1. Install SUA2. Run KSH (the command line shell that SUA installs)3. Open Task Manager4. Change the columns so that 'command line' is showing.

You will notice that the SUA processes have _wrong_ (corrupted?) information displayed. This is based on the fact SUA is a different _subsystem_ and stores process based information (specifically, command line information) in memory in a _different_ format than the _Win32_ subsystem.

It's not Cygwin. It's an implementation of the POSIX APIs that goes directly to the NT APIs instead of through Win32.

I can't comment much on the tradeoffs except to say that I think it solves the problem of Cygwin's fork() being terrible. (SUA also provides a route to get multiple files with the same case-folded name but different case-sensitive names, which I don't think you can do with Cygwin since it goes through the Win32 API.)

I can't comment much on the tradeoffs except to say that I think it solves the problem of Cygwin's fork() being terrible. (SUA also provides a route to get multiple files with the same case-folded name but different case-sensitive names, which I don't think you can do with Cygwin since it goes through the Win32 API.)

Yep, fork() on Interix (SUA) works much more efficiently. The NT kernel has supported what's essentially fork() since at least NT 4.0. The problem until Interix - and the reason why Cygwin's fork() sucks - is that the Win32 DLLs don't react well to being fork()ed. kernel32.dll gets confused, and simple things like console output stop working. Interix doesn't use the Win32 API, instead using a custom POSIX API and the NT API directly. The NT API has been updated to work in the event of a fork().

The NT API function NtCreateProcess [ntinternals.net] spawns a new process. The SectionHandle parameter takes a handle to the image section (IE, CreateFileMapping with SEC_IMAGE) representing the EXE you want the new process to run. If you pass NULL for SectionHandle, you will instead be creating a copy of the parent process's address space, the main part of fork().

Well, first off the basic thing is speed. SUA has kernel hooks for syscall translation. It's able to do many of the POSIX syscalls in a much quicker fashion than Cygwin. Cygwin, on the other hand, does *everything* for POSIX syscalls in userland, causing it to be slow (for example, a fork, at times can take *seconds* to complete).

So, SUA is much better this way... problem is, it's tricky to get things to compile for it, I never did get things building reliably for it. Cygwin has a full suite of programs already built, and it's much easier to build existing Linux/UNIX/POSIX programs for than SUA.

Being a Windows user who needs *NIX tools for many processing tasks, what do I use? Cygwin. Easier to set up and get running. The speed drives me insane, though. My login script, which runs many programs before bringing up my bash prompt will take 5-6 seconds.

Ideal solution: Hyper-V or some other VM software running a VM in the background that I can get a terminal to, that has filesystem access to my system drives too.

SUA was once called SFU (Services For UNIX), and it replaces the built-in POSIX subsystem which has been an integral part of NT since NT 3.1.

The built-in POSIX subsystem alone was basically useless as shipped, since it came without many command line utilities, but SFU (now SUA) upgraded it to a more or less useful configuration, including a series of commands built to use the API; in some ways it accomplished the same thing as Cygwin, but in a different way.

Cygwin is basically user land tools. It doesn't help if you want to mount something like an NFS partition. I assume SUA also has hooks into Windows services for Unix clients. That said Cygwin is probably adequate for most things. Admins could also consider running a VM on Windows, or even install something like CoLinux.

I doubt telling people to "just use Linux" is a reasonable solution though. If it were that simple they wouldn't be bothering with SUA in the first place.

Or maybe no one is using it, and its not worth the support headaches. As others have, and will continue to suggest throughout the comments in this article, cygwin, mingwsys, UnxUtils or even a full blown unix VM are fine substitutes for SUA.
Now, if you are actually using SUA in production, and this negatively effects you, that would be interesting to hear about.

That's the key right there. With virtualization software in the state that it is now, why would you run POSIX applications shoe-horned into windows, when you can have a proper POSIX system running in a VM.

The problem is that VMs consequently bring an isolation level that doesn't allow you, for example, to work at the native filesystem. You cannot easily grep something in your "My Documents" folder, as far as I know and, even if you can, you'll be consuming way more resources than needed, which may bring consequences as bigger execution times. They're a great solution for a lot of problems, though, don't get me wrong.

That's the key right there. With virtualization software in the state that it is now, why would you run POSIX applications shoe-horned into windows, when you can have a proper POSIX system running in a VM.

I agree that SUA is pretty bad, but running Cygwin allows me to run commands like:

sort -o/dev/clipboard/dev/clipboard

This sorts the data on the Windows clipboard. Having the whole *nix user land plus access to Windows features/drives/data makes the command line in Windows much less painful than before. A VM won't really solve that.

That post was nice and dramatic and everything, but SUA was a piece of shit that nobody used anyway. If you need to run POSIX applications on Windows there are ways to do it that don't suck. "Hegemony," "rise to power," give me a fucking break dude.

DR-DOS, Wordperfect, Ami pro count as direct sabotage in modifying their code to break competitors products. But it could certainly be argued that the entire "embrace, extend, extinguish" plan is ultimately a form of technical sabotage. Their executives emails have specifically mentioned causing competitors products to crash as a primary goal in defeating them. How can you say it wasn't consequential when it is coming from the very top of the company? I agree the sabotage probably wasn't necessary to ga

What a load of rubbish! A single beta version of Windows didn't work under DR-DOS. To that sounds like they are just eliminating bugs in the was DR-DOS runs Windows from distracting the developers who are trying to find bugs in their own code. Any version of Windows (pre-Win95) that could be purchased would run under DR-DOS.

WordPerfect killed themselves by resisting the move to WYSIWYG and a Windows version. When they finally did it, it was incredibly buggy. How is Microsoft responsible for that?

"Should be a rule that you dont' create a model that depends on Microsoft."

If you make an application that runs on Windows, then it depends on MS. How many people had their Netscape installations disabled by MS updates of IE? How many application vendors were unable to compete because MS was the only one with access to undocumented APIs? You do remember that the DOJ eventually found them guilty of unfair trade practices because of these tactics.

Or what about workalike operating systems like DR-DOS. MS a [wikipedia.org]

Should be a rule that you don't create a model that depends on Microsoft.

1-800-what-model-is-that? I worked in the 1980s on Chinese, Japanese, and Korean input methods. CJK input was a time-limited product, completely dependent on Microsoft, so of course we got eaten when they folded CJK fonts and IME into the operating system.

Your sentiment really pissed me off, because a lot of people gave blood to bring Microsoft down a peg or two in the 1

Netscape committed suicide also. They released a buggy as hell browser as v3. It turned me into a MSIE user for a short while, that's how bad it was. The white window thing, where it would fail to paint, should bring back memories. Their server product quickly grew stale compared to Apache. They had to know the revenue stream for a commodity interface like a web browser wouldn't last. People sold command shells back in the old days too...that didn't last. Bad business plan. Blaming Microsoft is hard

Jesus, did you even read TFS? "WARNING: SUA is deprecated starting with this release and will be completely removed in the next release." Or do you not trust what Microsoft themselves tells you about their products (hmmm, can I get back to you on that one...)?

If you read the summary, it says Deprecated in Win8 and scheduled to be removed in a future version. Of course, by "a future version", that could be Win10 for all we know. MS has deprecated features in the past that remained well beyond the "next" release.