Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Monday, January 4, 2021

What is Free Software?

Would you be able to correctly define free software? Is free software really always free? Do you know which are the four essential freedoms of the free software movement?
Photo by Fuu J on Unsplash

On a previous post we discussed what is open-source. Today we will understand what is "free software" as per definition from the original founders and understand the difference between free and open-source software.

History of the Free Software Movement

To understand free software, it's important to understand the history of the free software movement.

The GNU Project has been campaigning for the free software movement and for users' freedom since 1983. The launch of the free GNU operating system  in 1984 as an alternative to non-free/proprietary operating systems was the first step. During the next decade, the GNU project only developed the essential components of the operating system and the GNU General Public License (GNU GPL), a license to release those components designed specifically to protect freedom for all users of a program.

Free Software Definition

So let's jump straight to the topic and define "free software". According to the Richard Stallman, the creator of the GNU Project, the GNU General Public License (GNU GPL) and the Free Software Foundation:

When we call software “free,” we mean that it respects the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.”

With that said, here is what you should observe:

  • "free" in the "free software" expression isn't equal to zero dollars but to freedom of speech
  • free software is much more than price. It's about principles.

So let's learn more about the essential freedoms.

The four essential freedoms

According to the GNU Project, a program is free software if the program's users have the four essential freedoms:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Free Software x Open-Source software

With all the definitions satisfied, the only question that remains is: is free software equal to open-source? Long story short, no! But it's a long and complex topic which we'll cover in a future post.

Conclusion

On this post we learned about "free software", its origin and the contributions it had from the GNU Project, the GNU General Public License (GNU GPL) and the Free Software Foundation. The free software movement plays an extremely important role in today's broader consumer/enterprise landscape and its extremely important for growing Linux and open-source software.

For more information on the topic, please consider reading the references below.

Further References

See Also

Tuesday, December 15, 2020

Open-Source Licenses: All you need to know

Understanding free/open-source licenses is not an easy task. Learn what they are, how they are created and which one is best for your project.
Photo by Annie Spratt on Unsplash

One important aspect of open-source software is its license. It's common for free/open-source software to be governed by a license and you will at some point hear about them. An open-source license allows the source code to be used, modified and/or shared under defined terms and conditions. Understanding the licences is critical to any open-source project.

Today there are 100+ open-source licenses and 90+ free-software licenses so it's really easy to get lost. Since when using Linux you may be exposed to licenses, we prepared this summary to help you understand why they exist, how they're created and why we need them.

For a quick guide about the most common open-source licenses, please read: Choose a License.

What's an open-source License?

An open-source license is a license for software (but can also be applied to other products as we'll see below) that allows review, use, modification and sharing under certain conditions. Open-source licenses usually allow companies to modify and use the source code under their needs.

Are open-source licenses always free?

No. Most open-source licenses allow software to be available for free, however there are also non-free licenses. Note that non-free licenses may conform to open-source, but NOT to free-software, a common misconception since most people think open-source and free-software the same, which they are not.

Who oversees the licenses?

There are two bodies that oversee licenses: The Open Source Initiative which governs open-source licenses (free/non-free) and the Free Software Foundation which maintains a list of free software licenses.

Types of Licenses

As we saw, open-source licenses apply to much more than just software. The GNU Project's License Page website contains an extensive list of licenses in different categories:

How are licenses created?

If you find that none of the 100+ open-source licenses and the 90+ free-software licenses suits your needs, you can create your own license. For free software licenses, check the GNU License page for more information.

For your license to be recognized as an open-source license, you'd have to submit your license to the Open Source Initiative so it can be reviewed by the OSI Board. The review is a transparent and relatively quick process (usually done under 60 days) and is necessary to ensure that licenses and software labeled as "open source" conform to existing community norms and expectations. The review also:

How licenses are classified

In short, in free, non-free, proprietary or open-source licenses. Free software licenses are governed by the GNU project which classifies them:

  • Whether it qualifies as a free software license.
  • Whether it is a copyleft license.
  • Whether it is compatible with the GNU GPL. Unless otherwise specified, compatible licenses are compatible with both GPLv2 and GPLv3.
  • Whether it causes any particular practical problems
Open-source licenses are governed by the Open Source Initiative and have to comply with the Open Source Definition which imposes restrictions on:
  • Free redistribution
  • Source code
  • Derived works
  • Integrity of the author's source code
  • No discrimination against persons or groups
  • No discrimination against fields of endeavor
  • Distribution of license
  • License must not be specific to a product
  • License must not restrict other software
  • License must be technology-neutral

Most Popular Licenses

As previously mentioned, there are 100+ licenses so let's quickly review the most popular open-source/free-software licenses in use today are:

  • GNU General Public License (GPL) v3: the recommended license by the Free Software Foundation and by the GNU Project
  • Mozilla Public License 2.0: a weak copyleft license conditioned on making available source code of licensed files and modifications of those files under the same license.
  • Apache License 2.0: a permissive license whose main conditions require preservation of copyright and license notices.
  • MIT License: a short and simple permissive license with conditions only requiring preservation of copyright and license notices.
  • No license: According to the GNU project, cannot be considered free-software (see below).

For a throughout review of the licenses, consider reviewing in details the licenses on the GNU Licenses and OSI Licenses & Standards pages.

What about no License?

According to the GNU project, software without license cannot be considered free-software:

if source code does not carry a license to give users the four essential freedoms, then unless it has been explicitly and validly placed in the public domain, it is not free software.

Some developers think that code with no license is automatically in the public domain. That is not true under today's copyright law; rather, all copyrightable works are copyrighted by default. This includes programs. Absent a license to grant users freedom, they don't have any. In some countries, users that download code with no license may infringe copyright merely by compiling it or running it.
Content accessed on Sep 28, 2020  

Which license is best for my project?

In order to choose which software license is right for your next project, it's important to understand first if you want to target free or open-source software. For free software licenses consider studying the Free Software Foundation’s License List. For open-source licenses , check the Open Source Initiative’s Licenses & Standards for more information.

When in doubt, consider using one of the licenses suggested above or check the Choose a License website for more information.

Conclusion

Understanding free/open-source licenses is not an easy task but it's critical to any open-source project. Since there are 100+ open-source licenses and 90+ free-software licenses we hope this summary helps you understand this complex topic a little more.

Further References

See Also

Monday, October 12, 2020

Why is Linux free?

Linux is secure, fast, reliable and.. free? If that seems too good to be true you need to know more about Linux.
Photo by Fabian Blank on Unsplash

On previous posts, we discussed why use Linux and one of our most compelling arguments to use Linux is that Linux is free. But since Linux is so secure, fast, reliable, how can it be free? Let's understand what that means and how it happens.

A little history

Avoiding jumping too much back in history, it's important to understand the contribution model in which Linux was built. Once upon a time, there was a developer named Linus Torvalds who wanted to build a kernel to run a free Unix clone at home. He named the project Linux (Linux + Unix) and sent a message to the world looking for volunteers.

That project attracted so much attention that soon, hundreds of other developers joined that cause forming a big network of contributors. Linux, the kernel was the missing piece to produce a completely free operating system as most of the tools were already built on the GNU operating system.

The first distributions

With all the pieces to build a free and open-source operating system available, developers started creating the first Linux distributions. Some of them you may have heard of: Debian, Red Hat and Slackware, the most popular ones.

What about now?

The fact that Linux runs everywhere and that thousands of successful products are built on top of it, is the biggest motivator to use it. It's estimated that today the Linux kernel be worth $5 billion dollars. Given its licensing model, companies building new products today (for example, Tesla, Google or even Microsoft) can leverage Linux and more quickly reach the market saving them literally millions of dollars.

Today, Linux's development is supervised by Linus and sponsored by the Linux Foundation which employs Linus, Greg Kroah-Hartman (and others) to coordinate and foster the development of Linux around the world.

But this model does not only apply to Linux itself. The GNU project and thousands of other larger and smaller projects are being developed every single day by anonymous contributors worldwide following the same methodology.

But why is Linux is free?

Because the Linux kernel, the GNU operating system and all other tools needed to create a free operating system are available as open-source software respecting the premises of the free-software movement fostered by the GNU foundation, it's guaranteed that, as long as there are volunteers to build the distributions, you'll have a free/open-source operating system to run wherever you want.

And this is exactly what happens.

Linux Distributions

Today we have two different lines of Linux distributions being built and available for free: community-based distributions and enterprise-sponsored distributions. Let's review them.

Community-based distributions

Community-based distributions are Linux systems built by volunteers and living of donations. The most popular these days are:

Commercially-sponsored distributions

For brevity, let's define as commercially-sponsored, those distributions that receive grants from commercial companies to support the development and maintenance of those systems. Note that there's nothing wrong with this category since most of the distributions run completely independently from their commercial institution. The most popular are:

But one could charge for it, couldn't they?

The short answer is a definitely yes! And indeed some companies charge for it one way or another. And how do they make money? Well, read the next section to understand.

How companies make money with Linux

Differently from this blog, Linux is not all about charity. There's lots of money being made on it today. Essentially, companies can use Linux in virtually any line of business. Just to illustrate some:

  • support
  • training
  • certification
  • licenses
  • building products around it
  • cloud services
  • storage solutions
  • networking solutions
  • ads
  • social networks
  • cars
  • TVs
  • Watches
  • and more, much more! 😊

Conclusion

On this post we reviewed briefly how Linux was created and how it's license model guarantees that it will remain free for future generations. We also touched briefly on how companies leverage Linux to get faster to the market and to make money. Regardless of who builds your favorite distro, all of us benefit from this massive chain of anonymous contributions.

Hope it helps!

See Also

Monday, September 21, 2020

Why use Linux

Linux runs the cloud, the Internet and super-computers. Learn why you should run it too.
Photo by Ian Parker on Unsplash

Linux runs the cloud, the Internet and supercomputers. Turns out that Linux could be a very solid choice for your computer as well regardless of how old it is and learn how Linux is a good fit for anyone, regardless of their technical skills.

Linux is free

Linux is free. And this is a very important reason to use Linux. As poverty in the world grows and more and more people use digital devices in emerging markets, it's important to keep prices low so these folks can also have access to newer technologies. Prices are very high for Windows and impeditive for Mac for half the world. Being free allows Linux to reach those markets saving you and/or your company a lot of money throughout the years.

Linux is more secure

Linux is way more secure than Macs and Windows. That's mainly due to:
  • open-source code: due to its open nature, researches and hackers frequently inspect and crack the code. When issues are found, they're reported and fixed by community.
  • open collaboration: open-source code also fosters open collaborations. Developers from all over the world will frequently push fixes to the software you use making it better and more secure.
  • enterprise-grade software: tools like SELinux and AppArmor that protect and run on mission critical environments run on your machine too.
  • a different permission model: Linux users run on a low permission level making it very improbable that even if you're hit by a virus, you would infect the machine.
  • frequent updates: your system will always be updated getting the latest security, software and kernel fixes. These are usually the holes crackers explore to target you.
  • less viruses: yes, Linux has viruses but on an infinite smaller proportion than Windows users get. Linux also has anti-viruses if you need too.
  • curated repositories: the easiest way to install software on your Linux is by using its own repositories. These repositories are curated and are less prone to have viruses.

Linux will feel familiar

Linux will feel familiar for Windows and Mac users. Most distributions will either use GNOME and KDE, the most popular desktop environments that will contain applications for everything that you expect: file managers, contacts, calendars, email, communication tools, etc. For example, GNOME, the standard for most distributions looks like this:
While KDE looks like this:

You'll continue using the tools you love

Linux also supports your favorite browsers such as Google Chrome, Brave and Firefox and runs your cloud services such as Netflix and Spotify without issues. Visual Studio Code, Slack? You'll find on Linux. Even Microsoft releases tools for Linux these days.
Source: Slack Downloads

From super-computers to your machine

You won't lose a thing by using Linux, to the contrary. Linux is the most powerful system for your computer on the market. Linux runs the cloud, the Internet and super-computers. For some time already all of the world's super-computers run Linux, not only because Linux is better (and it is!) but because the engineers can configure the system as they wish as they have access to the code. Why wouldn't it run on your computer?

Linux is reliable

Linux rarely (really, rarely!) crashes. Linux is also way more stable than Windows and Mac. Even the tools you use on those systems are more stable on Linux.
Remember this? You'll probably not miss those days

Good for old hardware

Linux is also excellent for old hardware as it can be configured with lighter tools that utilize less resources. Most distributions (such as Fedora LXDE shown below) release alternative lightweight versions so you'll just need a simple install to get these systems optimized for lower-end hardware.

Reliable updates

We've seen a lot of mistakes recently made by either Microsoft and Apple with their Windows and Mac operating systems. Updates on Linux are not only reliable but are more frequent than anything you'd get on those systems. Your system's usually updated once or twice a week, every 6 months for a minor release and every 2 years for long-term supported releases.

Linux is not complicated

Despite what you saw elsewhere, setting up a Linux system at home is no longer a complex thing to do. Gone are the days you had to specifically configure your disk, manage partitions, know networking details or which kernel module you had to load to make your WIFI card work. Today, it simply works and most of the tools you'll need are four clicks away.

Linux is not difficult to install

Another misconception is that Linux is difficult to install. Today tools such as the below guide you trough a visual installation process making everything simpler:

Linux is beautiful

Linux is beautiful. As we saw, the main distributions today come with GNOME and KDE, full-featured desktop environments that allow you configure everything. But, in case you want to go the extra mile, you'll also encounter communities on the internet dedicated to even more customization.
Source: Pinterest

Installing software is simple

Installing software on Linux is simple. Every Linux distribution provides a tool to manage software with lots (literally, thousands) of apps. On GNOME, the Software tool looks like this:
Source: Gnome.org

A huge community to help

Linux users are spread around communities over the internet. Being on Reddit or on forums of your specific distribution, you'll end up find a lot of help on the internet.

Excellent Documentation

You'll realize that the tools you'll use have a lot of documentation. Plus, there are hundreds of sites you'll be able to use as a reference for your questions. No access to the internet? Linux ships with the man tool providing you fantastic documentation. Just run man <cmd> to view documentation for the software you need:

Linux is customizable

Another big advantage of Linux is that it's customizable. I'm not talking about the wallpaper or desktop theme. I'm talking everything. Here's some of the things you can change or customize:
  • Desktop Managers: don't like GNOME or KDE? There's XFCE, LXQT, LXDE, etc for you.
  • Login Managers: how you login to your system.
  • Desktop themes: configure themes, colors, etc.
  • Fonts: customize your fonts, sizes, etc.
  • Shell: shell is the application that runs on your terminal and also can be changed or customized.
  • Systems and Services: your system will have an endless list of services to choose from.
  • Kernel: even the kernel, the main process of your system can be customized.

Curated repositories

Linux users are used to having repositories curated by the community and available for them. That means no viruses, adware, unsafe or untrusted software.

Games

Linux run games too! Emulators, custom games and thousands of games are also available on Steam for Linux. PCGamer recently did an in-depth review and they also concluded that's surprisingly easy to switch a gaming PC to Linux today. Not only is Linux easier than ever to use, but it's totally viable for gaming in 2020."

Office Tools

There are many alternatives to Microsoft's Office suite on Linux including LibreOffice, OpenOffice, WPS and Calligra Suite. You'll probably not miss Word and Excel.
Source: linuxuprising.com

Frequent Updates

If you're using a major distribution such as Ubuntu, Fedora, etc, you'll probably get smaller updates everyday or so, minor releases every 6 months and major releases every 2 years. Your system will be constantly updated. For reference, the upgrade cadence for Windows and Macs average 4 years.

Awesome Terminal

You can do pretty much everything from the terminal: browse the web, manage your files, listen to the radio, send a tweet, read Reddit, watch YouTube. You can also use tools such as tmux and multitask on the terminal.
On the left man git, on the right: vim on top and htop on bottom

Linux is everywhere

If you accessed this page, you probably used hundreds of services, tools and systems running Linux. routers, switches, firewalls, servers, clouds, web servers, the internet runs on Linux. Running Linux at home means that you'll won't have many issues running the latest tools.

Your TV, smartphone, watches, Teslas, IoT devices (fridge, microwave), Raspberry Pis, nuclear plants and everything runs on Linux. And the trend is that going forward, more companies will use it into their products.

Changed the world? Was probably made on Linux

No matter which technology you use, it probably was developed on Linux. Clouds, web servers, databases, containers, firewalls, VPNs, databases. Most of the tools that changed the world incubated on the GNU/Linux operating system. Want to use reliable and cutting-edge technology? Run Linux.

Huge growth

The Linux marketshare just keeps growing. Today the cloud runs Linux. Learning Linux will get you in touch with the technologies that the world's using. Today, it's estimated that the number of developers running Linux is equal or bigger than MacOS users at 25%.

Linux is fantastic for development

There's a big difference between a developer who knows their tools and a developer who not only knows their tools but how they work. Using Linux will expose you to a vast resource of technical information making you know how things work behind the scenes. Plus, the more confident you get with the terminal, the less you'll rely on heavier tools such as IDEs making you a much better and more valuable developer.

Plus, developers love Linux! According to StackOverflow, Linux is the most loved technology by developers:
We'll address more how developers can benefit from using Linux in a future post.

You will learn how technology works

Due to the vast documentation available and due to the open-source nature of the tools you'll use, you have access to an outstanding amount of technical information on how everything works. That will help you not only learn more about your tools but also to learn how your computer works.

Perfect for hardware-lovers

Into IoT, Rasperry Pi, Arduino? Using this tools will teach you a lot about Linux itself but also about how your devices function and how they interact with your system. You'll also have access to a powerful documentation about how to setup and configure your devices.

Perfect for network engineers

If you want, learning networking on Linux is fun and a rewarding experience. As previously said, Linux runs the Internet today and its robust and reliable networking capabilities are to be given credit for allowing you to watch Netflix, YouTube or even FaceTiming Zooming with your friends. Want to work with networks? Use Linux.

Conclusion

On this post we discussed why use Linux and how you too could benefit from using it today. We hope you learned something today and are excited to try Linux.

See Also

Wednesday, September 9, 2020

Hello World

Hello world, hello from Linux4Us.
Photo by Ian Parker on Unsplash

Writing a simple Hello World program is the traditional way to learn a new programming language. It consists essentially in writing as little code as possible to print the "Hello World" sentence on the screen. In its simplicity lies its beauty: teaching a new programmer how to get the minimum in place to start interacting with the computer.

Because this is a website, we'll skip the traditional C-based hello world program this time and use JavaScript, the programming language of the web. A typical hello world written in JavaScript is as simple as:

console.log("Hello World")

As strange as a hello world for a new website may seem, the core principle is the same: show (well, tell in our case) to the world that we're here, alive and ready for the challenge of teaching Linux for an even wider audience!

About this site

Our team has been discussing for some time how to approach building yet another website about Linux. Since we finally managed to gather the necessary resources (ant time!) to build this website and have lots of ideas for awesome and compelling posts, we decided to go forward and build yet another website about Linux (yawal). Yay!

Why YAWAL?

But why YAWAL (yet another website about Linux)? Despite growth, we think Linux could and should reach even wider audiences. Due to its open nature, diversity, inclusiveness, security, cost and affordability, we want it to be accessible from everyone's digital device.

Plus, we love Linux so much so why not!? 😊

Who are us?

Our team is a community of dedicated open-source volunteers who use, write about and ❤ Linux. We plan to cover the most diverse topics ranging from very simple tutorials to as complex as it may be necessary to teach users how to use, learn and build awesome tools on/with Linux.

What are we planning for this site?

As previously stated, we're planning to share, foster, teach and reach as many people as possible. We'd like to help Linux (and its derivative operating systems such as Ubuntu, Fedora, Arch Linux, Mint, Manjaro, Elementary OS, etc), its ecosystem and related communities to reach even newer audiences.

How will we achieve this?

First, let's be honest: we don't can't know if we'll ever achieve this! Our success will be directly related to how much engagement we get from the public. The good news is that we don't have any grand ambitions. And since we love contributing to Linux, open-source and education in general, we believe there are big reasons to try!

Our Commitment to Open-Source

We also want to make public our commitment to open-source: we will donate half of our profits to serious open source communities around the world to help and support the growth of Linux. Read more on the about us page to learn more.

How can you help

Interested in helping? Check the how anyone can help. We'll resort from the help of the community (sharing posts, giving feedback, sponsorship this site, etc) so we can grow and reach even wider audiences.

Final Thoughts

Thanks for reading thus far! We'll do our best to foster, divulge and teach about Linux because we love it as much as you do and we want it to be available to everyone out that who has a digital device in their hands.

All the best,
The Linux4us team

Featured Article

Installing Fedora on a Virtual Machine

Fedora remains on of the best Linux distributions for both experience and new users. Learn on this tutorial how to install and test it ...

Popular this Week