# Windows Server 2012 and FreeBSD features?



## WinBSD (Mar 11, 2013)

Hi guys,

So far I have only used Windows based systems for desktop and webservers and complete newbie in Linux or Unix.

In the context of using Windows Server 2012 as a webserver what advantages does FreeBSD offer short-term and long-term? It seems MS is aggressively developing their server OS and adding new features with every release. One wonders if all these underfunded open source projects will be eventually outclassed by massive investments MS is making.

I would like to know opinion of somebody who has used both Win Server 2012 and FreeBSD 9.1 as a webserver and what they have to say?


----------



## ShruggingAtlas (Mar 11, 2013)

Hi WinBSD

I have no experience with Windows, having used only UNIX, BSDs and Linux. However, I wonder what features you think Windows offers, that make it worth developing for knowing it is backed by an abusive monopolist with a history of reliance on aggressive vendor lock-in as well as introducing and removing technologies with no concern for the development base?

I use PostgreSQL, Nginx and clang on FreeBSD, and I cannot honestly think of anything Windows could offer, that would make a switch worth considering.


----------



## Morte (Mar 11, 2013)

While it's true Microsoft is aggressively developing their server OS, this doesn't mean their decisions are infallible. The metro interface has pretty much proven that Microsoft is quite capable of making completely idiotic decisions. Even after the overwhelmingly negative feedback before release, they pushed it through anyway due to their latest company initiative. 

Speaking of initiatives, Microsoft may drop technology if they decide they don't like it. VB6? Gone, simply replaced with something else. Where is silverlight going? It doesn't seem to be going anywhere. I've got an exchange 2007 install which is the last version that supports "public folders". It's simple and was VERY popular, so why did they drop it? Now they expect you to jump into the sharepoint nightmare.

Community projects have strength in that no madman behind the wheel can completely destroy it. Even Linus can't drive the Linux bus over the cliff anymore. If everyone wants something to remain and the core project goes "the wrong way" a fork appears. I can't say with confidence what the future will bring for FreeBSD, but I know 10 years down the road the system will still address my needs as it does today and I won't be left out in the cold because a company had some grand vision that didn't include me. If it doesn't I'll find a competing project that does.

For the web server, it's hard to say because IIS and "webserver on FreeBSD" are nearly two completely different animals.  The thing I like most about IIS is the configuration interface (using MMC or whatever it is these days). It's really easy to get a birds eye view of your system - problem being when you need to get down to the ants eye view IIS gets annoying. Need total control over HTTP headers? Good luck with that. What SSL algorithms are allowed and enabled? Screw with registry settings. Need to tune HTTP compression.. why is THAT so hard? Apache/nginx offer far more control and flexibility in what you can do with them at the server level. What technology you run on top of all that is another topic all together.

The advantages of FreeBSD from a windows perspective aren't FreeBSD specific. Advancements in FreeBSD are slow and steady. Minor things change from year to year, but they come in digestible chunks. I tune and modify things over time, but the time I invested years ago still works today.

My reactions to 2012 are mixed. The virtualization features are good stuff in 2012. The server manager makes things pretty easy to work with, even if Microsoft continues the tradition of spurious warnings in the error logs that shouldn't be there. The power shell is probably the feature I like most to come out of Microsoft in the last few years. As a "built in" feature it's a very strong technology, but still can't beat unix as a cohesive system environment. *Still waiting for ssh*.


----------



## mix_room (Mar 11, 2013)

For a pure webserver I struggle to see any features that a Windows server would offer over a FreeBSD server. FreeBSD has a central ports system, so you can easily check if installed programs are out of date, there is an easy way to upgrade the base system, there are no licensing fees, etc etc. There are plenty of reasons to use FreeBSD. 

However - depending on what you want to do, there are cases where a Windows server might be easier to use.

Probably the biggest question is: what does the rest of your ecosystem look like. Are you willing to have a single FreeBSD system when all the rest are Windows, are your IT-admins capable of properly supporting a FreeBSD system, or do they only know Windows. 
If you are only playing around with it for your own benefit, I would go down the FreeBSD route, just to learn something new.


----------



## kpa (Mar 11, 2013)

Both have their uses that somewhat overlap. I don't think that Windows servers still can offer anything like ZFS or HAST/CARP for storage. Or for firewalls Microsoft can offer nothing like PF or IPFW.


----------



## throAU (Mar 12, 2013)

FreeBSD web server requirements in terms of resources are tiny compared to Windows.  You can far more easily run headless, and the command line configuration tools are currently far superior.  Powershell on Windows is getting there, but it is just not comprehensive yet, documentation is inferior and at least with Powershell 2.0 on 2008R2, I've previously run into a number of weird scripting bugs.  

The GUI for configuring IIS is a disaster - I actually find apache easier to configure, as you can easily find a configuration directive by searching a plain text file rather than wading through GUI menus.


I haven't run server 2012 in production yet, but I've run all previous Windows server versions back to NT4.


The only reason I ever run Windows web servers is for Microsoft web-apps.


----------



## drhowarddrfine (Mar 12, 2013)

Depending on where you read it, about 75% or more of internet servers run on *nix/BSD so that means something.


----------



## segfault (Mar 12, 2013)

I agree with above statements pertaining to Windows' feeble attempt at giving power-users/admins a shell (Powershell).
It's as if the morons at Microsoft suddenly woke up 20 years late and realized the command line really is a good idea. Pathetic behaviour from a "world leader".
I work for a Microsoft gold certified partner and deal with more than my fill of unexplained hickups, "Windows-isms" and days spent waiting on Microsoft support when working with their various server platforms (IIS, FIM, SharePoint, SCSM). 
But flamage aside, I have admittedly not run a Unix web server in particular for close to 10 years now so cannot offer much detail there.
Just in general, with *nix servers
-You will always be able to configure using config files faster than a silly Microsoft GUI (once you learn the settings)
-You will always have the ability to write scripts to easily deploy/install/maintain these server
-Remote access is very simple and reliable
-If something doesn't work quite how you need it to, you can always get the source and change it yourself.

Only downside I can see is you may not be able to get any product support.
If you have the time, give FreeBSD + Apache a try, I really can't imagine you being disappointed!


----------



## throAU (Mar 18, 2013)

Powershell is in theory a good thing and very powerful (for the subset of tasks it can do), but it's just not there yet, and requires you to recalibrate your brain somewhat as you aren't passing text through pipelines, but .net objects.  This means you can do stuff like select statements based on the content of fields, you can easily export to pretty formats (csv, tables, xml, etc).

You can do a hell of a lot of stuff with powershell remotely now, but there are gaps, the syntax is overly wordy and everything being an object can create different behaviours depending on whether you are passing data around "live" or via export/import to files (as a heap of state is "lost" when exporting to file).

The other thing is that at least with 2008 R2, and much of the server application suite (DNS, DHCP, etc.), powershell cmdlets just don't exist yet.  So you end up either needing to write some custom .net code, deal with WMI via "get-wmiobject" or just install the GUI - or preferably the GUI tool(s) on a workstation and manage the machine from there.

It's also slow as molasses.


(I'm also a Windows admin for my day job :-\ )


----------



## kpedersen (Mar 18, 2013)

Morte said:
			
		

> Speaking of initiatives, Microsoft may drop technology if they decide they don't like it. VB6? Gone, simply replaced with something else.



Exactly! Microsoft keeps reinventing the wheel every so often which leaves the original users back at square one.
One of my reasons for absolutely refusing to use .NET is because I have past knowledge of what happened to VB6. It was simply killed off without warning but since Microsoft created a *NEW* language called VB.NET and stated "it is the same". The developers burned by VB6 simply couldn't complain against all the apologists and idiots.

Same thing with C#. Did you know that lots of people in academia and the industry think that it is based on C++ and the # symbol stands for ++++? No! It should be pronounced as "Curly Cuh Hash" by law. I can't believe that cheap marketing trick is actually working. They are now starting to lose interest in .NET and moving to C++ with extensions (C++/CX/RT).

So my main issue is with product longevity, they have deprecated enough VCS systems I have used over the years. The deprecation of XNA was also really annoying and things like Azure, Skydrive, Office 360 and other cloud based systems don't really stand a chance in the next 10 years.

Come to think of it, the only products that have really died in my life time were from Microsoft lol.

Microsoft is ridiculous, their users are (often) ridiculous and luckily the company is not doing great these days.

... Oh, and for a Server Operating system to have DRM is absolutely appalling and I cannot imagine an administrator with an ounce of sense making the choice to use it within a business. (Sorry WinBSD, the fact you are on these forums does show that you are doing research so you are excluded from my sweeping statement )

</RANT>


----------



## roddierod (Mar 18, 2013)

kpedersen said:
			
		

> They are now starting to lose interest in .NET and moving to C++ with extensions (C++/CX/RT).



By "they", do you mean Microsoft?  If so can you tell me why you think this is or point me to sources of such info?


----------



## segfault (Mar 19, 2013)

Hmm I attended a Microsoft Conference back in Jan 2013 and recall one MS dev in attendance mentioning working with C++ again on some particular project. I remember being quite surprised to hear that as I thought C++ was all but dead to Microsoft these days.
I am unaware of anything official though regarding C++, and can't say they eluded to going in that direction.
They did however talk A LOT about about their "future in cloud computing". They really are going all in on that. 
But in this day and age of endless security breaches and big-biz antitrust I can't see people adopting cloud computing in droves either.
Sorry, maybe getting off topic here though.


----------



## throAU (Mar 19, 2013)

kpedersen said:
			
		

> Exactly! Microsoft keeps reinventing the wheel every so often which leaves the original users back at square one.
> One of my reasons for absolutely refusing to use .NET is because I have past knowledge of what happened to VB6. It was simply killed off without warning but since Microsoft created a *NEW* language called VB.NET and stated "it is the same". The developers burned by VB6 simply couldn't complain against all the apologists and idiots.




To be fair, "You can't make a cake without breaking some eggs", as they say.

XX.net is not so much about a new language, but a completely new system architecture, and there's a lot of improvements.

Whatever complaints I may have with Microsoft (and they are legion), finally moving forwards and replacing broken old crap with better engineered technology is not one of them.

It's a balancing act, and sometimes I think the Unix world could do with some fresh thinking from time to time.  Just look at the response to people wanting to replace X11 with something better, even if they maintain backwards compatibility with a software shim?


"Oh noes!  Even though I can still run my busted old applications from 1985 via the compatibility layer, not all new apps will support X11!  The sky is falling!"

Sometimes, you eventually need to make the call to take the lame old dog out the back and shoot it - irrespective of how well it served you in previous years.

Microsoft finally having the gumption to do this with various broken old Windows components after holding the industry back for decades with real mode operating systems, lack of multi-user security context, etc. is something to be commended, despite the fall-out.

If you still need to run software built for an old platform, run an old platform.

2c.


----------



## Crivens (Mar 19, 2013)

throAU said:
			
		

> To be fair, "You can't make a cake without breaking some eggs", as they say.


Some more interesting thoughts on this.

The problem for Microsoft is that they are between a hammer and a hard place.


			
				throAU said:
			
		

> Whatever complaints I may have with Microsoft (and they are legion), finally moving forwards and replacing broken old crap with better engineered technology is not one of them.


Do they do it to improve the software or are there other reasons?
Being a company with the goal to maximize profit, I can not see that they do it for the best of humanity. 


			
				throAU said:
			
		

> It's a balancing act, and sometimes I think the Unix world could do with some fresh thinking from time to time.  Just look at the response to people wanting to replace X11 with something better, even if they maintain backwards compatibility with a software shim?


(hope you don't mean me here  )
It is said that the engineers do not know what language they will write their programms in in 10 years, they only know it will be called Fortran*.

The same goes for radical changes in Unix, or everywhere else. Change too much, and it stops being what it was. You may still call it what it once was, but that does not mean it still _is_.

But back on topic, I would state 

*: Anyone used Fortran95? You know what I mean...


----------



## kpedersen (Mar 19, 2013)

roddierod said:
			
		

> By "they", do you mean Microsoft?  If so can you tell me why you think this is or point me to sources of such info?



Occasionally some Microsoft evangelists come to the University to advertise their products to our students and they provided quite a strong statement that they believe the future of Windows to be Windows RT and the future of Windows RT development is native code (Via C++/CX).

The fact that Microsoft is dropping XNA also suggests that they want developers to use the native DirectX API with C or C++. I seriously doubt that they support the MonoGame or SlimDX projects.

They have also put some very large C++ improvements into the latest Visual Studio (like a whole new C++/CX compiler) whereas I don't think they have even bumped the C# compilers version.

I also have a few contacts currently working at Microsoft Research and they really don't touch .NET anymore.

So yeah, I guess it is all hearsay... but that is how Microsoft rolls I am afraid. After all, we didn't find out that VB6 was dropped until some of us noticed our code wasn't compiling any more lol.

EDIT:
The term that the evangelists used was "going native" but all this brings up is these (very interesting) C++ videos on Microsoft's channel 9
http://channel9.msdn.com/Events/GoingNative/GoingNative-2012

One that might be relevant is
http://channel9.msdn.com/Events/Goi...eractive-Panel-The-Importance-of-Being-Native


----------



## drhowarddrfine (Mar 19, 2013)

Crivens said:
			
		

> Change too much, and it stops being what it was. You may still call it what it once was, but that does not mean it still _is_.



We call that Linux nowadays.

Microsoft dropped Silverlight on the desktop. Mobile should be next.

I read Paul Graham (I think), about 5 years ago, who said Microsoft uses far more C than they'll ever let on to. I thought he even said Microsoft would be getting rid of .NET, too, but I may have mis-read that.


----------



## roddierod (Mar 19, 2013)

http://blogs.forrester.com/john_r_rymer/12-08-28-the_future_of_microsoft_net_new_options_new_choices_new_risks

Seems to confirm what you guys are speculating...


----------



## kpedersen (Mar 19, 2013)

drhowarddrfine said:
			
		

> I read Paul Graham (I think), about 5 years ago, who said Microsoft uses far more C than they'll ever let on to.



I always thought Microsoft was quite transparent on the fact that they only use native languages for their commercial products.

"The world is built on C++ and so is Microsoft," proclaimed Herb Sutter at Microsoft's Build conference

I.e Office and Visual Studio have never used .NET to function. Office macros are still VB6 rather than VB.NET too.


----------



## throAU (Mar 20, 2013)

Crivens said:
			
		

> The problem for Microsoft is that they are between a hammer and a hard place.



Agreed.  They have what is a clunky old architecture in many areas, but many of their customers are only customers due to backwards compatibility and application support / upgrade path.



> Do they do it to improve the software or are there other reasons?
> Being a company with the goal to maximize profit, I can not see that they do it for the best of humanity.



Of course profit is a motivating factor.  But they also need to release something "good enough" to prevent defection and the market is not standing still.

The fact that Windows 8 is bombing so badly shows that even Microsoft are vulnerable to a truly crappy product release.



> (hope you don't mean me here  )
> It is said that the engineers do not know what language they will write their programms in in 10 years, they only know it will be called Fortran*.
> 
> The same goes for radical changes in Unix, or everywhere else. Change too much, and it stops being what it was. You may still call it what it once was, but that does not mean it still _is_.




Nah, no one in particular.  But every time Wayland comes up, whether it's here, or Slashdot or wherever you have a great wailing and gnashing of teeth over it, about how it's going to kill remote GUI applications, etc.  "We'll lose rootless apps!", etc.

Never mind that other platforms, even Windows with RDP or ICA have been doing exactly that (rootless remote applications) for over a decade now - with *far *better WAN performance, to boot.

Sometimes, changing something to no longer resemble what it was is a good thing.

X11 is a prime example in my opinion.  Yes, it mostly works.  Yes, people have done cool stuff with it.  But, the core architecture is so badly layered that anyone writing for X is probably going to spend more time working around its brain damage / baggage than actually developing their app.

Configuration files are another example - virtually every app makes up its own configuration file format.  Whether it's XML, simple key=value in a plain text file or whatever, the lack of a standard means if you want to write tools to process this stuff you need a million different parsers to deal with the different apps that people install.

Just because it's the status quo, doesn't mean it's good.


I'm not saying change for change's sake.  But in some respects (mostly in terms of interface), the free Unix world is worse than Microsoft for refusing to evolve.






But yeah... somewhat drifted off topic there.

Short term advantages of FreeBSD vs. Windows 2012 server:  reduced resource requirements, ability to configure everything without the GUI, for every app.
Long term advantages:  you have the source.  If FreeBSD drop support, you can fork/support it yourself internally.


----------

