28
Project 0 -- Linu x Dabbling CS-3013 A-term 200 9 1 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

  • View
    228

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 1

Project 0 Linux & Virtual Machine Dabbling

CS-3013, Operating Systems

Page 2: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 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

Page 3: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 3

In this project, we won’t …

• … try to change anything in the kernel yet• This is for a future project

• … try to support more than one machine architecture

• However, 32-bit and 64-bit architectures are different at the kernel level!

• Hardware-level code for different processor families is organized differently in kernel source code!

• Your kernel is not portable from one to another

Page 4: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 4

Using your Virtual Machine

• Characteristics• Guest OS is openSUSE Linux 11.1

• Configured for projects of this course

• Configured to work with VMware

• Just the basic devices needed for this course

• You may use• Fossil Lab (VMware Workstation)

• Your own PC or Mac– VMware Player or VMware Fusion

Page 5: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 5

Starting your Virtual Machine

• See “cookbook” for how to clone or copy• Don’t waste too much time trying to figure it out on your own

• Start it• Click in virtual machine screen

• Use arrow keys to select OpenSUSE 11.1• 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

• …

Page 6: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 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”

Page 7: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 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

Page 8: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 8

YaST, the SUSE administration tool

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

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

• Root password• CS-3013 (same as student password)

• Access via third tab under “Gecko” icon• Use it to

• Set up your own user ID and delete student ID

• Fix your network configuration

Page 9: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 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• Seems to work this term!

Usually!

If not, se

e VM menu

Page 10: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 10

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

Use the class e-mail list!

Page 11: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 11

Questions?

Page 12: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 12

To get started with kernel build

• Find kernel sources in /usr/src– i.e., a link to /home/src– Current version is linux-2.6.27.25-0.1

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

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

– Or whatever you wish to name it

Page 13: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 13

Digression on Unix/Linux Hard Links

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

• Same or different directories (within same file system)• 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.

Page 14: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 14

Cloned Source Tree

• All directories are copied

• All directory entries are hard-linked to files in original source tree

• I.e., only one copy of each file exists

• To modify a file:–• Unlink it in your directory (via mv or rm)

• Replace with modified copy in your directory

• Original still remains intact in original directory

Page 15: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 15

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

Page 16: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 16

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

Page 17: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 17

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!

Page 18: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 18

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

• Really nice; a better GUI; highly recommended– make O=~/kernelDst gconfig

• Used to be better, but has not kept up with xconfig

Page 19: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 19

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

Page 20: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 20

To Build Kernel

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

• Takes• ~25 minutes on dual-core 2.4 GHz Core Duo,

1 GByte RAM in VM (2 GByte real memory)• Much more than one hour on 3 gigahertz Pentium, 3

GByte, hypterthreaded

• Rebuilds after small edits are much faster• Changing .h files causes longer rebuilds

Page 21: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 21

Note: building with multiple processors

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

– j = number of concurrent build “jobs”

• SUSE advice– 2 number of processors– Fossil Lab workstations have two processors

(dual core)

Page 22: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 22

Warnings

• Lots of warnings from files you never touched

• Not your problem

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

Page 23: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 23

For Project Submission

• Redirect build output to a file

• Submit – A subset of that file (this project only)

• E.g., first two dozen and last two dozen lines.

– Output of uname –a command

Page 24: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 24

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

Page 25: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 25

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

Page 26: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 26

Submitting your Project

• From within your virtual machine, visithttps://turnin.cs.wpi.edu:8088/

• Log in

• Submit output of your build as Project 0

• This is to test your ability to submit projects from the virtual machine!

Page 27: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 27

Project Due

• Due date:–– Tuesday, September 2, 11:59 PM

• When should projects be due:–– 6:00 PM vs. 11:59 PM?– Day before class vs. day of class– Other thoughts?

Page 28: Project 0 -- Linux Dabbling CS-3013 A-term 20091 Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems

Project 0 -- Linux Dabbling

CS-3013 A-term 2009 28

Questions?