Free Source Code

Free PHP Source Code. Download from a vast collections of free PHP source code below. You can modify and integrate it in your own personal use. Just give a little credit to the original author whenever you use it on your system's project.

Example of a modern free-software operating system running some representative applications. Shown are the Xfce desktop environment, the Firefox web browser, the Vim text editor, the GIMP image editor, and the VLC media player.

Free software or libre software[1][2] is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions.[3][4][5][6][7] Free software is a matter of liberty, not price: users—individually or in cooperation with computer programmers—are free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program.[8][2] Computer programs are deemed free if they give users (not just the developer) ultimate control over the software and, subsequently, over their devices.[5][9]

The right to study and modify a computer program entails that source code—the preferred format for making changes—be made available to users of that program. While this is often called 'access to source code' or 'public availability', the Free Software Foundation recommends against thinking in those terms,[10] because it might give the impression that users have an obligation (as opposed to a right) to give non-users a copy of the program.

Although the term 'free software' had already been used loosely in the past,[11]Richard Stallman is credited with tying it to the sense under discussion and starting the free-software movement in 1983, when he launched the GNU Project: a collaborative effort to create a freedom-respecting operating system, and to revive the spirit of cooperation once prevalent among hackers during the early days of computing.[12][13]

  • 1Context
  • 4History
  • 6Security and reliability

Context[edit]

This Euler diagram describes the typical relationship between freeware and free and open-source software (FOSS): According to David Rosen from Wolfire Games in 2010, open source / free software (orange) is most often gratis but not always. Freeware (green) seldom expose their source code.[14]

Free software thus differs from:

  • proprietary software, such as Microsoft Office, Google Docs, Sheets, and Slides or iWork from Apple. Users cannot study, change, and share their source code.
  • freeware, which is a category of proprietary software that does not require payment for basic use.

For software under the purview of copyright to be free, it must carry a software license whereby the author grants users the aforementioned rights. Software that is not covered by copyright law, such as software in the public domain, is free as long as the source code is in the public domain too, or otherwise available without restrictions.

Proprietary software uses restrictive software licences or EULAs and usually does not provide users with the source code. Users are thus legally or technically prevented from changing the software, and this results on reliance on the publisher to provide updates, help, and support. (See also vendor lock-in and abandonware). Users often may not reverse engineer, modify, or redistribute proprietary software.[15][16] Beyond copyright law, contracts and lack of source code; there could be additional shenanigans keeping users from exercising freedom over a piece of software, such as software patents and digital rights management (more specifically, tivoization).[17]

Free software can be a for-profit, commercial activity or not. Some free software is developed by volunteer computer programmers while other is developed by corporations; or even by both.[18][8]

Naming and differences with Open Source[edit]

Although both definitions refer to almost equivalent corpora of programs, the Free Software Foundation recommends using the term 'free software' rather than 'open-source software' (a younger vision coined in 1998), because the goals and messaging are quite dissimilar. 'Open source' and its associated campaign mostly focus on the technicalities of the public development model and marketing free software to businesses, while taking the ethical issue of user rights very lightly or even antagonistically.[19] Stallman has also stated that considering the practical advantages of free software is like considering the practical advantages of not being handcuffed, in that it is not necessary for an individual to consider practical reasons in order to realize that being handcuffed is undesirable in itself.[20]

The FSF also notes that 'Open Source' has exactly one specific meaning in common English, namely that 'you can look at the source code.' It states that while the term 'Free Software' can lead to two different interpretations, at least one of them is consistent with the intended meaning unlike the term 'Open Source'.[a] The loan adjective 'libre' is often used to avoid the ambiguity of the word 'free' in English language, and the ambiguity with the older usage of 'free software' as public-domain software.[11] See Gratis versus libre.

Definition and the Four Freedoms[edit]

Diagram of free and nonfree software, as defined by the Free Software Foundation. Left: free software, right: proprietary software, encircled: Gratis software

The first formal definition of free software was published by FSF in February 1986.[21] That definition, written by Richard Stallman, is still maintained today and states that software is free software if people who receive a copy of the software have the following four freedoms.[22][23] The numbering begins with zero, not only as a spoof on the common usage of zero-based numbering in programming languages, but also because 'Freedom 0' was not initially included in the list, but later added first in the list as it was considered very important.

  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
  • Freedom 2: The freedom to redistribute and make copies so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.

Freedoms 1 and 3 require source code to be available because studying and modifying software without its source code can range from highly impractical to nearly impossible.

Thus, free software means that computer users have the freedom to cooperate with whom they choose, and to control the software they use. To summarize this into a remark distinguishing libre (freedom) software from gratis (zero price) software, the Free Software Foundation says: 'Free software is a matter of liberty, not price. To understand the concept, you should think of 'free' as in 'free speech', not as in 'free beer''.[22] See Gratis versus libre.

In the late 1990s, other groups published their own definitions that describe an almost identical set of software. The most notable are Debian Free Software Guidelines published in 1997,[24] and the Open Source Definition, published in 1998.

The BSD-based operating systems, such as FreeBSD, OpenBSD, and NetBSD, do not have their own formal definitions of free software. Users of these systems generally find the same set of software to be acceptable, but sometimes see copyleft as restrictive. They generally advocate permissive free-software licenses, which allow others to use the software as they wish, without being legally forced to provide the source code. Their view is that this permissive approach is more free. The Kerberos, X11, and Apache software licenses are substantially similar in intent and implementation.

Examples[edit]

There are thousands of free applications and many operating systems available on the Internet. Users can easily download and install those applications via a package manager that comes included with most Linux distributions.The Free Software Directory maintains a large database of free-software packages. Some of the best-known examples include the Linux kernel, the BSD and Linux operating systems, the GNU Compiler Collection and C library; the MySQL relational database; the Apache web server; and the Sendmail mail transport agent. Other influential examples include the Emacs text editor; the GIMP raster drawing and image editor; the X Window System graphical-display system; the LibreOffice office suite; and the TeX and LaTeX typesetting systems.

  • Free Software
  • Kscreen-krunner.pngKDE Plasma desktop on Debian.

  • Captura de pagina de manual de OpenSSL.pngOpenSSL's manual page.

  • BgeCarSc.jpgCreating a 3D car racing game using the Blender Game Engine

  • Replicant 4.0 on NexusS.pngReplicant smartphone, an Android-based system that is 100% free software.

  • Libreoffice 5.3 writer MUFFIN interface.pngLibreoffice is a free multi-platform office suite.

History[edit]

Richard Stallman, founder of the Free Software Movement (2009)

From the 1950s up until the early 1970s, it was normal for computer users to have the software freedoms associated with free software, which was typically public-domain software.[11]Software was commonly shared by individuals who used computers and by hardware manufacturers who welcomed the fact that people were making software that made their hardware useful. Organizations of users and suppliers, for example, SHARE, were formed to facilitate exchange of software. As software was often written in an interpreted language such as BASIC, the source code was distributed to use these programs. Software was also shared and distributed as printed source code (Type-in program) in computer magazines (like Creative Computing, SoftSide, Compute!, Byte etc) and books, like the bestseller BASIC Computer Games.[25] By the early 1970s, the picture changed: software costs were dramatically increasing, a growing software industry was competing with the hardware manufacturer's bundled software products (free in that the cost was included in the hardware cost), leased machines required software support while providing no revenue for software, and some customers able to better meet their own needs did not want the costs of 'free' software bundled with hardware product costs. In United States vs. IBM, filed January 17, 1969, the government charged that bundled software was anti-competitive.[26] While some software might always be free, there would henceforth be a growing amount of software produced primarily for sale. In the 1970s and early 1980s, the software industry began using technical measures (such as only distributing binary copies of computer programs) to prevent computer users from being able to study or adapt the software applications as they saw fit. In 1980, copyright law was extended to computer programs.

In 1983, Richard Stallman, one of the original authors of the popular Emacs program and a longtime member of the hacker community at the MIT Artificial Intelligence Laboratory, announced the GNU project, the purpose of which was to produce a completely non-proprietary Unix-compatible operating system, saying that he had become frustrated with the shift in climate surrounding the computer world and its users. In his initial declaration of the project and its purpose, he specifically cited as a motivation his opposition to being asked to agree to non-disclosure agreements and restrictive licenses which prohibited the free sharing of potentially profitable in-development software, a prohibition directly contrary to the traditional hacker ethic. Software development for the GNU operating system began in January 1984, and the Free Software Foundation (FSF) was founded in October 1985. He developed a free software definition and the concept of 'copyleft', designed to ensure software freedom for all.Some non-software industries are beginning to use techniques similar to those used in free software development for their research and development process; scientists, for example, are looking towards more open development processes, and hardware such as microchips are beginning to be developed with specifications released under copyleft licenses (see the OpenCores project, for instance). Creative Commons and the free-culture movement have also been largely influenced by the free software movement.

1980s: Foundation of the GNU project[edit]

In 1983, Richard Stallman, longtime member of the hacker community at the MIT Artificial Intelligence Laboratory, announced the GNU project, saying that he had become frustrated with the effects of the change in culture of the computer industry and its users.[27] Software development for the GNU operating system began in January 1984, and the Free Software Foundation (FSF) was founded in October 1985. An article outlining the project and its goals was published in March 1985 titled the GNU Manifesto. The manifesto included significant explanation of the GNU philosophy, Free Software Definition and 'copyleft' ideas.

1990s: Release of the Linux kernel[edit]

The Linux kernel, started by Linus Torvalds, was released as freely modifiable source code in 1991. The first licence was a proprietary software licence. However, with version 0.12 in February 1992, he relicensed the project under the GNU General Public License.[28] Much like Unix, Torvalds' kernel attracted the attention of volunteer programmers.FreeBSD and NetBSD (both derived from 386BSD) were released as free software when the USL v. BSDi lawsuit was settled out of court in 1993. OpenBSDforked from NetBSD in 1995. Also in 1995, The Apache HTTP Server, commonly referred to as Apache, was released under the Apache License 1.0.

Licensing[edit]

Copyleft, a novel use of copyright law to ensure that works remain unrestricted, originates in the world of free software.[29]

All free-software licenses must grant users all the freedoms discussed above. However, unless the applications' licenses are compatible, combining programs by mixing source code or directly linking binaries is problematic, because of license technicalities. Programs indirectly connected together may avoid this problem.

The majority of free software falls under a small set of licenses. The most popular of these licenses are:[30][31]

  • The MIT License
  • The GNU General Public License v2 (GPLv2)
  • The Apache License
  • The GNU General Public License v3 (GPLv3)
  • The BSD License
  • The GNU Lesser General Public License (LGPL)
  • The Mozilla Public License (MPL)
  • The Eclipse Public License

The Free Software Foundation and the Open Source Initiative both publish lists of licenses that they find to comply with their own definitions of free software and open-source software respectively:

The FSF list is not prescriptive: free-software licenses can exist that the FSF has not heard about, or considered important enough to write about. So it's possible for a license to be free and not in the FSF list. The OSI list only lists licenses that have been submitted, considered and approved. All open-source licenses must meet the Open Source Definition in order to be officially recognized as open source software. Free software, on the other hand, is a more informal classification that does not rely on official recognition. Nevertheless, software licensed under licenses that do not meet the Free Software Definition cannot rightly be considered free software.

Apart from these two organizations, the Debian project is seen by some to provide useful advice on whether particular licenses comply with their Debian Free Software Guidelines. Debian doesn't publish a list of approved licenses, so its judgments have to be tracked by checking what software they have allowed into their software archives. That is summarized at the Debian web site.[32]

It is rare that a license announced as being in-compliance with the FSF guidelines does not also meet the Open Source Definition, although the reverse is not necessarily true (for example, the NASA Open Source Agreement is an OSI-approved license, but non-free according to FSF).

There are different categories of free software.

  • Public-domain software: the copyright has expired, the work was not copyrighted (released without copyright notice before 1988), or the author has released the software onto the public domain with a waiver statement (in countries where this is possible). Since public-domain software lacks copyright protection, it may be freely incorporated into any work, whether proprietary or free. The FSF recommends the CC0 public domain dedication for this purpose.[33]
  • Permissive licenses, also called BSD-style because they are applied to much of the software distributed with the BSD operating systems: these licenses are also known as copyfree as they have no restrictions on distribution.[34] The author retains copyright solely to disclaim warranty and require proper attribution of modified works, and permits redistribution and any modification, even closed-source ones. In this sense, a permissive license provides an incentive to create non-free software, by reducing the cost of developing restricted software. Since this is incompatible with the spirit of software freedom, many people consider permissive licenses to be less free than copyleft licenses.
  • Copyleft licenses, with the GNU General Public License being the most prominent: the author retains copyright and permits redistribution under the restriction that all such redistribution is licensed under the same license. Additions and modifications by others must also be licensed under the same 'copyleft' license whenever they are distributed with part of the original licensed product. This is also known as a viral, protective, or reciprocal license. Due to the restriction on distribution not everyone considers this type of license to be free.[35][36]

Security and reliability[edit]

Although nearly all computer viruses only affect Microsoft Windows,[37][38][39]antivirus software such as ClamTk (shown here) is still provided for Linux and other Unix-based systems, so that users can detect malware that might infect Windows hosts.

There is debate over the security of free software in comparison to proprietary software, with a major issue being security through obscurity. A popular quantitative test in computer security is to use relative counting of known unpatched security flaws. Generally, users of this method advise avoiding products that lack fixes for known security flaws, at least until a fix is available.

Free software advocates strongly believe that this methodology is biased by counting more vulnerabilities for the free software systems, since their source code is accessible and their community is more forthcoming about what problems exist,[40] (This is called 'Security Through Disclosure'[41]) and proprietary software systems can have undisclosed societal drawbacks, such as disenfranchising less fortunate would-be users of free programs. As users can analyse and trace the source code, many more people with no commercial constraints can inspect the code and find bugs and loopholes than a corporation would find practicable. According to Richard Stallman, user access to the source code makes deploying free software with undesirable hidden spyware functionality far more difficult than for proprietary software.[42]

Free Source Code

Some quantitative studies have been done on the subject.[43][44][45][46]

Binary blobs and other proprietary software[edit]

In 2006, OpenBSD started the first campaign against the use of binary blobs in kernels. Blobs are usually freely distributable device drivers for hardware from vendors that do not reveal driver source code to users or developers. This restricts the users' freedom effectively to modify the software and distribute modified versions. Also, since the blobs are undocumented and may have bugs, they pose a security risk to any operating system whose kernel includes them. The proclaimed aim of the campaign against blobs is to collect hardware documentation that allows developers to write free software drivers for that hardware, ultimately enabling all free operating systems to become or remain blob-free.

The issue of binary blobs in the Linux kernel and other device drivers motivated some developers in Ireland to launch gNewSense, a Linux based distribution with all the binary blobs removed. The project received support from the Free Software Foundation and stimulated the creation, headed by the Free Software Foundation Latin America, of the Linux-libre kernel.[47] As of October 2012, Trisquel is the most popular FSF endorsed Linux distribution ranked by Distrowatch (over 12 months).[48] While Debian is not endorsed by the FSF and does not use Linux-libre, it is also a popular distribution available without kernel blobs by default since 2011.[47]

Business model[edit]

Selling software under any free-software licence is permissible, as is commercial use. This is true for licenses with or without copyleft.[18][49][50]

Since free software may be freely redistributed, it is generally available at little or no fee. Free software business models are usually based on adding value such as customization, accompanying hardware, support, training, integration, or certification.[18] Exceptions exist however, where the user is charged to obtain a copy of the free application itself.[51]

Fees are usually charged for distribution on compact discs and bootable USB drives, or for services of installing or maintaining the operation of free software. Development of large, commercially used free software is often funded by a combination of user donations, crowdfunding, corporate contributions, and tax money. The SELinux project at the United States National Security Agency is an example of a federally funded free-software project.

Proprietary software, on the other hand, tends to use a different business model, where a customer of the proprietary application pays a fee for a license to legally access and use it. This license may grant the customer the ability to configure some or no parts of the software themselves. Often some level of support is included in the purchase of proprietary software, but additional support services (especially for enterprise applications) are usually available for an additional fee. Some proprietary software vendors will also customize software for a fee.[52]

The Free Software Foundation encourages selling free software. As the Foundation has written, 'distributing free software is an opportunity to raise funds for development. Don't waste it!'.[53] For example, the FSF's own recommended license (the GNU GPL) states that '[you] may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.'[54]

Microsoft CEO Steve Ballmer stated in 2001 that 'open source is not available to commercial companies. The way the license is written, if you use any open-source software, you have to make the rest of your software open source.'[55] This misunderstanding is based on a requirement of copyleft licenses (like the GPL) that if one distributes modified versions of software, they must release the source and use the same license. This requirement does not extend to other software from the same developer.[citation needed] The claim of incompatibility between commercial companies and free software is also a misunderstanding. There are several large companies, e.g. Red Hat and IBM, which do substantial commercial business in the development of free software.[citation needed]

Economical aspects and adoption[edit]

Of the world's five hundred fastest supercomputers, 500 (100%) use the Linux kernel.[56] The world's second fastest computer is the Oak Ridge National Laboratory's Titan supercomputer (illustrated), which uses the Cray Linux Environment.[57]

Free software played a significant part in the development of the Internet, the World Wide Web and the infrastructure of dot-com companies.[58][59] Free software allows users to cooperate in enhancing and refining the programs they use; free software is a pure public good rather than a private good. Companies that contribute to free software increase commercial innovation.[60]

“We migrated key functions from Windows to Linux because we needed an operating system that was stable and reliable -- one that would give us in-house control. So if we needed to patch, adjust, or adapt, we could.”

Official statement of the United Space Alliance, which manages the computer systems for the International Space Station (ISS), regarding their May 2013 decision to migrate ISS computer systems from Windows to Linux[61][62]

The economic viability of free software has been recognized by large corporations such as IBM, Red Hat, and Sun Microsystems.[63][64][65][66][67] Many companies whose core business is not in the IT sector choose free software for their Internet information and sales sites, due to the lower initial capital investment and ability to freely customize the application packages. Most companies in the software business include free software in their commercial products if the licenses allow that.[18]

Free software is generally available at no cost and can result in permanently lower TCO costs compared to proprietary software.[68] With free software, businesses can fit software to their specific needs by changing the software themselves or by hiring programmers to modify it for them. Free software often has no warranty, and more importantly, generally does not assign legal liability to anyone. However, warranties are permitted between any two parties upon the condition of the software and its usage. Such an agreement is made separately from the free software license.

A report by Standish Group estimates that adoption of free software has caused a drop in revenue to the proprietary software industry by about $60 billion per year.[69] In spite of this, Eric S. Raymond argues that the term free software is too ambiguous and intimidating for the business community. Raymond promotes the term open-source software as a friendlier alternative for the business and corporate world.[70]

See also[edit]

Notes[edit]

  1. ^Access to source code is a necessary but insufficient condition, according to both the Free Software and Open Source definitions.

References[edit]

  1. ^See GNU Project. 'What is free software?'. Free Software Foundation.
  2. ^ ab'Richard Stallman - Internet Hall of Fame'. Retrieved 26 March 2017.
  3. ^Free Software Movement (gnu.org)
  4. ^Philosophy of the GNU Project (gnu.org)
  5. ^ abWhat is free software (fsf.org)
  6. ^'GNU Press - Free Software Foundation Online Shop - Buy GNU t-shirts, books, stickers and stuffed gnu toys'. Retrieved 19 March 2015.
  7. ^'Software Freedom Law Center'.
  8. ^ abSelling Free Software (gnu.org)
  9. ^'GNU project Initial Announcement'.
  10. ^'gnu.org'. www.gnu.org. Retrieved 2017-01-24.
  11. ^ abcShea, Tom (1983-06-23). 'Free software - Free software is a junkyard of software spare parts'. InfoWorld. Retrieved 2016-02-10. 'In contrast to commercial software is a large and growing body of free software that exists in the public domain. Public-domain software is written by microcomputer hobbyists (also known as 'hackers') many of whom are professional programmers in their work life. [...] Since everybody has access to source code, many routines have not only been used but dramatically improved by other programmers.'
  12. ^Levi, Ran. 'Richard Stallman and The History of Free Software and Open Source'. Curious Minds Podcast.
  13. ^Amit Garg, Ryan Burdett, Ishaan Shastri, Evan Parker. 'GNU'. cs.stanford.edu. Retrieved 2017-10-17.CS1 maint: uses authors parameter (link)
  14. ^Rosen, David (May 16, 2010). 'Open-source software is not always freeware'. wolfire.com. Retrieved 2016-01-18.
  15. ^Dixon, Rod (2004). Open Source Software Law. Artech House. p. 4. ISBN978-1-58053-719-3. Retrieved 2009-03-16.
  16. ^Graham, Lawrence D. (1999). Legal battles that shaped the computer industry. Greenwood Publishing Group. p. 175. ISBN978-1-56720-178-9. Retrieved 2009-03-16.
  17. ^Sullivan, John (17 July 2008). 'The Last Mile is Always the Hardest'. fsf.org. Archived from the original on 28 October 2014. Retrieved 29 December 2014.
  18. ^ abcdPopp, Dr. Karl Michael (2015). Best Practices for commercial use of open source software. Norderstedt, Germany: Books on Demand. ISBN978-3738619096.
  19. ^'Why 'Open Source' misses the point of Free Software'.
  20. ^Stallman, Richard (2013-05-14). 'The advantages of free software'. Free Software Foundation. Retrieved 2013-08-12.
  21. ^'GNU's Bulletin, Volume 1 Number 1, page 8'.
  22. ^ abFree Software Foundation. 'What is free software?'. Retrieved 14 December 2011.
  23. ^'Four Freedoms - FSFE'. fsfe.org.
  24. ^Perens, Bruce. 'Debian's 'Social Contract' with the Free Software Community'. debian-announce mailing list.
  25. ^Ahl, David. 'David H. Ahl biography from Who's Who in America'. Retrieved 2009-11-23.
  26. ^Fisher, Franklin M.; McKie, James W.; Mancke, Richard B. (1983). IBM and the U.S. Data Processing Industry: An Economic History. Praeger. ISBN0-03-063059-2.
  27. ^William 2002
  28. ^'Release notes for Linux kernel 0.12'. Kernel.org.
  29. ^Carver, Brian W. (2005-04-05). 'Share and Share Alike: Understanding and Enforcing Open Source and Free Software Licenses'. Berkeley Technology Law Journal. 20: 39. SSRN1586574.
  30. ^'Top 20 licenses'. Black Duck Software. 19 November 2015. Retrieved 19 November 2015. 1. MIT license 24%, 2. GNU General Public License (GPL) 2.0 23%, 3. Apache License 16%, 4. GNU General Public License (GPL) 3.0 9%, 5. BSD License 2.0 (3-clause, New or Revised) License 6%, 6. GNU Lesser General Public License (LGPL) 2.1 5%, 7. Artistic License (Perl) 4%, 8. GNU Lesser General Public License (LGPL) 3.0 2%, 9. Microsoft Public License 2%, 10. Eclipse Public License (EPL) 2%
  31. ^Balter, Ben (2015-03-09). 'Open source license usage on GitHub.com'. github.com. Retrieved 2015-11-21. '1 MIT 44.69%, 2 Other 15.68%, 3 GPLv2 12.96%, 4 Apache 11.19%, 5 GPLv3 8.88%, 6 BSD 3-clause 4.53%, 7 Unlicense 1.87%, 8 BSD 2-clause 1.70%, 9 LGPLv3 1.30%, 10 AGPLv3 1.05%
  32. ^'Debian -- License information'. Retrieved 2008-01-08.
  33. ^'Various Licenses and Comments about Them'. gnu.org. Retrieved 20 March 2014.
  34. ^'CI: Main'. Retrieved 19 March 2015.
  35. ^'Why Not Use the GPL? Thoughts on Free and Open-Source Software'. Retrieved 19 March 2015.
  36. ^'Journey into the minds of strangers'. Retrieved 19 March 2015.
  37. ^Mookhey, K.K.; Burghate, Nilesh (2005). Linux: Security, Audit and Control Features. ISACA. p. 128. ISBN9781893209787.CS1 maint: uses authors parameter (link)
  38. ^Toxen, Bob (2003). Real World Linux Security: Intrusion Prevention, Detection, and Recovery. Prentice Hall Professional. p. 365. ISBN9780130464569.
  39. ^Noyes, Katherine (Aug 3, 2010). 'Why Linux Is More Secure Than Windows'. PCWorld. Archived from the original on 2013-09-01.
  40. ^'Firefox more secure than MSIE after all'. News.com.
  41. ^'The Benefits of Open Source'. Retrieved 19 March 2015.
  42. ^'Transcript where Stallman explains about spyware'.
  43. ^David A. Wheeler: Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers! 2007
  44. ^Michelle Delio: Linux: Fewer Bugs Than Rivals Wired.com 2004
  45. ^Barton P. Miller; David Koski; Cjin Pheow Lee; Vivekananda Maganty; Ravi Murthy; Ajitkumar Natarajan; Jeff Steidl (October 1995). 'Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services'(PDF). Madison, WI 53706-1685 USA: University of Wisconsin: Computer Sciences Department. Archived from the original(PDF) on 21 June 2010. Retrieved 1 May 2013. ...The reliability of the basic utilities from GNU and Linux were noticeably better than those of the commercial systems [sic]Cite journal requires |journal= (help)
  46. ^Barton P. Miller; Gregory Cooksey; Fredrick Moore (20 July 2006). 'An Empirical Study of the Robustness of MacOS Applications Using Random Testing'(PDF). Madison, WI 53706-1685 USA: University of Wisconsin: Computer Sciences Department: 1, 2. Archived from the original(PDF) on 21 June 2010. Retrieved 1 May 2013. We are back again, this time testing... Apple’s Mac OS X. [...] While the results were reasonable, we were disappointed to find that the reliability was no better than that of the Linux/GNU tools tested in 1995. We were less sure what to expect when testing the GUI- based applications; the results turned out worse than we expected.Cite journal requires |journal= (help)
  47. ^ ab'Links to Other Free Software Sites - GNU Project - Free Software Foundation'. Retrieved 19 March 2015.
  48. ^'DistroWatch Page Hit Ranking'. DistroWatch. 30 October 2012. Archived from the original on 7 October 2011. Retrieved 30 October 2012.
  49. ^'BSD license definition'. Retrieved 19 March 2015.
  50. ^'Why you should use a BSD style license for your Open Source Project'. Retrieved 19 March 2015.
  51. ^'[libreplanet-discuss] Is there any software that is libre but not gratis'.
  52. ^Andy Dornan. 'The Five Open Source Business Models'. Archived from the original on October 10, 2009.
  53. ^Selling Free Software gnu.org
  54. ^GNU General Public License, section 4. gnu.org
  55. ^'Ballmer calling open source a 'cancer', saying it's 'not available to commercial companies''. Archived from the original on 2001-06-15. Retrieved 2001-06-15.CS1 maint: BOT: original-url status unknown (link) Chicago Sun-Times, 2001
  56. ^'Top500 - List Statistics - November 2017'. Top500.org. Retrieved 29 May 2016..
  57. ^'Roadrunner - BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 GHz / Opteron DC 1.8 GHz, Voltaire Infiniband'. Top500.org. Retrieved 30 March 2013.
  58. ^Netcraft. 'Web Server Usage Survey'.
  59. ^The Apache Software Foundation. 'Apache Strategy in the New Economy'(PDF). Archived from the original(PDF) on 2008-02-16.
  60. ^Waring, Teresa; Maddocks, Philip (1 October 2005). 'Open Source Software implementation in the UK public sector: Evidence from the field and implications for the future'. International Journal of Information Management. 25 (5): 411–428. doi:10.1016/j.ijinfomgt.2005.06.002. In addition OSS’s development process is creating innovative products that are reliable, secure, practical and have high usability and performance ratings. Users are now not only benefiting from the OSS revolution but also from the improved proprietary software development that is being forced upon suppliers in order to maintain competitive advantage.
  61. ^Gunter, Joel (May 10, 2013). 'International Space Station to boldly go with Linux over Windows'. The Telegraph.
  62. ^Bridgewater, Adrian (May 13, 2013). 'International Space Station adopts Debian Linux, drops Windows & Red Hat into airlock'. Computer Weekly.
  63. ^'IBM launches biggest Linux lineup ever'. IBM. 1999-03-02. Archived from the original on 1999-11-10.
  64. ^Hamid, Farrah (2006-05-24). 'IBM invests in Brazil Linux Tech Center'. LWN.net.
  65. ^'Interview: The Eclipse code donation'. IBM. 2001-11-01. Archived from the original on 2009-12-18.
  66. ^'Sun begins releasing Java under the GPL'. Free Software Foundation. November 15, 2006. Retrieved 2007-09-23.
  67. ^Rishab Aiyer Ghosh (November 20, 2006). 'Study on the: Economic impact of open source software on innovation and the competitiveness of the Information and Communication Technologies (ICT) sector in the EU'(PDF). European Union. p. 51. Retrieved 2007-01-25.
  68. ^'Total cost of ownership of open source software: a report for the UK Cabinet Office supported by OpenForum Europe'. Retrieved 19 March 2015.
  69. ^'Open Source'. Standish Newsroom. Standishgroup.com. 2008-04-16. Archived from the original on 2012-01-18. Retrieved 2010-08-22.
  70. ^Eric S. Raymond. 'Eric S. Raymond's initial call to start using the term open source software, instead of free software'.

Further reading[edit]

  • Stallman, Richard M. (2010) [2002]. Free Software Free Society: Selected Essays of Richard M. Stallman, 2nd Edition. GNU Press. ISBN978-0-9831592-0-9.

External links[edit]

Wikiquote has quotations related to: Free software
Wikimedia Commons has media related to Free software.
Wikinews has news related to:
Definition and philosophy
  • Free Software Movement (gnu.org)
  • Philosophy of the GNU Project (gnu.org)
  • What is free software? (gnu.org)
  • What is free software? (fsf.org)
  • Categories of free and nonfree software (gnu.org)
  • Freedom for Users, Not for Software (Benjamin Mako Hill)
  • What Does Free Mean? or What do you mean by Free Software? (debian.org)
Presentations
  • Video and audio presentations on Free Software (top link)
  • Free as in Freedom (originally the oggcast of the Software Freedom Law Center, it includes a focus on law issues, and other topics)
Software
  • Free Software Directory (catalog of useful free software)
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Free_software&oldid=918022626'
Simple C-language source code example, a procedural programming language. The resulting program prints 'hello, world' on the computer screen. This first known 'Hello world' snippet from the seminal book The C Programming Language originates from Brian Kernighan in the Bell Laboratories in 1974.[1]
Program execution
General concepts
  • Translation
    • Compiler
  • Intermediate representation (IR)
  • Execution
    • Runtime system
Types of code
Compilation strategies
  • Just-in-time (JIT)
  • Ahead-of-time (AOT)
Notable runtimes
  • Android Runtime (ART)
  • Common Language Runtime (CLR) & Mono
  • Java virtual machine (JVM)
  • V8
Notable compilers & toolchains
  • GNU Compiler Collection (GCC)
  • LLVM

In computing, source code is any collection of code, possibly with comments, written using[1] a human-readableprogramming language, usually as plain text. The source code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code. The source code is often transformed by an assembler or compiler into binarymachine code understood by the computer. The machine code might then be stored for execution at a later time. Alternatively, source code may be interpreted and thus immediately executed.

Most application software is distributed in a form that includes only executable files. If the source code were included it would be useful to a user, programmer or a system administrator, any of whom might wish to study or modify the program.

  • 5Legal aspects

Definitions[edit]

The Linux Information Project defines source code as:[2]

Source code (also referred to as source or code) is the version of software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanumeric characters).

The notion of source code may also be taken more broadly, to include machine code and notations in graphical languages, neither of which are textual in nature. An example from an article presented on the annual IEEE conference and on Source Code Analysis and Manipulation:[3]

For the purpose of clarity 'source code' is taken to mean any fully executable description of a software system. It is therefore so construed as to include machine code, very high level languages and executable graphical representations of systems.[4]

Often there are several steps of program translation or minification between the original source code typed by a human and an executable program. While some, like the FSF, argue that an intermediate file 'is not real source code and does not count as source code',[5] others find it convenient to refer to each intermediate file as the source code for the next steps.

History[edit]

The earliest programs for stored-program computers were entered in binary through the front panel switches of the computer. This first-generation programming language had no distinction between source code and machine code.

When IBM first offered software to work with its machine, the source code was provided at no additional charge. At that time, the cost of developing and supporting software was included in the price of the hardware. For decades, IBM distributed source code with its software product licenses, until 1983.[6]

Most early computer magazines published source code as type-in programs.

Occasionally the entire source code to a large program is published as a hardback book, such as Computers and Typesetting, vol. B: TeX, The Program by Donald Knuth, PGP Source Code and Internals by Philip Zimmermann, PC SpeedScript by Randy Thompson, and µC/OS, The Real-Time Kernel by Jean Labrosse.

Organization[edit]

The source code which constitutes a program is usually held in one or more text files stored on a computer's hard disk; usually these files are carefully arranged into a directory tree, known as a source tree. Source code can also be stored in a database (as is common for stored procedures) or elsewhere.

A more complex Java source code example. Written in object-oriented programming style, it demonstrates boilerplate code. With prologue comments indicated in red, inline comments indicated in green, and program statements indicated in blue.

The source code for a particular piece of software may be contained in a single file or many files. Though the practice is uncommon, a program's source code can be written in different programming languages.[7] For example, a program written primarily in the C programming language, might have portions written in assembly language for optimization purposes. It is also possible for some components of a piece of software to be written and compiled separately, in an arbitrary programming language, and later integrated into the software using a technique called library linking. In some languages, such as Java, this can be done at run time (each class is compiled into a separate file that is linked by the interpreter at runtime).

Yet another method is to make the main program an interpreter for a programming language,[citation needed] either designed specifically for the application in question or general-purpose, and then write the bulk of the actual user functionality as macros or other forms of add-ins in this language, an approach taken for example by the GNU Emacs text editor.

The code base of a computer programming project is the larger collection of all the source code of all the computer programs which make up the project. It has become common practice to maintain code bases in version control systems. Moderately complex software customarily requires the compilation or assembly of several, sometimes dozens or maybe even hundreds, of different source code files. In these cases, instructions for compilations, such as a Makefile, are included with the source code. These describe the programming relationships among the source code files, and contain information about how they are to be compiled.

Purposes[edit]

Source code is primarily used as input to the process that produces an executable program (i.e., it is compiled or interpreted). It is also used as a method of communicating algorithms between people (e.g., code snippets in books).[8]

Computer programmers often find it helpful to review existing source code to learn about programming techniques.[8] The sharing of source code between developers is frequently cited as a contributing factor to the maturation of their programming skills.[8] Some people consider source code an expressive artistic medium.[9]

Porting software to other computer platforms is usually prohibitively difficult without source code. Without the source code for a particular piece of software, portability is generally computationally expensive.[citation needed] Possible porting options include binary translation and emulation of the original platform.

Decompilation of an executable program can be used to generate source code, either in assembly code or in a high-level language.

Programmers frequently adapt source code from one piece of software to use in other projects, a concept known as software reusability.

Legal aspects[edit]

The situation varies worldwide, but in the United States before 1974, software and its source code was not copyrightable and therefore always public domain software.[10]

In 1974, the US Commission on New Technological Uses of Copyrighted Works (CONTU) decided that 'computer programs, to the extent that they embody an author's original creation, are proper subject matter of copyright'.[11][12]

Free Source Code Java

In 1983 in the United States court case Apple v. Franklin it was ruled that the same applied to object code; and that the Copyright Act gave computer programs the copyright status of literary works.

In 1999, in the United States court case Bernstein v. United States it was further ruled that source code could be considered a constitutionally protected form of free speech. Proponents of free speech argued that because source code conveys information to programmers, is written in a language, and can be used to share humor and other artistic pursuits, it is a protected form of communication.[13][14][15]

Licensing[edit]

Free Source Code Editor

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the 'License');you may not use this file except in compliance with the License.You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an 'AS IS' BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.

An author of a non-trivial work like software,[12] has several exclusive rights, among them the copyright for the source code and object code.[17] The author has the right and possibility to grant customers and users of his software some of his exclusive rights in form of software licensing. Software, and its accompanying source code, can be associated with several licensing paradigms; the most important distinction is open source vs proprietary software. This is done by including a copyright notice that declares licensing terms. If no notice is found, then the default of All rights reserved is implied.

Free Source Code Projects

Generally speaking, software is open source if the source code is free to use, distribute, modify and study, and proprietary if the source code is kept secret, or is privately owned and restricted. One of the first software licenses to be published and to explicitly grant these freedoms was the GNU General Public License in 1989; the BSD license is another early example from 1990.

For proprietary software, the provisions of the various copyright laws, trade secrecy and patents are used to keep the source code closed. Additionally, many pieces of retail software come with an end-user license agreement (EULA) which typically prohibits decompilation, reverse engineering, analysis, modification, or circumventing of copy protection. Types of source code protection—beyond traditional compilation to object code—include code encryption, code obfuscation or code morphing.

Quality[edit]

The way a program is written can have important consequences for its maintainers. Coding conventions, which stress readability and some language-specific conventions, are aimed at the maintenance of the software source code, which involves debugging and updating. Other priorities, such as the speed of the program's execution, or the ability to compile the program for multiple architectures, often make code readability a less important consideration, since code quality generally depends on its purpose.

See also[edit]

References[edit]

  1. ^ ab'Programming in C: A Tutorial'(PDF). Archived from the original(PDF) on 23 February 2015.
  2. ^The Linux Information Project. 'Source Code Definition'.
  3. ^SCAM Working Conference, 2001–2010.
  4. ^Why Source Code Analysis and Manipulation Will Always Be Important by Mark Harman, 10th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2010). Timişoara, Romania, 12–13 September 2010.
  5. ^'gnu.org'. www.gnu.org.
  6. ^Martin Goetz (8 February 1988). 'Object-code only: Is IBM playing fair?'. Computerworld. Vol. 22 no. 6. p. 59. It was in 1983 that IBM reversed its 20-year-old policy of distributing source code with its software product licenses.
  7. ^'Extending and Embedding the Python Interpreter'. docs.python.org.
  8. ^ abcSpinellis, D: Code Reading: The Open Source Perspective. Addison-Wesley Professional, 2003. ISBN0-201-79940-5
  9. ^'Art and Computer Programming' ONLamp.com, (2005)
  10. ^P., Liu, Joseph; L., Dogan, Stacey (2005). 'Copyright Law and Subject Matter Specificity: The Case of Computer Software'. New York University Annual Survey of American Law. 61 (2).
  11. ^Apple Computer, Inc. v. Franklin Computer Corporation Puts the Byte Back into Copyright Protection for Computer Programs in Golden Gate University Law Review Volume 14, Issue 2, Article 3 by Jan L. Nussbaum (January 1984)
  12. ^ abLemley, Menell, Merges and Samuelson. Software and Internet Law, p. 34.
  13. ^http://cr.yp.to/export/2002/08.02-bernstein-subst.pdf
  14. ^Bernstein v. US Department of Justice on eff.org
  15. ^EFF at 25: Remembering the Case that established Code as Speech on EFF.org by Alison Dame-Boyle (16 April 2015)
  16. ^https://www.apache.org/licenses/LICENSE-2.0
  17. ^Hancock, Terry (29 August 2008). 'What if copyright didn't apply to binary executables?'. Free Software Magazine. Retrieved 25 January 2016.
  • (VEW04) 'Using a Decompiler for Real-World Source Recovery', M. Van Emmerik and T. Waddington, the Working Conference on Reverse Engineering, Delft, Netherlands, 9–12 November 2004. Extended version of the paper.

Free Source Code Editor

External links[edit]

Free Source Code Vb 6.0

Look up code or source code in Wiktionary, the free dictionary.
Wikimedia Commons has media related to Source code.

Free Source Code Repository

  • Source Code Definition by The Linux Information Project (LINFO)
  • 'Obligatory accreditation system for IT security products'. MetaFilter.com. 22 September 2008. will introduce rules requiring foreign firms to disclose secret information about digital household appliances and other products from May next year, the Yomiuri Shimbun said, citing unnamed sources. If a company refuses to disclose information, China would ban it from exporting the product to the Chinese market or producing or selling it in China, the paper said.

Php Projects With Source Code

Retrieved from 'https://en.wikipedia.org/w/index.php?title=Source_code&oldid=917696986'