Week 1 and 2 notes - acavataio/ITC-136 GitHub Wiki

  • linux commands pwd (print working directory) where
    whoami (what user) who
    ls (file in directory) what
    cd (change directory) navaigation
    date (time) when

  • OS (Operating System)

An operating system, or OS, supplies all the very essential characteristics of a pc, at least from a software perspective. An OS offers the essential tools that defines the user interface standards, and enables one to make use of the computer’s hardware.


  • OS Kernel

An OS kernel is a software element that’s responsible for handling various low level options that come with the computer.

Including but not limited to the following:

Allocating memory to individual programs Allocating CPU time to individual programs Enabling programs to interact with each other

The kernel is the applications “paste”, with no kernel, a computer can do very little.

Kernels aren't interchangeable; the Linux kernel differs from the Windows kernel or the Mac OS X kernel. All the kernels offers distinct applications interfaces for applications to make use of and use a different internal layout. So, each OS is constructed from the kernel up and uses a unique group of applications that further define each OS’s characteristics.

Linux works on the kernel called Linux, in fact the term Linux refers to the kernel.

A student named Linus Torvalds created the Linux kernel in 1991.

The Linux kernel runs on everything from tiny cell phones to powerful supercomputers.

The Kernel is not a part that most users control, although the kernel is in the heart of any OS. Most users interact using several other software elements, a lot of which are related to specific OS's.

Such software elements range from the following:

Command line shells GUI's (graphical user interface) Utility programs Libraries Utility programs


  • User interfaces

Linux remains a strong text-based tradition.

Using a text-mode user interace

A login prompt vary from one system to another. Most includes several pieces of information:

The OS name and version The computer’s name The name of the hardware device being used Login prompt Password prompt Shell prompt

If you see a GUI login prompt, you can obtain a text-mode prompt by pressing Ctrl + Alt + F1 or Ctrl + Alt + F2. To return to the GUI login prompt, press Alt + F1 or Alt + F7.

Some commands must be entered as root, which is the Linux administrative user. We change the prompt to a hash mark (#) for such commands, since most Linux distributions make a similar change to their prompts for the root user.

Removing vowels, and sometimes consonants, shortens the most basic commands, in order to minimize the amount of typing required to execute a command. This has the unfortunate effect of making many commands rather obscure.

Example: cp to copy them or rm to remove (delete)

Even if you use a graphical login, you can use a text-mode shell inside a window, known as a terminal. Common Linux GUIs provide the ability to launch a terminal program, which delivers a shell prompt and the means to run text-mode programs.

Unlike Windows and OS X, Linux provides a number of desktop environments. Common choices include GNOME, KDE, Xfce, and Unity. Many other options are available as well.

Unix was created in 1969 at AT& T’s Bell Labs.

Modern Linux systems are, by and large, the product of open source projects that clone Unix programs, or of original open source code projects for Unix generally.

The Linux kernel was designed to be compatible with other Unix kernels, in the sense that it used the same software interfaces in source code. This made using open source programs for other Unix versions with the Linux kernel easy.

The GNU Project The GNU’s Not Unix (GNU) project is an effort by the Free Software Foundation (FSF) to develop open source replacements for all of the core elements of a Unix OS. In 1991, the FSF had already released the most important of such tools, with the notable exception of the kernel. (The GNU HURD kernel is now available, but is not as popular as the Linux kernel.)

GNU is an example of a recursive acronym— an acronym whose expansion includes the acronym itself. This is an example of geek humor.

Xorg-X11 The X Window System is the GUI environment for most Unix OSs. Most Linux distributions today use the Xorg-X11 variety of X. As with the basic text-mode tools provided by the GNU project, choice of an X server can affect some features of a Unix-like OS, such as the types of fonts it supports.

Desktop Environments such as GNOME, KDE, Unity, and Xfce have no big difference between Linux and Unix.

Mac OS X, a commercial Unix-based OS that use elements from both X and the desktop environments that run on it in favor of Apple’s own GUI.

Server Programs Historically, Unix and Linux have been popular as server OSs- organizations use them to run web servers, email servers, file servers, and so on. Linux runs the same popular server programs as do commercial Unix versions and the open source BSDs.


  • User Productivity programs:

Linux runs the same software as do other Unix-like OSs.

If a program needs advanced video card support, for example, it’s more likely to find that support on Linux than on a less popular Unix-like OS.

Although Linux is technically not a Unix OS, it’s similar enough that the differences are unimportant compared to the differences between this family as a whole and other OSs, such as Windows.

Mac OS X is a commercial Unix-based OS that borrows heavily from the BSDs and discards the usual Unix GUI (namely X) in favor of its own user interface.

Programmers write programs in a form known as source code. Although source code can seem arcane to the uninitiated, it’s crystal clear compared to the form a program must take for a computer to run it— that is, binary code. A program known as a compiler translates source code to binary code. (Alternatively, some programming languages rely on an interpreter, which converts source code to binary code “on the fly,” eliminating the need to compile source code.)

The term open source refers to the availability of source code. This is generally withheld from the public in the case of commercial software programs and OSs.

OS X ships with some popular Unix server programs, so you can configure it to work much like Linux or another Unix-like OS as a network server computer.

OS X differs from Linux in its user interface, though. The OS X user interface is known as Cocoa from a programming perspective, or Aqua from a user’s point of view. It includes elements that are roughly equivalent to both X and a desktop environment in Linux. Because Cocoa isn’t compatible with X from a programming perspective, applications developed for OS X can’t be run directly on Linux (or on other Unix-like OSs), and porting them (that is, modifying the source code and recompiling them) for Linux is a nontrivial undertaking. Thus native OS X applications seldom make the transition to Linux.

The X in X server is a letter X, but the X in OS X is a Roman numeral (10), denoting the tenth version of Mac OS.

OS X includes an implementation of X that runs under Aqua. This makes the transfer of GUI Linux and Unix programs to OS X relatively straightforward.

Apple makes OS X available for its own computers. Its license terms forbid installation on non-Apple hardware and, putting aside licensing issues, installing OS X on non-Apple hardware is a nontrivial undertaking.


  • Licensing

Linux is an open source OS (Some Linux variants though, are sold, along with service contracts.) think rent a spoon, all you can eat but, you rent the utensils at a premium.

Open source software gives you greater control over your computer than does proprietary software— at least in theory. In practice, you may need a great deal of expertise to take advantage of open source’s benefits.

Windows is a proprietary commercial OS Proprietary software may be preferable if you work for an organization that’s comfortable only with the idea of software that’s sold in a more traditional way.


  • Costs

Many Linux varieties are available free of charge, and so they are appealing if you’re trying to cut costs.

The expertise needed to install and maintain a Linux installation is likely to be greater, and therefore more expensive Different studies on the issue of total cost of ownership of Linux vs. Windows have gone both ways, but most tend to favor Linux.


  • Hardware compatibility

Most hardware components require OS support, usually in the form of drivers. Most hardware manufacturers provide Windows drivers for their devices, or they work with Microsoft to ensure that Windows includes appropriate drivers.

Some manufacturers provide Linux drivers, too, for the most part the Linux community as a whole must supply the necessary drivers. This means that Linux drivers may take a few weeks or even months to appear after a device becomes available.

Linux developers tend to maintain drivers for old hardware for much longer than manufacturers continue to support their own old hardware. Thus a modern Linux may run better than a recent version of Windows on old hardware.

Linux also tends to be less resource-intensive, so you can be productive on older hardware when using Linux.


  • Software Availability

Some popular desktop applications, such as Microsoft Office, are available on Windows but not on Linux. Although Linux alternatives, such as Apache OpenOffice.org or LibreOffice, are available, they haven’t caught on in the public’s mind.

Popular server programs, such as the Apache web server, were developed first for Linux or Unix. Although many such servers are available for Windows, they run more efficiently on Linux.


  • User interfaces

Like OS X, Windows uses its own unique user interface. This fact contributes to poor inter-OS portability.

Interfaces Like OS X, Windows uses its own unique user interface. This fact contributes to poor inter-OS portability.

X Window System implementations for Windows are available, as are tools for running Windows programs in Linux.) Some users prefer the Windows user interface to any Linux desktop environment, but others prefer a Linux desktop environment.


  • Configurability

Linux is much more configurable OS than Windows. Although both OSs provide the means to run specific programs at startup, change user interface themes, and so on, Linux’s open source nature means that you can tweak any detail that you wish.


  • Security

Many of the threats to Windows come from viruses, which by and large target Windows and its huge installed user base.