Something about System Administrator


Classification of Systems:
Small sites have 1 – 10 machines, all running the same OS. Usually the administrator of a small site has only about 20 users. Usually there is only one administrator for a small site.Medium sites have up to 100 machines, and may be running up to 3 different OSs. The administrator usually has about 100 users. Medium sites may have more that one administrator, either specializing in different operating systems or sharing general system administrator duties.Large sites have over 100 computers, multiple operating systems, and over 100 users. At a large site, there will be a hierarchy of administration, with the lead or senior System Administrator responsible for all of the systems and assigning duties to one or more assistant administrators.
 

System Administration Skills:

System administration skills can be classified in four general levels. The links below discuss the required skills, desired skills, and responsibilities of each of those levels. Following the levels are some general thoughts on system administration in general.
Novice     Junior     Intermediate/advanced Senior 

Novice System Administrator:

* Required skills:
@ Has strong inter-personal and communication skills: is capable of explaining simple procedures in writing or verbally; has good phone skills.
@ Is familiar with Unix and its commands/utilities at the user level. Can edit files using more than one editor. Uses at least two shells one of them being the Bourne shell.
@ Can perform standard file processing tasks; find, move, remove, redirection.

* Required background:
@ Two years of college or equivalent post-high school education or experience.

* Desirable:
@A degree or certificat in computer science or related field.
@ Previous experience in customer support, computer operations, system administration, or another related area.
@ Motivated to advance in the profession.

* Appropriate responsibilities:
@ Perform routine tasks under the direct supervision of a more experienced administrator.
@ Be the front-line interface for users; accepting problem reports and passing them to the appropriate system administrators.
@ Performs some security functions, especially monitoring the system

Junior System Administrator:

* Required skills:
@Has strong inter-personal and communication skills: capable of training users in applications and Unix fundamentals. Able to write basic system and user documentation.
@ High skill level with most Unix commands and utilities.
@ Familiar with most basic system administration tools and tasks. For example, can cleanly boot and shutdown the system, add and remove user accounts, use backup programs, perform fsck and maintain system database files (groups, hosts, aliases, etc.)
@ Fundamental understanding of the functioning of the Unix operating system: for example understands job control, hard and soft linking, the difference between shell programs and kernel programs.
@ Basic understanding of Unix security procedures

* Required background:
@ One to three years of system administration experience.

* Desirable:
@ Degree in CS or a related field.
@ Familiarity with networked/ distributed computing environments. For example: can use the route command, add a workstation to a network, or mount a remote filesystem.
@ Ability to write functional scripts in an administrative language (shell, Perl, Tk).
@ Some programming experience in an applicable language like C.

* Appropriate Responsibilities:
@ Administer a small site alone, or assist in the administration of a larger site.
@ Work under the general supervision of a more senior system administrator or computer systems manager.
@ Perform normal security procedures, able to advise users on standard security protocol.

Intermediate/Advanced System Administrator

* Required Skills
@ Has strong inter-personal and communication skills: capable of training users in complex topics, making presentations to internal groups. Able to write intricate system and user documentation. Capable of writing and explaining purchase justifications.
@ Independent problem solving; self-directed, self-starting.
@ Very comfortable with most aspects of the Unix operating system: paging/swapping, inter-process communication, devices and device driver fundamentals, file system concepts like inode and superblock.
@ Familiar with fundamental networking/distributed computing environments and concepts. Can configure NFS and NIS, use nslookup or research to check information in the DNS.
@ Ability to write detailed scripts in at least one, preferably two administrative lnaguages, (shell scripts, Perl, Tk).
@ Ability to perform at least minimal debugging and modification of C programs.
@ Ability to perform most security audits, and protect the system against intrusion.

* Required Background:
@ Three to five years of system administration experience.

* Desirable:
@ At least a BS in Computer Science or a related field.
@ Significant programming background in any applicable language.

* Appropriate Responsibilities:
@ Receive general instructions for new duties from supervisor.
@ Administers a mid-size site alone, or assists in administration of a larger site.
@ Initiates some new responsibilities and helps plan for the future of the site and network.
@ Manages novice system administrators or operators.
@ Evaluates and/or recommends purchases; has strong influence on the purchasing process.
@ Serves as the first line of defense against intrusion and inadvertent system damage.

Senior System Administrator:

* Required Skills
@ Strong inter-personal and communication skills; capable of writing proposals and papers, acting as a vendor liaison, making presentations to customer/client audiences or making professional presentations, work closely with upper management.
@ Ability to solve problems quickly and completely.
@ Ability to identify tasks which should be automated and then write tools to automate them.
@ Solid understanding of the Unix based operations system: understands paging and swapping, interprocess communication, devices and device drivers, can perform system analysis and tuning.
@ Ability to program in at least one, preferably two administrative languages, (shell, Perl, Tk) and port C programs from one platform to another, write small C programs.
@ Solid understanding of networking/distributed computing environments, understanding the principals of routing, client/server programming, and the design of consistent network-wide filesystems.

* Required Background:
@ More than 5 years of previous system administration experience.

* Desirable:
@ A degree in CS or a related field. Advanced degree preferred.
@ Extensive programming experience in an applicable language.
@ Publications within the field of system administration.

* Appropriate Responsibilities:
@ Design/implement complex local and wide-area networks of machines.
@ Manages a large site or network.
@ Works under general direction of senior management.
@ Establishes/recommends policies and procedures for system use and services.
@ Provides the technical lead and/or supervision for system administrators, system programmers, or others.
@ Has purchasing authority and responsibility for purchase justification.

Finally, some important thoughts for system Administrators:
-> Never do something you can’t undo.
-> Always check the backups, never assume they are working. Make sure you can restore from them, too.
->Write down what you did, even if you know you will never forget it, you will.
-> If you do it more than once, write a script.
-> Get to know your users before there is a problem, then when there is, they will know who you are and maybe have a little understanding.
-> Remember you are performing a service for your users, you don’t own the system, you just get to play with it.
-> Check your backups.
-> Never stop learning, there is always something you should know to make your job easier and your system more stable and secure.
-> Check your backups, again.

Advertisements

5 Linux Network Monitoring Tools


 

Linux networking monitoring tools work on all networks– Linux, BSD, Mac, Unix, and Windows.
Monitoring traffic on your network is only as important as the data and computers you want to protect. Understanding how to do basic network troubleshooting will save you both in wasted time and money. Every Linux operating system comes with a number of command line tools to help you diagnose a network problem. In addition, there are any number of open source tools available to help you track down pesky network issues.

Knowing a few simple commands and when to use them will help you get started as a network diagnostic technician. We’ll use Ubuntu 10.04 desktop as our test platform, although all of these work in other distros as well.

Good Old Ping

If you’re uncomfortable using the Linux command line from a terminal, you might as well stop reading at this point or at least skip to the other applications. In reality, there’s nothing to be afraid of when it comes to the Linux command line, especially when it comes to diagnosing a network problem. Most commands simply display information that can help you determine what’s happening. Some will require root permissions or at least the ability to issue the sudo command.

First and foremost is the ifconfig command. Typing this at a command prompt will display information about all known network devices. In the example below you can see eth0, lo and wlan0. These correspond to a wired Ethernet device (assigned address 192.168.1.2), the lo or loopback connection, and a wireless Ethernet device (address 192.168.1.102). It also shows the mac address of the device (HWaddr) and some statistics about the traffic. This should be your first command if you’re having network troubles to see if you have a valid IP address and if you see any traffic counts or errors.

The ping command should be your second tool of choice to determine if your computer is communicating with the outside world. Issuing a ping command to a known address (like 4.2.2.1) will quickly show if you have connectivity or not. It will also show you the time it took for the ping command to complete. Typical ping times for a DSL-type connection should be somewhere around 50 ms.

After the first two you should probably use the route command. This will show a list of IP addresses including the Destination and Gateway addresses connected to each interface along with some additional information including a Flags column. This column will have the letter G on the line associated with your default gateway. You can use this address in a ping command to determine if your machine has connectivity with the gateway.

EtherApe

EtherApe is available for download from the Ubuntu Software Center. It uses GNOME and libpcap to present a graphical map of all network traffic seen by the selected interface. After installation you should see the EtherApe icon under the Applications / System Tools menu. When we ran it this way, it wasn’t able to open any of the network devices as this requires root access. We were able to get it to run from the command line using sudo as follows:

$ sudo etherape

Once you have the program running it should start displaying a graphical representation of the traffic seen on the default Ethernet interface. You can select a specific device if your computer has multiple Ethernet interfaces using the Capture / Interfaces menu. EtherApe also has the ability to view data from a saved pcap file and show traffic by protocol.

Nmap

Nmap is a widely used security scanner tool originally released in 1997. It uses a variety of special packets to probe a network for any number of purposes including creating an IP map of addresses, determining the operating system of a specific target IP address and probing a range of IP ports at a specific address. One of the most basic issues is to do what’s called a ping sweep, meaning a series of ping commands to determine what addresses have computers attached to them. This can be accomplished with the following command:

$ nmap -sP 192.168.1.1-255

There are a number of graphical applications available from the Ubuntu Software Center that use nmap as the engine and then display the results in a more user-friendly way. These include NmapSI4, which uses a Qt4 interface, and Zenmap.

Tcpdump

Capturing network traffic for further analysis is the primary function of tcpdump. Actually, the packet capturing is accomplished by libpcap while the actual presentation and analysis is done with tcpdump. Raw Ethernet data is stored in the pcap file format for further examination. This same file format is used by other packet analysis tools such as Wireshark.
Email Article
Print Article
Share Articles

A typical tcpdump command to capture basic traffic would be:

$ sudo tcpdump nS

The sudo is required to gain access to the default Ethernet device. This command will display basic information including time, source and destination addresses and packet type. It will continue displaying information in the terminal until you press control-C. Tcpdump is the best and fastest way to capture network traffic to a file. A typical command to accomplish this would be:

$ sudo tcpdump s w pktfile.pcap

Wireshark


Wireshark, formerly known as Ethereal, has become the tool of choice for many, if not most, network professionals. (Ubuntu users will find it in the Ubuntu Software Center under the Internet tab.) As with some of the other tools, we had to launch Wireshark from the command line using sudo to get it to see the available Ethernet devices. Once launched you should see a list of available interfaces on the left-hand side of the main window. Selecting one of the available interfaces or the virtual interface that collects packets from all Ethernet devices will bring up the protocol display page.

 

Wireshark provides a wealth of information about the captured traffic along with tools to filter and display based on any number of criteria including source or destination address, protocol, or error status. The Wireshark homepage has links to video tutorials, white papers and sample data to help get you started in network sleuthing.

Linux is an ideal platform to learn network troubleshooting techniques. It offers a wide array of command line and GUI tools to analyze and visualize your network traffic.

 

Top 10 Linux Virtualization Software


Virtualization is the latest buzz word. You may wonder computers are getting cheaper every day, why should I care and why should I use virtualization? Virtualization is a broad term that refers to the abstraction of computer resources such as:

  • Platform Virtualization
  • Resource Virtualization
  • Storage Virtualization
  • Network Virtualization
  • Desktop Virtualization

Why should I use virtualization?

  • Consolidation – It means combining multiple software workloads on one computer system. You can run various virtual machines in order to save money and power (electricity).
  • Testing – You can test various configuration. You can create less resource hungry and low priority virtual machines (VM). Often, I test new Linux distro inside VM. This is also good for students who wish to learn new operating systems and programming languages / database without making any changes to working environment. At my work place I give developers virtual test machines for testing and debugging their software.
  • Security and Isolation – If mail server or any other app gets cracked, only that VM will be under control of the attacker. Also, isolation means misbehaving apps (e.g. memory leaks) cannot bring down whole server.

Open Source Linux Virtualization Software

  1. OpenVZ is an operating system-level virtualization technology based on the Linux kernel and operating system.
  2. Xen is a virtual machine monitor for 32 / 64 bit Intel / AMD (IA 64) and PowerPC 970 architectures. It allows several guest operating systems to be executed on the same computer hardware concurrently. XEN is included with most popular Linux distributions such as Debian, Ubuntu, CentOS, RHEL, Fedora and many others.
  3. Kernel-based Virtual Machine (KVM) is a Linux kernel virtualization infrastructure. KVM currently supports native virtualization using Intel VT or AMD-V. A wide variety of guest operating systems work with KVM, including many flavours of Linux, BSD, Solaris, and Windows etc. KVM is included with Debian, OpenSuse and other Linux distributions.
  4. Linux-VServer is a virtual private server implementation done by adding operating system-level virtualization capabilities to the Linux kernel.
  5. VirtualBox is an x86 virtualization software package, developed by Sun Microsystems as part of its Sun xVM virtualization platform. Supported host operating systems include Linux, Mac OS X, OS/2 Warp, Windows XP or Vista, and Solaris, while supported guest operating systems include FreeBSD, Linux, OpenBSD, OS/2 Warp, Windows and Solaris.
  6. Bochs is a portable x86 and AMD64 PC emulator and debugger. Many guest operating systems can be run using the emulator including DOS, several versions of Microsoft Windows, BSDs, Linux, AmigaOS, Rhapsody and MorphOS. Bochs can run on many host operating systems, like Windows, Windows Mobile, Linux and Mac OS X.
  7. User Mode Linux (UML) was the first virtualization technology for Linux. User-mode Linux is generally considered to have lower performance than some competing technologies, such as Xen and OpenVZ. Future work in adding support for x86 virtualization to UML may reduce this disadvantage.

Proprietary Linux Virtualization Software

  1. VMware ESX Server and VMWare Server – VMware Server (also known as GSX Server) is an entry-level server virtualization software. VMware ESX Server is an enterprise-level virtualization product providing data center virtualization. It can run various guest operating systems such as FreeBSD, Linux, Solaris, Windows and others.
  2. Commercial implementations of XEN available with various features and support.
  • Citrix XenServer : XenServer is based on the open source Xen hypervisor, an exceptionally lean technology that delivers low overhead and near-native performance.
  • Oracle VM : Oracle VM is based on the open-source Xen hypervisor technology, supports both Windows and Linux guests and includes an integrated Web browser based management console. Oracle VM features fully tested and certified Oracle Applications stack in an enterprise virtualization environment.
  • Sun xVM : The xVM Server uses a bare-metal hypervisor based on the open source Xen under a Solaris environment on x86-64 systems. On SPARC systems, xVM is based on Sun’s Logical Domains and Solaris. Sun plans to support Microsoft Windows (on x86-64 systems only), Linux, and Solaris as guest operating systems.

        3.  Parallels Virtuozzo Containers – It is an operating system-level             virtualization product designed for large-scale homogenous server environments and data centers. Parallels Virtuozzo Containers is compatible with x86, x86-64 and IA-64 platforms. You can run various Linux distributions inside Parallels Virtuozzo Containers.

The Top 10 Linux Server Distributions


You know that Linux is a hot data center server. You know that it saves you money in licensing and maintenance costs. But, what are your options for Linux as a server operating system? Listed here are the top ten Linux server distributions — some of which you may not be aware. The following chararistics, in no particular order, qualified a distribution for inclusion in this list: Ease-of-use, available commercial support and data center reliability.

 

  1. Ubuntu – At the top of almost every Linux-related list, Debian-based Ubuntu is in a class by itself. It surpasses all other distributions from its simple installation to its excellent hardware discovery to its world-class commercial support; Ubuntu leaves the others fumbling in the dusty distance.
  2. Red Hat – Red Hat Enterprise Linux (RHEL) started out as the “little Linux company that could” and is now a major force in the quest for data center rackspace. The Linux darling of large companies throughout the world, Red Hat’s innovations and non-stop support will have you coming back for more.
  3. SUSE – Novell-owned SUSE Linux is stable, easy-to-maintain and offers Novell’s 24×7 rapid-response support for those who don’t have the time or patience for lengthy troubleshooting calls. And, Novell’s consulting teams will have you meeting your SLAs and making your accountants happy to boot.
  4. Mandriva – For U.S.-based executive or technical folks, Mandriva might be a bit foreign. This incredibly well-constructed Linux distibution hails from France and claims extreme acceptance in Europe and South America. It is, as its website claims, a worldwide Linux provider. Its name and its construction derive from the Mandrake Linux and Connectiva Linux distributions.
  5. Xandros – If you prefer a Linux distribution with a Microsoft connection, Xandros is the one for you. Rumors aside, Xandros and Microsoft collaborate in what’s known in technical circles as “cooperatition.” This means that they compete cooperatively. To find out more about this unique perspective, check out the Xandros About page.
  6. Slackware – While not generally associated with commercial distributions, Slackware maintains relationships with several companies that provide fee-based support. One of the earliest available distributions, Slackware has an extensive and faithful fan base. Its developers regularly release new versions.
  7. Debian – If you’re confused by Debian’s inclusion here, don’t be. Debian doesn’t have formal commercial support but you can connect with Debian-savvy consultants around the world via their Consultants page. Debian has spawned more child distributions than any other parent distribution including Ubuntu, Linux Mint and Vyatta.
  8. Vyatta – Vyatta is more at home on routers and firewalls than PC-based systems but if you want a commercially-driven distribution for those applications, Vyatta works well for your secure communications needs. Check out the free version of Vyatta Linux.
  9. CentOS – It’s true that CentOS isn’t strictly commercial but since it’s based on Red Hat Enterprise Linux, you can leverage commercial support for it. CentOS has its own repositories and community support and is not the same as Fedora Linux.
  10. Unbreakable Linux – Oracle’s Unbreakable Linux is Red Hat Enterprise Linux with some Oracle logos and art. Oracle competes directly with Red Hat with their distribution and quite effectively, since purchased support through Oracle is half the price of Red Hat’s equivalent model.

Updating Your System


Many years ago, when I first began with Linux, installing applications and keeping a system up to date was not an easy feat. In fact, if you wanted to tackle either task you were bound for the command line. For some new users this left their machines outdated or without applications they needed. Of course, at the time, most everyone trying their hand at Linux knew they were getting into something that would require some work. That was simply the way it was. Fortunately times and Linux have changed. Now Linux is exponentially more user friendly – to the point where so much is automatic and point and click¬†that today’s Linux hardly resembles yesterday’s Linux.

But even though Linux has evolved into the user-friendly operating system it is, there are still some systems that are fundamentally different than their Windows counterparts. So it is always best to understand those systems in order to be able to properly use those system. Within the confines of this article you will learn how to keep your Linux system up to date. In the process you might also learn how to install an application or two.

There is one thing to understand about updating Linux: Not every distribution handles this process in the same fashion. In fact, some distributions are distinctly different down to the type of file types they use for package management.

  • Ubuntu and Debian use .deb
  • Fedora, SuSE, and Mandriva use .rpm
  • Slackware uses .tgz archives which contain pre-built binaries
  • And of course there is also installing from source or pre-compiled .bin or .package files.¬†
As you can see there are number of possible systems (and the above list is not even close to being all-inclusive). So to make the task of covering this topic less epic, I will cover the Ubuntu and Fedora systems. I will touch on both the GUI as well as the command line tools for handling system updates.

Ubuntu Linux

Ubuntu Linux has become one of the most popular of all the Linux distributions. And through the process of updating a system, you should be able to tell exactly why this is the case. Ubuntu is very user friendly. Ubuntu uses two different tools for system update:
The Update Manger is a nearly 100% automatic tool. With this tool you will not have to routinely check to see if there are updates available. Instead you will know updates are available because the Update Manager will open on your desktop (see Figure 1) as soon as the updates depending upon their type:
  • Security updates: Daily
  • Non-security updates: Weekly

If you want to manually check for updates, you can do this by clicking the Administration sub-menu of the System menu and then selecting the Update Manager entry. When the Update Manager opens click the Check button to see if there are updates available.

Figure 1 shows a listing of updates for a Ubuntu 9.10 installation. As you can see there are both Important Security Updates as well as Recommended Update. If you want to get information about a particular update you can select the update and then click on the Description of update dropdown.
 
In order to update the packages follow these steps:
  1. Check the updates you want to install. By default all updates are selected.
  2. Click the Install Updates button.
  3. Enter your user (sudo) password.
  4. Click OK.

The updates will proceed and you can continue on with  your work. Now some updates may require either you to log out of your desktop and log back in, or to reboot the machine. There are is a new tool in development (Ksplice)  that allow even the update of a kernel to not require a reboot.
Once all of the updates are complete the Update Manage main window will return reporting that Your system is up to date.

Now let’s take a look at the command line tools for updating your system. The Ubuntu package management system is called apt. Apt is a very powerful tool that can completely manage your systems packages via command line. Using the command line tool has one drawback – in order to check to see if you have updates, you have to run it manually. Let’s take a look at how to update your system with the help of Apt. Follow these steps:

  1. Open up a terminal window.
  2. Issue the command sudo apt-get upgrade.
  3. Enter your user’s password.
  4. Look over the list of available updates (see Figure 2) and decide if you want to go through with the entire upgrade.
  5. To accept all updates click the ‘y’ key (no quotes) and hit Enter.
  6. Watch as the update happens.

That’s it. Your system is now up to date. Let’s take a look at how the same process happens on Fedora (Fedora 12 to be exact).

Fedora Linux

Fedora is a direct descendant of Red Hat Linux, so it is the beneficiary of the Red Hat Package Management system (rpm).  Like Ubuntu, Fedora can be upgraded by: 
  • yum: Command line tool.
  • GNOME (or KDE) PackageKit: GUI tool.

Depending upon your desktop, you will either use the GNOME or the KDE front-end for PackageKit. In order to open up this tool you simply go to the Administration sub-menu of the System menu and select the Software Update entry.  When the tool opens (see Figure 3) you will see the list of updates. To get information about a particular update all you need to do is to select a specific package and the information will be displayed in the bottom pane.

To go ahead with the update click the Install Updates button. As the process happens a progress bar will indicate where GNOME (or KDE) PackageKit is in the steps. The steps are:

  1. Resolving dependencies.
  2. Downloading packages.
  3. Testing changes.
  4. Installing updates.

When the process is complete, GNOME (or KDE) PackageKit will report that your system is update. Click the OK button when prompted.

Now let’s take a look at upgrading Fedora via the command line. As stated earlier, this is done with the help of the yum command. In order to take care of this, follow these steps:

  1. Open up a terminal window (Do this by going to the System Tools sub-menu of the Applications menu and select Terminal).
  2. Enter the su command to change to the super user.
  3. Type your super user password and hit Enter.
  4. Issue the command yum update and yum will check to see what packages are available for update.
  5. Look through the listing of updates (see Figure 4).
  6. If you want to go through with the update enter ‘y’ (no quotes) and hit Enter.
  7. Sit back and watch the updates happen.
  8. Exit out of the root user command prompt by typing “exit” (no quotes) and hitting Enter.
  9. Close the terminal when complete.

Your Fedora system is now up to date.

Final Thoughts

Granted only two distributions were touched on here, but this should illustrate how easily a Linux installation is updated. Although the tools might not be universal, the concepts are. Whether you are using Ubuntu, OpenSuSE, Slackware, Fedora, Mandriva, or anything in-between, the above illustrations should help you through updating just about any Linux distribution. And hopefully this tutorial helps to show you just how user-friendly the Linux operating system has become. 

Linux and OSS


Linux also pronounced is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds. Linux system distributions may vary in many details of system operation, configuration, and software package selections.

Linus Torvalds.
Linux runs on a wide variety of computer hardware, including mobile phones, tablet computers, network routers, televisions, video game consoles, desktop computers, mainframes and supercomputers. Linux is a leading server operating system, and runs the 10 fastest supercomputers in the world. In addition, more than 90% of today’s supercomputers run some variant of Linux.
Some popular mainstream Linux distributions include Debian (and its derivatives such as Ubuntu), Fedora and openSUSE.
The main supporting user space system tools and libraries from the GNU Project (announced in 1983 by Richard Stallman) are the basis for the Free Software Foundation‘s preferred name GNU/Linux..

Unix
The Unix operating system was conceived and implemented in 1969 at AT&T’s Bell Laboratories in the United States by Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. It was first released in 1971 and was initially entirely written in assembly language, a common practice at the time. Later, in a key pioneering approach in 1973, Unix was re-written in the programming language C by Dennis Ritchie (with exceptions to the kernel and I/O). The availability of an operating system written in a high-level language allowed easier portability to different computer platforms. With a legal glitch forcing AT&T to license the operating system’s source code to anyone who asked, Unix quickly grew and became widely adopted by academic institutions and businesses. In 1984, AT&T divested itself of Bell Labs. Free of the legal glitch requiring free licensing, Bell Labs began selling Unix as a proprietary product.

GNU(GNU’s Not Unix!)

The GNU Project, started in 1983 by Richard Stallman, had the goal of creating a “complete Unix-compatible software system” composed entirely of free software. Work began in 1984.[23] Later, in 1985, Stallman started the Free Software Foundation and wrote the GNU General Public License (GNU GPL) in 1989. By the early 1990s, many of the programs required in an operating system (such as libraries, compilers, text editors, a Unix shell, and a windowing system) were completed, although low-level elements such as device drivers, daemons, and the kernel were stalled and incomplete. Linus Torvalds has said that if the GNU kernel had been available at the time (1991), he would not have decided to write his own

2010 Linux Journal Readers’ Choice Awards

Ubuntu Unveils Web Music Streaming Service

MultiTouch – Linux Has It Too

Three best Linux Technologies of this Decade

%d bloggers like this: