First, we would start with what open source is and what does it mean for software to be open source. The term open source refers to something people can modify and share because its design is publicly accessible.
The term originated in the context of software development to designate a specific approach to creating computer programs. Today, however, “open source” designates a broader set of values—what we call “the open source way.” Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development. Open-source software is software with source code that anyone can inspect, modify, and enhance. “Source code” is the part of the software that most computer users don’t ever see; it’s the code computer programmers can manipulate to change how a piece of software—a “program” or “application”—works. Programmers who have access to a computer program’s source code can improve that program by adding features to it or fixing parts that don’t always work correctly.
What you see as a executable file (in windows .exe or .deb in Ubuntu) is a compiled file which was built with the source code.
Some software has source code that only the person, team, or organization who created it—and maintains exclusive control over it—can modify. People call this kind of software “proprietary” or “closed source” software. Only the original authors of proprietary software can legally copy, inspect, and alter that software. And in order to use proprietary software, computer users must agree (usually by signing a license displayed the first time they run this software) that they will not do anything with the software that the software’s authors have not expressly permitted. Microsoft Office and Adobe Photoshop are examples of proprietary software.
Open-source software is different. Its authors make its source code available to others who would like to view that code, copy it, learn from it, alter it, or share it. LibreOffice and the GNU Image Manipulation Program (GIMP) are examples of open-source software.
As they do with proprietary software, users must accept the terms of a license when they use open source software—but the legal terms of open source licenses differ dramatically from those of proprietary licenses. Open source licenses affect the way people can use, study, modify and distribute software. In general, open-source licenses grant computer users permission to use open source software for any purpose they wish. Some open-source licenses—what some people call “copyleft” licenses—stipulate that anyone who releases a modified open source program must also release the source code for that program alongside it. Moreover, some open source licenses stipulate that anyone who alters and shares a program with others must also share that program’s source code without charging a licensing fee for it.
By design, open-source software licenses promote collaboration and sharing because they permit other people to make modifications to source code and incorporate those changes into their own projects. They encourage computer programmers to access, view, and modify open-source software whenever they like, as long as they let others do the same when they share their work.
Open source technology and open source thinking both benefit programmers and non-programmers.
Because early inventors built much of the Internet itself on open source technologies—like the Linux operating system and the Apache Web server application—anyone using the Internet today benefits from open-source software.
Every time computer users view web pages, check email, chat with friends, stream music online, or play multiplayer video games, their computers, mobile phones, or gaming consoles connect to a global network of computers using open source software to route and transmit their data to the “local” devices they have in front of them. The computers that do all this important work are typically located in faraway places that users don’t actually see or can’t physically access—which is why some people call these computers “remote computers.” More and more, people rely on remote computers when performing tasks they might otherwise perform on their local devices. For example, they may use online word processing, email management, and image editing software that they don’t install and run on their personal computers. Instead, they simply access these programs on remote computers by using a Web browser or mobile phone application. When they do this, they’re engaged in “remote computing.”
Some people call remote computing “cloud computing,” because it involves activities (like storing files, sharing photos, or watching videos) that incorporate not only local devices but also a global network of remote computers that form an “atmosphere” around them. Cloud computing is an increasingly important aspect of everyday life with Internet-connected devices. Some cloud computing applications, like Google Apps, are proprietary. Others, like ownCloud and Nextcloud, are open source.
Cloud computing applications run “on top” of additional software that helps them operate smoothly and efficiently, so people will often say that software running “underneath” cloud computing applications acts as a “platform” for those applications. Cloud computing platforms can be open source or closed source. OpenStack is an example of an open-source cloud computing platform.
There is a common misconception about what “open source” implies, and the concept’s implications are not only economic. Open-source software programmers can charge money for the open-source software they create or to which they contribute. But in some cases, because an open-source license might require them to release their source code when they sell software to others, some programmers find that charging users money for software services and support (rather than for the software itself) is more lucrative. This way, their software remains free of charge, and they make money helping others install, use, and troubleshoot it.