menu

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

Monday, 29 December 2014

Understanding Open Source Software and Licensing


When we talk about buying software there are three distinct components:
  • Ownership – Who owns the intellectual property behind the software?
  • Money transfer – How does money change hands, if at all?
  • Licensing – What do you get? What can you do with the software? Can you use it on only one computer? Can you give it to someone else?
In most cases, the ownership of the software remains with the person or company that created it. Users are only being granted a license to use the software. This is a matter of copyright law. The money transfer depends on the business model of the creator. It’s the licensing that really differentiates open source software from closed source software.
Two contrasting examples will get things started.
With Microsoft Windows, the Microsoft Corporation owns the intellectual property. The license itself, the End User License Agreement (EULA), is a custom legal document that you must click through, indicating your acceptance, in order to install the software. Microsoft keeps the source code and distributes only binary copies through authorized channels. For most consumer products you are allowed to install the software on one computer and are not allowed to make copies of the disk other than for a backup. You are not allowed to reverse engineer the software. You pay for one copy of the software, which gets you minor updates but not major upgrades.

The Free Software Foundation was founded in 1985 by Richard Stallman (RMS). The goal of the FSF is to promote Free Software. Free Software does not refer to the price, but to the freedom to share, study, and modify the underlying source code. It is the view of the FSF that proprietary software (software distributed under a closed source license) is bad. FSF also advocates that software licenses should enforce the openness of modifications. It is their view that if you modify Free Software that you should be required to share your changes. This specific philosophy is called copyleft.

Monday, 22 December 2014

Linux Evolution and Popular Operating Systems

The definition of the word Linux depends on the context in which it is used. Linux means the kernel of the system, which is the central controller of everything that happens on the computer (more on this later). People that say their computer “runs Linux” usually refer to the kernel and suite of tools that come with it (called the distribution). If you have “Linux experience”, you are most likely talking about the programs themselves, though depending on the context, you might be talking about knowing how to fine-tune the kernel. Each of these components will be investigated so that you understand exactly what roles each plays.

Further complicating things is the term UNIX. UNIX was originally an operating system developed at AT&T Bell Labs in the 1970’s. It was modified and forked (that is, people modified it and those modifications served as the basis for other systems) such that at the present time there are many different variants of UNIX. However, UNIX is now both a trademark and a specification, owned by an industry consortium called the Open Group. Only software that has been certified by the Open Group may call itself UNIX. Despite adopting all the requirements of the UNIX specification, Linux has not been certified, so Linux really isn’t UNIX! It’s just… UNIX-like.

Hardware Platforms

Linux started out as something that would only run on a computer like Linus’: a 386 with a specific hard drive controller. The range of support grew, as people built support for other hardware. Eventually, Linux started supporting other chips, including hardware that was made to run competitive operating systems!
The types of hardware grew from the humble Intel chip up to supercomputers. Later, smaller-size, Linux supported, chips were developed to fit in consumer devices, called embedded devices. The support for Linux became ubiquitous such that it is often easier to build hardware to support Linux and then use Linux as a springboard for your custom software, than it is to build the custom hardware and software from scratch.

Eventually, cellular phones and tablets started running Linux. A company, later bought by Google, came up with the Android platform which is a bundle of Linux and the software necessary to run a phone or tablet. This means that the effort to get a phone to market is significantly less, and companies can spend their time innovating on the user facing software rather than reinventing the wheel each time. Android is now one of the market leaders in the space.
Aside from phones and tablets, Linux can be found in many consumer devices. Wireless routers often run Linux because it has a rich set of network features. The TiVo is a consumer digital video recorder built on Linux. Even though these devices have Linux at the core, the end users don’t have to know. The custom software interacts with the user and Linux provides the stable platform.