Discovering Mac OS X Avinash Meetoo 13 January 2007 Linux User Group of Mauritius

Slides:



Advertisements
Similar presentations
Mac OS X Anja Philipp MAC OS X Anja Philipp
Advertisements

What is an operating system? Is it software?
14 Macintosh OS X Internals. © 2005 Pearson Addison-Wesley. All rights reserved The Macintosh Platform 1984 – first affordable GUI Based on Motorola 32-bit.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Linux vs. Windows. Linux  Linux was originally built by Linus Torvalds at the University of Helsinki in  Linux is a Unix-like, Kernal-based, fully.
CMPTR1 CHAPTER 3 COMPUTER SOFTWARE Application Software – The programs/software/apps that we run to do things like word processing, web browsing, and games.
BY MUKTADIUR RAHMAN DATE: JUNE 10, 2010 Introduction to iPhone SDK.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 2: Operating-System Structures.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Windows 2000 Vs. Mac OS X Comparing Windows 2000 and Mac OS X on the following grounds: 1) Architecture 2) Design Goals 3) Programming Interface/ User.
Installing Windows XP Professional Using Attended Installation Slide 1 of 41Session 2 Ver. 1.0 CompTIA A+ Certification: A Comprehensive Approach for all.
© 2010 IBM Corporation IBM Experience Modeler - Theme Editor Installing Python Image Library Presenter’s Name - Presenter’s Title DD Month Year.
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
Mac OS COMP 240. Mac OS OS X previously Mac OS X, is a series of Unix- based graphical interface operating systems developed, marketed, and sold by Apple.
Android Introduction Platform Overview.
Mac OS X Ivan Ma Senior Systems Engineer Apple.
Operating Systems Operating System
Chapter 4 Operating Systems and File Management. 4 Chapter 4: Operating Systems and File Management 2 Chapter Contents  Section A: Operating System Basics.
Survey of PC and Network Operating Systems
LINUX System : Lecture 3 Vmware, Cygwin, LINUX installation Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Java applet
Chapter 2 – Software Part A. Definition Computer is made up of two components Hardware Physical components Software Instructions for the computer Two.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Introduction to Interactive Media Interactive Media Tools: Software.
Software Writer:-Rashedul Hasan Editor:- Jasim Uddin.
VirtualBox What you need to know to build a Virtual Machine.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
An Introduction to Linux Name: Haixin Wang ID :
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Folio3 IPhone Training Session 1 Presenter: Imam Raza.
CMPF124 Basic Skills For Knowledge Workers Chapter 1 – Part 1 Introduction To Windows Operating Systems CMPF 112 : COMPUTING SKILLS.
Scott Ferguson Section 1
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Module 2 Part I Introduction To Windows Operating Systems Intro & History Introduction To Windows Operating Systems Intro & History.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
April 2, 2002 Craig E. Ward, 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.
Linux History C151 Multi-User Operating Systems. Open Source Programming Open source programming: 1983, Richard Stallman started the GNU Project (GNU.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Lesson 5 MULTIMEDIA. Multimedia on the Web has expanded rapidly as broadband connections have allowed users to connect at faster speeds. Almost all Web.
Operating Systems Overview Basic Computer Concepts Operating System What does an operating system do  A computer’s software acts similarly with.
Computer Operating Systems And Software applications.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Linux Essentials Chapter 1: Selecting an Operating System.
Computer System Structures
Introduction to threads
Chapter 5 Operating Systems.
Computers: Tools for an Information Age
Android Mobile Application Development
CSC227: Operating Systems
Macintosh & Linux Used to fill in pg 5 & 6 of “Operating Systems” Packet.
Operating System Concepts
The world’s most advanced mobile platform
SOFTWARE DEVELOPMENT KIT-ios and Blackberry
Android.
Introduction to Operating System (OS)
Chapter 6 Introduction to Network Operating Systems
McGraw-Hill Technology Education
5 SYSTEM SOFTWARE CHAPTER
Chapter 2: Operating-System Structures
Chapter 4.
Chapter 2: System Structures
Chapter 2: The Linux System Part 1
5 SYSTEM SOFTWARE CHAPTER
Mac OS X thread APIs Mach threads POSIX threads (pthreads)
Linux Professor Sabol.
F II 1. Background Objectives
Software - Operating Systems
Web Application Development Using PHP
Presentation transcript:

Discovering Mac OS X Avinash Meetoo 13 January 2007 Linux User Group of Mauritius

Plan ● Origins of Mac OS X ● A technical overview of Mac OS X ● Developing software on the Mac ● Using Mac OS X

Origins of Mac OS X

● Steve Jobs launches the Macintosh in 1984 ● He is thrown out of Apple in 1985 ● He creates a startup together with 5 Apple employees ● The NeXT running NEXTSTEP is launched in 1988

NEXTSTEP ● Was based on Mach 2.5 and 4.3BSD ● Had an advanced GUI based on Postscript ● Objective-C was the native programming language ● Had a graphical development environment – Interface Builder ● Offered several standard object-oriented frameworks – Application Kit – Sound Kit – Driver Kit

Apple needs Steve Jobs again... ● In 1995 Mac OS 7 is outdated – Very poor multitasking facilities – Suboptimal memory management – Not good enough to compete with Windows 95 ● In 1997 Apple buys NEXTSTEP – Steve Jobs becomes interim CEO – He announces that Apple's future OS will be based on NEXTSTEP technology – Mac OS 8 (in 1998) and Mac OS 9 (in 1999) are based on old classic technology and are still not good enough – Mac OS X is released on 24 march 2001

Technical overview of Mac OS X

What is Darwin? ● Similar to a Linux distribution ● Darwin is Open Source Software ● Darwin is not Mac OS X ● A collection of about 400 packages – Some from Apple ● OS9 ● NEXTSTEP – Some from the OSS and FSF communities ● GCC ● X11 ● etc. ● And a distribution needs a kernel

The xnu kernel – Mach 3.0 microkernel ● Essential services like process management, memory management including virtual memory, inter-process communication, real-time support, console I/O ● I/O Kit + drivers – FreeBSD 5 personality ● Security and permissions ● POSIX compliance ● High-performance networking ● Network Kernel Extensions ● Virtual file system layer ● Multiple file systems ● Full set of command-line tools ●...

Unix software on Mac OS X ● Mac OS X is POSIX compliant – Open source software written for Linux/BSD work ● Software can be installed manually... – download, configure, make, install ● Or automagically – Fink ● Provides Debian/Ubuntu toolset i.e. apt-get – MacPorts ● Provides BSD toolset i.e. port

– QuickTime ● Cross-platform multimedia technology for creating and delivering video, sound, animation, graphics, text, interactivity, and music. – CoreAudio ● Provides native, state-of-the-art, multichannel audio – CoreImage ● Image processing technology that leverages programmable GPU whenever possible – CoreVideo ● Provides an easy way to obtain frames from any video source and provides the opportunity to filter or transform them using Core Image or OpenGL – OpenGL ● Highly optimized implementation of OpenGL which is the industry standard for high performance 2D and 3D graphics

– Cocoa is an object-oriented framework to develop native Mac OS X applications ● Comes directly from NEXTSTEP ● Programmed in Objective-C generally – Carbon is a set of C and C++ functions developers use to take advantage of MacOS X ● It is a legacy API – Java support in Mac OS X is built around the foundation of the Java 2 Standard Edition

– Aqua defines the standard appearance of specific user interface components such as windows, menus, and controls – Dashboard is a display and management system for desktop utilities called widgets – Spotlight provides a new way of organizing and searching for information on your computer by using metadata – An assistive application interacts with an application's user interface to provide an alternative way for persons with disabilities to use the application

Software development on Mac OS X

● Mac OS X supports many development environments – UNIX (POSIX compliant) – Java (Java 5.0 compliant) ● WebObjects (Java Web Application Server) – Cocoa (NEXTSTEP technology) – Carbon (for legacy applications) – AppleScript (for inter-application scripting) – Automator (for automating repetitive tasks) – A host of open source, web, scripting, database, and development technologies ● LAMP ● Ruby on Rails ●...

UNIX development ● Complete GNU Compiler Collection – Version 4.0 – Compilers for C, C++, Objective-C, Fortran... ● Command line applications – Trivial to port as Mac OS X is POSIX compliant ● Two possibilities for GUI applications – Native Mac OS X GUI ● Carbon, Cocoa or Java – Standard UNIX technologies ● OpenGL, X11, Gtk, Qt, Tcl/Tk, wxWidgets...

Developing in Java ● Mac OS X provides a J2SE 5.0 implementation – javac / java – Netbeans – Eclipse – BlueJ ● WebObjects – Development environment with web services, data access and page generation capabilities – Free to use and to deploy – Plugins exist for Xcode, Eclipse, etc.

The Cocoa framework ● Object-oriented framework designed specifically for developing native applications – Includes a complete set of classes – Based on NEXTSTEP ● Objective-C is the primary language ● Bindings exist for other languages – Java, C/C++, AppleScript, Python, Ruby... ● Xcode is the IDE used to build Cocoa applications

Xcode ● Full graphical IDE ● Rapid Application Development ● Forms part of Mac OS X ● Technical caracteristics – Uses GCC and GDB – Allows for distributed compilation – Allows for cross compilation – Many major Apple (for example, the iLife suite) and third-party applications are coded in Xcode

AppleScript ● AppleScript is an English-like language used to write script files that automate the actions of the computer and the applications that run on it

Automator ● Automator Workflows are simple to create just by dragging items, pointing and clicking and they can accomplish all time- consuming, repetitive manual tasks quickly, efficiently and effortlessly

Acknowledgement ● Amit Singh – The book “Mac OS X Internals” – ● Aaron Hillegass – The book “Cocoa programming for Mac OS X” ● Ars Technica – ● Apple – –

A demonstration of Mac OS X, standard applications and iLife