10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes
|
|
|
- Victor O’Neal’
- 10 years ago
- Views:
Transcription
1 10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes Muli Ben-Yehuda IBM Haifa Research Labs Linux Kernel Workshop, March 2004 p.1/14
2 TOC What this talk is about User space vs. kernel space Memory allocation Processes vs. threads NPTL - Native POSIX Threads Library Optimization Use the right abstraction layer for the job Why coding style is important Why you should always check for errors The real cost of software development Portability Linux Kernel Workshop, March 2004 p.2/14
3 What this talk is about This talk is about common misconceptions, and things I think every Linux programmer should know. This talk is about learning from other people s experience and mistakes. This talk is about how to write better software. It s about knowing how things work; Knowing how things work lets us embrace and extend Linux. This talk represents my opinions, and mine only. Feel free to disagree... Linux Kernel Workshop, March 2004 p.3/14
4 User space vs. kernel space A process is executing either in user space, or in kernel space. Depending on which priviledges, address space and address (EIP) a process is executing in, we say that it is either in user space, or kernel space. When executing in user space, a process has normal priviledges and can and can t do certain things. When executing in kernel space, a process has every priviledge, and can do anything. Processes switch between user space and kernel space using system calls. Note that there are exceptions and mixed cases, such as processes using iopl(). The biggest difference between user space and kernel space is conceptual - the programmer s state of mind. Linux Kernel Workshop, March 2004 p.4/14
5 Memory Allocation malloc is a library function, implemented in the standard C library. It is not a system call. malloc is implemented by two means in Linux. The first is the brk() system call, which grows a process s data segment. The second is mapping /dev/zero to get anonymous memory. In both cases, the end result is the same. The kernel allocates a virtual memory area for the application, but does not allocate physical memory for it. Only when the area is accessed physical memory is allocated. This is known as memory overcommit, and there are ways to disable it. Do you really need your own malloc implementation? Is malloc() really too slow for you? Linux Kernel Workshop, March 2004 p.5/14
6 Processes vs. threads In Linux, processes and threads are almost the same. The major difference is that threads share the same virtual memory address space. The low level interface to create threads is the clone() system call. The higher level interface is pthread_create(). Context switches between processes in Linux are fast. Context switches between threads are even faster. Which is better, multi process or multi threaded? depends. Linux threading is 1-1, not 1-N or M-N. Linux threading libraries evolution: Linux Threads, NGPT, NPTL. The library is part of gilbc, programmer interface is POSIX pthreads. Linux Kernel Workshop, March 2004 p.6/14
7 NPTL - Native POSIX Threads Library The New POSIX Threads Library, written by Ulrich Drepper and Ingo Molnar of Red Hat, Inc. Addresses shortcomings in the design and implementation of Linux Threads. Makes use of improved Linux kernel code and facilities. In places, the changes were written specifically for NPTL. Uses the newly added Futexes (Fast User space Mutexes). Standard in kernel 2.5 and up, and back ported to 2.4 by Red Hat. For more information, Linux Kernel Workshop, March 2004 p.7/14
8 Optimization Knuth: "Premature optimization is the root of all evil". Avoid the desire to optimize prematurely; concentrate on getting it working first. When it s time to optimize, profile, profile, profile. The desire to search for the coin under the streetlight is strong, and must be resisted. Optimize algorithms first, implementation second. There s (almost) no excuse for assembly. Decide how fast is fast enough. Optimize the system before components. Never forget you are not running alone. There are libraries, background processes, the kernel, the CPU and the peripherals. Linux Kernel Workshop, March 2004 p.8/14
9 Use the right abstraction layer Use the right language for the job. Use the right tools for the job. Should you be writing in a high level language, low level language, object oriented, functional, logic programming or procedural language? which can express the problem domain best? Balance between the desire to learn new tools and techniques and the need to deliver on time and on budget. Make sure you have several hammers, but don t disdain a hammer just because you ve already used it. perl::open(), fopen(), open() or int 0x80? Linux Kernel Workshop, March 2004 p.9/14
10 Why coding style is important Your code does not belong to you. Someone will be maintaining and extending it long after you are gone. Many eyes make all bugs shallow, but if no one can understand your code, no one will look at it. There s plenty of room for personal expression even when using someone else s coding style. Avoid Hungarian notation. Leave the compiler s job to the compiler. Read Documentation/CodingStyle. Burn it if you want, but follow it. Linux Kernel Workshop, March 2004 p.10/14
11 Why you should always check for errors Anything that can go wrong, will. It s your responsibility to do the best job you can, and that includes handling errors. It s the thing you don t expect to fail that will. If there s nothing to be done when an error occures, your design is probably wrong. Nevertheless, leave a comment for the next programmer to read the code. The distance between an unchecked error and a security hole is very short. Always have sanity checks - you want to catch the error as close as possible to where it occures. Check printf() and close(). Be very wary of any string function that doesn t take an explicit length parameter. Linux Kernel Workshop, March 2004 p.11/14
12 The real cost of software development Maintenance costs far more than development. How often have people go on using that ten liner script you wrote year ago? how often did it become production? mission critical? There s nothing more permanent than the temporary. Throw away code never is. Always write code with an eye to the people who will read it after you. A few years later it might be you, and you ll appreciate every comment you left. Write for people, not compilers or processors. Linux Kernel Workshop, March 2004 p.12/14
13 Portability Portability doesn t cost you, within reason, and can save you time, money and effort down the line. Today s platform is tomorrow s garbage. Platforms and operating environments change, and your code must change with them. Prefer cross platform toolkits and environments. If you must do something platform-specific, abstract it well in its own interchangeable component. Avoid multiple portability layers - a good one is enough. Don t try to abstract that which is inherently different. Linux Kernel Workshop, March 2004 p.13/14
14 Questions, Answers, Comments? What do you think every Linux programmer should know? Linux Kernel Workshop, March 2004 p.14/14
Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney
Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
Performance Comparison of RTOS
Performance Comparison of RTOS Shahmil Merchant, Kalpen Dedhia Dept Of Computer Science. Columbia University Abstract: Embedded systems are becoming an integral part of commercial products today. Mobile
Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023
Operating Systems Autumn 2013 Outline 1 2 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Chapter 1: Operating System Models 1 2 Operating System Models 2.1 Introduction Over the past several years, a number of trends affecting operating system design are witnessed and foremost among them is
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Parrot in a Nutshell. Dan Sugalski [email protected]. Parrot in a nutshell 1
Parrot in a Nutshell Dan Sugalski [email protected] Parrot in a nutshell 1 What is Parrot The interpreter for perl 6 A multi-language virtual machine An April Fools joke gotten out of hand Parrot in a nutshell
Operating System Overview. Otto J. Anshus
Operating System Overview Otto J. Anshus A Typical Computer CPU... CPU Memory Chipset I/O bus ROM Keyboard Network A Typical Computer System CPU. CPU Memory Application(s) Operating System ROM OS Apps
Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications
Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications Jun Wang, Xi Xiong, Peng Liu Penn State Cyber Security Lab 1 An inherent security limitation
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
The Native POSIX Thread Library for Linux
The Native POSIX Thread Library for Linux February 2003 by: Ulrich Drepper and Ingo Molnar Abstract The Linux Threads library which is currently part of the standard runtime environment of a Linux system
Get the Better of Memory Leaks with Valgrind Whitepaper
WHITE PAPER Get the Better of Memory Leaks with Valgrind Whitepaper Memory leaks can cause problems and bugs in software which can be hard to detect. In this article we will discuss techniques and tools
Virtualization. Jukka K. Nurminen 23.9.2015
Virtualization Jukka K. Nurminen 23.9.2015 Virtualization Virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms,
Virtual Routing: What s The Goal? And What s Beyond? Peter Christy, NetsEdge Research Group, August 2001
Virtual Routing: What s The Goal? And What s Beyond? Peter Christy, NetsEdge Research Group, August 2001 Virtual routing is a software design method used to provide multiple independent routers that share
How To Write Portable Programs In C
Writing Portable Programs COS 217 1 Goals of Today s Class Writing portable programs in C Sources of heterogeneity Data types, evaluation order, byte order, char set, Reading period and final exam Important
COS 318: Operating Systems
COS 318: Operating Systems File Performance and Reliability Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Topics File buffer cache
New Mexico Broadband Program. Basic Computer Skills. Module 1 Types of Personal Computers Computer Hardware and Software
New Mexico Broadband Program Basic Computer Skills Module 1 Types of Personal Computers Computer Hardware and Software Basic Computer Skills Learning Objectives Acquire introductory familiarity with basic
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Intel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth
Application Software Development Tool Suite 2.2 for Atom processor In-Depth Contents Application Software Development Tool Suite 2.2 for Atom processor............................... 3 Features and Benefits...................................
Virtualizare sub Linux: avantaje si pericole. Dragos Manac
Virtualizare sub Linux: avantaje si pericole Dragos Manac 1 Red Hat Enterprise Linux 5 Virtualization Major Hypervisors Xen: University of Cambridge Computer Laboratory Fully open sourced Set of patches
International Engineering Journal For Research & Development
Evolution Of Operating System And Open Source Android Application Nilesh T.Gole 1, Amit Manikrao 2, Niraj Kanot 3,Mohan Pande 4 1,M.tech(CSE)JNTU, 2 M.tech(CSE)SGBAU, 3 M.tech(CSE),JNTU, Hyderabad 1 [email protected],
Apache 2.0 Installation Guide
Apache 2.0 Installation Guide Ryan Spangler [email protected] http://ceut.uww.edu May 2002 Department of Business Education/ Computer and Network Administration Copyright Ryan Spangler 2002 Table of
Threads Scheduling on Linux Operating Systems
Threads Scheduling on Linux Operating Systems Igli Tafa 1, Stavri Thomollari 2, Julian Fejzaj 3 Polytechnic University of Tirana, Faculty of Information Technology 1,2 University of Tirana, Faculty of
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
Building an Inexpensive Parallel Computer
Res. Lett. Inf. Math. Sci., (2000) 1, 113-118 Available online at http://www.massey.ac.nz/~wwiims/rlims/ Building an Inexpensive Parallel Computer Lutz Grosz and Andre Barczak I.I.M.S., Massey University
Book 3 Cost Estimating in an Agile Development Environment. (early release)
Book 3 Cost Estimating in an Agile Development Environment (early release) Book 3: Cost Estimating in an Agile Development Environment In this third book I ll use the slides I gave at a speech several
How to Perform Real-Time Processing on the Raspberry Pi. Steven Doran SCALE 13X
How to Perform Real-Time Processing on the Raspberry Pi Steven Doran SCALE 13X Outline What is Real-Time? What is the Raspberry Pi? Can the Raspberry Pi handle Real-Time (And why would you want to? Why
Is the Scanning of Computer Networks Dangerous?
Baltic DB & IS 2008 Tallinn University of Technology Is the Scanning of Computer Networks Dangerous? 5.06.2008 The talk is about... The need of network scanning, its main principles and related problems
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
OPERATING SYSTEM SERVICES
OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered
Architecting For Failure Why Cloud Architecture is Different! Michael Stiefel www.reliablesoftware.com development@reliablesoftware.
Architecting For Failure Why Cloud Architecture is Different! Michael Stiefel www.reliablesoftware.com [email protected] Outsource Infrastructure? Traditional Web Application Web Site Virtual
Introduction to Embedded Systems. Software Update Problem
Introduction to Embedded Systems CS/ECE 6780/5780 Al Davis logistics minor Today s topics: more software development issues 1 CS 5780 Software Update Problem Lab machines work let us know if they don t
Best Practices for Java Projects Horst Rechner
Best Practices for Java Projects Horst Rechner Abstract: The combination of automated builds with module and integration tests and centralized bug and work tracking using a combination of Eclipse, Mylyn,
Lua as a business logic language in high load application. Ilya Martynov [email protected] CTO at IPONWEB
Lua as a business logic language in high load application Ilya Martynov [email protected] CTO at IPONWEB Company background Ad industry Custom development Technical platform with multiple components Custom
Virtualization Technologies
12 January 2010 Virtualization Technologies Alex Landau ([email protected]) IBM Haifa Research Lab What is virtualization? Virtualization is way to run multiple operating systems and user applications on
CSE 265: System and Network Administration. CSE 265: System and Network Administration
CSE 265: System and Network Administration MW 9:10-10:00am Packard 258 F 9:10-11:00am Packard 112 http://www.cse.lehigh.edu/~brian/course/sysadmin/ Find syllabus, lecture notes, readings, etc. Instructor:
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes) John Ousterhout Sun Microsystems Laboratories [email protected] http://www.sunlabs.com/~ouster Introduction Threads: Grew up in OS world (processes).
Format string exploitation on windows Using Immunity Debugger / Python. By Abysssec Inc WwW.Abysssec.Com
Format string exploitation on windows Using Immunity Debugger / Python By Abysssec Inc WwW.Abysssec.Com For real beneficiary this post you should have few assembly knowledge and you should know about classic
Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005
Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1
CSE 265: System and Network Administration
CSE 265: System and Network Administration MW 1:10-2:00pm Maginnes 105 http://www.cse.lehigh.edu/~brian/course/sysadmin/ Find syllabus, lecture notes, readings, etc. Instructor: Prof. Brian D. Davison
3 Red Hat Enterprise Linux 6 Consolidation
Whitepaper Consolidation EXECUTIVE SUMMARY At this time of massive and disruptive technological changes where applications must be nimbly deployed on physical, virtual, and cloud infrastructure, Red Hat
IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft Hyper-V Server Agent Version 6.3.1 Fix Pack 2.
IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft Hyper-V Server Agent Version 6.3.1 Fix Pack 2 Reference IBM Tivoli Composite Application Manager for Microsoft Applications:
Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification
Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by
SYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
Virtualization. Explain how today s virtualization movement is actually a reinvention
Virtualization Learning Objectives Explain how today s virtualization movement is actually a reinvention of the past. Explain how virtualization works. Discuss the technical challenges to virtualization.
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich
I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation Mathias Payer, ETH Zurich Motivation Applications often vulnerable to security exploits Solution: restrict application
Monitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
Tutorial: Getting Started
9 Tutorial: Getting Started INFRASTRUCTURE A MAKEFILE PLAIN HELLO WORLD APERIODIC HELLO WORLD PERIODIC HELLO WORLD WATCH THOSE REAL-TIME PRIORITIES THEY ARE SERIOUS SUMMARY Getting started with a new platform
The MaXX Desktop. Workstation Environment. Revised Road Map Version 0.7. for Graphics Professionals
The MaXX Desktop Workstation Environment for Graphics Professionals Revised Road Map Version 0.7 Document History Author Date Version Comments Eric Masson 01/11/2007 0.5 First Draft Eric Masson 18/11/2007
Web development... the server side (of the force)
Web development... the server side (of the force) Fabien POULARD Document under license Creative Commons Attribution Share Alike 2.5 http://www.creativecommons.org/learnmore Web development... the server
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
MPI and Hybrid Programming Models. William Gropp www.cs.illinois.edu/~wgropp
MPI and Hybrid Programming Models William Gropp www.cs.illinois.edu/~wgropp 2 What is a Hybrid Model? Combination of several parallel programming models in the same program May be mixed in the same source
EECS 750: Advanced Operating Systems. 01/28 /2015 Heechul Yun
EECS 750: Advanced Operating Systems 01/28 /2015 Heechul Yun 1 Recap: Completely Fair Scheduler(CFS) Each task maintains its virtual time V i = E i 1 w i, where E is executed time, w is a weight Pick the
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
Automated Acceptance Testing of High Capacity Network Gateway
Automated Acceptance Testing of High Capacity Network Gateway Ran Nyman 1, Ismo Aro 2, Roland Wagner 3, 1,2,3 Nokia Siemens Network, PO Box 1 FI-02022 Nokia Siemens Networks 1 [email protected], 2 [email protected],
Linux Scheduler Analysis and Tuning for Parallel Processing on the Raspberry PI Platform. Ed Spetka Mike Kohler
Linux Scheduler Analysis and Tuning for Parallel Processing on the Raspberry PI Platform Ed Spetka Mike Kohler Outline Abstract Hardware Overview Completely Fair Scheduler Design Theory Breakdown of the
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
Setting up your office
Setting up your office 01 Setting up your office Before you start your business, you ll need to make a few decisions about how to set up your office and run your business operations day to day. It s worth
Performance Evaluation and Optimization of A Custom Native Linux Threads Library
Center for Embedded Computer Systems University of California, Irvine Performance Evaluation and Optimization of A Custom Native Linux Threads Library Guantao Liu and Rainer Dömer Technical Report CECS-12-11
Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61
F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase
CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
Linux Server Support by Applied Technology Research Center. Proxy Server Configuration
Linux Server Support by Applied Technology Research Center Proxy Server Configuration We configure squid for your LAN. Including transparent for HTTP and proxy for HTTPS. We also provide basic training
COS 318: Operating Systems
COS 318: Operating Systems OS Structures and System Calls Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Outline Protection mechanisms
Testing Rails. by Josh Steiner. thoughtbot
Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................
Comparison between scheduling algorithms in RTLinux and VxWorks
Comparison between scheduling algorithms in RTLinux and VxWorks Linköpings Universitet Linköping 2006-11-19 Daniel Forsberg ([email protected]) Magnus Nilsson ([email protected]) Abstract The
Chapter 10 Case Study 1: LINUX
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 10 Case Study 1: LINUX History of UNIX and Linux UNICS PDP-11 UNIX Portable UNIX Berkeley UNIX Standard UNIX MINIX Linux UNIX/Linux Goals
How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself
How do Users and Processes interact with the Operating System? Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI,
Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program
Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program ITESO University Guadalajara, Jalisco México 1 Instituto Tecnológico y de Estudios Superiores de Occidente Jesuit
Lab 0 (Setting up your Development Environment) Week 1
ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself
Oracle Installation Guide 11g Release 2 for Windows
Oracle Installation Guide 11g Release 2 for Windows STEPS TO INSTALL ORACLE ON YOUR WINDOWS MACHINE Step 1: Creating an OTN Account Step 2: Downloading Oracle 11g Step 3: Unzipping Oracle Step 4: Installing
The ethics questions test students on reading comprehension and elementary logic.
FE Exam Information 18-1 The ethics questions test students on reading comprehension and elementary logic. Assumptions are necessary since exam problems may not give complete information. Answers that
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Lab 2 : Basic File Server. Introduction
Lab 2 : Basic File Server Introduction In this lab, you will start your file system implementation by getting the following FUSE operations to work: CREATE/MKNOD, LOOKUP, and READDIR SETATTR, WRITE and
PDF Primer PDF. White Paper
White Paper PDF Primer PDF What is PDF and what is it good for? How does PDF manage content? How is a PDF file structured? What are its capabilities? What are its limitations? Version: 1.0 Date: October
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
How Router Technology Shapes Inter-Cloud Computing Service Architecture for The Future Internet
How Router Technology Shapes Inter-Cloud Computing Service Architecture for The Future Internet Professor Jiann-Liang Chen Friday, September 23, 2011 Wireless Networks and Evolutional Communications Laboratory
Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching
IT 3123 Hardware and Software Concepts Operating Systems II October 26 Multiprogramming Two or more application programs in memory. Consider one CPU and more than one program. This can be generalized to
The 2014 Bottleneck Report on Enterprise Mobile
The 2014 Bottleneck Report on Enterprise Mobile What s the big bottleneck for enterprise mobile app development this year, and how do you get past it? 1 / 32 The 2014 Bottleneck Report on Enterprise Mobile
Microsoft Windows Server 2003 with Internet Information Services (IIS) 6.0 vs. Linux Competitive Web Server Performance Comparison
April 23 11 Aviation Parkway, Suite 4 Morrisville, NC 2756 919-38-28 Fax 919-38-2899 32 B Lakeside Drive Foster City, CA 9444 65-513-8 Fax 65-513-899 www.veritest.com [email protected] Microsoft Windows
Using Linux as Hypervisor with KVM
Using Linux as Hypervisor with KVM Qumranet Inc. Andrea Arcangeli [email protected] (some slides from Avi Kivity) CERN - Geneve 15 Sep 2008 Agenda Overview/feature list KVM design vs other virtualization
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Red Hat Linux Internals
Red Hat Linux Internals Learn how the Linux kernel functions and start developing modules. Red Hat Linux internals teaches you all the fundamental requirements necessary to understand and start developing
