Class 12 Informatics Practices Quick Revision notes Chapter 2 Open Source Concepts
It means software is freely accessible, can be free to use, changed, improved, copied and distributed, there is no need to any payments.
The definition of free software written by Richard Stallman and published by Free Software Foundation (FSF) defines “free software” means software that respects the user’s freedom. To understand the word “free” in “free software”, think of “free speech”, not “free beer”.
More specifically, there are four essential freedoms that every software user ought to have and these freedoms also form the definition of “free software”:
Freedom 0. The freedom to run the program for any purpose.
Freedom 1. The freedom to study how the program works.
Freedom 2. The freedom to redistribute copies to others.
Freedom 3. The freedom to improve the program and release your improvements to public or community.
To access source code of free software may be chargeable by a company/organisation. Some examples of free software are MySQL Relational Database, Apache Tomcat server, Java, OpenOffice.org Office Suite and Linux Kernel.
Open Source Software (OSS)
The term ‘open source’ refers to software, which is available with its source code. These software are free of cost in terms of making modification according to requirements, but a company that makes a business model around the open source software may receive payments for providing support to or further development of the business model.
Some features of open source software are as follows:
- Freedom to run and use the software.
- Modify the program.
- It can be downloaded from Internet.
- Right to redistribute copies of either original or modified program (without paying royalties to previous developers).
Tenninology and Definitions
1. FLOSS/FOSS It stands for Free/Libre Open Source Software. It means, the software which can be obtained free of cost, get copied, modified, redistributed and available with the source code.
2. GNU (GNU’s not Unix) It is an operating system, which can be obtained as free software. As, it is named ‘GNU’s not Unix’, because its design (front-end) in first looks, like an Unix. But in actual form, GNU does not contain any coding/programming of Unix.
3. FSF It stands for Free Software Foundation. It is a non-profitable organisation, which supports GNU operating system. It was founded in 1985 by Richard Stallman. As a technical service provider to GNU, it also provides development system including full e-mail and shell services for GNU.
4. OSI It stands for Open Source Initiative. It is an organisation, which is related to promote open source softwares. It was founded in February, 1998 by Bruce Perens and Eric S. Raymond.
5. W3C It stands for World Wide Web Consortium. It is responsible for maintaining the standard of software for the world wide web. It’s work is to develop protocols for the world wide web. It was developed in October, 1994. Its future prespective is to develop protocols for the growth and potential, of the world wide web.
6. Freeware It generally refers to the softwares, which are available for free of cost. The user has no restrictions on copying and distribution of the software but the user can not modify such software because the source code is not available, i.e. Notepad, WordPad, Internet Explorer, etc. Freeware is a computer software, which is made available for use of charge for unlimited time.
7. Shareware It refers to the software which is made available for with a right to redistribute copies. The objective of Shareware is to make the availability of the software to as many its users as possible. But often after a certain period, a license fee is to be paid. It does not provide any source code and no modifications are allowed. Shareware has also been known as ‘try before you buy’.
8. Proprietaiy Software It is neither an open source software nor freely available software. It can be distributed freely by the permission/grant of the owner/supplier. Open source software is a computer software for which the human readable source code is made available under a copyright license, which permits user to use, change and improve the softwai J and to redistribute it, in modified or unmodified form. Example of proprietary software is MS-Windows (owned by Microsoft Corporation Inc.).
Open Source Softwares/Free Softwares
Today, there are many open source softwares/free softwares available. Usually such softwares can be easily downloaded from their respective websites. We can also modify, copy and redistribute such softwares.
Some of such softwares are as follows:
1. Linux It is a popular operating system and it is free software as well as an open source software, i.e. Linux is freely available alongwith the underlying source code. Linux was originally written by Linus Torvalds, a student of Finnish University in 1991. After that, many programmers and students from all over the world have contributed a lot in its further refinement, development and improvement. Linux can be downloaded from www.linux.org. As an operating system, its aim is to provide interoperability (work together) with other operating systems and establish computing standards.
2. Mozilla Firefox It is a popular and free Internet software, which can be used as a web server, an e-mail client, an HTML editor and IRC client. Development of Mozilla was initiated by NetScape Communication Corporation, but now a separate Mozilla Foundation is looking after it and is responsible for its development and maintenance. This software can be downloaded from www.mozilla.org.
3. Apache Server It is an open source web server. This software is available for many platforms including Linux and MS-Windows. Apache web server was initiated and maintained by Apache Software Foundation. The Apache server can be downloaded from www.apache.org. The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial grade and freely available source code of an HTTP web server.
4. MySQL It is a popular open source database management system. MySQL is compatible with many operating systems like Linux, Mac, OS/2, Windows, SunOS, etc. It also supports many programming languages such as C, C++, Java, Perl, Smalltalk, etc. It is the part of the most popular set of program of the world LAMP (Linux, Apache, MySQL, PHP).
5. PostgreSQL It is a free software for database management system. It can be used as an alternative for other database management systems, such as MySQL, Oracle, Sybase, DB2, etc. Postgre was initially developed in 1980. Thereafter many new versions of Postgre were released in 1996, this project was renamed as postgreSQL. It can be downloaded from www.postgresql.org. PostgreSQL is an Object Relational Database Management System (ORDBMS) released under BSD style license and thus free software.
6. Pango It was developed with an aim to provide an open source framework for the layout and rendering internationalised text into GNOME or GTK+ environments, which are two popular toolkits for creating GUI applications. Pango uses Unicode for encoding of source code and supported by the world’s major languages. It can be downloaded from the website www.pango.org.
7. Open Office It is an office application suite, based on the source code of the StarOffice, which is an open source software of Sun Microsystem.
Open Office includes the following components:
- Writer (Word Processor)
- Calc (Spreadsheet)
- Draw (Graphic software)
- Impress (Presentation program)
- Visual (HTML editor)
- Math (Editor for mathematical formulae) etc.
8. Tomcat It was developed under Jakarta Project at Apache Software Foundation. The Tomcat functions as a Servlet (Servlet is a script that runs on the server in a client/server environment) and it is compatible with any web server that supports Servlets and JSP(Java Server Pages). It can also function as independent web server itself. The website of Tomcat is www.jakarta.apache.org/tomcat. Tomcat is an application server that executes Java Servlet and render Java Server Pages.
9. PHP It stands for Personal Home Page (old) and PHP: HyperText Preprocessor (new). PHP is a widely used open source programming language for the development of dynamic web content and server-side applications. Using PHP, we can interact with many relational database management systems such as MySQL, Oracle, DB2, PostgreSQL, etc. It runs on many operating systems, including Unix, Linux, MacOS, Windows, etc. The website of PHP is www.php.net.
10. Python It was initially developed by Guido Van Rossum in 1990. Originally, it was developed as a scripting language for the Amoeba platform. But now, its new versions are compatible with Microsoft Windows, Linux, MacOS, etc. Python was developed and managed as an open source project by Python Software Foundation. The website of Python is www.python.org.
11. Java It is a platform independent programming language and is used for developing applications to perform various tasks. Java is developed by James Gosling at Sun Microsystem in 1991. It is a simple, object oriented, robust and secure language. Java is a general purpose, concurrent class based, interpreted, threaded and dynamic language that is specifically designed to have a few implementation dependencies as possible.
12. NetBeans It is an Integrated Development Environment (IDE) for developing applications with Java and other programming languages like C/C++, PHP and HTMLs. It is written in Java and can run on Windows, OSX, Linux, Solaris and other platforms supporting a compatible JVM(Java Virtual Machine). The NetBeans platform offers reusable services common to desktop applications, allowing developers to focus on the logic specific to their application.
13. Perl It is a high-level, general-purpose, interpreted, dynamic programming language developed by Larry wall. It stands for Practical Extraction and Report language. It runs on a variety of platforms, such as Windows, MacOS, and the various versions of UNIX. It is originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development and more.
Websites Supporting Open Source Softwares
There are many websites that support open source softwares. In these websites, they have hosted a large number of open source softwares. Anyone can download these softwares, modify them and redistribute their copies.
Some of such websites are as follows:
- www.sourceforge.net This website provides a large number of open source softwares and it acts as a source code repository. It is the world’s largest open source software development site. There are more than 4,30,000 projects hosted on it and it provides a wide variety of services.
- www.opensource.org This website is managed by the open source initiative, which is a non-profit corporation, dedicated to manage and promote open source software products. We can download the softwares, modify them and redistribute the copies of the software through the website.
- www.rdf4j.org This website is dedicated to the development of sesame. Sesame is an open source RDF database which stands for Resource Description Framework. It is a set of rules for creating description of information, especially available on Internet.
Standards or technical standards refer to a set of rules or requirement approved by some recognised authority, which is widely used across various software platforms. The technical standards can be divided into two categories namely proprietary standards and open standards.
1. Proprietary Standards It is owned by a company, person or a group. For using these standards, one has to buy the license to use them and there are restrictive contract terms for using them. For instance, standards like Microsoft Office formats (e.g. .doc, .docx, .xls, .ppt, etc.) and Windows media formats (e.g. .wma, .wmv, etc.) are proprietary.
The features of proprietary standards are as follows:
- If the recipient of the information or file does not have the respective format, then he/she will not be able to read the information. For instance, Word 2007 is using, .docx standard, if a file is created in Word 2007. In order to read the same by another person, that person should have Word 2007 otherwise that person will not be able to read the file.
- There is total control over functionality and usefulness of the product. Other users and developers can not add or enhance the functionality of the software.
- The specifications of proprietary standards are not known publicly. Licensed users can use these standards, but they are not able to modify them.
2. Open Standards It refers to the internationally accepted technical standards. These standards are freely available for all, without any restrictions. The file or information created using these standards are accessible even if the technology changes. Also, the data and information in open standards are accessible across the platforms and applications.
The features of open standards are as follows:
- These standards are open for all users.
- Open standards are available free of cost. No royalty is chargeable for the same.
- There is no discrimination on different types of users.
- Implementation of open standards may be extended or it could be offered in a subset form.
- The open standards makes the data accessible to all, there is no restriction for using a particular software.
Some Open Standard Formats
Some of the common open standard formats are as follows:
1. Plain Text (ASCII) It is the simplest form of text without any formatting.
2. HTML It stands for HyperText Markup Language. HTML format is the standardised language for designing the web page. The HTML format is a platform free format. It can be used with any operating system.
3. JPEG It stands for Joint Photographic Experts Group. JPEG is a common and widely used format for the picture compression.
4. ODF It stands for Open Document Format. The ODF is an XML-based file format for representing electronic documents. These documents could be text document, spreadsheet, etc. A document in ODF can be represented either as a single XML document or a collection of subdocuments in a package (i.e. zip) file.
5. OGG (Ogg Vorbis) It is an audio compression format, ogg is a wrapper format and the vorbis is a code that is written inside the framework of the Ogg. This format is most suitable for compressing most of the audio files.
6. WWW It stands for World Wide Web, it is specified by World Wide Web Consortium (W3C). It is a system of interlinked hypertext documents accessed via Internet with a web browser, one can view web pages that may contain text, images, videos and other multimedia and navigate between them via hyperlinks.
7. XML It stands for extensible Markup Language. XML is a markup language that defines a set of rules for encoding documents in a format that is both human readable and machine readable. Many Application Programming Interfaces (APIs) have been developed to aid software developers with processing XML data and several schema systems exist to aid in the definition of XML based languages.
8. IP It stands for Internet Protocol and it is a network protocol used on Internet, developed in 1970s. Internet protocol supports unique address for computers on a network. It is a principal communication protocol used for relaying network packets across an inter network using the Internet Protocol suite, which are responsible for routing the data packets across the network boundaries.
9. TCP It stands for Transmission Control Protocol and it is a set of rules used with IP, to send data in the form of message units between computers over the Internet. While IP takes care of handling the actual delivery of the data, TCP take care of keeping track of the individual units of data (called packets).
Indian Language Computing
India has diversified languages. Indian language computing refers to the ability of interaction in different Indian languages on an electronic system. For promoting, the information and communication technology in Indian perspective, there must be software solutions to promote Indian language computing.
In order to use the computer, the computer should be able to recognise the alphabets, numerals, punctuation marks and other special characters. The most widely used alpha numeric code is ASCII stands for American Standard Code for Information Interchange. It is a 7 bit code, consisting 128 possible code groups. The ASCII code is used for transferring alpha numeric information between a computer and its input/output devices.
ISCII stands for Indian Standard Code for Information Interchange. The ISCII was adopted by the Bureau of Indian standards in 1991, for computing Indian Languages. It is an 8 bit code and is capable for handling 256 characters. ISCII is used in all GIST (Gastrointestinal Stromal Tumour) products. It is also used by many other vendors for developing products and solutions in Indian Language. The ISCII can be applied for all Indian language scripts including Devanagari, Gurmukhi, Gujarati, Telugu, Tamil, Kannada and so on.
Unicode was developed by Unicode consortium, which was established in 1991. It is a new universal coding system, which is adopted by all newer platforms. About Unicode, it is officially stated that Unicode provides a unique number for every character, no matter what the platform, no matter what the program and no matter what the language is. Unicode supports a large number of characters across many platforms and languages. In Unicode version 3.1, there are 94140 encoded characters. Indian languages are included in Unicode under the group named Asian script. Many Indian scripts such as Devanagari, Gurmukhi, Bengali, Gujarati, Oriya, Tamil, Telugu, Kannada and Malayalam are included in it.
A font refers to a character, which is displayable and printable and which has a specific style and size. Infact a font is a collection of glyphs used for visual depiction of characters. A glyph represents the shape of the character when it is being displayed on some display device. The fonts can be categorised on the basis of two specifications, namely on the basis of technical specification and on the basis of font configuration.
1. Technical Specification On the basis of technical specification, the fonts are categorised in two types namely:
- True Type Fonts (TTF) True type fonts are widely used with Windows and Mac operating system. Basically, the true type fonts are developed by Apple Inc. and they are licensed to Microsoft. In true type fonts, all information for previewing and printing is in one file. It makes the managing of fonts easier.
- Open Type Fonts (OTF) Open type fonts are 16 bit fonts. They allow the handling of large glyph sets using Unicode encoding. Open type fonts can contain upto 65536 different glyphs, so we can have multiple languages within one font. The data and the glyph set is an open type font file in tabular form. This table also contains information about how the final glyphs are formed.
2. Font Configuration On the basis of font configuration, the fonts are categorised in two types namely:
- Static Fonts The static fonts are designed and digitised and then stored in font files. They will appear in identical shapes. Almost every font such as Times New Roman, Courier, Arial, etc. belongs to this category.
- Dynamic Fonts The dynamic fonts are redefined every time. They are displayed or printed. They are generated every time with a slight variation. The hand written fonts such as hand written alphabets or calligraphic letters are dynamic fonts because of individual variations.
Entering Indian Language Text
There are many softwares for entering the text in Indian language. Most of these softwares are supporting two types of text entries namely Phonetic text entry and Keymap based text entry.
- Phonetic Text Entry In this form of text entry, traditional keyboard with English keys are used. We have to type the characters and words phonetically. For instance, to write ‘भारत’ in Hindi, we have to type ‘Bharat’. It means when words typed according to their pronunciation in English and converting them to an Indian language is known as Phonetic text entry or Transliteration.
- Keymap Based Text Entry Mapping of keyboard’s keys to respective character is known as Keymap. Under this arrangement usually the typewriter order of characters in respective language are stored in forms of multiple tables, to respect the complete key mapping. Among these tables, one table for keymapping without any additional keypress (like shift), another could be with the shift key pressed, still another could be with control key pressed and so on.