Linux Series - Linux, Unix, GNU And GPL, Understand Them All! (Part 1)

in #utopian-io6 years ago

Repository

https://github.com/torvalds/linux

Introduction

People usually say that Linux is an operating system. While not totally wrong, Linux is actually a Kernel, that is, the core of operating systems. Developers can build an OS on top of the Linux kernel, and that will be the "final product". In fact, there are lots of "flavors", or "distributions" of Linux. Each distribution of the kernel is their own operating system with their own vision in mind. The thing is that all distributions obey the same license, and can be modified and "hacked" by the final user. More on this license later.

Linux was created by Linus Torvalds as a personal project in 1991 and is inspired by the Unix operating system. Unix was created by AT&T. The difference is that Unix is proprietary, and Linux is inherently open source. AT&T didn't want their system to be distributed or modified for free, nor to run on any hardware.

While Unix is proprietary and can only run in some hardware, Linus built Linux to be free and run everywhere. So true this fact, that most servers run Linux. It is easier and more simple to install Linux on hardware because there are more chances it will be compatible!

According to Linus, he likes to name his creations with his name, this is why "Linus" and "Linus" are too similar.

Linux Vs. Unix

Linux is not the only Kernel based on Unix. There is also BSD and MacOS (from Apple!) that are inspired by the Unix operating system, but they are not Unix! It is easy to say that "Linux and Mac are Unix systems. Linux, Mac, and BSD are Unix INSPIRED!

It is funny that Linux and MacOS are so inherently different, but they share a similar origin. When Apple developed the modern OSX operating system for their computers, they could have chosen Linux as the Kernel. Apple didn't choose Linux because if they did so, they would have to make their OS open source. Letting the final user modify the product is one of the terms of the Linux terms! I will talk more about the Linux license later.

To save the energy that would be required to build an OS from scratch, Apple built its system on top of BSD. BSD, just like Linux, is inspired by Unix. But differently from the Kernel made by Mr. Torvalds, BSD doesn't require that the company make their newly created system open source. That was the obvious choice for a company that wants to sell their product and not be copied.

MacOS is not the only system based on BSD! There is also FreeBSD. The difference being that FreeBSD can run most Linux code, but Linux can't natively run FreeBSD code.

My choice

I have a preference for Unix inspired operating systems. I have used them for a long time on servers, at first because I had no choice. After I have realized how much more powerful those systems can be for development, over Windows, I started using them full-time. Right now I have a laptop that has Apple's MacOS. My main computer, that is the one I use to do most of my work, runs Linux. Not long ago it ran Windows, but I have ditched Windows the more efficient Linux.

The advantages I can see, for me, for switching from Windows to Unix inspired operating systems are:

  • More efficiency
  • More security
  • More freedom

For a developer those things matter.

Torvalds and Git

I assume that people reading this must know Github. We are on Steem, a blockchain. In the blockchain industry, it is common to see lots of open source projects. Github is the most popular "git" tool. While Linus didn't create the concept of Git, he probably was responsible for making it popular.

Torvalds created his own Git tool for his work on the Linux Kernel. When he was working on the kernel project there was a tool called BitKeeper that was similar to Github, but not free. So the team behind the Linux project decided to stop using the paid service and create their own version.

GNU is Not Unix

Before Linus Torvalds started working on the Linux project, Richard Stallman was working on a project called GNU. GNU literally means "Gnu is Not Unix". He wanted to make a competitor. Because Unix was centralized and proprietary, he wanted to create a free system, in all means of free. Linus Torvalds took advantage of many tools from GNU to build his kernel. While GNU didn't turn into a fully fledge kernel, their tools are still used by Linux!

So much that the term "GNU" still exists, and can be referenced to talk about Linux. Because Linux is based on the tools created by Richard, Linux was forced to be open source. Everything that uses GNU must be open source. And that is why Apple took the BSD kernel, instead of Linux, to build their own operating system.

Now a mind twist. Anyone can build a system using the kernels of either, BSD or Linux. Ironically, Linux terms of use are more restrictive than BSD because it is mandatory that by using its kernel you make your code open source. BSD is freer because it is not mandatorily free(mind twist!). The terms for using the BSD kernel are much more light. You can use their kernel and, just like Apple, profit from your proprietary operating system. You can hide the code and forbid the final user from editing the code with BSD. With Linux, the final user can do whatever he wants, as long as the derived product also uses the GPL License.

GNU/Linux General Public License

This is the license that guarantees that anyone building anything using the GNU tools, or the Linux kernel(that were built using the GNU tools) make their work open source. The part that prohibits you from making your code proprietary says that "you can't impose further restrictions on the rights granted by the GPL".

This license grants the final user the right to modify, share and study the software provided. And there is no way to circumvent that. Any work derived from work under the GNU license must be licensed under the same terms! So, you can't try to build something proprietary by "modifying a modified system of a modified Linux kernel". No matter what version or derivation of software, it will be protected by the same terms and inherit the same terms! This also explains why Linux is open source, as seen before, it was made using GNU tools!

In the opposite, you don't need to build something on top of a derived software to use the GNU GPL! You can build a tool or a system from scratch. If you want, you can register any of your work under this license. If you do so, any work derived from your work will inherit from this license.

The case for Linux

Now you know the history of Linux and why it is popular. Unix systems were in high demand, but Linux and BSD, being free, took their place. Most servers nowadays run some version of Linux. Part of that because of culture, but we can't deny how well Linux does its job. Apple has tried to make servers in the past, but they couldn't compete with Linux. Microsoft also makes server operating systems, but they are nowhere near Linux in popularity.

What Linux lacks in popularity as a "mainstream" product, it gets paid off with interest in the business/server side of technology. It is not for no reason that it is the main OS for running the backend of an application.

Because Linux can isolate apps and software inside its operating system, it is much more secure than the competitors. The security doesn't stop there. The permission system is a great security feature. But what counts most for the popularity is that Linux based operating systems are open source. The best way to secure your software is to understand where it is running. Windows is not open source, and the attempt Apple made to create a server wasn't either.

Also, Linux has lots of "flavors". Many groups of people take the kernel and build an operating system for any specific or general purpose. You can't achieve that on a proprietary license. There are versions of Linux specialized for home desktops, for scientific research, for databases, and the list goes on and on. That contributes to the popularity.

So, if you are going to run a server, there is probably a Linux based operating system that fits your need. If there isn't, you can "hack" and modify any version you can find, because the GNU GPL allows you to do so! That is a level of freedom other kernels don't give you. BSD probably can compete, but chances are if you find a BSD system for your need, it is proprietary and you have to pay in some way or another. It is not the same as being free to take a Linux version that "almost fits you" and turn it into a perfect fit!

Resources

The latest version of GNU GPL:
https://www.gnu.org/licenses/gpl-3.0.en.html

Linux Foundation:
https://www.linuxfoundation.org

BSD:
https://www.bsd.org

FreeBSD:
https://www.freebsd.org

Beneficiaries

This post has as beneficiaries

using the SteemPeak beneficiary tool

Captura de Tela 20190316 às 00.21.26.png

Sort:  
Loading...

Hi @igormuba!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Congratulations @igormuba! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 350 posts. Your next target is to reach 400 posts.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

Are you a DrugWars early adopter? Benvenuto in famiglia!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Hi, @igormuba!

You just got a 0.33% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

Hey, @igormuba!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62104.41
ETH 2404.22
USDT 1.00
SBD 2.49