Lots of video game tools/middleware work only on Windows, and only recently other platforms have been considered like OSX, Linux, and others.
AFAIK for OSX the only legal option is colocation - e.g. you provide an actual OSX machine, and it's installed for you somewhere for your use or your team (I'm actually not completely sure there).
I'm talking about OSX, since lots of these tools above are released for Windows and OSX, but not for Linux (yet).
I've posted about video game tools, but one important non-video games related tooling is the visual studio compiler, linker and the whole plethora of tools there.
So if you are Mozilla and want your browser to get recompiled for Windows you might use such a service (I don't actually know whether Mozilla is doing this, just giving an idea)
Nicely integrated infrastructure? AD integration etc?
Lack of choice to. Which sounds bad but can be good. For example Linux you have lots of webservers Apache. Nginx, tomcat all with different config methods.
Windows? Add the web server role, use iis and be done with it.
You can run Apache and Tomcat on windows if you so choose. You can even run nginx (albeit on top of Cygwin) [0].
You also don't need IIS to run HTTP endpoints. That said, IIS7+ is a pretty nice web server (I speak from experience as a shared web hoster ops and dev person). It's got a plethora of knobs and dials for tuning and is extensible (via native or managed code modules and handlers). But as always, horses for courses and all that.
Why the fuck do you need AD in a container that is supposed to be only running a single process? Consider your code quality is shit and overly complex.
Thanks! I'm really curious what a Windows container is capable of. Many Windows programs are dependent on GUIs. I can imagine that Windows containers are a great testing platform. Let's see what else is possible.
Docker isn't *nix only, MS and Docker have ported it to Windows 10 and Server 2016. You're able to use the same API between the various Docker hosts, but the binary compatibility is much the same as that between Linux and OS X versions of Docker.
What the hell do people not understand about containers?! They are not virtualization. They're just regular damn processes running on the kernel. So no, of course not.
> So there are windowsservercore containers. Are they real windows?
"Server Core is a minimal server installation option for computers running on the Windows Server 2008 R2 operating system. Server Core provides a low-maintenance environment capable of providing core server roles"
Basically server core is stripped down version of windows without a GUI[1] that will run most server roles, Powershell etc.
1. Well it kind of has a GUI, but one that is only capable of running cmd.exe and little else.
What if an exploit is found in the signed copy? Someone else can host the old version which is still signed and supply it to the user. Are they going to revoke the certificate used to sign it entirely?! Not using HTTPS is a sloppy security practice on their side.
Ideally, you'd want them to use HTTPS to deliver the packages as well. However, I cut free software distribution some slack, because of massive distributed mirroring and delivery by a number of third parties. For Microsoft, it would be easy: why _not_ use HTTPS and get another line of defense?
(update: revelation's comment is insightful; just saw it. I forgot about versioning.)
If you're worried just enter the above instead, fully HTTPS-ed. Invoke-WebRequest (aliased to wget in this example) follows 301 links unless told not to, so you're actually downloading the script over HTTPS all the time, but someone could still MITM the link shortening service.
As you note, the redirect breaks all benefits of HTTPS. That can just be trivially stripped.
Powershell, in any case, allows for scripts to be signed. Since the script in question is semi-auto-generated in any case, they should just include that as a step in the build. But serving unsigned scripts over HTTP is just beyond the pale.
Powershell is fairly new... I'm surprised Microsoft is using `$_` instead of the common (in UNIX) `$?` to represent the current value in the pipe. It's almost like they go out of their way to not conform to anything other OS' have already done.
Hmm, I didn't realize that (not a Perl guy obviously). Even so, Perl isn't a shell, it's a runtime/language. Whereas powershell is, a shell. I would have expected it to be more UNIX-like in that regard.
Not at all. What I'm saying is that /bin/sh has idiosyncratic, incomplete language syntax and semantics (mostly for historical reasons). For example, variable comparison is not built in but rather is dependent upon the external [ (or test). It would be hard to call a language 'complete' when it doesn't even support variable equality testing.
Whatever you think of Windows/MS/etc, Powershell is a decently-well-designed, complete language with a number of useful, convenient constructs. For example, here is a native Powershell hashmap (that can be looped over, etc.):
Powershell has lots of cool features, startup-time not being one of it. It's very important for some of these scripts to start in a matter of milliseconds.
Then I need to try it out again. After months of working only with Linux, OSX - I miss a bit the good ole NT :) - Far Manager, System Internal tools, WinDBG, etc.
New Microsoft features are available too, like V-Server integration, Package Management through Chocolatey and so forth.
I am not exactly a Powershell guru, but its definitely evolving in a way superior to BASH scripting. I mean seriously, BASH is so backwards that I can't imagine why ANYONE would seriously recommend taking cues from it.
I was more referring to the likes of es, rc and Inferno sh. The rest are all just variants of Bourne or C shell in some way, and even then Bourne and C don't have much in the way of compelling differences.
Hmmm.....I think PowerShell blurs the line between shell and full blown programming environment (as in I can build complete WinForms apps in PowerShell).
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
windowsservercore latest 9eca9231f4d4 30 hours ago 9.613 GB
windowsservercore 10.0.10254.0 9eca9231f4d4 30 hours ago 9.613 GB
vs
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
alpine latest 31f630c65071 9 weeks ago 5.254 MB
Is it a container or an image ? it looks like some image for VM with some kind of bootstrapping for linux or something. And what is the license for a Windows Server Core ? Is it possible to find a ELI5 for how it is supposed to work ?
Docker added this concept of a "graphdriver" where things are stored as their delta on disk as they assume you'll use many of them. Obviously your first windows container is gonna use up more blocks in that type of storage than a linux container built specifically to be small[0]
62 comments
[ 3.3 ms ] story [ 116 ms ] threadAFAIK for OSX the only legal option is colocation - e.g. you provide an actual OSX machine, and it's installed for you somewhere for your use or your team (I'm actually not completely sure there).
I'm talking about OSX, since lots of these tools above are released for Windows and OSX, but not for Linux (yet).
So if you are Mozilla and want your browser to get recompiled for Windows you might use such a service (I don't actually know whether Mozilla is doing this, just giving an idea)
Lack of choice to. Which sounds bad but can be good. For example Linux you have lots of webservers Apache. Nginx, tomcat all with different config methods.
Windows? Add the web server role, use iis and be done with it.
You can run Apache and Tomcat on windows if you so choose. You can even run nginx (albeit on top of Cygwin) [0].
You also don't need IIS to run HTTP endpoints. That said, IIS7+ is a pretty nice web server (I speak from experience as a shared web hoster ops and dev person). It's got a plethora of knobs and dials for tuning and is extensible (via native or managed code modules and handlers). But as always, horses for courses and all that.
[0]: http://kevinworthington.com/nginx-for-windows/
IIS is great too and in-box. It's nice having smart defaults but a lot of options.
Windows will not run Linux-containers and Windows-containers will not run on Linux, just like the same restriction applies the other way around.
A container typically runs with the same kernel as the host, and therefore is restricted to be the same type of operating-system.
StackOverflow is entirely built on top of Windows and .NET. Its not necessarily an inefficient platform, despite Window's reputation.
"Server Core is a minimal server installation option for computers running on the Windows Server 2008 R2 operating system. Server Core provides a low-maintenance environment capable of providing core server roles"
Basically server core is stripped down version of windows without a GUI[1] that will run most server roles, Powershell etc.
1. Well it kind of has a GUI, but one that is only capable of running cmd.exe and little else.
(update: revelation's comment is insightful; just saw it. I forgot about versioning.)
https://raw.githubusercontent.com/Microsoft/Virtualization-D...
If you're worried just enter the above instead, fully HTTPS-ed. Invoke-WebRequest (aliased to wget in this example) follows 301 links unless told not to, so you're actually downloading the script over HTTPS all the time, but someone could still MITM the link shortening service.
Powershell, in any case, allows for scripts to be signed. Since the script in question is semi-auto-generated in any case, they should just include that as a step in the build. But serving unsigned scripts over HTTP is just beyond the pale.
Whatever you think of Windows/MS/etc, Powershell is a decently-well-designed, complete language with a number of useful, convenient constructs. For example, here is a native Powershell hashmap (that can be looped over, etc.):
Nice, no?Well they don't adhere to Unix because they're trying to be better.
Pipes pass _objects_ around in Powershell, and the entirety of .NET libraries is available for use in Powershell... including plugins and everything.
http://www.tomsitpro.com/articles/powershell-piping-filterin...
New Microsoft features are available too, like V-Server integration, Package Management through Chocolatey and so forth.
I am not exactly a Powershell guru, but its definitely evolving in a way superior to BASH scripting. I mean seriously, BASH is so backwards that I can't imagine why ANYONE would seriously recommend taking cues from it.
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.htm...
But when it comes down to writing something that others use, you can almost always rely on BASH being installed on their machine.
The other shells... not so much. I hear zsh is pretty good though.
Hmmm.....I think PowerShell blurs the line between shell and full blown programming environment (as in I can build complete WinForms apps in PowerShell).
sh, bash, zsh, korn shell,....
> instead of the common (in UNIX) `$?` to represent the current value in the pipe.
Is that common in UNIX? Can you give an example?
see https://msdn.microsoft.com/virtualization/windowscontainers/...
*I work for Microsoft on these specifically.
Docker added this concept of a "graphdriver" where things are stored as their delta on disk as they assume you'll use many of them. Obviously your first windows container is gonna use up more blocks in that type of storage than a linux container built specifically to be small[0]
[0]: http://gliderlabs.viewdocs.io/docker-alpine/