Archive for February, 2012

Linux Kernel Resources from Princeton

  1. [PDF]

    Virtualizing the Data Plane Through Source Code Merging

    www.cs.princeton.edu/~jrex/papers/presto08-eric.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by E Keller – 2008 – Cited by 18Related articles
    virtualized Linux kernel as the target platform, showing how we provided isolation between the customized data plane. Categories and Subject Descriptors

  2. [PDF]

    Backtracking Intrusions

    www.cs.princeton.edu/courses/archive/…/backtracking-king05.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by ST KING – 2005 – Cited by 76Related articles
    applications experience almost no overhead, and kernel-intensive applications such as SPECweb99 and compiling the Linux kernel experience 14–35% over-

    You’ve visited this page 4 times. Last visit: 2/16/12

  3. [PDF]

    Prem Gopalan

    www.cs.princeton.edu/~pgopalan/pgopalan-cv.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Fast IP address lookup in Linux kernel using k-ary trees. Technical Skills. Programming: C++, Perl, R, SQL, Java, Caml, Python, LateX, Coq. Systems: Postgres

  4. [PDF]

    Recovering Device Drivers

    www.cs.princeton.edu/courses/archive/…/recover-device-swift04.pdf
    File Format: PDF/Adobe Acrobat
    by MM Swift – Cited by 184Related articles
    well as the kernel itself, continue to function as expected. We implemented shadow drivers for the Linux operating system and tested them on over a dozen

  5. [PDF]

    The Performance of p-Kernel-Based Systems

    www.cs.princeton.edu/courses/archive/fall07/cos518/…/ukernel.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by H H&g – Cited by 306Related articles
    A monolithic Unix kernel, Linux, was adapted to run as a user-level single …. ments switching between Linux kernel contexts, copyinlcopyout for transferring data

  6. [PDF]

    patch (1) Considered Harmful

    www.cs.princeton.edu/~dpw/papers/hotos.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by ME Fiuczynski – Cited by 47Related articles
    1 Feb 2005 – Major variants to a mainline Linux kernel are typ- ically represented in terms of higher-level extensions that are implemented through so-called

  7. [PDF]

    Making Extensibility of System Software Practical with the C4 Toolkit

    www.cs.princeton.edu/~dpw/papers/splat06.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by M Yuen – Cited by 9Related articles
    C4 toolkit, which is designed to bring AOSD techniques to system software written in C and which we have used for introducing aspects into the Linux 2.6 kernel.

  8. [PDF]

    Martin Suchara

    www.cs.princeton.edu/~msuchara/Suchara.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux kernel. Conducted testing and benchmarking of the device. Summer 2006. Caltech – Undergraduate Research Assistant. • Demonstrated how TCP can

  9. [PDF]

    COS 318: Operating Systems OS Structures and System Calls

    www.cs.princeton.edu/courses/…/Lec3-StructureAndSysCalls.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    All kernel routines are together, any can call any. ◆ A system call interface (main program, sys calls, utility funcs). ◆ Examples: ●. Linux, BSD Unix, Windows

  10. [PDF]

    Linux Profiling and Optimization

    www.cs.princeton.edu/picasso/mats/…/Lucifredi_Lecture_Feb07.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    The Black Art of Linux Performance Tuning Yes, that means the kernel, the CPU and all the rest …. adventurous ? you can tune this via kernel boot params

  11. [PDF]

    TCP MaxNet Background, Algorithms, Implementation and

    www.cs.princeton.edu/~msuchara/publications/BSThesis.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by M Suchara – 2006 – Related articles
    in the Linux kernel, and last but not least, the advice they provided. iii protocol in theLinux kernel by modifying the TCP/IP stack. Imple- mentation related

  12. [PDF]

    Automatic Specialization of Protocol Stacks in Operating System

    www.cs.princeton.edu/~sapanb/old/Biblio/bhatia-lcn-04.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Bhatia – Cited by 5Related articles
    implementation in the Linux kernel and used the optimized protocol stack in existing applications. These applications were minimally modified to request the

  13. [PDF]

    Remote Customization of Systems Code for Embedded Devices∗

    www.cs.princeton.edu/~sapanb/old/Biblio/bhatia-emsoft-04.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Bhatia – 2004 – Cited by 15Related articles
    a case study: the TCP/IP stack of the Linux kernel. We analyzed the performance and size of the customized code generated on three platforms: a Pentium III

  14. [PDF]

    Pioneer: Verifying Code Integrity and Enforcing Untampered Code

    www.cs.princeton.edu/courses/archive/…/pioneer-seshadri-sosp05.pd
    File Format: PDF/Adobe Acrobat – Quick View
    by A Seshadri – 2005 – Cited by 157Related articles
    monitor is unmodified and runs untampered. When implemented on version 2.6 of theLinux kernel, our rootkit detector was able to detect all publically-known

  15. [PDF]

    The Click Modular Router

    www.cs.princeton.edu/courses/archive/fall08/cos561/…/kohler00.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by E KOHLER – Cited by 1538Related articles
    to the Linux kernel. A modular Click IP router configuration has a maximum loss-free forwarding rate of 333000 64-byte packets per second on a 700 MHz

  16. [PDF]

    Vivek Pai Anirudh Badam Sunghwan Ihm KyoungSoo Park Marc

    www.cs.princeton.edu/~abadam/papers/edge_xl.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    bandwidth shifting reduces total cost. Internet. Cache. Slow. Fast. Local Network (school, company, ISP, etc). (c) YouTube. (b) Linux Kernel. (a) News Site.

  17. [PDF]

    6.2 String Sets

    www.cs.princeton.edu/courses/archive/fall06/cos226/…/trie.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux kernel API: memory management. ■. T9 predictive text input for cell phones. 4. String Set: Operations. Operations. ■ set.add(String s) insert string s into

  18. [PDF]

    Seamless BGP Migration With Router Grafting

    www.cs.princeton.edu/~jrex/papers/nsdi10.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by E Keller – Cited by 8Related articles
    ware. Our prototype implementation uses and extends. Click, the Linux kernel, and Quagga, and introduces a daemon that automates the migration process.

  19. [PDF]

    Scale and Performance in the Denali Isolation Kernel

    www.cs.princeton.edu/courses/archive/fall05/cos518/…/denali.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by A Whitaker – Cited by 390Related articles
    rently implementing a port of the Linux operating system to the Denali virtual architecture; this port is still work in progress. 3 The Denali Isolation Kernel

  20. [PDF]

    Implementation of Provably Stable MaxNet

    www.cs.princeton.edu/~msuchara/…/MaxNetProvablyStable.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by M Suchara – Cited by 4Related articles
    Third, we provide a Linux kernel implementation of the protocol. With no overhead of the protocol in the Linux kernel and the experimental evalu- ation of its

  21. [PDF]

    Trellis: A Platform for Building Flexible, Fast Virtual Networks on

    www.cs.princeton.edu/~acb/papers/trellis2008.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Bhatia – 2008 – Cited by 60Related articles
    Linux kernel, allows virtual interfaces within each virtual node to be connected to the appropriate tunnels. To improve forwarding performance, we propose an

  22. [PDF]

    7. Theory of Computation

    www.cs.princeton.edu/courses/archive/fall09/…/18Theory-2×2.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    e.g., Intel Core 2 Duo running Linux kernel 2.6. 4. Why Learn Theory? In theory … •Deeper understanding of what is a computer and computing. •Foundation of

  23. [PDF]

    Wide-Area Route Control for Distributed Services

    www.cs.princeton.edu/~jrex/papers/usenix10.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by V Valancius – Cited by 8Related articles
    ponents such as the Linux kernel and the Quagga routing daemon. We also implement a management plane based on the GENI control framework and couple

  24. [PDF]

    Making the “Box” Transparent: System Call Performance as a First

    www.cs.princeton.edu/~yruan/debox/debox.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Ruan – Cited by 38Related articles
    we demonstrate by showing improvements on Linux. Our kernel modifications, optimizing of the sendfile() sys- tem call, have been integrated into FreeBSD.

  25. [PDF]

    Hosting Virtual Networks on Commodity Hardware

    www.cs.princeton.edu/~jrex/papers/trellis07.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Bhatia – Cited by 49Related articles
    VMWare Server [39, 35] and Linux’s Kernel– based Virtual Machines (KVM) [1] provide full virtualiza- tion, while Xen [13] and Denali [41] are examples of sys-

  26. [PDF]

    A Method for Transparent Admission Control and Request

    www.cs.princeton.edu/courses/archive/spr06/…/elnikety04method.pd
    File Format: PDF/Adobe Acrobat – Quick View
    by S Elnikety – Cited by 258Related articles
    Hat Linux with the Linux kernel 2.4.18. We use Apache version. 1.3.27 for the front-end Web server, and Jakarta Tomcat version. 3.2.4 as the application server.

  27. [PDF]

    COS 318: Operating Systems Virtual Machine Monitors

    www.cs.princeton.edu/courses/archive/fall10/…/VirtualMachines.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Uses device drivers from the Linux kernel to talk directly to the device. ◆ Low performance devices are channeled to special “host”. VM, which runs a full Linux

  28. [PDF]

    L24_VirtualMachinesBigFinish v2.pptx

    www.cs.princeton.edu/courses/archive/fall11/cos318/…/L24_VMs.pd
    File Format: PDF/Adobe Acrobat – Quick View
    Uses device drivers from the Linux kernel to talk directly to the device. ◆ Low performance devices are channeled to special “host”. VM, which runs a full Linux

  29. [PDF]

    Eliminating the Hypervisor Attack Surface for a More Secure Cloud

    www.cs.princeton.edu/~jrex/papers/ccs11.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by J Szefer – 2011 – Cited by 5Related articles
    the Linux kernel. First, it is used as an external reference to determine the clock frequency of the processor. The lo- cal APIC timer is configured to generate an

  30. [PDF]

    Balanced Trees

    www.cs.princeton.edu/~rs/AlgsDS07/09BalancedTrees.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Java: java.util.TreeMap, java.util.TreeSet. • C++ STL: map, multimap, multiset. • Linux kernel: linux/rbtree.h. B-Trees: widely used for file systems and databases

  31. [PDF]

    Porting a User-Level Communication Architecture to NT

    www.cs.princeton.edu/~skumar/papers/USENIX99/usenix99.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Chen – Cited by 6Related articles
    changing nature of Linux kernel sources also poses a daunting task for maintaining our VMMC soft- ware up-to-date. It also makes it really difficult to distribute

  32. [PDF]

    Fido: Fast Inter-Virtual-Machine Communication for Enterprise

    www.cs.princeton.edu/courses/archive/fall10/…/fido-usenix09.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by A Burtsev – Cited by 18Related articles
    aged by the VMCI (Virtual Machine Communication In- terface [24]) module. To provide memory mapping, we have not modified any guest VM (Linux) kernel

  33. [PDF]

    Operating System Support for Planetary-Scale Network Services

    www.cs.princeton.edu/~acb/nsdi04/paper.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by A Bavier – Cited by 412Related articles
    plemented. PlanetLab currently implements the VMM as a combination of the Linux kernel and a set of kernel exten- sions, as outlined in Section 4. A privileged

  34. [PDF]

    Virtual Doppelgänger: On the Performance, Isolation, and Scalability

    www.cs.princeton.edu/~mef/research/paenevirtualization.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Soltesz – Cited by 5Related articles
    those systems also on a stock Linux kernel. We re- peat a number of the single VM benchmarks as de- scribed in Barham et. al. [1] and Clark et. al [3],

  35. [PDF]

    Evaluating the Impact of Simultaneous Multithreading on Network

    www.cs.princeton.edu/~yruan/XeonSMT/smt.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Ruan – 2005 – Cited by 25Related articles
    The Linux kernel implements a number of SMT-specific optimizations, mostly related to processor affinity and load balancing [3]. Task run queues are shared be-

  36. [PDF]

    7. Theory of Computation Regular Expressions and DFAs

    www.cs.princeton.edu/courses/archive/spr08/cos126/…/71regular.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Consider minimal abstract machines. ■. Consider general classes of problems. e.g., Pentium M running Linux kernel 2.6.15. 3. Why Learn Theory? In theory …

  37. [PDF]

    Trellis: A Platform for Building Flexible, Fast Virtual Networks on

    www.cs.princeton.edu/~jrex/papers/roads2008.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Bhatia – Cited by 60Related articles
    We used a customized 2.6.20 Linux kernel patched with Linux VServer and NetNS support and our custom ker- nel patches to provide support for EGRE and

  38. [PDF]

    HMTT: A Platform Independent Full-System Memory Trace

    www.cs.princeton.edu/~ybao/papers/baoyg_HMTT.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Bao – 2008 – Cited by 14Related articles
    On Linux platform, the KSM provides an hmtt_printk routine which can be called at any place from the kernel. Unlike Linux kernel’s printk, the hmtt_printk routine

  39. [PDF]

    Virtual Routers on the Move: Live Router Migration as a Network

    www.cs.princeton.edu/~jrex/papers/vroom08.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Wang – 2008 – Cited by 125Related articles
    a software data plane (in the Linux kernel) and the other with a hardware data plane (using a NetFPGA card [23]). Each virtual router runs the Quagga routing

  40. [PDF]

    Contents

    www.cs.princeton.edu/~wlloyd/papers/ugThesis.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    OS was Red Hat Enterprise Linux AS release 3 (Taroon Update 8) with a 2.4.21-32.ELsmp. Linux kernel. This was also a multi user machine, but it experienced

  41. [PDF]

    Lecture 18: Theory of Computation Regular Expressions and DFAs

    www.cs.princeton.edu/courses/archive/spr05/cos126/lectures/18.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Pentium IV running Linux kernel 2.4.22. 3. Why Learn Theory. In theory . . . ■. Deeper understanding of what is a computer and computing. ■. Foundation of all

  42. [PDF]

    In VINI Veritas: Realistic and Controlled Network Experimentation

    www.cs.princeton.edu/~jrex/papers/vini.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by A Bavier – 2006 – Cited by 332Related articles
    a full-featured Linux kernel that runs as a user-space process, for this purpose. For each user-space tunnel in our overlay topology,. PL-VINI creates a pair of

  43. [PDF]

    VROOM: Virtual ROuters On the Move

    www.cs.princeton.edu/~jrex/papers/vroom.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Wang – Cited by 19Related articles
    In our prototype, we use the Linux kernel routing functionality (iptables and iproute2) of domain 0 to emulate the substrate layer of the VROOM architec- ture.

  44. [PDF]

    MulVAL: A Logic-based Network Security Analyzer ∗

    www.cs.princeton.edu/~sudhakar/papers/mulval_usenix05.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    description for the bug OVAL2961 is: Multiple unknown vulnerabilities in Linux kernel2.4 and 2.6 allow local users to gain privileges or access kernel memory, .

  45. [PDF]

    Operating System Support for Planetary-Scale Network Services

    www.cs.princeton.edu/courses/archive/fall03/cs597B/…/pl-os.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by A Bavier – Cited by 412Related articles
    packet scheduling; the SILK (Scout in Linux Kernel) mod- ule that provides CPU scheduling, network accounting, and safe raw sockets; and the node manager,

  46. [PDF]

    The Design Principles of PlanetLab

    www.cs.princeton.edu/courses/…/planetlab-principle-peterson.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by L Peterson – 2006 – Cited by 71Related articles
    tor and running a complete operating system kernel in each slice. Where an implementation uses a more high- level VMM, such as the Linux/VServer kernel [1],

  47. [PDF]

    COS 318: Operating Systems OS Structures and System Calls

    www.cs.princeton.edu/courses/archive/fall09/…/OSStructure.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Monolithic. ◆ All kernel routines are together. ◆ A system call interface. ◆ Examples: ●. Linux. ●. BSD Unix. ●. Windows. ◆ Pros. ●. Shared kernel space. ●

  48. [PDF]

    Wide-area Network Acceleration for the Developing World Abstract 1

    www.cs.princeton.edu/~sihm/papers/wanax-usenix10.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Ihm – Cited by 17Related articles
    24 Jan 2009 – load two different versions of the Linux kernel source tar files, 2.6.26.4 only 25% on the news sites and 36% on the Linux kernel. On the other

  49. [PDF]

    Programming from the Ground Up

    www.cs.princeton.edu/…/ProgrammingGroundUp-1-0-lettersize.pdf
    File Format: PDF/Adobe Acrobat
    by J Bartlett – 2003 – Cited by 4Related articles
    the user applications (from the GNU project and other places) and the kernel (Linux) make up the entire operating system, GNU/Linux. For the most part, this

  50. [PDF]

    Rx: Treating Bugs As Allergies— A Safe Method to Survive Software

    www.cs.princeton.edu/courses/archive/spr06/…/Rx-SOSP05-qin.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by F Qin – 2005 – Cited by 210Related articles
    system we modified is the Linux kernel 2.6.10. The Rx proxy is currently implemented at user level for easy debugging. In the fu- ture, we plan to move it to the

  51. [PDF]

    TRODS

    www.cs.princeton.edu/~mfreed/docs/trods-dsn11-slides.pdf
    File Format: PDF/Adobe Acrobat – View as HTML
    ImplementaPon. • Linux Kernel Module. • 3000 lines of C. • ~CoRAL. – OpPmisPc subset of CoRAL. 28. Page 29. Experiments. • AddiPonal Latency. – Normal

  52. [PDF]

    Coercing Clients into Facilitating Failover for Object Delivery

    www.cs.princeton.edu/~mfreed/docs/trods-dsn11.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by W Lloyd – Related articles
    of CoRAL [1] in a kernel module for Linux 2.6.32.3. CoRAL routes requests to a primary server through a backup server and saves the entire response on the

  53. [PDF]

    Virtually Eliminating Router Bugs

    www.cs.princeton.edu/~jrex/papers/btrconext09.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by E Keller – 2009 – Cited by 16Related articles
    table in the Linux kernel). Figure 7 shows the pass-through time required for a rout- ing change to reach the FIB. We replayed a Routeviews up- date trace and

  54. [PDF]

    Creating virtual “soft„devices with User-mode Linux Sapan Bhatia

    www.cs.princeton.edu/~sapanb/old/Biblio/bhatia-nordu-04.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    User-mode Linux (UML) [3, 4] simplifies this task by allowing developers to test and provides such an environment b y running the L inu x kernel in user space.

  55. [PDF]

    4.4 Balanced Trees 2-3-4 Trees

    www.cs.princeton.edu/courses/archive/fall06/cos226/…/balanced.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux kernel: linux/rbtree.h. possible to eliminate at most 2 per insertion Linux: ReiserFS, XFS, Ext3FS, JFS. Databases. ■. Most common index type in

  56. [PDF]

    Turing Machines

    www.cs.princeton.edu/courses/…/cos233-234-lecture8-theory1.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    universality, complexity, logic. David Hilbert. Kurt Gödel. Alan Turing. Alonzo Church. John von Neumann. e.g., Intel Core 2 Duo running Linux kernel 2.6

  57. [PDF]

    Active networking : one view of the past, present, and future

    www.cs.princeton.edu/courses/archive/fall06/cos561/…/smith04.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by JM Smith – 2004 – Cited by 38Related articles
    the Linux kernel. Resource management was controlled with the same cryptographic credentialing system used to control code-loading in SANE, but adapted to

  58. [PDF]

    A System for Authenticated Policy-Compliant Routing

    www.cs.princeton.edu/~jrex/teaching/spring2005/…/raghavan04.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by B Raghavan – 2004 – Cited by 77Related articles
    ets, while the Linux kernel module registers itself with the IP stack as a protocol handler for Platypus protocol packets. After process- ing and validating any

  59. [PDF]

    Virtual Machine Monitors

    www.cs.princeton.edu/courses/archive/fall09/…/VirtualMachine.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    15 Dec 2009 – Uses device drivers from the Linux kernel to talk directly to the device. □ Low performance devices are channeled to special “host” VM, which

  60. [PDF]

    Using Model Checking to Find Serious File System Errors

    www.cs.princeton.edu/courses/…/modelcheck-fs-yang.04pdf.pdf
    File Format: PDF/Adobe Acrobat
    by J Yang – Cited by 189Related articles
    plicit state model checker running the Linux kernel, (2) a file system test driver, (3) a permutation checker which verifies that a file system can recover no matter

  61. [PDF]

    MulVAL: A Logic-based Network Security Analyzer

    www.cs.princeton.edu/~appel/papers/mulval.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    28 Oct 2004 – In our model, the Linux kernel is both a network ser- vice running as root, and a setuid program owned by root. That is, the consequence of

  62. [PDF]

    Botz-4-Sale: Surviving Organized DDoS Attacks That Mimic Flash

    www.cs.princeton.edu/~mjacob/papers/killbots.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Kandula – Cited by 230Related articles
    We implement Kill-Bots in the Linux kernel and eval- uate it in the wide-area network using PlanetLab. Addi- tionally, we conduct an experiment on human users

  63. [PDF]

    Experiences Building PlanetLab

    www.cs.princeton.edu/courses/archive/fall06/cos561/…/planetlab.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by L Peterson – Cited by 146Related articles
    ties such as those provided by the standard Linux kernel, or co-locating the service in the root context. Finally, Table 1 quantifies the impact of moving func-

  64. [PDF]

    PlanetLab: A Blueprint for Introducing Disruptive Technology into the

    www.cs.princeton.edu/courses/archive/fall03/cs597B/…/overview.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by L Peterson – Cited by 783Related articles
    15 Sep 2003 – Linux kernel w/ extensions to support isolation. – bootstrapping and software distribution mechanisms. – collection of unbundled management

  65. [PDF]

    Live Migration of Virtual Machines

    www.cs.princeton.edu/courses/archive/fall08/…/vm-migration.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by C Clark – Cited by 893Related articles
    ing a modified Linux kernel. Their approach is to isolate all process-to-kernel interfaces, such as file handles and sock- ets, into a contained namespace that can

  66. [PS]

    A model and Architecture for Pseudo-Random Generation and

    www.cs.princeton.edu/~boaz/Papers/devrand.pdf
    File Format: Adobe PostScript – View as HTML
    by B Barak – 2005 – Cited by 35Related articles
    For example, in the version or random.c. that was used in the Linux kernel v2.4, both streams used. the same entropy pool, so the output of /dev/urandom leaked

  67. [PDF]

    A C++ Function for Evolutionary Optimisation with Applications in

    www.cs.princeton.edu/~min/evofunc/evofunc-0.47-manual.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by P Min – 2006 – Related articles
    4 Jul 2006 – This package was successfully compiled under a Linux kernel 2.4.20, using gcc version 3.2.2, under Mac OS X kernel Darwin 6.8, using gcc,

  68. [PDF]

    Martin n Sucha ara

    www.cs.princeton.edu/~msuchara/application/CV.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux. Caltech. • Desig. • Imple. • Evalu. University nt of Compute t. NJ 08540 ….Programming and scripting: C, C++, Java, Perl, Linux kernel programming, bash

  69. [PDF]

    Multiprocessor Support for Event-Driven Programs

    www.cs.princeton.edu/courses/archive/fall11/…/libasync-mp.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by N Zeldovich – Cited by 65Related articles
    The scheduler considers priority and callback/thread affinity when choosing colors; its design is loosely based on that of the Linux SMP kernel [8]. The scheduler

  70. [PDF]

    7. Theory of Computation

    www.cs.princeton.edu/courses/archive/spring09/…/7regular.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    13 Apr 2009 – or problems. ■. Consider minimal abstract machines. ■. Consider general classes of problems. e.g., Intel Atom running Linux kernel 2.6

  71. [PDF]

    Xen and the Art of Virtualization

    www.cs.princeton.edu/courses/archive/fall05/cos518/papers/xen.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by P Barham – 2003 – Cited by 3509Related articles
    Linux kernel is considerably simpler than that expected by Win- dows XP. It would be possible to specify a fixed initial memory layout for all guest OSes, but this

  72. [PDF]

    7. Theory of Computation Regular Expressions

    www.cs.princeton.edu/courses/archive/spring10/…/7regular-2×2.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    e.g., Intel Core 2 Duo running Linux kernel 2.6. 3. Why Learn Theory? In theory … ■. Deeper understanding of what is a computer and computing. ■

  73. [PDF]

    7. Theory of Computation

    www.cs.princeton.edu/courses/archive/spring11/…/7regular.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    11 Apr 2011 – complexity, logic. David Hilbert. Kurt Gödel. Alan Turing. Alonzo Church. John von Neumann. e.g., Intel Core 2 Duo running Linux kernel 2.6

  74. [PDF]

    7. Theory of Computation Regular Expressions

    www.cs.princeton.edu/courses/archive/spring11/…/7regular-2×2.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    11 Apr 2011 – Kurt Gödel. Alan Turing. Alonzo Church. John von Neumann. e.g., Intel Core 2 Duo running Linux kernel 2.6. 3. Why Learn Theory? In theory …

  75. [PDF]

    Martin n Sucha ara

    www.cs.princeton.edu/~msuchara/application/AllInOne.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    the Linux kernel and the experimental evaluation of its properties on WAN-in-Lab [6], a testbed with real carrier-class networking hardware. In [7-8] I studied the

  76. [PDF]

    Virtual Machine Monitors: Current Technology and Future Trends

    www.cs.princeton.edu/courses/archive/…/future_trends-rosenblum.pd
    File Format: PDF/Adobe Acrobat – Quick View
    by T Garfinkel – Cited by 379Related articles
    9 May 2005 – The ESX Server kernel can use device drivers from the Linux kernel to talk directly to the device, resulting in significantly lower virtualization

  77. [PDF]

    7. Theory of Computation Regular Expressions and DFAs

    www.cs.princeton.edu/courses/archive/fall05/cos126/lectures/18.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Pentium IV running Linux kernel 2.4.22. 3. Why Learn Theory. In theory … ■. Deeper understanding of what is a computer and computing. ■. Foundation of all

  78. [PDF]

    Balanced Trees

    www.cs.princeton.edu/courses/archive/spr07/…/09BalancedTrees.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux kernel: linux/rbtree.h. B-Trees: widely used for file systems and databases. ■. Windows: HPFS. ■. Mac: HFS, HFS+. ■. Linux: ReiserFS, XFS, Ext3FS,

  79. [PDF]

    Regular Expressions and DFAs

    www.cs.princeton.edu/courses/archive/fall06/cos126/lectures/18.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Pentium IV running Linux kernel 2.4.22. 3. Why Learn Theory. In theory . . . ■. Deeper understanding of what is a computer and computing. ■. Foundation of all

  80. [PDF]

    Ursa Minor: versatile cluster-based storage

    www.cs.princeton.edu/courses/archive/…/ursa-minor-abd-el-malek.p
    File Format: PDF/Adobe Acrobat – Quick View
    by M Abd-El-Malek – Cited by 121Related articles
    The machines ran the Debian “testing” dis- tribution and used Linux kernel version 2.4.22. The same machine type was used both as clients and storage-nodes.

  81. [PDF]

    SleepServer: A Software-Only Approach for Reducing the Energy

    www.cs.princeton.edu/courses/archive/…/sleepservers-usenix10.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by YAS Savage – Related articles
    and the Linux kernel, we were unable to scale beyond. 200VMs. The limitations relate to the low number of statically defined software interrupts in the XEN

  82. [PDF]

    Eucalyptus : A Technical Report on an Elastic Utility Computing

    www.cs.princeton.edu/courses/archive/fall10/…/eucalyptus-tr08.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by D Nurmi – Cited by 1Related articles
    Ethernet packet communication from the Linux kernel to user-space processes. When an Eucalyptus system is initiated, it sets up a VDE network overlay that con

  83. [PDF]

    When Virtual Is Better Than Real

    www.cs.princeton.edu/courses/archive/spr06/…/HotOS-chen01.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by PM Chen – Cited by 254Related articles
    Linux 2.2.16 kernel contained at least 7 security holes [1]. In particular, secure logging is challenging to provide in the operating system, because an intruder

  84. [PDF]

    The Flux OSKit: A Substrate for Kernel and Language Research

    www.cs.princeton.edu/courses/archive/fall07/cos518/…/flux.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by BFGBG Benson – 1997 – Cited by 326Related articles
    Kernel Support. SMP. FreeBSD Glue. Drivers. FreeBSD. Linux. Figure 1: The structure of the OSKit. The shaded components in- dicate off-the-shelf code that is

  85. [PDF]

    Reprise: what an operating system does How applications use the

    www.cs.princeton.edu/courses/archive/fall11/cos109/10apis.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux” may mean “kernel” or may mean “kernel + applications”. – dividing line is not always clear. • “kernel“. – minimal part that runs regardless of what else the

  86. [PDF]

    Dynamic Tracking of Page Miss Ratio Curve for Memory

    www.cs.princeton.edu/~skumar/papers/…/MRC_asplos04.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by P Zhou – 2004 – Cited by 104Related articles
    have implemented this method in the Linux kernel and have conducted experiments based on this implementation. There are several challenges in

  87. [PDF]

    3.3 Balanced Trees

    www.cs.princeton.edu/courses/archive/…/09-33BalancedTrees-2×2.p
    File Format: PDF/Adobe Acrobat – View as HTML
    22 Jan 2010 – Linux kernel: completely fair scheduler, linux/rbtree.h. B-tree variants. B+ tree, B*tree, B# tree, … B-trees (and variants) are widely used for file

  88. [PDF]

    Preview of “08opsys.ppt”

    www.cs.princeton.edu/courses/archive/fall11/cos109/08opsys.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux. • a version of Unix written from scratch. – by Linus Torvalds, Finnish student (started 1991). • source code freely available (kernel.org, linux.org)

  89. [PDF]

    Control-Flow Integrity

    www.cs.princeton.edu/~jligatti/papers/MSR-TR-2005-18.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by M Abadi – 2005 – Cited by 295Related articles
    mitigation schemes, such as the PaX Linux kernel patch, may be applied even to unmodified legacy binaries. Others can be more difficult to adopt, for example

  90. [PDF]

    Understanding and Improving Modern Web Traffic Caching

    www.cs.princeton.edu/~sihm/papers/thesis.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Ihm – 2011 – Related articles
    For this, we download two different versions of the Linux kernel source tar …. on both workloads – about 66% on the news sites and 92% on the Linux kernel.

  91. [PDF]

    Optimistic Compiler Optimizations for Network Systems

    www.cs.princeton.edu/~sapanb/old/Biblio/thesis-sapan-2006.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Bhatia – Cited by 1Related articles
    implementation in the Linux kernel and used the optimized protocol stack in existing applications. These applications were minimally modified to request the

  92. [PDF]

    Virtual Routers on the Move: Live Router Migration as a Network

    www.cs.princeton.edu/~yiwang/papers/vroom.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by Y Wang – Cited by 125Related articles
    one with a software data plane (in the Linux kernel) and the other with a hardware data plane (using a Net-. FPGA card [26]). Each virtual router runs the Quagga

  93. [PDF]

    Machine Learning-Based Prefetch Optimization for Data Center

    www.cs.princeton.edu/~thhung/pubs/sc09.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by S Liao – 2009 – Cited by 6Related articles
    Linux (Kernel version: 2.6.18). Compiler. GCC 4.3.1 (Flags: -O2). Performance. Monitoring. Software perfmon2. Table 1: Details of the platform. when it detects

  94. [PDF]

    Refactoring Network Control and Management: A Case for the 4D

    www.cs.princeton.edu/~jrex/papers/CMU-CS-05-117.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    by A Greenberg – 2005 – Cited by 21Related articles
    For ease of programming, we use x86 based PCs running a standard Linux kernel as our routers. The code for our prototype runs in user-space, manipulating

  95. [PDF]

    Software systems and issues: Outline when began Interfaces How

    www.cs.princeton.edu/courses/archive/fall10/…/10apis_topost.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux” may mean “kernel” or may mean “kernel + applications”. – dividing line is not always clear. • “kernel“. – minimal part that runs regardless of what else the

  96. [PDF]

    7: Theory of Computation 7.1: Regular Expressions and DFAs

    www.cs.princeton.edu/courses/archive/fall03/cs126/lectures/18.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    13 Nov 2003 – Pentium IV running Linux kernel 2.4.22. 3. Why Learn Theory. In theory . . . n. Deeper understanding of what is a computer and computing. n

  97. [PDF]

    PC Assembly Language

    www.cs.princeton.edu/courses/archive/fall11/…/pcasm-book.pdf
    File Format: PDF/Adobe Acrobat
    by PA Carter – Cited by 15Related articles
    Richard Stallman (founder of the Free Software Foundation), Linus Torvalds. (creator of the Linux kernel) and others who produced the underlying soft- ware the

  98. [PDF]

    Lecture P3: Unix

    www.cs.princeton.edu/courses/archive/spr01/cs126/…/P3-4up.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Machine language. Kernel. User level (C programming). Command level (shell). Window system. Unix / Linux (Thompson and Ritchie 1969). s. Simplicity and

  99. [PDF]

    Bootup Mechanism Basic information

    www.cs.princeton.edu/courses/archive/fall06/…/precept_1_1.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    20 Sep 2006 – Load the whole kernel into memory. ∎ Where is the kernel? □ Real life:kernel as an executable file in the disk file system. ∎ Linux: /boot/

  100. [PDF]

    Software systems and issues Operating system What’s an operating

    www.cs.princeton.edu/courses/archive/fall10/…/08opsys_topost.pdf
    File Format: PDF/Adobe Acrobat – Quick View
    Linux. • a version of Unix written from scratch for PC. – by Linus Torvalds, Finnish student (started 1991). • source code always available (www.kernel.org,

Advertisements

Capturing all the network traffic when a browser go to a website

My question: How to capture all the network traffic when a browser go to a website?

I must say Chrome provide a very intuitive and easy-to-use interface:

Right click on the browser to select “Inspect Element” and then select on “network”, and then followed by entering the URL (at the top) and click return.

The result as as below.

Minimal Intel Architecture Boot Loader

http://download.intel.com/design/intarch/papers/323246.pdf

Debugging Google data services with Wireshark and socat | Ducksboard

http://blog.ducksboard.com/2011/03/debugging-google-data-services-with-wireshark-and-socat/

Illumos Startup Analysis/Debugging using VirtualBox

Illumos is the kernel underlying OpenIndiana OS, and its kernel images can be downloaded at:

https://download.joyent.com/pub/iso/

Although OpenIndiana can be downloaded from:

http://openindiana.org/download/

It will not be covered here. The present analysis will just analyze how Illumos kernel start itself up initially. (BTW, Illumos is a Opensource version of Opensolaris, which is no longer “open” now).

First I install VirtualBox on my Ubuntu, but because the kernel has been upgraded, I had to do a “/etc/init.d/vboxdrv setup” reinstallation of the VirtualBox kernel drivers. Several problems were resolved, among which is the fact that VirtualBox setup script does not allow you to have spacing in the path to your kernel source, which initially exists, as I have moved the kernel source to the external NTFS harddisk, and the mount point has a space in it. Resolving that, I successfully compiled the VirtualBox drivers and got it running in my Linux kernel 3.3.0-rc3, Ubuntu 10.04 (LTS 64-bit version).

Using this procedure:

https://www.illumos.org/projects/illumos-gate/wiki/Serial_console_in_VirtualBox

The VirtualBox was setup CD/DVD pointing at the ISO image of Illumos kernel (smartos-20120210T043623Z.iso for me) and with serial port pointing at host pipe with filenamed as “/tmp/serial_host_pipe”, and download and compile socat as according to above instruction. (Alternatively, instead of downloading and compile, in Ubuntu you can easily do a “apt-get install socat” to install your socat application).

Next create the following file: mysocat.sh

#!/bin/bash
[ "$1" ] || { echo "usage: $0 PIPE"; exit 1; }
trap "stty sane" 0 1 2 3 15
socat unix-connect:$1 stdio,raw,echo=0,icanon=0

and then start the Illumos running in VirtualBox, and select “live 64-ttya-kmdb” the VirtualBox will spawn a black screen with dots pausing for input. At this point, the serial host pipe is created, and so run “mysocat.sh /tmp/serial_host_pipe” in another terminal to connect to the VirtualBox. All inputs and analysis will be done via that terminal:

[0]> moddebug/W 80000000
moddebug: 0 = 0x80000000

First we will list all the kernel threads existing:

[0]> ::threadlist -v
ADDR PROC LWP CLS PRI WCHAN
fffffffffbc2fa40 fffffffffbc2eb00 fffffffffbc31540 0 96 0
PC: 0 CMD:
stack pointer for thread fffffffffbc2fa40: fffffffffbc72240
0x38()
mlsetup+0x715()
_locore_start+0x8b()

From the above stacktrace of the only kernel thread, we can identify the symbols involved in the startup process.

[0]> ::dis _locore_start
_locore_start: leaq +0x40f149(%rip),%rbp <_edata>
_locore_start+7: movq $0x0,0x0(%rbp)
_locore_start+0xf: leaq +0x46d37a(%rip),%rsp <t0stack>
_locore_start+0x16: addq $0x4f10,%rsp
_locore_start+0x1d: subq $0x8,%rsp
_locore_start+0x21: movq %rdi,+0x431bf0(%rip) <sysp>
_locore_start+0x28: movq %rdx,+0x4138c9(%rip) <bootops>
_locore_start+0x2f:
movq $0xfffffffffbc13908,+0x45c5ee(%rip) <bootops> <bootopsp>
_locore_start+0x3a: movq %rdi,0x10(%rsp)
_locore_start+0x3f: movq %rsi,0x18(%rsp)
_locore_start+0x44: movq %rdx,0x20(%rsp)
_locore_start+0x49: movq %rcx,0x28(%rsp)
_locore_start+0x4e: movq %r8,0x30(%rsp)
_locore_start+0x53: movq %r9,0x38(%rsp)
_locore_start+0x58: pushfq
_locore_start+0x59: popq %r11
_locore_start+0x5b: movq %r11,0xd8(%rsp)
_locore_start+0x63: movq %cr0,%rax
_locore_start+0x66: orq $0x50000,%rax
_locore_start+0x6c: andq $0xffffffff9fffffff,%rax
_locore_start+0x72: movq %rax,%cr0
_locore_start+0x75: btsl $0x18,+0x431be3(%rip) <x86_featureset>
_locore_start+0x7d: xorl %ebp,%ebp
_locore_start+0x7f: movq %rsp,%rdi
_locore_start+0x82: pushq %rbp
_locore_start+0x83: movq %rsp,%rbp
_locore_start+0x86: call +0x380a5 <mlsetup>
_locore_start+0x8b: call +0x2634e0 <main>
_locore_start+0x90: leaq +0x7(%rip),%rdi <0xfffffffffb8000ae>
_locore_start+0x97: xorl %eax,%eax
_locore_start+0x99: call +0x813d2 <panic>

From above, we can see how _locore_start() called mlsetup(), and subsequently main().

Looking into the file:

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/i86pc/ml/locore.s

154 * XXX Make this less vile, please.
155 */
156 ENTRY_NP(_locore_start)
157
158 /*
159 * %rdi = boot services (should die someday)
160 * %rdx = bootops
161 * end
162 */
163
164 leaq edata(%rip), %rbp /* reference edata for ksyms */
165 movq $0, (%rbp) /* limit stack back trace */
166
167 /*
168 * Initialize our stack pointer to the thread 0 stack (t0stack)
169 * and leave room for a "struct regs" for lwp0. Note that the
170 * stack doesn't actually align to a 16-byte boundary until just
171 * before we call mlsetup because we want to use %rsp to point at
172 * our regs structure.
173 */
174 leaq t0stack(%rip), %rsp
175 addq $_CONST(DEFAULTSTKSZ - REGSIZE), %rsp
176 #if (REGSIZE & 15) == 0
177 subq $8, %rsp
178 #endif
179 /*
180 * Save call back for special x86 boot services vector
181 */
182 movq %rdi, sysp(%rip)
183
184 movq %rdx, bootops(%rip) /* save bootops */

And finally….

1049
1050 #endif /* !__xpv */
1051
1052 /*
1053 * mlsetup(%esp) gets called.
1054 */
1055 pushl %esp
1056 call mlsetup
1057 addl $4, %esp
1058

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/i86pc/os/mlsetup.c and its disassembly below:

[0]> mlsetup+0x715::dis
mlsetup+0x6e9: movq %rax,%rdi
mlsetup+0x6ec: call +0x2505f <setcr4>
mlsetup+0x6f1: jmp -0x588 <mlsetup+0x16e>
mlsetup+0x6f6: nop
mlsetup+0x6f8: movq $0xfffffffffb9375e8,%rdi
mlsetup+0x6ff: xorl %eax,%eax
mlsetup+0x701: call +0x1790ca <prom_printf>
mlsetup+0x706: call +0x176335 <prom_enter_mon>
mlsetup+0x70b: jmp -0x1a1 <mlsetup+0x56f>
mlsetup+0x710: call +0x2598b <kmdb_enter>
mlsetup+0x715: nopl (%rax)
mlsetup+0x718: jmp -0x275 <mlsetup+0x4a8>
mlsetup+0x71d: nopl (%rax)
mlsetup+0x720: movq %gs:0x10,%rdi
mlsetup+0x729: call -0x2e53e <cpuid_getfamily>
mlsetup+0x72e: cmpl $0x6,%eax
mlsetup+0x731: ja -0x5f7 <mlsetup+0x140>
mlsetup+0x737: movl $0xe,%esi
mlsetup+0x73c: movq $0xfffffffffbc31c70,%rdi <x86_featureset>
mlsetup+0x743: call -0x312e8 <is_x86_feature>
mlsetup+0x748: testl %eax,%eax
[0]>

Single-stepping further:

[0]> :s
kmdb: target stopped at:
kmdb_enter+0xe: call -0x5c3 <intr_restore>

[0]> $c
kmdb_enter+0xe()
mlsetup+0x715(fffffffffbc722a8)
_locore_start+0x8b()

[0]> :s
kmdb: target stopped at:
intr_restore: testq $0x200,%rdi

Now looking into the disassembly at the present point:

[0]> ::dis
intr_restore: testq $0x200,%rdi
intr_restore+7: je +0x1 <intr_restore+0xa>
intr_restore+9: sti
intr_restore+0xa: ret
0xfffffffffb85dc3b: nopl 0x0(%rax,%rax)
sti: sti
sti+1: ret
0xfffffffffb85dc42: nopw %cs:0x0(%rax,%rax)
cli: cli
cli+1: ret
0xfffffffffb85dc52: nopw %cs:0x0(%rax,%rax)

And then looking into the stacktrace:

[0]> $c
kmdb_enter+0xe()
mlsetup+0x715(fffffffffbc722a8)
_locore_start+0x8b()

We are therefore inside the kmdb_enter() processing function:

121 void
122 mlsetup(struct regs *rp, kfpu_t *fp)
123 {

135 /* drop into kmdb on boot -d */
136 if (boothowto & RB_DEBUGENTER)
137 kmdb_enter();
138

204 /*
205 * Initialize thread/cpu microstate accounting
206 */
207 init_mstate(&t0, LMS_SYSTEM);
208 init_cpu_mstate(CPU, CMS_SYSTEM);
209
210 /*
211 * Initialize lists of available and active CPUs.
212 */
213 cpu_list_init(CPU);
214
215 cpu_vm_data_init(CPU);
216
217 pg_cpu_bootstrap(CPU);
218
219 (void) prom_set_preprom(kern_splr_preprom);
220 (void) prom_set_postprom(kern_splx_postprom);
221 PRM_INFO("mlsetup: now ok to call prom_printf");

241
242 /*
243 * Negotiate hypervisor services, if any
244 */
245 hsvc_setup();
246 mach_soft_state_init();

Using these symbols, and googling, the following was found that gave a low down description of the bootup process:

http://www.cs.dartmouth.edu/~sergey/cs108/2009/l6.txt

%d bloggers like this: