What is the difference of FreeBSD and Linux? [closed]
I give you a basic question. Because I 'm a beginner.
I want to build a server with Web application. I am troubled whether I choose FreeBSD or Linux What is the difference of FreeBSD and Linux?
Please gime me recommended criteria for OS selection.
Solution 1:
FreeBSD is decended from the BSD line. It is based on a 100% re-write of AT&T's original. Although it initially had legal issues with AT&T that hampered its expansion, it was eventually cleared (when it was discovered that AT&T had appropriated BSD code, the tables turned). As a result, it is 100% free and clear of any known legal claims against it. It is licensed under the "BSD license", which is very liberal and allows for redistribution for profit.
Linux is a 100% from-scratch System V look-alike. It was started by a Finnish programmer who gathered several other people together. Over time, the "linux kernel" grew in developers and lines-of-code, adding new features along the way. It too has had its share of legal issues, instigated by the SCO Group, who tried to claim ownership of some of the kernel code. To date, no infringing code has been found, and there have been speculative ties between SCO's actions and a large lump sum of money that Microsoft "gave" to them. It was controvercial at the time because Linux uses a GPL Version 2 license, which requires that any programs released to the public must also (a) have the source code readily available, (b) must be available under the same license, and (c) must have a notice attributing the original author.
Both systems are fairly stable. Both have long development histories. Both have active development communities and are not likely to go away anytime soon.
In terms of server network support, the historical consensus is typically on the side of the BSDs, which have been demonstrated to accommodate heavy connections and loads. In terms of ubiquity, Linux is found in the most surprising places, and has a thriving software culture.
To answer your question about web server applications, I would probably favor BSD. The basis of the selection is that BSD's network stack has been demonstrated (historically) to have a slight edge against Linux. For back-end deployment, the flexibility and ubiquity of Linux distributions means that I would have a large array of software available to me. Yes, to those BSD lovers out there, I am aware of the breadth of software available through the BSD ports program.
However, it is far easier to find Linux administrators, a potential factor that affects deployment. If this is a rapidly changing or growing installation, finding BSD talent might lead to a labor issue in your deployment.
So - it depends. :) Are you going to need full-time staffers? Stick with Linux. Are you looking for large site deployment on smaller hardware? BSD might work for you.
Solution 2:
For a webserver I would choose linux. Distributions like Debian and Ubuntu are supported and security-patched for a really long time. (the ubuntu versions with long time support anyway)
For servers I think this is important. I have a FreeBSD 6.1 server that I can't upgrade, because 6.1 is just gone from all FTP servers and no fixes are made for it. It's not that old, but considered obsolete and I really fear upgrading it. Especially remote upgrades.
On the other hand I have a Debian Linux server that I've been running constantly since 1999, and have kept it updated and patched easily. All remote. Last time I saw it was 5 years ago when I wanted to check if the CPU fan was still working (it wasn't, I changed it).
For servers that will just have to work, debian is easy to keep updated and there is no problem with upgrading from one release to the next, even remote.
The Debian (and Ubuntu) packaging system (apt-get) make it so much better for servers than anything else that it's not even funny.
Debian GNU/kFreeBSD seems nice. I've played with it a bit, but not run it in production.
Solution 3:
There are lots of "under the hood" differences between the two, and indeed between different Linux versions. Somehow I don't think that's what you're actually asking about.
From the practical point of view of running a web server for me it comes down to just two things: 1) Can you secure it 2) Does it have good package management
I used to run my personal web server as FreeBSD - it's package management was a giant pain the backside compared to something like Debian or CentOS Linux. Personally, I won't use anything that doesn't have a good binary package manager like apt on Debian-based distros or yum on RedHat-based distros like CentOS.
As for security, SELinux is pretty nice to have, and both FreeBSD and Linux have good firewalls, so perhaps there's not much difference there.
Bottom line - I've admined both Linux and FreeBSD web servers, and I had far less trouble and far less work with the Linux ones. They're just easier to look after in my experience.
Solution 4:
The last I checked, Linux does better on multi-core systems. So if your application server has many CPU cores, Linux may be a better choice.
I also think that Java support is a little better on Linux so if you need Sun's or IBM's JRE, that might be a consideration. I believe that the free ones like IceTea work just fine on BSD.