Lecture 1
Lecture 1
BCA I
Lecture Series 1:
Dr. Tamal Ghosh, Associate Professor, Adamas University
https://drtamal.github.io/
Open source development model
The process used by an open source community to develop an OSS project is called open source
development model.
It could be a new project, idea, concept, or an extension of existing project.
Steps
1. starts with an idea for a new project, a new feature, or a capability to an existing open source project.
2. volunteering community developers develop the proposed feature and create a merge request.
3. The team lead with more experience from the community (usually maintainers or reviewers) will review the
code change and decide if it should be merged into the main version of the code or not.
4. Reviewers/maintainers may also ask for changes.
5. When the software has the proposed features for a release (normally decided within the community), the
current version will be released as a development release, even though it may contain known and unknown
bugs.
Contd…
This software will then be tested by the community who discuss the software through mailing lists or other
discussion channels (e.g. Slack) and provide feedback, create bug reports, or submit fixes to the encountered
bugs.
The feedback is recorded and taken into consideration by project members and maintainers to improve the
implementation and then a new development release will be available.
This cycle happens as many times as needed until project members feel that the implementation is stable
enough.
When the implementation is released as stable, the development cycle continues with the development
release (also called development tree) until a newer stable release is available.
Licensing and Distribution
The software is released under an open source license so that anyone can view, modify, and distribute the
source code.
In old days sourceforge.net was the main repositiory for OSS.
Nowadays, most open source projects are hosted on GitHub, which is a distributed version control and
source code management platform.
GitHub also allows open source projects to track bugs, feature requests, documentation, and tasks.
By accessing GitHub, users can access source code repositories and also contribute to open source projects
by developing new code, fixing bugs, or writing documentation
Mode of Funding
All Open Source software can be used for commercial purpose; the Open Source Definition guarantees this.
These can even be sold with developers terms and conditions.
However, note that commercial is not the same as proprietary.
GCC
The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various
programming languages, hardware architectures and operating systems.
The Free Software Foundation (FSF) distributes GCC as free software under the GNU General Public License (GNU
GPL).
GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and the
Linux kernel.
GCC has been ported to more platforms and instruction set architectures than any other compiler, and is widely
deployed as a tool in the development of both free and proprietary software.
GCC is also available for many embedded systems, including ARM-based and Power ISA-based chips.
As well as being the official compiler of the GNU operating system, GCC has been adopted as the standard compiler
by many other modern Unix-like computer operating systems, including most Linux distributions.
Most BSD family operating systems also switched to GCC shortly after its release
GDB
The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many
programming languages, including Ada, Assembly, C, C++, D, Fortran, Go, Objective-C, OpenCL C, Modula-2,
Pascal, Rust etc.
GDB was first written by Richard Stallman in 1986 as part of his GNU system, after his GNU Emacs was
"reasonably stable".
GDB is free software released under the GNU General Public License (GPL). It was modeled after the DBX
debugger, which came with Berkeley Unix distributions.
GDB works mainly on processors such as: Alpha, ARM, AVR, H8/300, Altera Nios/Nios II, System/370, System
390, X86 and its 64-bit extension X86-64, IA-64 "Itanium", Motorola 68000, MIPS, PA-RISC, PowerPC,
SuperH, SPARC, and VAX.
GDB is still actively being developed. As of version 7.0 new features include support for Python scripting and as
of version 7.8 GNU Guile scripting as well.
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on
Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of
California, Berkeley.
The term "BSD" commonly refers to its open-source descendants, including FreeBSD, OpenBSD, NetBSD, and
DragonFly BSD.
BSD was initially called Berkeley Unix because it was based on the source code of the original Unix developed at Bell
Labs.
In the 1980s, BSD was widely adopted by workstation vendors in the form of proprietary Unix variants such as DEC
Ultrix and Sun Microsystems SunOS due to its permissive licensing and familiarity to many technology company
founders and engineers.
Although these proprietary BSD derivatives were largely superseded in the 1990s by UNIX SVR4 and OSF/1, later
releases provided the basis for several open-source operating systems including FreeBSD, OpenBSD, NetBSD, DragonFly
BSD, Darwin and TrueOS. These, in turn, have been used by proprietary operating systems, including Apple's macOS and
iOS, which derived from them and Microsoft Windows, which used (at least) part of its TCP/IP code, which was legal.
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software
Distribution (BSD).
The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular open-source
BSD operating system, accounting for more than three-quarters of all installed and permissively licensed
BSD systems.
FreeBSD has similarities with Linux, with two major differences in scope and licensing: FreeBSD maintains
a complete system, i.e. the project delivers a kernel, device drivers, userland utilities, and documentation, as
opposed to Linux only delivering a kernel and drivers, and relying on third-parties for system software;
FreeBSD source code is generally released under a permissive BSD license, as opposed to the copyleft GPL
used by Linux.
OpenSolaris
OpenSolaris is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems.
It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around the
eponymous operating system software.
OpenSolaris is a descendant of the UNIX System V Release 4 (SVR4) code base developed by Sun and AT&T in the late
1980s and is the only version of the System V variant of UNIX available as open source.
OpenSolaris was developed as a combination of several software consolidations that were open sourced starting with Solaris
10.
OpenSolaris (/ˌoʊpən səˈlɑːrɪs/[6]) is a discontinued open-source computer operating system based on Solaris and created by
Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user
community around the eponymous operating system software.
OpenSolaris is a descendant of the UNIX System V Release 4 (SVR4) code base developed by Sun and AT&T in the late
1980s and is the only version of the System V variant of UNIX available as open source.[7] OpenSolaris was developed as a
combination of several software consolidations that were open sourced starting with Solaris 10. It
Contd…
Prior to Oracle's close-sourcing Solaris, a group of former OpenSolaris developers began efforts to fork the
core software under the name OpenIndiana.
The illumos Foundation, founded in the wake of the discontinuation of OpenSolaris, continues to develop
and maintain the kernel and userland of OpenIndiana (together renamed “illumos”), while the OpenIndiana
Project (now under the auspices of the illumos Foundation) continues to maintain and develop the illumos-
based OpenIndiana distribution (including its installer and build system) as the direct descendant of
OpenIndiana.
Since then additional illumos distributions, both commercial and non-commercial, have appeared.