project 0: linux & vm dabbling cs-3013, c-term 20081 project 0: linux & virtual machine...

29
Project 0: Linux & VM Dabbling CS-3013, C-term 20 08 1 Project 0: Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Post on 20-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 1

Project 0: Linux & Virtual Machine Dabbling

CS-3013, Operating Systems

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 2

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

CS-3013, C-term 2008 3

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 kernel is not portable from one to the other

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 4

Installing your Virtual Machinein the Fossil Lab

• Log into any Fossil Lab workstation• Your user ID• Your Fossil password (from TAs)

• Open VMware Workstation• Select “Open an existing Virtual Machine”• Navigate to

P:\cs3013\c08\VirtualMachine• Double click on SUSE Linux (a VMware Configuration File)

• Select “Clone this Virtual Machine”• Select Linked Clone• Choose snapshot = Template for clones• Save in your home directory on H drive

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 5

Starting your Virtual Machine

• Start your virtual machine

• When it starts• Click in virtual machine screen

• Use arrow keys to select OpenSUSE 10.3• Login is as student, password = CS-3013

• Switching between Host and Guest• Click in guest window to focus mouse and keyboard

• Type CTL-ALT to return focus to host

• …

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 6

Starting your Virtual Machine (continued)

• Full screen mode• Type CTL-ALT-Enter to switch to or from guest

full screen

• Interrupting• CTL-ALT-DEL always goes to host system

• Use VM menu command to “send CTL-ALT-DEL to guest”

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 7

KDE – a Linux GUI interface

• Looks and acts a lot like Windows or Mac GUI

• Many similar tools and applications

• “Start” menu is in lower left corner under the “Gecko” icon

• YaST, the SUSE administration tool• Select User and group administration

• Create new user identity for yourself• Log out, log in as new identity, delete student

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 8

YaST, the SUSE administration tool

• A much more efficient/effective way to manage your system

• Administer hardware, software, users, services, etc.

• Access via third tab under “Gecko” icon

• Use it to set up your own user ID• Delete student ID

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 9

Other Notes

• When input focus is in guest window• Inserted CD/DVD is recognized by guest OS

• Same for USB flash drive

• Snapshots• Makes a record of the state of your virtual machine

• Any subsequent changes are made in copy-on-write mode

• Shared folder with host operating system• Doesn’t work in this version!

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 10

/home and /home2 drives

• Intended to have only /home drive

• Due to miscalculation• /home2 added to provide enough space to build

Linux kernel• /home disabled but not deleted

• Disaster recovery• Re-clone the virtual machine

• Copy /home2 files from broken clone to new clone

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 11

Share your thoughts and experiences in the Fossil Lab with your colleagues

Use the class e-mail list!

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 12

Questions?

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 13

To get started with kernel build

• Find kernel sources in /usr/src, i.e., a link to /home2/src

Current version is linux-2.6.22.13-0.3

• Clone kernel source tree by linked copy: –– In a command shell, docp –al /usr/src/linux-2.6.22.13-0.3 kernelSrc

– Creates a linked copy of original tree in new directory called kernelSrc

– Or whatever you wish to name it

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 14

Digression on Unix/Linux Hard Links

• Directory entries point directly to files• Two directory entries may point to same file!

• Same or different directories• Same or different name• Name attached to directory, not file• Permissions & attributes attached to file, not directory• Called hard links (as opposed to symbolic links)

• Modifications to file seen thru 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 and file is closed.

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 15

Cloned Source Tree

• All directories are copied

• All directory entries in copy are hard-linked 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

CS-3013, C-term 2008 16

To Modify a File

• mv file.c file.c~

• Edit file.c~ in your favorite editor• Save as file.c• (Eventually) rm file.c~

• EMACS and patch do this automatically

• Most other editors require you to do it manually

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 17

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

CS-3013, C-term 2008 18

To Build Linux Kernel (continued)

• Always build to a separate destination treemkdir ~/kernelDstmake 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 megabytes!

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 19

Making the 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

• Nicer; a reasonable GUI with very small print– make O=~/kernelDst gconfig

• Really nice; a better GUI; highly recommended

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 20

Make configuration (continued)

• Edit “General Setup” line to name your “Local version”

• No other edits necessary for this project.• Save and quit

• If need to rebuild, use•make O=~/kernelDst oldconfig

to reuse same configuration

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 21

To Build Kernel

• In a terminal window (i.e., a shell), do: – – cd kernelSrc– make O=~/kernelDst

• Takes• 30-40 minutes on dual-core 2.4 GHz Core Duo,

1 GByte RAM in VM (2 GByte real memory)

• Almost 1.25 hours on 3 gigahertz Pentium, 3 GByte

• Rebuilds after small edits are much faster

• Changing .h files causes longer rebuilds

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 22

Warnings

• Lots of warnings from files you never touched

• Not your problem

• No warnings allowed in your own code!• In this course

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 23

For Project Submission

• Redirect build output to a file

• Submit – A subset of that file (this project only)– Output of uname –a command

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 24

To Build Kernel on a Dual Processor

• Generally faster to do – cd kernelSrc– make –j2 O=~/kernelDst

– j = number of concurrent build “jobs”

• Sometimes, this is even faster– make –j4 O=~/kernelDst

• SUSE advice– 2 number of processors– Fossil Lab workstations have two processors (dual core)

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 25

To Install Kernel

• Requires root privileges– sudo make modules_install install– Root password = CS-3013– 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

CS-3013, C-term 2008 26

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

CS-3013, C-term 2008 27

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

CS-3013, C-term 2008 28

Project Due

• Due date:–– Tuesday, January 15, 5:00 PM

• Normally, projects are due the night before class, but this due date is extended to accommodate problems, questions, etc.

Project 0: Linux & VM Dabbling

CS-3013, C-term 2008 29

Questions?