260 likes | 337 Views
Learn to install and use virtual machines, build Linux kernel, follow naming conventions, and enhance networking skills for CS-502.
E N D
Project 0: Linux & Virtual Machine Dabbling CS-502, Operating Systems Project 0: Linux & VM Dabbling
In this project, we will … • Install our virtual machines and learn how to use them • This is the place you will work during this course! • Build and install the Linux kernel • With your name on it! • Follow Linux naming & numbering conventions • Turn in the project using web-based Turnin Project 0: Linux & VM Dabbling
In this project, we won’t … • … try to change anything in the kernel yet • This is for next project • … try to support more than one machine architecture • However, 32-bit and 64-bit architectures are different at the kernel level! • Your virtual machine is not portable from one to the other Project 0: Linux & VM Dabbling
Installing your Virtual Machine – Options • Install from DVD using VMware Player or any other VMware product • Needs 8 gigabytes of disk, 1-2 gigabytes of RAM, fast Pentium CPU (dual core would be very nice!) • Use VMware Server on csopt4.wpi.edu • Needs VMware client on your PC • GUI interface to virtual machine • Use Parallels on Macintosh (or other) • See instructor Project 0: Linux & VM Dabbling
Installing from DVD • See instructions on-line • .doc, .html • Download and install VMware Player • Or other VMware product • Unzip your virtual machine to new directory • … Project 0: Linux & VM Dabbling
Installing from DVD (continued) • Choose type of networking • Bridged vs. NAT (Network Address Translation) • Start your virtual machine • Fix up MAC address for network • Boot OpenSUSE 10.2 • Login is as student, password = CS-502 • Open YaST, the SUSE administration tool • Fix and test networking • Create new user identity for yourself • Log out, log in as new identity, delete student Project 0: Linux & VM Dabbling
Using VMware Server on csopt4 • See instructions • .doc, .html • Get CS Department user ID and password • Download and install VMware client • Log onto csopt4, make new directory on /xtra_space drive • Unzip the following file to your new directory • /xtra_space/CS-502/CS-502_Fall-07_x86_64.zip • … Project 0: Linux & VM Dabbling
Using VMware Server on csopt4 (continued) • Start VMware client, log into csopt4 • Browse to and open your virtual machine • Rename it to something unique (your user ID) • Set permissions • Start your virtual machine • Follow instructions for distributed version • Networking, user identity, etc. Project 0: Linux & VM Dabbling
Setting OpenSUSE Linux 10.2 on Parallels • See instructor • Will install OpenSUSE Linux 10.2 directly to disk partition • Be sure to get on-line updates • Best to create a separate partition for /home directory • Need to move /usr/src to /home/src • Create link /usr/src/home/src Project 0: Linux & VM Dabbling
Questions? Project 0: Linux & VM Dabbling
To get started with kernel • Find kernel sources in /usr/src, i.e., a link to /home/src linux-2.6.18.2-34linux-2.6.18.8-0.5 • Clone kernel source tree by linked copy: – • In a terminal window, do cp –al /usr/src/linux-2.6.18.8-0.5 kernelSrc • Creates a linked copy of original tree in new directory called kernelSrc Project 0: Linux & VM Dabbling
Digression on Unix/Linux Hard Links • Directory entries point directly to files • Two entries may point to same file! • Same or different directories • Same or different name • Permissions attached to file, not directory • Called hard links (as opposed to symbolic links) • Modifications to file seen via all hard links • mv and rm commands change directories, not files! • File goes away when all directory entries (i.e., hard links) to that file are deleted. Project 0: Linux & VM Dabbling
Cloned Source Tree • All directories are copied • All directory entries in copy are hard-linked back to files in original source tree • I.e., only one copy of each file exists • To modify a file:– • Unlink it (via mv or rm) • Replace it with modified copy in your directory • Original is preserved intact in original directory Project 0: Linux & VM Dabbling
To Modify a File • mv file.c file.c~ • Edit file.c~ in your favorite editor • Save as file.c • (Eventually) delete file.c~ • EMACS and patch do this automatically • Most other editors require you to do it manually Project 0: Linux & VM Dabbling
To Build Linux Kernel • Make configuration step • As ordinary user • Build kernel files and modules • As ordinary user • Install modules, boot file, etc. • Need root privileges Project 0: Linux & VM Dabbling
To Build Linux Kernel (continued) • Always build to a separate destination tree mkdir ~/kernelDst make O=~/kernelDst … • Reason • Making the configuration generates a lot of include files and other sources • If you don’t specify a destination, it fills up your source tree • Your patch files grow to > 1 megabyte! Project 0: Linux & VM Dabbling
Make configuration • In a command shell • cd kernelSrc • Do one of:– • make O=~/kernelDst config • Very long and tedious • make O=~/kernelDst menuconfig • Still somewhat long and tedious; also hokey • make O=~/kernelDst xconfig • Nice; a GUI with very small print • make O=~/kernelDst gconfig • Really nice; a better GUI; highly recommended Project 0: Linux & VM Dabbling
Make configuration (continued) • Edit “General Setup” to name your “Local version” • No other edits necessary for this project. • Save and quit • If need to rebuild, use • make O=~/kernelDstoldconfig to reuse same configuration Project 0: Linux & VM Dabbling
To Build Kernel • In a terminal window (i.e., a shell), do: – • cd kernelSrc • make O=~/kernelDst • Takes • 20 minutes on dual-core 2.4 GHz Pentium, 2 GByte • 40 minutes on csopt4 (last year) • Almost two hours on 3 gigahertz Pentium, 1 GByte • Rebuilds after small edits are much faster • Changing .h files can cause longer rebuilds Project 0: Linux & VM Dabbling
One little glitch … • File include2/asm/asm-offsets.h not generated by make config • Build crashes within about 2-3 minutes • Link file from • ~/kernelDst/include/asm-i386/ or • ~/kernelDst/include/asm-x86_64 to • ~kernelDst/include2/asm • Run make O=~/kernelDst again • Without trying to remake the config • Build “should” complete without further errors Project 0: Linux & VM Dabbling
For Project Submission • Redirect build output to a file • Submit that file (this project only) • Note that there are lots of warnings in the Linux kernel • Not your problem! Project 0: Linux & VM Dabbling
To Build Kernel on a Dual Processor • Generally faster to do • cd kernelSrc • make –j2 O=~/kernelDst • Sometimes, this is even faster • make –j4 O=~/kernelDst • SUSE advice • 2 number of processors Project 0: Linux & VM Dabbling
To Install Kernel • Requires root privileges • sudo make modules_install install • Note order of arguments! • Puts kernel, initrd file, symbols in /boot • Changes links for vmlinuz, initrd • Adds entries to /boot/grub/menu.lst • So your kernel shows up on boot screen • So you can select which kernel to boot Project 0: Linux & VM Dabbling
Running Your Kernel • Restart your virtual machine • Click in boot window • Use arrow keys to select desired kernel or system • To determine which kernel is running:– • uname -a Project 0: Linux & VM Dabbling
Submitting your Project • From within your virtual machine, visit • http://turnin.cs.wpi.edu:8088/servlets/turnin.ss • Log in • Submit output of your build as Project 0 • This is to test the ability to submit projects from the virtual machine! Project 0: Linux & VM Dabbling
Questions? Project 0: Linux & VM Dabbling