UCLALUG

Main - Linux? - Help & Docs - Software Downloads - About Us

CS 111 Students and Mandrake 8.1

by Mats Rynge
and
Matt Helsley

Introduction

The UCLA Computer Science Department uses linux as the basis for its Computer Science 111: Operating Systems Principles(CS 111) course. We have found that a great deal of the people that come to our installfests are UCLA students enrolled in the course. This page is for those students enrolled.

Getting to Know Your Linux System

Linux, in its state as of February 13th, 2002, is still a very complex operating system to use. Many advanced users find themselves learning new ways of getting work done even 4-5 years after beginning. However, this doesn't mean you need to spend 4-5 years before you can operate a Linux system and do useful work.

The most important task in beginning to use linux is understanding that 99% of the time you run into a problem, documentation can be found to help you solve it. Immediate, on-demand help comes in two forms (in order of importance!):

  1. Command line tools/online help resources
  2. Asking an "expert"

Without a doubt, "asking an expert" is the worst of the two methods. Often times, as a new user, recognizing an expert poses a true challenge. Getting the wrong answers from someone you think is an expert during such a crucial phase can be detrimental to your goal. Furthermore, learning how to find your answers in documentation or on the web is to asking like learning to fish is to being given a fish.

Now that we've discusses why it is important to read documentation, the best thing the UCLA LUG can do for you is give you a few places to look as you get started:

Frequently Asked Questions

  1. Q: Why do you install Mandrake 8.1 and not Mandrake 7.2 for CS 111 students?

    The projects for CS111 are supposed to be done on a Mandrake 7.2 system. However, since Mandrake now has released version 8.1, that is the recommended version to install.
    • Better GUI Tools
      We have found that users are much more accustomed to graphical user interfaces than command line-oriented interfaces. Mandrake 8.1 is one of the most advanced GUIs available on Linux at this time.
    • Bug and Security Fixes
      Also, with the newer releases, users get bug fixes and important security updates. (see Mandrake 7.2 Advisories for more information).
    • Better Hardware Support
      Also, during our install fests we have noticed that more and more people want Linux installed on their laptops. In the past, laptops have been filled with exotic hardware. Mandrake 8.1's set of drivers is much larger than those available for Mandrake 7.2.
    • More useful
      Finally, one of our goals is to encourage CS 111 students to continue to use and/or work on Linux long after their class is over. A better GUI combined with a wider set of installed tools show CS 111 students that linux, while complex at times, is becoming a very useable operating system for Computer Sciene students.
  2. Q: I installed Linux. What do I need to do now?

    Go to Newbie Nights. Don't be afraid of the weird name either.
  3. Q: I installed Mandrake 8.1, and now I can't compile Linux Kernel version 2.2.17!
    Q: I get an error when I try to compile my kernel. It says something about a file called "checksum.S". What's going on?

    (for those interested a post on the subject)

    This is a BUG in the compiler that Mandrake distributed with Mandrake 8.1.

    There are three fixes:
    1. Download Linux 2.4.3
      Ask your professor, but in the past we've heard rumors that the course will allow you to use the 2.4 kernel instead of the 2.2 kernel. To our knowledge, the 2.4 kernel source does not excite the particular bug in GCC that the 2.2 kernel does. There has also been rumor that a plain Mandrake 8.1 distribution will be used for CS 111 next quarter. Talk to your TA to make sure.
    2. Find a patch that fixes the kernel source to work around the bug. However, this fix is untested, and this is not the proper response to finding a bug (especially in Open Source Software). See below.

    3. The second proper response is to install a correct compiler:

      1. Download GCC 2.95. You will need:
        • gcc-2.95.2-12mdk.i586.rpm
        • gcc-c++-2.95.2-12mdk.i586.rpm
        • gcc-cpp-2.95.2-12mdk.i586.rpm
        From UCLA LUG. These are big files. Unless you want to also compile Chill (another programming language), Fortran, or Java, you do not need to download
        • gcc-chill-2.95.2-12mdk.i586.rpm
        • gcc-g77-2.95.2-12mdk.i586.rpm
        • gcc-java-2.95.2-12mdk.i586.rpm
      2. Install GCC 2.95

        Type on the command line

        rpm -ihv --force --nodeps gcc-*2.95*.rpm

      3. Find out which GCC command will be used (you now likely have TWO versions of GCC installed on your system). Type on the command line
        gcc --version
        This tells you what version of gcc will be used during a compilation.
      4. If GCC is version 2.95 then you are done. Otherwise, continue.
      5. Type
        which gcc
        This command will tell you where GCC is located on your hard drive.
      6. Type
        ls -l `which gcc`
        This command will tell you if GCC is really a symlink (a "shortcut" in Windows parlance). If the result looks like: "/usr/bin/gcc -> /etc/alternatives/gcc", then GCC is really a symlink. Note the use of `which gcc`. The backward apostraphe tells your commandline to substitute the output of the command
        which gcc
        onto the commandline.
      7. Replace one of the symlinks so that it points to GCC 2.95:
        ln -s /usr/bin/gcc-2.95 /etc/alternatives/gcc
        This builds a symbolic link using the link command ("ln") with the -s option. The first path (/usr/bin/gcc-2.95) is the actual file, and the second path (/etc/alternatives/gcc) is the file that we want to pretend exists.

    If you have followed the above procedure and still have problems, please drop by the UCLA LUG lounge and ask for help.

    /guides/cs111.php3 last updated on Tue Mar 26 2002