Free and Open Source Software
According to Wikipedia Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software. This is in contrast to proprietary software, where the software is under restrictive copyright licensing and the source code is usually hidden from the users.
FOSS is all about freedom and sharing
FOSS refers to software that is not only free to use but also allows users to access its source code, modify it, and distribute it to others. Let’s break it down:
- Free: When we say software is “free,” it means Libre, स्वतन्त्र. ie it grants users the freedom to run the program for any purpose, study how it works, modify it according to their needs, and share it with others.
- Open Source: Open source means that the source code of the software is available for anyone to see, modify, and distribute. It’s like having the recipe for a dish – you can look at it, tweak it, and even share it with others.
Four Essentials Freedoms:
Freedom to:
- to run the program,
- to study and change the program in source code form,
- to redistribute exact copies, and
- to distribute modified versions.
Even though software is different from the material objects (like table, chair…) it should be owned by the user ie. user should have all the control over the software like material objects.
Software shouldn’t be bound to other’s control.
Like:
- I can’t change my theme in some software (specially on orange OS xD),
- I don’t know what does a notepad do (is it really only a text editor??? :D),
- I can’t even delete my OS (though this is good for user but I don’t have control.)
Why FOSS philosophy???
- Collaboration:
- Encourages collaboration among developers, allowing them to work together to improve software
- By sharing their knowledge and expertise, they can create better, more secure, and more reliable software that benefits everyone
- Transparency:
- You can see what’s happening behind the scenes
- this transparency helps to build trust because anyone can examine the code and make sure it doesn’t have any hidden malicious functions or vulnerabilities
- It’s like having a transparent box where you can see exactly what’s inside
- Empowering users:
- FOSS puts users in control
- You have the freedom to customize the software according to your needs and not be limited by the choices made by someone else
- It’s like having a toolbox with all the necessary tools to build and shape the software to fit your requirements
- Longevity and community support:
- FOSS projects often have vibrant communities of developers and users
- This means that even if the original developers move on or lose interest, others can step in and continue the work
- It ensures that the software remains alive and supported for a long time
Let’s learn some lesson from history
- In the 1980s, a computer scientist and activist named Richard Stallman launched the Free Software Movement
- Stallman believed that software should be free and accessible to all users
- He started the GNU Project, aiming to develop a complete, Unix-like operating system composed entirely of free software
- In 1989, Stallman introduced the GNU General Public License (GPL), which became a cornerstone of the FOSS movement
- The GPL is a software license that ensures users’ freedoms by granting them the right to use, study, modify, and distribute the software
- In the early 1990s, Linus Torvalds created the Linux kernel, a crucial component of an operating system
- Torvalds released it under the GPL, which allowed others to contribute and improve upon it
- This led to the development of the Linux operating system, which combined the GNU software with the Linux kernel
- In the late 1990s, a group of people, including Eric S. Raymond and Bruce Perens, coined the term “open source” to emphasize the practical benefits of free software
- They formed the Open Source Initiative (OSI) to promote and advocate for the use of open source software in the industry
- As the Internet became more prevalent, the FOSS movement gained momentum
- The collaborative nature of FOSS attracted developers from around the world who contributed their skills and expertise to various projects
- Many FOSS projects, such as the Apache web server, MySQL database, and Firefox web browser, became widely used and highly respected
- Over time, businesses and organizations recognized the value of FOSS
- They embraced open source software for its cost-effectiveness, security, flexibility, and community support
- Today, FOSS has become integral to many industries, powering critical systems, servers, smartphones, and even cloud computing
Have you ever wonder what was the main reason behind forming FSF??
Free Software Foundation (FSF) was founded in response to the issue of proprietary printer code. Sounds funny but it has amazing story.
In the late 1970s and early 1980s, Richard Stallman was working as a programmer at the Massachusetts Institute of Technology (MIT) Artificial Intelligence (AI) Lab. The lab had a Xerox laser printer, the Xerox 9700, which was a highly advanced and sophisticated device at that time.
Stallman had always believed in the importance of software freedom and the ability to modify and share software. However, the Xerox printer’s software was proprietary, meaning Stallman did not have access to its source code. This lack of access prevented him from making changes or fixing any issues he encountered with the printer’s software.
One day, Stallman experienced a problem with the printer. He needed to add a new feature or fix a bug, but without access to the source code, he was unable to make the necessary modifications. Stallman sought help from the manufacturer, Xerox, but they did not provide him with the source code either.
This incident frustrated Stallman and made him realize the consequences of proprietary software. He felt that users were being denied the freedom to control and modify the software they relied on, which hindered collaboration and innovation. Stallman believed that software should be shared and developed collectively for the benefit of all users.
Motivated by this experience, Stallman founded the Free Software Movement and later established the Free Software Foundation (FSF) in 1985. The FSF promoted the development and distribution of free software, and Stallman developed the GNU Project to create a free and open-source operating system.
While the specific details of the printer incident may vary in different accounts, it is widely recognized as a pivotal event that helped shape Stallman’s philosophy and dedication to software freedom, ultimately leading to the foundation of the Free Software Movement and the FSF.
Which printer inspired Richard Stallman to start the Free Software Movement?? Ans: “Xerox laser printer incident” or the “Xerox 9700 case”
How can we forget the story of EMACS when we are talking about FOSS.
TLDR;
As part of Stallman efforts to create a complete free software operating system, he realized the need for a powerful and extensible text editor that aligned with the principles of software freedom. This led him to develop Emacs.
Emacs, short for “Editing MACroS,” is a highly customizable text editor that was initially created by Stallman in the late 1970s and early 1980s. It was designed to provide a platform for users to edit text and write programs with great flexibility and extensibility.
Stallman’s motivation behind creating Emacs was to offer a free and open-source alternative to proprietary text editors that restricted users’ freedom. He wanted to build a tool that users could modify, customize, and share according to their specific needs and preferences.
Emacs was built on the principles of free software, allowing users to access its source code, modify it, and distribute their changes. It provided a programming environment that enabled users to write scripts and extensions to enhance its functionality further.
Emacs became one of the flagship projects of the GNU Project, which aimed to develop a complete free software operating system. It gained popularity and a strong following in the programming and software development communities due to its power, versatility, and adherence to the principles of software freedom.
To this day, Emacs remains a widely used and influential text editor, and it continues to be actively maintained and developed by a community of contributors. It serves as an example of how free and open source software can empower users and provide them with the freedom to customize and shape their software tools according to their needs.
Emacs is older than Linux
Linux history deserve its own blog so lets not talk about it. But lets talk about “Does Linus Torvald uses emacs for Linux Development?”
- Linus Torvalds has stated that he prefers to use a different text editor called “MicroEmacs” (also known as “uEmacs”) for his coding tasks.
- MicroEmacs is a lightweight and minimalist text editor that was developed by Dave Conroy in the late 1980s. It was derived from an earlier version of Emacs and was designed to be more streamlined and efficient.
- Sad to say but no, Linus Torvalds, the creator of Linux, does not use Emacs for Linux development.
- MicroEmacs was derived from an earlier version of Emacs but was developed as a separate project with its own set of features and goals.
- So indirectly Linus uses the Emacs :D.
These are the things I found interesting. Enough of pros lets not talk about cons of FOSS software.
- Lack of Support:
- FOSS often relies on community-driven support rather than dedicated customer support teams
- While communities can be helpful, the level of support may vary, and users might not always receive immediate or tailored assistance
- Fragmentation and Compatibility:
- The open nature of FOSS can lead to fragmentation, where different versions, distributions, or forks of software exist.
- This can sometimes create compatibility issues, making it challenging to ensure seamless interoperability across different FOSS solutions.
- Learning Curve:
- Some FOSS tools and applications may have a steeper learning curve compared to their proprietary counterparts.
- They may require technical expertise or familiarity with command-line interfaces, which can be intimidating for users without a technical background.
- Hardware Compatibility:
- FOSS might face challenges in terms of compatibility with specific hardware or device drivers.
- Certain hardware components or peripherals may have limited or no FOSS support, which can be a hurdle for users with specialized or less common hardware configurations.
- Software Availability and Feature Set:
- While FOSS offers a wide range of applications and tools, some niche or industry-specific software may have limited FOSS alternatives.
- Additionally, proprietary software might sometimes offer more advanced features or specialized functionalities that are not yet available in FOSS equivalents.
- Documentation and User Interface:
- FOSS projects might have varying levels of documentation and user-friendly interfaces.
- Some projects may lack comprehensive documentation, making it harder for newcomers to get started, and certain FOSS applications might have user interfaces that are perceived as less polished or intuitive compared to their proprietary counterparts.
Note: These cons are not applicable to all FOSS software, and many FOSS projects actively address these challenges
The benefits of FOSS, such as transparency, community collaboration, and customization, often outweigh these drawbacks for many users and organizations.
Thank you for reading!!!