Forgive me if my terminology is wrong. I have no clue what BSD is but I believe it's linux based, correct?
I see every time a debate between Apple and PC users that Apple's OS is BSD based and is 'hack proof.'
I thought the whole idea behind linux is that it's free? so, if Apple is using some form of Linux, doesn't this kinda go against Linux's idea of a free OS?
Feel free to school me on this. I'm learning Linux and Apple stuff.
It is a good thing that you are trying to learn more about this topic as most people choose to remain 'blissfully ignorant', so kudos to you
BSD is not based on Linux, actually BSD and Linux are actually special types of operating systems known as "Unix-variants". What that actually means is that they are similar to the Unix operating system as well as well as being mostly if not fully compatible with other Unix and Unix-like operating systems. To be really precise, BSD IS actually Unix, it is just an open source implementation of the Unix operating system that was created in Berkley (that is why it is called the Berkley Software Distribution).
As far as the whole 'free OS' thing is concerned, the reality behind that is that with Linux and other open source projects it is possible to create work that is a derivative of another open source project and either charge money for it, or not charge money for it. The part that makes it "free" is that the source code MUST be available for others to review and modify and to create derivative works. The conventional analogy used to express the 'free' in "free software" is FREE as in FREEDOM not FREE as in FREE BEER. In addition to all free software having to follow this model, the code may be licensed under something like the GNU GPL or the BSD license in the case of OSX. I am not certain what all the BSD license allows, but i am certain that Apple isn't violating it, otherwise they would be in big trouble already.
If you want some excellent resources on the issue, go to wikipedia. The info there should be trustworthy as anyone who would be posting wiki articles on this topic would actually be interested and have accurate info.
OSX is not licensed under the BSD license, but it is derived from BSD. The BSD license allows people to incorporate the code into closed source software as long as the copy right notice is retained in comments in the code. So even though OSXs kernel is derived from BSD it is not Free software. Though I think that apple does have, or did have, a free version of their kernel called Darwin. They may have stopped it when they went to x86 processors, to help keep people from running OSX on non Mac hardware.
This allowance in the BSD license is what allowed MS to use the BSD TCP/IP stack in windows.
First of all, NO OS is completely impenetrable. One can still be compromised, even with a strong OS. The better OSes for fending off attacks simply make it harder to cause damage or limit the damage caused. Most people run Windows as admin and thus any process that the user spawns can change anything. It is possible on Windows NT to run as a limited user, which would prevent some of the virus trouble. However, it's a real PITA as the old DOS-based Windows versions didn't even have admin/non-admin and as such, programmers assumed the user was admin. Windows also has much less of a differentiation between user programs/functions and system programs/functions than UNIX does. Thus it is more likely that something can take over a non-admin user process and gain admin access by making certain calls to the system. The same can happen on UNIX systems too, but it is less common due to the design of the OS.
The Mac guys are just trying to brag. The UNIX type OSes are much harder to hit with a network worm or an e-mail virus as the worm/virus can't touch system stuff. And the OS is more aware of the read-write-execute permissions than Windows is. Stuff that should not be executable but is will cause the OS to treat the file differently from what it purports itself to be. Not necessarily so in Windows- an .exe named .doc will show up as a .doc instead of a program. However, UNIX OSes are still vulnerable to viruses that ship in programs and "social engineering" viruses as you can't stop a user from being stupid and knowingly installing something that they don't know is shady. UNIX OSes have server bones in them and have a lot of remote-access protocols that Windows does not, such as ssh. Windows users generally don't allow remote access to their boxes, so a password-crack of a public network service can't happen, but it can and does for UNIX. If you have a good password, it will be hard to crack and you'll tell it if somebody tries (bandwidth will be HUGE.) But somebody would have to specifically target your machine, so it's a different case than a virus. Being behind a firewall unless you can't because you run a server, is a good idea for ALL OSes.
I am not certain what all the BSD license allows, but i am certain that Apple isn't violating it, otherwise they would be in big trouble already.
Very true. The BSD license and GNU/GPL differ in quite a few ways, but how I like to remember it is as follows:
GPL is code to be used in free software
BSD is free code to be used in software
basically, using GPL'ed code in your project means that your project must then be released under the GPL. Hence, it is a 'viral' license
Using BSD-licensed code in your software does not require you to open source your code. In fact, I think that it requires little more than placing a couple statements about where the code came from in your project. If I'm not mistaken, MS still uses quite a bit of BSD code in some of their networking tools (ping, tracert, etc).
Apple used BSD one of the ways it was meant to be used - strip it down and use it as a solid starting point for an OS.[/quote]