Linux: Linux Is A Unix-Like Computer Operating System. Linux Is One of The Most Prominent
Linux: Linux Is A Unix-Like Computer Operating System. Linux Is One of The Most Prominent
Introduction
Linux is a Unix-like computer operating system. Linux is one of the most prominent examples of free software and open source development; its underlying source code can be freely modified, used, and redistributed by anyone. The Linux kernel was first released to the public on 17 September 1991, for the Intel x86 PC architecture. The kernel was augmented with system utilities and libraries from the GNU project to create a usable operating system, which later led to the alternate term GNU/Linux. Linux is now packaged for different uses in Linux distributions, which contain the sometimes modified kernel along with a variety of other software packages tailored to different requirements. Predominantly known for its use in servers, Linux has gained the support of corporations such as IBM, Sun Microsystems, Dell, Hewlett-Packard and Novell. It is used as an operating system for a wide variety of computer hardware, including desktop computers, supercomputers , video game systems (PlayStation 2 and 3 for example) and embedded devices such as mobile phones and routers.
Early history
Pre-history
In 1983, Richard Stallman started the GNU project with the goal of creating a free UNIXlike, POSIX-compatible operating system. Two years later he created the Free Software Foundation (FSF) and developed the GNU general Public License (GPL), in order to spread software freely. In this way the GNU software was developed very quickly by many people. Within a short time a multiplicity of programs were developed, so that by the early 1990s there was almost enough available to create a full operating system. However, a kernel was still missing.
This was to be developed in the GNU Hurd project, but Hurd proved to develop very sluggishly because finding and repairing errors (debugging) was very difficult due to technical characteristics of microkernel design. Another free operating system project in the 1980s was the Berkeley Software Distribution (BSD). This was developed by UC, Berkeley from the 6th edition of Unix from AT&T. Since AT&T Unix code was contained in BSD, AT&T filed a lawsuit in the early 1990s against the University of Berkeley, which strongly limited the development of BSD and greatly slowed development. Thus the early 1990s produced no complete, free system. The future of BSD was uncertain because of the litigation and stalled development. Additionally, the GNU project was gradually developing but, it lacked a well-behaved UNIX Kernel. This left a critical niche open that Linux would fill.
Emergence of Linux
In 1991, in Helsinki, Linus Torvalds began a project that later became the Linux kernel. It was initially a terminal emulator, which Torvalds used to access the large UNIX servers of the university. He wrote the program specifically for the hardware he was using and independent of an operating system because he wanted to use the functions of his new PC with a 80386 processor. This is still among the standard today, optimally. The operating system he used during development was Minix, and the initial compiler was the GNU C compiler, which is still the main choice for compiling Linux today (although Linux will compile under other compilers, such as the Intel C Compiler).
As Torvalds wrote in his book Just for Fun, he eventually realized that he had written an operating system kernel. On 25 August 1991, he announced this system in a Usenet posting to the newsgroup "comp.os.minix.": Hello everybody out there using minix I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus ([email protected]) PS. Yes it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than ATharddisks, as that's all I have :-(. Linus Torvalds
GNU/Linux
The designation "Linux" was initially used by Torvalds only for the Linux kernel. The kernel was, however, frequently used together with other software, especially that of the GNU project. This GNU variant quickly became the most popular variant of GNU, since there was no other functioning free kernel at this time. When people started referring to this collection as "Linux", Richard Stallman, the founder of the GNU project, requested the name GNU/Linux be used, in order to recognize the role of GNU software. In June 1994 in the GNU' s bulletin, Linux was referred to as a "free UNIX clone", and the Debian project began calling its product GNU/Linux. In May 1996, Richard Stallman published the editor Emacs 19.31, in which the type of system was renamed from Linux to Lignux. This spelling was intended to refer specifically to the combination of GNU and Linux, but this was soon abandoned in favor of "GNU/Linux". This name garnered varying reactions. While the GNU and Debian projects accepted the name, most developers and other Linux distributors rejected it. This was justified on the one hand with comfort, because the name Linux was regarded as simpler, and on the other hand with the fact that a considerable quantity of non-GNU software is delivered with Linux.
The finished product is most often referred to simply as "Linux", as the simpler, original name. Stallman announced his demand for a name change only after the system had already become popular.
Programming on Linux
Most Linux distributions support dozens of programming languages. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU toolchain, which includes the GNU Compiler Collection (GCC) and the GNU build system. Amongst others, GCC provides compilers for C, C++, Java, Ada and Fortran. The Linux kernel itself is written to be compiled with GCC. Most also include support for Perl, Ruby, Python and other dynamic languages. Examples of languages that are less common, but still well-supported, are C# via the Mono project, and Scheme. A number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many open-source projects like Kaffe. The two main frameworks for developing graphical applications are those of GNOME and KDE. These projects are based on the GTK+ and Qt widget toolkits, respectively, which can also be used independently of the larger framework. Both support a wide variety of languages. There are a number of Integrated development environments available including Anjuta, Code::Blocks, Eclipse, KDevelop, MonoDevelop, NetBeans, and Omnis Studio while the traditional editors Vim and Emacs remain popular. Although free and open source compilers and tools are widely used under Linux, there are also proprietary solutions available from a range of companies, including the Intel C++ Compiler, PathScale, Micro Focus COBOL, Franz Inc and the Portland Group.
User interface
Linux is coupled to a text-based command line interface (CLI), though this is usually hidden on desktop computers by a graphical user interface (GUI). On small devices, input may be handled through controls on the device itself, and direct input to Linux might be hidden entirely. The X Window System (X) is the predominant graphical subsystem used in Linux. X provides network transparency, enabling graphical output to be displayed on machines other than that which a program runs on. For desktop machines X runs locally. Early GUIs for Linux were based on a stand-alone X window manager such as FVWM, Enlightenment, or Window Maker, and a suite of diverse applications running under it. The window manager provides a means to control the placement and appearance of individual application windows, and interacts with the X window system. Because the X window managers only manage the placement of windows, their decoration, and some inter-process communication, the look and feel of individual applications may vary widely, especially if they use different graphical user interface toolkits. This model contrasts with that of platforms such as Mac OS, where a single toolkit provides support for GUI widgets and window decorations, manages window placement, and otherwise provides a consistent look and feel to the user. For this reason, the use of window managers by themselves declined with the rise of Linux desktop environments. They combine a window manager with a suite of standard applications that adhere to human interface guidelines. While a window manager is analogous to the Aqua user interface for Mac OS X, a desktop environment is analogous to Aqua with all of the default Mac OS X graphical applications and configuration utilities. KDE, which was announced in 1996, along with GNOME and Xfce which were both announced in 1997, are the most popular desktop environments.
GNOME 2.16, showing the Nautilus file manager and the gedit text editor.
Linux systems usually provide a CLI of some sort through a shell, the traditional way of interacting with Unix systems. Even on modern desktop machines, some form of CLI is almost always accessible. Linux distributions specialized for servers may use the CLI as their only interface, and Linux machines can run without a monitor attached. Such headless systems may be controlled by command line via a protocol such as SSH or telnet. Most low-level Linux components, including the GNU userland, use the CLI exclusively. The CLI is particularly suited for automation of repetitive or delayed tasks, and provides very simple inter-process communication. Graphical terminal emulator programs can be used to access the CLI from a Linux desktop.
MS-DOS does not fully utilize the functionality of 80386 and 80486 processors. On the other hand, Linux runs completely in the processor's protected mode, and utilizes all of its features. You can directly access all of your available memory (and beyond, with virtual RAM). Linux provides a complete UNIX interface which is not available under MS-DOS. You can easily develop and port UNIX applications to Linux, but under MSDOS you are limited to a subset of UNIX functionality. Linux and MS-DOS are different entities. MS-DOS is inexpensive compared to other commercial operating systems and has a strong foothold in the personal computer world. No other operating system for the personal computer has reached the level of popularity of MS-DOS, because justifying spending $1,000 for other operating systems alone is unrealistic for many users. Linux, however, is free, and you may finally have the chance to decide for yourself. You can judge Linux vs. MS-DOS based on your expectations and needs. Linux is not for everybody. If you always wanted to run a complete UNIX system at home, without the high cost of other UNIX implementations for personal computers, Linux may be what you're looking for.
standard. As time goes by, it is expected that the Linux system will adhere to other standards, but standardization is not the primary goal of Linux development.
After the installation of Linux, generally 13 directories are made. Unlike windows, these directory begins with a / (in windows they begin c:\). The directories and their uses are:
/bin : Used to hold executable files, found all over the file system. /sbin: Used to hold the supervisors (root) executable files. /boot: Boot up files like the kernel are stored here /dev : This folder holds the device driver files here. They are used to represent physical items eg. /dev/tty1 = communication port 1 /etc : Used to store most of the configuration files for Linux. /home: Stores all the user home directories here /lib : Stores the libraries/runtimes for programs /mnt : Unlike in windows where c:\ represents a drive, in Linux, the different drives are stored in /mnt and act like a directory. /proc: Holds most of the processes happening in the Linux system. /root: The supervisors (root) home directory files. /usr : stores user based files /var : holds constantly changing files like print spools /tmp : Temporary file folder