An Introduction to APR 2.0 Christian Gross Consultant Montreal, Canada.

Slides:



Advertisements
Similar presentations
The Web Wizards Guide to Freeware/Shareware Chapter Six Open Source Software.
Advertisements

Introduction to the BinX Library eDIKT project team Ted Wen Robert Carroll
Operating System.
 Introduction Originally developed by Open Software Foundation (OSF), which is now called The Open Group ( Provides a set of tools and.
Apache Web Server v. 2.2 Reference Manual Chapter 4 Multi-Processing Modules (MPMs)
COSC 120 Computer Programming
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Speak A Simple VoIP Application CS529 Multimedia Networking Due date: October 21 st by 11:59pm Project 2.
Embedded Real-time Systems The Linux kernel. The Operating System Kernel Resident in memory, privileged mode System calls offer general purpose services.
Systems Programming Course Gustavo Rodriguez-Rivera.
Project Title: Cobra Implementation on Association Service.
Introduction to windows operating system i
1 I/O Management in Representative Operating Systems.
PHP Scripting Language. Introduction “PHP” is an acronym for “PHP: Hypertext Preprocessor.” It is an interpreted, server-side scripting language. Originally.
Speak A Simple VoIP Application Project 2 Due date: March 3 rd by 11:59pm.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
September 6, 2015 Connecting Client Applications to Informix Databases using IBM Informix Connect and ODBC James Edmiston Database Consultant Quest Information.
How to Configure Informix Connect and ODBC James Edmiston Informix DBA Consultant/Quest Information Systems, Inc. Informix User Forum 2005 Moving Forward.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Open Source Software: New and Noteworthy Presented September 30, 2004 SwANH InfoXChange Conference By Gregory C. Larkin.
Networked Application Architecture Design. Application Building Blocks Application Software Data Infrastructure Software Local Area Network Server Desktop.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
SB ScriptBasic Introduction to ScriptBasic There are more people writing programs in BASIC than the number of people capable programming.
Pegasus Status Update April April 2001 Karl Schopmeyer.
Blue Diamond Scott Auge Amduus Information Works, Inc.
Chapter 1 Introduction. Goal to learn about computers and programming to compile and run your first Java program to recognize compile-time and run-time.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
1 What is a Kernel The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
INVITATION TO COMPUTER SCIENCE, JAVA VERSION, THIRD EDITION Chapter 6: An Introduction to System Software and Virtual Machines.
Chapter 1 : The Linux System Part 1 Lecture 1 10/21/
CSE 2541 – Advanced C Programming. Course info Prereq – CSE 2221 or CSE 222 Co-req – CSE 2231 Website
CE Operating Systems Lecture 3 Overview of OS functions and structure.
* Property of STI Page 1 of 18 Software: Systems and Applications Basic Computer Concepts Software  Software: can be divided into:  systems software.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Server Performance, Scaling, Reliability and Configuration Norman White.
CS2204: Introduction to Unix January 19 th, 2004 Class Meeting 1 * Notes adapted by Christian Allgood from previous work by other members of the CS faculty.
CSUS Senior Project. Introduction Ryan - Our sponsor, their problem Aaron - Specifications and features Matt- Technical skills - Learning plan Jaspreet.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
CS 4244: Internet Programming Network Programming in Java 1.0.
An Introduction to Device Drivers Ted Baker  Andy Wang COP 5641 / CIS 4930.
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
Chapter 9: Networking with Unix and Linux. Objectives: Describe the origins and history of the UNIX operating system Identify similarities and differences.
JAVA INTRODUCTION. What is Java? 1. Java is a Pure Object – Oriented language 2. Java is developing by existing languages like C and C++. How Java Differs.
A Remote Collaboration Environment for Protein Crystallography HEPiX-HEPNT Conference, 8 Oct 1999 Nicholas Sauter, Stanford Synchrotron Radiation Laboratory.
Introduction to UNIX CS 2204 Class meeting 1 *Notes by Doug Bowman and other members of the CS faculty at Virginia Tech. Copyright
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Week1: Introduction to Computer Networks. Copyright © 2012 Cengage Learning. All rights reserved.2 Objectives 2 Describe basic computer components and.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Real world OS programming Nezer J. Zaidenberg.  Create process/thread  File and directory I/O  I/O multiplexing  Sync and locking  Access system.
OPERATING SYSTEM BY KINSHUK RASTOGI. WHAT IS AN OPERATING SYSTEM? What is an operating system in the first place? An operating system is a software that.
ITP 109 Week 2 Trina Gregory Introduction to Java.
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
Click anywhere to start the presentation. Steps to Resolve Error Code "17099" in MS Outlook Mac 2011 Fix Mac Outlook Corruption Issues OLM to PST Converter.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Chapter 1 Introduction to Computers, Programs, and Java
CASE STUDY 1: Linux and Android
ClamXav Antivirus Scanner: A Free Tool for Your Mac OS X
Pegasus Status Update April 2001
PHP / MySQL Introduction
Chapter 3: Windows7 Part 1.
Chapter 2: The Linux System Part 1
Presentation transcript:

An Introduction to APR 2.0 Christian Gross Consultant Montreal, Canada

Bio: Christian Gross Author of several books Conference speaker Skills – Specialization in Internet, and Infrastructure technologies – Windows, UNIX, LINUX server development Companies worked/consulted for – UBS, TATA, Grammer, National Westminster, Daimler Chrysler, ETSI, ITU, Fame, NCR, etc

Agenda Discuss what APR represents – Why APR – Main points of APR Go through demos that illustrate the various concepts of APR

APR???? APR: Apache Portable Run-time Mission Statement – The Apache Portable Run-time mission is to provide a library of routines that allows programmers to write a program once and be able to compile it anywhere

Yet another “Portable” Runtime? Original choices were NSPR, ACE or another library NSPR not used because of license issues and then too many features not required ACE used C++, which is useless with Apache Finally wrote APR, which is a continuation of ap_ work done in Apache 1.3.x

What APR does Abstracts the OS into a series of Apache related functions – Simpler for porting Apache to other platforms – Solves the following problems Threads Processes Directories APR Core: contains fundamental portable functions APR Util: contains functions that are not core, but need to be portable

Core APR Contains following functionality – Reading and writing of files – Character set conversion – Network communications using sockets – Time management used for Internet type conversions – String management like C++ including natural order management – UNIX Password management routines – Table management routines

Core APR (cont.) Contains following functionality (cont.) – UUID Internet generation – Filename canonicalization – Random data generation – Global lock management – Threads and process management – Dynamic library loading routines – Memory mapped and shared memory

Managing Data Structures Cross platform is problematic because not all functionality is supported Structures look like spaghetti typdef struct foo { #ifdef WIN32 LONG item1; DWORD item2; #endif LONG shared; }; Do not want to give programmers direct access – Violates cross-platform capabilities False sense of security

Incomplete Data Types Solves problem of managing data structures across platforms Data type is defined using a “handle” Data type is managed using a number of routines – Programmer does not have direct access to structure details But not all of APR is incomplete data type based

APR Status Codes Used to indicate when things work and do not work Different types of errors based on the sub-system that causes the error – Operating system native function calling error – Function calling error APR will provide error codes for OS’s that do not support the native error or maps error codes – Errors codes provided by layered application – Success codes Can include extra information indicating state

Examples Demos illustrating the various concepts of APR – Available at Look for Apache APR Demo Code

Where to get APR? APR is distributed with Apache 2.x Can get standalone version by going to There exists an APR mailing list at above mentioned website – Documentation is currently sparse

Thanks! Questions? (Send me )