Wednesday, February 10, 2010

FREEWARE & OPEN SOURCE

FREEWARE :---

Freeware (from "free" and "software") is computer software that is available for use at no cost or for an optional fee.[1] Software that is not freeware is occasionally referred to as payware.


OPEN SOURCE :----

Open source describes practices in production and development that promote access to the end product's source materials—typically, their source code.[citation needed] Some consider open source a philosophy, others consider it a pragmatic methodology. Before the term open source became widely adopted, developers and producers used a variety of phrases to describe the concept; open source gained hold with the rise of a public, worldwide, computer-network system called the Internet, and the attendant need for massive retooling of the computing source code. Opening the source code enabled a self-enhancing diversity of production models, communication paths, and interactive communities. Subsequently, a new, three-word phrase "open source software" was born to describe the environment that the new copyright, licensing, domain, and consumer issues created.

The open source model includes the concept of concurrent yet different agendas and differing approaches in production, in contrast with more centralized models of development such as those typically used in commercial software companies. A main principle and practice of open source software development is peer production by bartering and collaboration, with the end-product (and source-material) available at no cost to the public. This is increasingly being applied in other fields of endeavor, such as biotechnology.

COMMAND LINE INTERFACE VERSUS GRAPHICAL USER INTERFACE

COMMAND LINE INTERFACE VERSUS GRAPHICAL USER INTERFACE :----


The interface is the method through which you interact with the data on your computer. There are two primary ways in which you can do this, using a command-based system or a graphically-based system.

A graphically-based system is known as a "graphical user interface" or "GUI" (pronounced gooey). This setup has icons, a desktop, taskbars and other visual elements that make it more friendly for new users.

The command-based system is called a "command line Interface" or CLI. The system presents you with a prompt in which you enter commands. Though the CLI has a steep learning curve, it is far more powerful once it is learned. More experienced users may use the command-line exclusively.

SYSTEM CALLS

INTRODUCTION :---


In computing, a system call is the mechanism used by an application program to request service from the operating system based on the monolithic kernel or to system servers on operating systems based on the microkernel-structure. Timings of requested service have to be strictly predictable for application in real time systems - those are most advanced and secure.

SHELL

INTRODUCTION :----


A shell is a piece of software that provides an interface for users. to an operating system shell which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web browsers and email clients that are "shells" for HTML rendering engines. The name shell originates from shells being an outer layer of interface between the user and the innards of the operating system (the kernel).

Operating system shells generally fall into one of two categories: command-line and graphical. Command-line shells provide a command-line interface (CLI) to the operating system, while graphical shells provide a graphical user interface (GUI). In either category the primary purpose of the shell is to invoke or "launch" another program; however, shells frequently have additional capabilities such as viewing the contents of directories.

The relative merits of CLI- and GUI-based shells are often debated. CLI proponents claim that certain operations can be performed much faster under CLI shells than under GUI shells (such as moving files, for example). However, GUI proponents advocate the comparative usability and simplicity of GUI shells. The best choice is often determined by the way in which a computer will be used. On a server mainly used for data transfers and processing with expert administration, a CLI is likely to be the best choice. On the other hand, a GUI would be more appropriate for a computer to be used for image or video editing and the development of the above data.

In expert systems, a shell is a piece of software that is an "empty" expert system without the knowledge base for any particular application.

Tuesday, February 9, 2010

LINUX VERSUS UNIX



LINUX VERSUS UNIX :---


Difference Between Linux and UNIX

by Vivek Gite · 30 comments

What is the difference between Linux and UNIX operating systems?

UNIX is copyrighted name only big companies are allowed to use the UNIX copyright and name, so IBM AIX and Sun Solaris and HP-UX all are UNIX operating systems. The Open Group holds the UNIX trademark in trust for the industry, and manages the UNIX trademark licensing program.

Most UNIX systems are commercial in nature.
Linux is a UNIX Clone

But if you consider Portable Operating System Interface (POSIX) standards then Linux can be considered as UNIX. To quote from Official Linux kernel README file:

Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX compliance.

However, "Open Group" do not approve of the construction "Unix-like", and consider it misuse of their UNIX trademark.
Linux Is Just a Kernel

Linux is just a kernel. All Linux distributions includes GUI system + GNU utilities (such as cp, mv, ls,date, bash etc) + installation & management tools + GNU c/c++ Compilers + Editors (vi) + and various applications (such as OpenOffice, Firefox). However, most UNIX operating systems are considered as complete operating system as everything come from a single source or vendor.

As I said earlier Linux is just a kernel and Linux distribution makes it complete usable operating systems by adding various applications. Most UNIX oses comes with A-Z programs such as editor, compilers etc. For example FreeBSD comes with A-Z programs.
License and cost

Linux is Free (as in beer [freedom]). You can download it from the Internet or redistribute it under GNU licenses. You will see the best community support for Linux. Most UNIX like oses are not free (but this is changing fast, for example OpenSolaris UNIX). However, some Linux distributions such as Redhat / Novell provides additional Linux support, consultancy, bug fixing, and training for additional fees.
User-Friendly

Linux is considered as most user friendly UNIX like os. It makes it easy to install sound card, flash players, and other desktop goodies.
Security Firewall Software

Linux comes with open source netfilter/iptables based firewall tool to protect your server and desktop from the crackers and hackers. UNIX operating systems comes with its own firewall product (for example Solaris UNIX comes with ipfilter based firewall) or you need to purchase a 3rd party software such as Checkpoint UNIX firewall.
Backup and Recovery Software

UNIX and Linux comes with different set of tools for backing up data to tape and other backup media. However, both of them share some common tools such as tar, dump/restore, cpio etc.
End User Perspective

The differences are not that big for the average end user. They will use the same shell (e.g. bash or ksh) and other development tools such as Perl or Eclipse development tool.
System Administrator Perspective

Again, the differences are not that big for the system administrator. However, you may notice difference while performing the following operations:

1. Installation procedure
2. Hardware device names
3. Various admin commands or utilities
4. Software RAID device and mirroring
5. Logical volume management
6. Package management
7. Patch management

UNIX Operating System Names

A few popular names:

1. HP-UX
2. IBM AIX
3. Sun Solairs
4. Mac OS X
5. IRIX

Linux Distribution (Operating System) Names

A few popular names:

1. Redhat Enterprise Linux
2. Fedora Linux
3. Debian Linux
4. Suse Enterprise Linux
5. Ubuntu Linux

Common Things Between Linux & UNIX

Both share many common applications such as:

1. GUI, file, and windows managers (KDE, Gnome)
2. Shells (ksh, csh, bash)
3. Various office applications
4. Development tools (perl, php, c, c++)
5. Posix interface

A Sample UNIX Desktop Screenshot
UNIX Desktop - IRIX 6.5 Desktop

Fig.01: UNIX Desktop - IRIX 6.5 Desktop
A Sample Linux Desktop Screenshot
Linux KDE desktop environment

Fig.02: Linux KDE desktop environment

WINDOWS VERSUS LINUX

WINDOWS VERSUS LINUX :----


Both Linux and Windows are operating systems. An operating system is the most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs. Operating systems perform basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers.

1. Reduces the risk of carpal tunnel syndrome

When linux is properly installed, there no longer a need to use the mouse. Chances of you using a mouse is close to zero.
2. Use the extra cash for rewards

Linux is 100% free while Windows Vista Ultimate costs $398.99 at the time of writing. Companies that pay a licensing annually could have used the money for other things like buying an additional server to reduce the load or even give a bigger bonus to its loyal employees.
3. Formats are free, freedom is preserved

Linux file formats can be accessed in a variety of ways because they are free. Windows on the other hand makes you lock your own data in secret formats that can only be accessed with tools leased to you at the vendor’s price. “What we will get with Microsoft is a three-year lease on a health record we need to keep for 100 years”
4. Zero risk in violating license agreements

Linux is open source so you are unlikely to violate any license agreement. All the software is happily yours. With MS Windows you likely already violate all kinds of licenses and you could be pronounced a computer pirate if only a smart lawyer was after you. The worldwide PC software piracy rate for 2004 is at 35%. Which means that 3 out of 10 people are likely to get into real trouble.
5. Transparent vs Proprietary

MS Windows is based on DOS, Linux is based on UNIX. MS Windows Graphical User Interface (GUI) is based on Microsoft-own marketing-driven specifications. Linux GUI is based on industry-standard network-transparent X-Windows.
6. Better network, processing capabilities

Linux beats Windows hands down on network features, as a development platform, in data processing capabilities, and as a scientific workstation. MS Windows desktop has a more polished appearance, simple general business applications, and many more games for kids (less intellectual games compared to linux’s).
7. Customizable

Linux is customizable in a way that Windows is not. For example, NASlite is a version of Linux that runs off a single floppy disk and converts an old computer into a file server. This ultra small edition of Linux is capable of networking, file sharing and being a web server.
8. Flexibility

Windows must boot from a primary partition. Linux can boot from either a primary partition or a logical partition inside an extended partition. Windows must boot from the first hard disk. Linux can boot from any hard disk in the computer.
9. Mobility

Windows allows programs to store user information (files and settings) anywhere. This makes it impossibly hard to backup user data files and settings and to switch to a new computer. In contrast, Linux stores all user data in the home directory making it much easier to migrate from an old computer to a new one. If home directories are segregated in their own partition, you can even upgrade from one version of Linux to another without having to migrate user data and settings.
10. Proven Security

Why isn’t Linux affected by viruses? Simply because its code has been open source for more than a decade, tested by people all around the world, and not by a single development team like in the case of Windows. This leads to a lightning fast finding and fixing for exploitable holes in Linux. So that my friends, proves Linux as having an extremely enhanced security and lesser chances of exploits compared to Windows.

STRUCTURE OF OPERATING SYSTEM

STRUCTURE OF OPERATING SYSTEM :---

Generic Operating System Structure
---Contents
--Simple view
--Kernel
--Distinguished applications
--Command interpreter




1) Simple view
An Operating System is the layer between the hardware and software, as in

An Operating System is responsible for the following functions

* Device management using device drivers
* Process management using processes and threads
* Inter-process communication
* Memory management
* File systems

In addition, all operating systems come with a set of standard utilities. The utilities allow common tasks to be performed such as

* being able to start and stop processes
* being able to organise the set of available applications
* organise files into sets such as directories
* view files and sets of files
* edit files
* rename, copy, delete files
* communicate between processes








2)Kernel
The kernel of an operating system is the part responsible for all other operations. When a computer boots up, it goes through some initialisation functions, such as checking memory. It then loads the kernel and switches control to it. The kernel then starts up all the processes needed to communiate with the user and the rest of the environment (e.g. the LAN)

The kernel is always loaded into memory, and kernel functions always run, handling processes, memory, files and devices.

The traditional structure of a kernel is a layered system, such as Unix. In this, all layers are part of the kernel, and each layer can talk to only a few other layers. Application programs and utilities live above the kernel.

The Unix kernel looks like Unix kernel

Most of the Operating Systems being built now use instead a micro kernel, which minimises the size of the kernel. Many traditional services are made into user level services. Communication being services is often by an explicit message passing mechanism.

The major micro-kernel Operating System is Mach. Many others use the concepts of Mach. Mach kernel

Sonme systems, such as Windows NT use a mixed approach NT kernel









3)Distinguished applications
An Operating System has been described as an ``application with no top'' (B. Meyer, ``Object-oriented Software Construction''). Other applications interact with it, through a large variety of entry points. In order to use an O/S, you need to be supplied with at least some applications that already use these entry points.

All Operating Systems come bundled with a set of ``utilities'' which do this. For example

* Windows95 has a shell that allows programs to be started from the Start button. There is a standard set of applications supplied
* MSDOS starts up with COMMAND.COM to supply a command line prompt, and a set of utilities
* Unix has a set of command line shells and a huge variety of command line utilities
* X-Windows supplies a login shell (xdm). Others supply file managers, session managers, etc which can be used to provide a variety of interfaces to the underlying Unix/POSIX system.









4)Command interpreter
When a user interacts with an Operating System they always do so through the intermediary of a command interpreter. This responds to user input in the following ways

* It starts applications
* It stops applications
* It allows the user to switch control between applications
* It may allow control over communication between an application and other applications or the user.

The command interpreter may be character-based, as in the MSDOS COMMAND.COM or the Unix shells. It may be a GUI shell, such as the Windows 3.1 Program Manager.

The interpreter may be simple, or can have the power of a full programming language. It may be imperative (as in the Unix shells), use message passing (as in AppleScript) or use visual programming metaphors such as drag-and-drop for object embedding (as in Microsoft's OLE).

It is important to distinguish between the command interpreter and the underlying Operating System. The command interpreter may only use a subset of the capabilities offered by the Operating System; it may offer them them in a clumsy or sophisticated way; it may require complex skills or be intended for novices