Sunday, November 4, 2012

Open Source


A  Definition of Open Source
Open source technology is defined as the production and development philosophy of allowing end users and developers to not only see the source code of software, but modify it as well. Michael Tiemann is a true open source software pioneer. He made his first major open source contribution over a decade ago by writing the GNU C++ compiler, the first native-code C++ compiler and debugger. His early work created world-leading technologies and also informed the first open source business model. In 1989, Tiemann's technical expertise and entreprenurial spirit led him to co-found Cygnus Solutions, the first company to provide commercial support for open source software. During his ten years at Cygnus, Tiemann contributed in a number of roles from President to hacker, helping to lead the company from a fledgling start-up to an admired open source leader. Tiemann is now the CTO of Red Hat, a leading supplier of Linux and Open Source software. In addition to his responsibilities at Red Hat, Tiemann serves on a number of boards, including the Open Source Initiative, the Embedded Linux Consortium, the Jabber Technical Advisory Board, the GNOME Foundation Advisory Board, and the Board of Directors of ActiveState Tool Corp. Tiemann also provides financial support to organizations that further the goals of software freedom, including the Free Software Foundation, the Electronic Frontier Foundation, and the ArsDigita Foundation. The Linux operating system is a one of the best-known examples of open source software technology.

Pros and Cons of Open Source for Developers
From a developer’s point of view, open source technologies provide a platform on which to build custom solutions. Rather than develop, say, an entire proprietary operating system, developers can build and improve upon the already existing open source Linux operating system platform. In this way, more time is spent on the specific task to be solved rather than getting the system up and running to the point where it is stable and reliable.Unfortunately, this means that other developers have access to the developer’s work and can easily create a competing product. One of the reasons why Microsoft has such a huge market share of the operating system industry is because its software operates on a closed source paradigm; no one but those people privy to the source code can customize Windows. In addition, developers must be prepared to have their work publicly scrutinized. Almost everything in open source is view-able by other developers. If a developer makes a major mistake, it can become public information and tarnish the developer’s reputation

What is open source software?
A software that is governed by a license that is either approved by the open source initiative or follows the open source definition can be considered to be an open source software. The basic principles of the open source definition are:
1.             Freedom to re-distribute software;
2.             Availability of source code;
3.             Freedom to copy and modify;
4.             License travels with the software;
No discrimination based on technology, field or hardware; and so on.
Business Utilization of Open Source Software

Open source software is used in many businesses and is used in more ways then people realize.   The idea behind open source is the development of high quality, reliable and low-cost software. Some of the organizations using open source software include Travelocity, Wikipedia, and the US Postal Service. Some the widely used applications include Apache web service, Vyatta, 7zip and Open Office.

Examples of open source software
   Web-related         
  •              Apache Cocoon — a web application framework
  •              Apache — the most popular web server
  •              BookmarkSync — a tool for browsers
  •              Web-Developer Server Suite — a package of web applications including Apache, MySQL, and PHP
  •              Curl-loader - a powerful HTTP/HTTPS/FTP/FTPS loading and testing open-source tool
Communication Related
  •              Asterisk — Telephony and VoIP server
  •             Ekiga — Video conferencing application for GNOME and Microsoft Windows
  •              FreeSWITCH — Open Source telephony platform
  •              Twinkle — VOIP softphone
    Electronic health or medical record
  •              IQCare is a robust patient management and monitoring system. It allows for users to create their own custom forms and indicators, create custom reports, automate backups. Its currently used in Kenya, Uganda and Nigeria.
  •              CottageMed was the first free cross-platform open source electronic medical record. Gnu licensed since 1999, it is currently installed on a majority of continents and in several USAID programs in Africa. It is a frequent choice for those physicians most intimidated by the time and money needed to run more complicated electronic medical records.
     Programming language support
  •              Dragonfly — newLISP based web development framework
  •              GCC — a set of compilers for multiple programming languages and platforms, including
  •              C, C++, Objective-C, Ada, Java,Pascal, Fortran
  •              Harbour — compiler for the xBase superset language often referred to as Clipper
  •              Jikes — Java compiler
  •              OpenJDK — Sun's Java Development Kit based completely on free and open source code
  •              Parser — a language for dynamic website creation
  •              Perl — a programming language strong on text processing
  •              PHP — a scripting language designed for web site applications
  •              Python — a high-level scripting language
  •              Ruby — a high-level scripting language
  •              Ruby on Rails — Ruby-based web development framework
  •              Spidermonkey — C/C++ JavaScript engine of the Mozilla project
And lots more

Open system vs. closed system.
 Closed systems such as Microsoft products are the property of the company who developed and is protected under patents or copyright laws. The codes and languages that the products are based on are kept secret and the source codes are not visible. With closed source it is also illegal to copy, redistribute or change the code in any way. Open source however, is the opposite. Open source software must fall under certain licensing conditions and the codes are able to be viewed and changed by users and developers in order to meet there needs. There are pros and cons to both open and closed source though, for instance with a closed source application support can be more easily obtained and updates can be quickly distributed. The cost of these applications and software can be much greater then that of open source. With Open Source programs and software can be freely downloaded but the support is what the user may need to pay for. For instance you can download a program for free but in order to get some updates you may need to pay a subscription fee or a fee for support. Open source - the source availability model used by free and open source software (FOSS) - and closed source are two approaches to the distribution of software.
Under the closed source model source code is not released to the public. Close maintained by a team who produces their product in a compiled executable state, which is what the market is allowed access to. Microsoft, the owner and developer of Windows and Microsoft Office, along with other major software companies, have long been proponents of this business model. Although in August 2010, Microsoft interoperability general manager Jean Paoli said Microsoft "loves open source" and its anti-open source position was a mistake.
The FOSS model allows for able users to view and modify a product's source code. Common advantages cited by proponents for having such a structure are expressed in terms of trust, acceptance, teamwork and quality.
FOSS can and has been commercialized by companies such as Red Hat, IBM, Novell, Oracle, Mozilla Foundation, VMware and others


Open Source Operating Systems – Linux Distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top ofthe Linux kernel. Such distributions (often called distros for short) are Operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications. The operating system will consist of the Linux kernel and, usually, a set of libraries and utilities from the GNU project, with graphics support from the X Window System. Distributions optimized for size may not contain X and tend to use more compact alternatives to the GNU utilities, such as Busybox, uClibc, or dietlibc. There are currently over six hundred Linux distributions. Over three hundred of those are in active development, constantly being revised and improved.
Because most of the kernel and supporting packages are free and open source software, Linux distributions have taken a wide variety of forms — from fully featured desktop, server, laptop, netbook, Mobile Phone, and Tablet operating systems as well as minimal environments (typically for use in embedded systems or for booting from a floppy disk). Aside from certain custom software (such as installers and configuration tools), a distribution is most simply described as a particular assortment of applications installed on top of a set of libraries married with a version of the kernel, such that its "out-of-the-box" capabilities meet most of the needs of its particular end-user base.
One can distinguish between commercially-backed distributions, such as Fedora (Red Hat), openSUSE (Novell), Ubuntu (Canonical Ltd.), and Mandriva Linux (Mandriva), and entirely community-driven distributions, such as Debian and Gentoo.




No comments:

Post a Comment