1 / 28

Project 0 Linux & Virtual Machine Dabbling

Project 0 Linux & Virtual Machine Dabbling. CS-3013, Operating Systems. 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!

skalski
Download Presentation

Project 0 Linux & Virtual Machine Dabbling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project 0 Linux & Virtual Machine Dabbling CS-3013, Operating Systems Project 0 -- Linux Dabbling

  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 Dabbling

  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 Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  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 • … Project 0 -- Linux Dabbling

  6. Starting your Virtual Machine (continued) • Full screen mode • Type CTL-ALT-Enter to switch to or from guest full screen • Interrupting • CTL-ALT-DELalways goes to host system • Use VM menu command to “send CTL-ALT-DEL to guest” Project 0 -- Linux Dabbling

  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 Dabbling

  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 Project 0 -- Linux Dabbling

  9. Usually! If not, see VM menu 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! Project 0 -- Linux Dabbling

  10. Share your thoughts and experiences in the Fossil Lab with your colleaguesUse the class e-mail list! Project 0 -- Linux Dabbling

  11. Questions? Project 0 -- Linux Dabbling

  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, do cp –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 Project 0 -- Linux Dabbling

  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. Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  17. 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 megabytes! Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  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=~/kernelDstoldconfig to reuse same configuration Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  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) Project 0 -- Linux Dabbling

  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 Dabbling

  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 Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  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 Project 0 -- Linux Dabbling

  26. Submitting your Project • From within your virtual machine, visit https://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! Project 0 -- Linux Dabbling

  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? Project 0 -- Linux Dabbling

  28. Questions? Project 0 -- Linux Dabbling

More Related