"...the number of UNIX installations has grown to 10, with more expected..." - Dennis Ritchie and Ken Thompson, June 1972
While on sabbatical in 1978, Ken Thompson helped student Bill Joy write the Berkeley Software Distribution (BSD). AT&T's UNIX became a stable commercial product while BSD's became a research project and teaching tool. This split between AT&T UNIX and BSD UNIX remains today. However, most commercial and free UNIXes are a blend of both.
It should be pointed out that the first Operating System that Microsoft sold was Xenix, in August of 1980, their UNIX-like OS that ran on both Intel and Motorola processors. Microsoft did not sell their first DOS until 1981 and 1982.
In 1987 Andrew S. Tanenbaum -- a professor in Amsterdam, the Netherlands -- created MINIX as a teaching aid for his Operating Systems class. This was one of the first complete implementations of a "free" UNIX-like OS, although you had to buy Dr. Tanenbaum's book to get it.
Starting in the early 1990's there were several projects that branched off of BSD. The NetBSD and FreeBSD projects both started in 1993. In 1995 a disgruntled NetBSD contributor left and founded the OpenBSD project.
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki 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 (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.In 1994 he released the kernel v1.0 and the associated GNU tools as the first widespread public GNU/Linux distribution.
Return to top of page
GRUB then loads the kernel which immediately starts detecting hardware and loading drivers. As soon as the kernel is fully loaded and initialized (remember, the Linux kernel is a macrokernel architecture that has a lot built into it), it starts init which displays the Welcome to Red Hat Linux message. Newer versions of init allow you to press "I" to enter an interactive mode, letting you selectively choose which services to start (or not start), similar to jumping into Extension Manager on a Macintosh system, or pressing F5 at boot on a DOS/Windows system.
As each service is started, its name is echoed on the left of the screen. If the service starts successfully, a message [ OK ] appears on the right. If the service failed to start successfully, a message [FAILED] appears on the right.
One of the services that starts by default on a traditional install is Kudzu which provides minimal "Plug-and-Play" functionality. If new hardware is added to a system, Kudzu will (hopefully) detect, configure, and load the appropriate driver for it. Once Kudzu has finished with the new hardware more services will continue to load.
Once all of the services have loaded (init has finished) the login prompt appears. Since we purposefully selected a Text-based login (vs. a Graphical login) we get the default message and prompt.
Most commercial UNIXes provide proprietary X-Window servers for their version of UNIX. The free UNIX world has concentrated on XFree86 as the primary X-Window server (despite the "86" referring to the Intel x86 architecture, XFree86 has been ported to numerous architectures).
Besides the X-Window server, the X-Window protocol requires a window manager to display the windows, however it chooses. The two currently dominant window managers in the free UNIX world are KDE and GNOME. KDE was developed by an independent group of programmers and is a loose approximation of the commercial CDE environment. GNOME development was started under a free license by Red Hat but has since moved to another company called Ximian who continues devlopment and provides free availability.
Running an X-Window server and window manager on a machine provides a familiar graphical interface. However, both GNOME and KDE require higher amounts of system resources than older, more simpler window managers like fvwm. Luckily, in the free UNIX world the user has a choice (kind of).
The computer mouse was invented in 1968 by Douglas Englebart while at Stanford University.
| Command | Description | DOS/Windows Equivalent |
|---|---|---|
| awk | File processing and report generating | N/A |
| cat | Show contents of a file | type |
| cd | Change directory | cd |
| cp | Copy a file | copy |
| echo | Display output | echo |
| exit | Terminate a session | exit |
| file | Determine file type | File Extension |
| find | Find a file | Windows Explorer Find |
| grep | Find lines in a file | N/A |
| kill | Terminate a running process | Task Manager |
| ln | Link a file to another file | Create Shortcut |
| ls | Display files in a directory | dir |
| man | Get help about commands | Help |
| mkdir | Create a directory | mkdir |
| more | Display a file one page at a time | more |
| mv | Move or rename a file | rename |
| passwd | Change user's password | Change Password |
| ps | List running processes | Task Manager |
| rm | Remove a file | delete |
| rmdir | Remove a (empty) directory | rmdir |
| sed | Stream editor | N/A |
| vi | Edit a file | edit or notepad |
| wc | Count words, lines and characters in a file | N/A |
Return to top of page
KDE can argueably be considered the closest thing to the Microsoft Windows interface and is indeed used by the major Windows "clones," namely Lycoris, Lindows, and Xandros. However, Red Hat, in their v8.0 release, has taken a giant step forward, according to some people. They have developed a common, consistant, interface called Blue Curve. Regardless of whether the user picks GNOME or KDE, the GUI looks 95% identical.
The next most difficult thing to grasp about the UNIX filesystem is that everything in UNIX is treated as a file. Several of the "default" directories in GNU/Linux equate to locations in Windows. EVERYTHING! This includes directories, partitions, disk drives, mice, serial ports, printers, displays, network interfaces, etc. Everything.
As mentioned above, everything starts at the "root" (/). This means that all of the devices in a system have a unique path in a UNIX system (i.e. /dev/rmt0 would be a tape drive connected to the system).
Here is a brief table comparing UNIX filesystem locations with their closest Windows equivalents:
| Path | Windows Equivalent | Description |
|---|---|---|
| / | C: | The start of the filesystem (or main drive in Windows) |
| /home | My Documents or Profiles or D: | User's private files |
| /usr or /usr/local | Program Files | Installed software |
| /dev | Windows or Windows\System | Device drivers |
| /etc | The Registry or .ini files | Application and operating system configuration information |
| /tmp | Windows\Temp | Temporary system files |
| /bin | Windows | System executable files |
Packages come in either source or binary form. Binary packages are architecture-specific (i.e. Intel uses i386, i486, i586, and i686; PowerPC uses ppc, SPARC uses sparc, etc.) and can only be installed on the appropriate hardware. The package manger command is rpm, and it sports a wide array of features. Here is a table of commonly used rpm commands and what they do:
| Command | Description |
|---|---|
| rpm -qa | List all installed packages |
| rpm -qi package | Show information about an installed package |
| rpm -qil package | Show information about an installed package including all files in the package |
| rpm -qip package | Show information about an uninstalled package |
| rpm -qilp package | Show information about an uninstalled package including all files in the package |
| rpm -qf file | Determine which installed package a file belongs to |
| rpm -Uvh package | Install or upgrade a package |
| rpm -Fvh package | Update an installed package (freshen) |
| rpm -e package | Uninstall a package |
| rpm --verify package | Verify the integrity of an installed package |
| rpm --help | Get help on rpm (there are many more options available) |
After a Windows installation, the first thing you need to do is update the system. Similarly, after a GNU/Linux OS installation you need to apply critical updates. Windows provides a website http://windowsupdate.com/ to obtain updated software. Red Hat provides a website https://www.redhat.com/apps/support/errata/ to do the same. LSU mirrors updates for specific versions of Red Hat at http://redhat.lsu.edu/. Our automated service will also e-mail a user when new updates appear on the mirror. The updates are available over the web at http://redhat.lsu.edu/8.0/updates/ or via NFS at redhat.lsu.edu:/redhat/8.0/updates.
We have already created a document describing the procedure used to update software on a GNU/Linux machine (http://status.lsu.edu/security/linuxmanagement.html#updates) and we will use this document to update our newly installed machine.
As an example, to change the DNS servers on a Windows machine you have to get to the Network Control Panel applet and navigate through several panels, make the change, and (depending on your Windows version) reboot the machine. In Red Hat, all you have to do is edit the /etc/resolv.conf file. You can optionally use the text based tool netconfig or a GUI tool.
For instance, to stop the web server, you simply type:
To start the web server again, type:
The command ntsysv provides a text menu method of controlling which services start automatically when the machine is rebooted. There is also a nice GUI utility to do the same thing.
Return to top of page
Whereas Tanenbaum's MINIX was based on a microkernel architecture that does only a very few things, Linus' kernel is based on a modular, macrokernel architecture where a lot of functionality is built into the kernel itself. Because the running kernel always has priority over user applications, a macrokernel can improve the speed and efficiency of critical operating system functions.
Because of its modularity and open source nature, anybody can add functionality to the kernel. However, Linus has final authority over what is officially added to a kernel release. The "official" kernel can be found at http://www.kernel.org/. Kernels are released in "stable" and "development" versions. Stable versions are always even numbered: 2.0.7-3, 2.2.12, and 2.4.9-13 are all stable kernels. Development versions are always odd numbered: 2.1.4, 2.3.5-2, and 2.5.1 are all development kernels. After freezing enhancements and bug fixes to a stable kernel, a new development kernel tree starts. When a development tree becomes stable enough, it gets renumbered as a new stable release.
A final benefit of Linus' open source, modular, macrokernel is the user's ability to remove or include only the parts of the kernel they want or need. This has resulted in full blown router engines, based on GNU/Linux, that fit on a floppy disk. Also, as a system administrator for a server, you can fully optimize the kernel code for what your server does.
It is important to note that the kernel is completely seperate from any distribution. Kernel development and releases continue on their own schedule. When a new kernel is released, distributions take time to get their configuration and tools working with the new kernel (by adding and removing code to and from the kernel).
Even though most (usually all) of the software in a distribution of software is free (money-wise), distributors still sell GNU/Linux. Purchasing GNU/Linux usually provides you with printed manuals (books), free installtion support, and sometimes commercial software. However, almost every distribution allows you to download a CD ISO image.
Return to top of page
Many resources exist at LSU and across the Internet to make using GNU/Linux easier. Here are just a few.
OCS's High Performance Computing group maintains the system redhat.lsu.edu to support on-campus users. This system sports a number of features:
The Linux Documentation Project has been around a long time and is one of the most valuable resources around. This project includes many different documents that will ease the use of GNU/Linux. Here are a few examples:
Return to top of page
Possibly the most important aspect of security is education. It's essential that Managers, Directors and other Executives in the organization understand the security process and know its implications so they can justify the time spent on security measures, and so that a security policy can be developed for your organization. A well written and thought out security policy, written by Managers and Information Technology workers alike, and with authority and cooperation behind it, provides a vehicle for all other security functions within the organization.
Information Technology workers, like Systems Administrators, need education to make them aware of security threats as well as to provide them the knowledge to protect their systems. The security policy helps to define expectations of these workers as well as justifies time spent on security measures. To aid in this education, the Security Focus site has an excellent Security Basics section for the beginner who is earnestly interested in learning about the field.
Perhaps the best starting point in securing systems, after a policy statement has been created, is to prevent intruders from being able to get into your systems. Below are a few topics to consider when "locking the doors" to your UNIX machines. This list is not comprehensive, but should serve as a good beginning.
NOTICE: This is the Louisiana State University computer system, which may be accessed and used only by authorized persons. LSU reserves the right to review and/or monitor system transactions for compliance with its policies and/or applicable law. Upon reasonable cause, LSU may disclose such transactions to authorized persons for official purposes, including criminal and other investigations, and permit the monitoring of system transactions by law enforcement agencies. Access or use of this computer system by any person, whether authorized or unauthorized, constitutes consent to these terms.
Disable starting any services you don't need (i.e. a print server).
Comment out all un-needed services (i.e. chargen, telnet, ftp)
Whether your system uses rc.* or an /etc/rc directory structure, you should disable the starting of any services that aren't needed by the running system (i.e. httpd, apmd)
Here are several logging issues to consider:
This tool, written by Wietse Venema, allows any inetd registered service to allow or deny, as well as log, each connection attempt. Other services, like SSH, are also tcpwrappers aware. This is the "de facto" standard and is the first line of defense.
These services are historically known to be the source of many system intrusions. Monitor these logs for suspicious connections or activity.
A tool like logrotate provides a mechanism to automatically compress, archive and delete logs based on age, allowing you to maximize logging while minimizing disk consumption. Remember, logs are your only record of past behavior. Older logs should be dumped to tape or transferred to another system for archival.
No one should have enough time to read all the logs you capture. A tool like xxx helps by summarizing activity and establishing a base-line of normal activity to help detect abberant behavior.
Verify that each user has one and monitor it periodically for "suspicious" activity.
Process accounting should be enabled and the logs analyzed nightly. You need a base-line of "normal" behavior to detect suspicious behavior. These logs should also be rotated and archived.
The most recent types of compromises involve root-kits. root-kits are a package that provides a set of replacement programs for all of the standard utilities, like ps, ls, find, etc. The root-kit tools are designed to hide all traces of the intruder being in your system (see rootshell for more info on root-kits).
root-kits exist primarily for GNU/Linux and Sun environments, but almost any system can have their standard utilities replaced. Most intruders place the root-kit configuration files in the /dev structure, but due to replacement of ls and find, it can be very hard to detect the new entries.
It's also very important to update your testing software or add the latest modules to the testing suite.
If you are responsible for an entire network (subnet) worth of machines, you should announce that you are going to scan / test the entire network before you actually do it -- you might be surprised how many other people are watching and will detect your scans!
The security@lsu.edu e-mail address has been established to receive security breach and security information on campus. Please feel free to e-mail any intrusion information you might have, questions, etc. to that address. Dr. Icaza is maintaining a database of UNIX security related events and we periodically send updates to the Computer Crimes squad of the FBI down in New Orleans. You are also encouraged to give the e-mail address to people outside of LSU who suspect an LSU machine is intruding them.Any information we receive and feel should be made public knowledge will be filtered to protect the original sender and disseminated through the NETCON@listserv.lsu.edu and TECHALRT@listserv.lsu.edu e-mailing lists. These addresses can also be used as a forum to discuss security related issues.
The abuse@lsu.edu e-mail address has been established to receive e-mail abuse information. If your systems are allowing e-mail relay, we've probably received an e-mail complaining about spam passing through it. This address is not to be used to report security incidents.
LSU has membership in InfraGard with Dr. Emilio Icaza, Isaac Traxler, Brian Ropers-Huilman and Hortensia Valdez active members of InfraGard. InfraGard is a joint multi-governmental agency / civilian organization whose mission is to share information about security issues and educate organizations about security risks. As part of our membership, we receive periodic e-mails from NIPC concerning known or potential security threats, both cyber and physical. If any information in these bulletins is relavent, it is forwarded to the NETCON and TECHALRT e-mailing lists.
Return to top of page
| Mount Point | Filesystem Type | Size | Primary Partition |
|---|---|---|---|
| /boot | ext3 | 128 | Yes |
| N/A | swap | 256 | No |
| / | ext3 | 3072 | Yes |
| /home | ext3 | Fill to maximum allowable size | Yes |
| Label | Value |
|---|---|
| IP Address | 130.39.199.80 |
| Netmask | 255.255.252.0 |
| Network | 130.39.196.0 |
| Broadcast | 130.39.199.255 |
| Hostname | emacc.ocs.lsu.edu |
| Gateway | 130.39.196.1 |
| Primary DNS | 130.39.254.5 |
| Secondary DNS | 130.39.244.30 |
| Tertiary DNS | 130.39.3.5 |
| Label | Value |
|---|---|
| User Name | Ron |
| Full Name | Ron D. Hay |
| Password | work2hard |
| Confirm | work2hard |
Then click "OK"
You're done! Congratulations!
Return to top of page