Sviluppo Di Un Prelogonagent Per Il Reset Autonomo Di Password Active Directory Su Piattaforma Macos

Total Page:16

File Type:pdf, Size:1020Kb

Sviluppo Di Un Prelogonagent Per Il Reset Autonomo Di Password Active Directory Su Piattaforma Macos Università degli Studi di Padova Dipartimento di Matematica "Tullio Levi-Civita" Corso di Laurea in Informatica Sviluppo di un PreLogonAgent per il reset autonomo di password Active Directory su piattaforma macOS Tesi di laurea triennale Relatore Prof.Claudio Enrico Palazzi Laureando Pardeep Singh Matricola 1143264 ii Anno Accademico 2018-2019 Pardeep Singh: Sviluppo di un PreLogonAgent per il reset autonomo di password Active Directory su piattaforma macOS, Tesi di laurea triennale, c Settembre 2019. Sommario Il presente documento descrive il lavoro svolto durante il periodo di stage, della durata di circa trecentoventi ore, dal laureando Pardeep Singh presso l’azienda NETCOM 1. Lo stage consisteva nel trovare una valida soluzione per poter permettere all’utente finale di accedere al sito (tramite un browser opportunamente limitato) di Hydro- gen[g] direttamente dalla schermata di login di Apple macOS. Gli obiettivi da raggiungere erano molteplici, e sono descritti di seguito. In primo luogo era richiesto lo studio del componente Hydrogen Custom Logon dispo- nibile per il sistema operativo Microsoft Windows e Ubuntu Linux. In secondo luogo era richiesta un’analisi delle problematiche derivanti dalla chiusura del sistema operativo Apple macOS, e delle varie versioni dello stesso. In seguito a ciò, era richiesta l’identificazione e tracciamento dei requisiti che deve possedere il componente software sviluppato. Terzo ed ultimo obiettivo era definire un’architettura ad alto livello e organizzare i componenti, passando infine alla fase di implementazione e test. 1https://www.netcom.it/ v “If you cannot do great things, do small things in a great way” — Napoleon Hill Ringraziamenti Innanzitutto, vorrei esprimere la mia gratitudine al Prof. Claudio Enrico Palazzi, relatore della mia tesi, per l’aiuto e il sostegno fornitomi durante la stesura del lavoro. Vorrei ringraziare tanto anche il tutor Claudio Guarisco di NETCOM 2, che mi ha segui- to con molta disponibilità per tutta la durata del tirocinio fornendomi tanti consigli utili. Desidero ringraziare con affetto i miei genitori per il sostegno, il grande aiuto e per essermi stati vicini in ogni momento durante gli anni di studio. Un grande ringraziamento a mio fratello e mia sorella, che mi hanno insegnato a non arrendersi mai e mi hanno sempre sostenuto. Ho desiderio di ringraziare poi i miei cari amici per tutto il tempo passato insieme in questo percorso di studi. Padova, Settembre 2019 Pardeep Singh 2https://www.netcom.it/ vii Indice 0.1 Organizzazione del testo . .1 1 Descrizione dell’azienda3 1.1 L’azienda . .3 1.2 Organigramma . .4 1.3 I servizi offerti . .5 1.4 Tecnologie . .6 2 Descrizione dello stage9 2.1 Origini del progetto Hydrogen.......................9 2.2 Scopo dello stage . .9 2.3 Obiettivi . 10 2.3.1 Obbligatori . 10 2.3.2 Desiderabili . 10 2.3.3 Facoltativi . 11 2.4 Tecnologie adottate . 11 3 Organizzazione dello stage 13 3.1 Piano di lavoro . 13 3.2 Fasi del progetto . 13 4 Analisi dei requisiti 15 4.1 Analisi delle caratteristiche del prodotto finale . 15 4.1.1 Possibili approcci per lo sviluppo del componente . 15 4.1.2 Criteri di valutazione per la scelta della soluzione da sviluppare 16 4.1.3 Considerazioni sul browser da adottare . 16 4.2 Active Directory su macOS . 17 4.3 Casi d’uso . 17 4.3.1 Caso d’uso principale . 17 4.4 Tracciamento dei requisiti . 17 4.5 Approcci per la creazione del componente . 19 4.5.1 Authorization plug-in . 19 4.5.2 Pre-Logon Agents . 22 5 Progettazione e codifica 25 5.1 Tecnologie e strumenti . 25 5.2 Progettazione . 25 5.2.1 Struttura del progetto . 26 5.2.2 Namespace "MacLogonAgent.Core" . 26 5.2.3 Namespace "MacLogonAgent.Installer.Core" . 29 ix x INDICE 5.2.4 Namespace "MacLogonAgent.Installer.RequestURL" . 30 5.3 Codifica . 30 5.3.1 Installer per l’agent . 31 6 Verifica e validazione 33 6.1 Test . 33 6.1.1 Test di unità . 33 6.1.2 Test di sistema . 34 7 Documentazione 35 7.1 Manuale utente . 35 7.2 Manuale sviluppatore . 35 8 Conclusioni 37 8.1 Raggiungimento degli obiettivi . 37 8.1.1 Obbligatori . 37 8.1.2 Desiderabili . 37 8.1.3 Facoltativi . 37 8.2 Rispetto delle scadenze . 38 8.3 Conoscenze acquisite e valutazione personale . 38 Glossary 41 Acronyms 45 Bibliografia 47 Elenco delle figure 1.1 Logo di NETCOM . .3 1.2 Organigramma di NETCOM . .4 1.3 Panoramica dei servizi offerti da Ivanti Endpoint Manager . .7 1.4 Panoramica del servizio SRS di Snow . .8 3.1 Diagramma di Gantt per il progetto di stage . 13 4.1 Use Case - UC1: Scenario principale . 17 4.2 Diagramma dei package per l’authorization plug-in ........... 19 4.3 Schermata che rappresenta il form di login ottenuto con il plug-in... 21 4.4 Esempio di definizione di un’attività. 24 5.1 Diagramma dei package di MacLogonAgent ............... 26 5.2 Diagramma delle classi del namespace "MacLogonAgent.Core". 27 5.3 Descrizione file MacLogonAgent_Core.plist............... 27 5.4 Pulsante principale che permette di aprire il browser . 28 5.5 Schermata del browser . 29 5.6 Schermata dell’installer grafico . 30 5.7 Script "postInstall.py" . 31 5.8 Script "silentInstall.py" . 32 5.9 Script di disinstallazione "uninstall.py" . 32 5.10 Script di modifica dell’URL “changeURL.py” . 32 7.1 Schermata del manuale utente in italiano . 35 7.2 Schermata del manuale sviluppatore in italiano . 36 8.1 Consuntivo delle ore per fase di progetto . 38 xi xii ELENCO DELLE TABELLE Elenco delle tabelle 4.1 Tabella del tracciamento dei requisti funzionali . 18 4.2 Tabella del tracciamento dei requisiti di vincolo . 18 4.3 Tabella che illustra i percorsi interpretati da Launchd......... 23 0.1. ORGANIZZAZIONE DEL TESTO 1 0.1 Organizzazione del testo Il primo capitolo descrive in breve quello che è la mission dell’azienda NETCOM 3 citando anche alcuni degli strumenti utilizzati. Il secondo capitolo descrive le origini del progetto di stage, elencando anche tutti gli obiettivi da raggiungere. Il terzo capitolo approfondisce le varie attività inerenti il progetto di stage. Il quarto capitolo approfondisce l’attività di Analisi dei requisiti. Il quinto capitolo approfondisce le fasi di progettazione e implementazione del progetto di stage. Il sesto capitolo descrive il modo in cui ci si è assicurati di produrre codice funzio- nante. Inoltre, si parla anche della documentazione del progetto. Nel settimo capitolo vengono descritti gli obiettivi che sono stati raggiunti a fine stage, e le conoscenze acquisite dallo stagista. Riguardo la stesura del testo, relativamente al documento sono state adottate le seguenti convenzioni tipografiche: • gli acronimi, le abbreviazioni e i termini ambigui o di uso non comune menzionati vengono definiti nel glossario, situato alla fine del presente documento. • per la prima occorrenza dei termini riportati nel glossario viene utilizzata la seguente nomenclatura: parola[g] . • i termini in lingua straniera o facenti parte del gergo tecnico sono evidenziati con il carattere corsivo. • alcuni termini importanti sono riportati in grassetto. • alcuni termini (ad esempio il nome di un metodo) sono riportati con sottolineatura. 3https://www.netcom.it/ Capitolo 1 Descrizione dell’azienda Il presente capitolo si occupa di definire il contesto aziendale nel quale si è svolto lo stage. Viene presentata l’azienda NETCOM spiegando di cosa si occupa, i servizi offerti, e l’ambito d’innovazione in cui si inserisce. Mentre il secondo capitolo si occupa di fornire un’introduzione al progetto di stage spiegando anche gli obiettivi da raggiungere. 1.1 L’azienda Figura 1.1: Logo di NETCOM NETCOM nasce nel 1999 con l’obiettivo di proporre sul mercato soluzioni e servizi per l’IT Life Cycle Management e l’IT Governance, e si rivolge alle aziende che vogliono migliorare l’efficienza dei sistemi IT, attraverso una corretta gestione dei software, ottenendo importanti risultati e risparmi in termini di investimenti, tempi e costi di gestione. L’IT Life Cycle Management è reso possibile da un insieme di processi, procedure, strumenti e conoscenze che puntano alla gestione di un sistema informativo durante tutto il suo ciclo di vita. L’obiettivo finale è ottimizzare l’intero sistema di un’organiz- zazione riducendo i costi, i rischi e producendo un generale aumento della qualità. Entrando più in dettaglio, l’IT Life Cycle Management si compone di due aspetti: • Gestione di Endpoint[g] con approccio UEM Riguarda la gestione degli Endpoint che compongono il sistema, tramite l’ap- proccio Unified Endpoint Management(UEM). Si occupa della risoluzione dei problemi che possono eventualmente verificarsi, ma anche tutte le altre attività 3 4 CAPITOLO 1. DESCRIZIONE DELL’AZIENDA di cadenza regolare, quali ad esempio l’aggiornamento del pacchetto software, la distribuzione di patch di sicurezza o l’assistenza tecnica. • Ottimizzazione degli investimenti software Riguarda la gestione degli Asset software. Infatti una corretta gestione di questi asset porta all’ottimizzazione dei loro costi (licenze), e aumenta l’efficienza operativa; inoltre si migliora la pianificazione del budget e soprattutto si gestiscono i rischi legati all’utilizzo improprio del software, come ad esempio: rischi legali, spese non pianificate, danni d’immagine ed interruzione del servizio. Tutto questo è reso possibile grazie all’adozione dell’approccio Software asset management (SAM). È quindi evidente che, per la natura dell’ambito in cui opera, il cliente tipo è un’a- zienda di dimensioni medio-grandi che possiede un sistema informativo composto da un numero di Endpoint compreso tra le 250 e le 10000 unità. Attualmente il portfolio clienti conta più di 150 società italiane sia pubbliche che private operanti nei settori: fashion, manufacturing, sanità, pubblica amministrazione locale e centrale, università e settore bancario. Il valore aggiunto di NETCOM, rispetto ai competitors è sicuramente il riconoscimento certificato della gestione dei processi aziendali sulla base di procedure standard.
Recommended publications
  • Porting Codewarrior Projects to Xcode
    Porting CodeWarrior Projects to Xcode 2006-09-05 Intel and Intel Core are registered Apple Computer, Inc. trademarks of Intel Corportation or its © 2003, 2006 Apple Computer, Inc. subsidiaries in the United States and other All rights reserved. countries. Java and all Java-based trademarks are No part of this publication may be trademarks or registered trademarks of Sun reproduced, stored in a retrieval system, or Microsystems, Inc. in the U.S. and other transmitted, in any form or by any means, countries. mechanical, electronic, photocopying, recording, or otherwise, without prior OpenGL is a registered trademark of Silicon written permission of Apple Computer, Inc., Graphics, Inc. with the following exceptions: Any person PowerPC and and the PowerPC logo are is hereby authorized to store documentation trademarks of International Business on a single computer for personal use only Machines Corporation, used under license and to print copies of documentation for therefrom. personal use provided that the Simultaneously published in the United documentation contains Apple’s copyright States and Canada. notice. Even though Apple has reviewed this document, The Apple logo is a trademark of Apple APPLE MAKES NO WARRANTY OR Computer, Inc. REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS Use of the “keyboard” Apple logo DOCUMENT, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A (Option-Shift-K) for commercial purposes PARTICULAR PURPOSE. AS A RESULT, THIS without the prior written consent of Apple DOCUMENT IS PROVIDED “AS IS,” AND YOU, THE READER, ARE ASSUMING THE may constitute trademark infringement and ENTIRE RISK AS TO ITS QUALITY AND unfair competition in violation of federal ACCURACY.
    [Show full text]
  • Icem: Un’ Applicazione Per L’Iphone
    massimo cocco icem: un’ applicazione per l’iphone tesi di laurea Relatore: Prof. Paolo Baldan Università degli Studi di Padova Facoltà di Informatica Dipartimento di Scienze Matematiche Naturali MM FF NN Febbraio 2011 I’m never giving in On with the show - Queen - The Show Must Go On - Dedicato a mio nonno. INDICE 1 introduzione 1 1.1 ”Tutto cambia. Di nuovo” 1 1.2 Introduzione al progetto 2 1.2.1 Corporate Energy Mangement Application 2 1.2.2 L’azienda Autoware e iCEM 3 1.2.3 Settori sviluppati dallo studente 5 2 analisi del progetto 7 2.1 Studio di fattibilità 8 3 use case 9 3.1 Use case: Area filter 9 3.2 Use Case: Area risultati 10 3.3 Use case: Area Events 11 3.4 Use case: Dettagli Eventi 12 3.5 Ciclo di vita 13 4 il linguaggio object c 15 4.1 La struttura del linguaggio 15 5 strumenti utilizzati 19 5.1 Xcode 19 5.2 Xcode IDE 19 5.3 Interface Builder 20 5.3.1 Esempio di utilizzo di Interface Builder: Hello World 20 5.4 SQLite & SQLite Database Browser 21 6 progettazione e sviluppo dell’ icem 25 6.1 Connessione iPhone - Server 25 6.2 Database 26 6.3 Sezioni Allarmi ed Eventi 27 6.4 Tab Bar 27 6.5 Sezione Events 29 6.5.1 Area Events 29 6.5.2 Details Events 31 6.5.3 Meters of Events 32 6.6 Sezione Alarms 32 6.6.1 Area Filter 33 6.6.2 Area Set Alarm Order 36 6.6.3 Area Risultati 37 6.6.4 Area Dettagli 38 7 piano di qualifica 41 7.1 Tecniche di verifica 41 7.1.1 Analisi statica 41 7.2 Tecniche di validazione 41 v 7.2.1 Analisi dinamica 41 7.2.2 Test di unità 42 7.2.3 Test di sistema 42 8 conclusioni 43 9 glossario 45 Bibliografia 49 Lista delle Figure 51 vi 1 INTRODUZIONE 1.1 ”tutto cambia.
    [Show full text]
  • Introducing Xcode 5
    Introducing Xcode 5 code is Apple’s free suite of developer tools; it is used to cre- ate applications for iOS mobile devices and for Mac OS X. X Xcode 5, shown in Figure 1.1 , is the most recent version. Developer tools are complex, and Xcode has always tried to hide much of that complexity from novice developers. You can use Xcode in a very simple click-to-build way, but this simplicity can be misleading. Many developers never explore Xcode’s more advanced features and never discover how they can use them to save time, solve problems, or extend their projects with original and creative features. Xcode also includes an unexpectedly enormous selection of helper applications and developer tools. A complete guide to every ele- ment in Xcode would require a shelf of books. This book concen- trates on beginner- and intermediate-level features, but it also includes hints and pointers for advanced developers. Understanding the History of Mac Development Tools In This Chapter Before OS X, Apple’s IDE (Integrated Development Environment) was MPW (Macintosh Programmer’s Workshop). MPW is no longer Understanding the supported, but can still be found on the Internet Archive, as shown history of Mac in Figure 1.2 . development tools Moving to Xcode 5 MPW competed with a commercial development system called CodeWarrior. Both were expensive, and many would-be developers Comparing iOS and OS X were put off by the initial start-up costs. development Looking backCOPYRIGHTED at early IDEs MATERIAL CodeWarrior was based on the Metrowerks C compiler and envi- ronment.
    [Show full text]
  • DISCOVERING OPENSTEP: a Developer Tutorial
    DISCOVERING OPENSTEP: A Developer Tutorial Rhapsody Developer Release Apple Computer, Inc. User Interface Tips copyright © 1997 Apple Computer, Inc. All rights reserved. [6467.00] No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical, electronic, photocopying, recording, or otherwise, without prior written permission of Apple Computer, Inc., except to make a backup copy of any documentation provided on CD-ROM. Printed in the United States of America. The Apple logo is a trademark of Apple Computer, Inc. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without the prior written consent of Apple may constitute trademark infringement and unfair competition in violation of federal and state laws. No licenses, express or implied, are granted with respect to any of the technology described in this book. Apple retains all intellectual property rights associated with the technology described in this book. This book is intended to assist application developers to develop applications only for Apple-labeled or Apple-licensed computers. Every effort has been made to ensure that the information in this manual is accurate. Apple is not responsible for printing or clerical errors. Apple Computer, Inc. 1 Infinite Loop Cupertino, CA 95014 408-996-1010 Apple, and the Apple logo are trademarks of Apple Computer, Inc., registered in the United States and other countries. NeXT, the NeXT logo, NEXTSTEP, the NEXTSTEP logo, Digital Librarian, NeXTmail, and
    [Show full text]
  • Project Builder for Java
    Project Builder for Java October 10, 2003 Microsystems, Inc. in the U.S. and other Apple Computer, Inc. countries. © 2003, 2004 Apple Computer, Inc. Simultaneously published in the United All rights reserved. States and Canada. Even though Apple has reviewed this manual, No part of this publication may be APPLE MAKES NO WARRANTY OR reproduced, stored in a retrieval system, or REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, transmitted, in any form or by any means, ITS QUALITY, ACCURACY, mechanical, electronic, photocopying, MERCHANTABILITY, OR FITNESS FOR A recording, or otherwise, without prior PARTICULAR PURPOSE. AS A RESULT, THIS MANUAL IS SOLD ªAS IS,º AND YOU, THE written permission of Apple Computer, Inc., PURCHASER, ARE ASSUMING THE ENTIRE with the following exceptions: Any person RISK AS TO ITS QUALITY AND ACCURACY. is hereby authorized to store documentation IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, on a single computer for personal use only OR CONSEQUENTIAL DAMAGES and to print copies of documentation for RESULTING FROM ANY DEFECT OR personal use provided that the INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages. documentation contains Apple’s copyright THE WARRANTY AND REMEDIES SET notice. FORTH ABOVE ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, The Apple logo is a trademark of Apple EXPRESS OR IMPLIED. No Apple dealer, agent, Computer, Inc. or employee is authorized to make any modification, extension, or addition to this Use of the “keyboard” Apple logo warranty. (Option-Shift-K) for commercial purposes Some states do not allow the exclusion or without the prior written consent of Apple limitation of implied warranties or liability for incidental or consequential damages, so the may constitute trademark infringement and above limitation or exclusion may not apply to unfair competition in violation of federal you.
    [Show full text]
  • New Project the Gnustep Developer Guide
    New Project: The GNUstep Developer Guide 1 / 3 New Project: The GNUstep Developer Guide 2 / 3 [ Introduction | State | Documentation | Download ProjectCenter | Related links ] ... It assists you in starting new projects and lets you manage your project files .... Developer documentation is now on its own page. ... GNUstep.it - developer site; Advogato - basic GNUstep project info and links to some developer diaries .... Dismiss. Join GitHub today. GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software .... I discovered by searching the interwebs that a significant number of people who try out GNUstep get stuck at the “I wanted to do Objective-C on my Linux so I .... GNUstep. Summary. GNUstep development environment for Fedora. Owner. Name: Jochen Schmitt; email: [email protected]. Current Status.. Georges is a long time Unix user. GNUstep is one of his favourite free software projects. ... It was a complete new way of using a system GUI. GWorkspace is the .... GNUstep is an application development platform, very similar to Apple's Cocoa. ... After Steve Jobs left Apple, his new company, NeXT Computers, developed ... of the NeXTSTEP platform (user interface and programming API) that ... when some hoped that NeXT would give the entire project over to the Free .... Contribute to the Free Software Directory: submit new packages, corrections to ... Please contribute as a user and developer to GNUstep, a free object-oriented .... This article provides an introduction to GNUstep development. ... While creating Cocoa, Apple added new classes that enrich the API. ... From the File menu of Project Builder, select New Project..
    [Show full text]
  • Binaries Should Be Mach-O
    Mac OS X Programming Guidelines 11/28/01 7:56 PM Technical: Developer Documentation: Technical Notes CONTENTS Mac OS X is designed to be a powerful, robust, and versatile operating system. For it Binaries should be Mach-O to live up to its full potential, however, requires Run performance tools on your binary adherence to some specific programming Don't use processor resources unless you have to Use Carbon Events in your Application practices. Avoid using resource forks Use file extensions [Nov 26 2001] Make your code volume-format independent Use bundled resources and Unicode-savvy APIs Investigate using path-based file-system APIs Cocoa: The quickest way to developing the next killer application for Mac OS X Be judicious using C++ for new development References Downloadables Please keep the following points in mind when developing for Mac OS X: Binaries should be Mach-O Mach-O is the native executable format of Mac OS X. This has several implications for code that is compiled into that format, and for code that isn't. Mach-O code gets the most efficient access to all Mac OS X technologies and the best possible integration with system software. Code that isn't Mach-O doesn't. Mach-O is supported by Apple's development tools, CodeWarrior Pro 7 and Absoft Pro Fortran for Mac OS X at the present time. Others are working on it as well. As a developer you have several options for moving to Mach-O: 1. Use Apple Development tools: Apple delivers a complete suite of development tools for Mac OS X: Mach-O code generation with C, C++ and Objective-C languages, complete Carbon, Cocoa and I/O Kit support, full Java development support, Aqua interface design tools, along with debugging and performance analysis tools.
    [Show full text]
  • Mac OS X Advanced Development Techniques
    [ Team LiB ] • Table of Contents • Index Mac OS® X Advanced Development Techniques By Joe Zobkiw Publisher: Sams Publishing Pub Date: April 22, 2003 ISBN: 0-672-32526-8 Pages: 456 Mac OS X Advanced Development Techniques introduces intermediate to advanced developers to a wide range of topics they will not find so extensively detailed anywhere else. The book concentrates on teaching Cocoa development first, and then takes that knowledge and teaches in- depth, advanced Mac OS X development through detailed examples. Topics covered include: writing applications in Cocoa, supporting plug-in architectures, using shell scripts as startup items, understanding property lists, writing screen savers, implementing preference panes and storing global user preferences, custom color pickers, components, core and non-core services, foundations, frameworks, bundles, tools, applications and more. Source code in Objective-C, Perl, Java, shell script, and other languages are included as appropriate. These solutions are necessary when developing Mac OS X software, but many times are overlooked due to their complexities and lack of documentation and examples. The project-oriented approach of Mac OS X Advanced Development Techniques lends itself perfectly to those developers who need to learn a specific aspect of this new OS. Stand-alone examples allow them to strike a specific topic with surgical precision. Each chapter will be filled with snippets of deep, technical information that is difficult or impossible to find anywhere else. [ Team LiB ] Brought to You by Like the book? Buy it! [ Team LiB ] • Table of Contents • Index Mac OS® X Advanced Development Techniques By Joe Zobkiw Publisher: Sams Publishing Pub Date: April 22, 2003 ISBN: 0-672-32526-8 Pages: 456 Copyright Preface About the Author Acknowledgments We Want to Hear from You! Reader Services Foreword Introduction Part I: Overview Chapter 1.
    [Show full text]
  • Programming Mac OS X: a GUIDE for UNIX DEVELOPERS
    Programming Mac OS X: A GUIDE FOR UNIX DEVELOPERS KEVIN O’MALLEY MANNING Programming Mac OS X Programming Mac OS X A GUIDE FOR UNIX DEVELOPERS KEVIN O’MALLEY MANNING Greenwich (74° w. long.) For electronic information and ordering of this and other Manning books, go to www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact: Special Sales Department Manning Publications Co. 209 Bruce Park Avenue Fax: (203) 661-9018 Greenwich, CT 06830 email: [email protected] ©2003 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books they publish printed on acid-free paper, and we exert our best efforts to that end. Manning Publications Co. Copyeditor: Tiffany Taylor 209 Bruce Park Avenue Typesetter: Denis Dalinnik Greenwich, CT 06830 Cover designer: Leslie Haimes ISBN 1-930110-85-5 Printed in the United States of America 12345678910–VHG–05 040302 brief contents PART 1OVERVIEW ............................................................................. 1 1 ■ Welcome to Mac OS X 3 2 ■ Navigating and using Mac OS X 27 PART 2TOOLS ..................................................................................
    [Show full text]
  • Openstep and Solaris
    OpenStep and Solaris A White Paper A Sun Microsystems, Inc. Business 2550 Garcia Avenue Mountain View, CA 94043 TM U.S.A. 1994 Sun Microsystems, Inc., NeXT Computer, Inc. Sunsoft 2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A. NeXT Computer, Inc. 900 Chesapeake Drive, Redwood City, California 94063 U.S.A. NEXTSTEP Release 3 Copyright 1988-1994 NeXT Computer, Inc. All rights reserved. [6453.00] This product and related documentation are protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or related documentation may be reproduced in any form by any means without prior written authorization of NeXT, Sun and their licensors, if any. Portions of this product may be derived from the UNIX® and Berkeley 4.3 BSD systems, licensed from UNIX System Laboratories, Inc. and the University of California, respectively. Third-party font software in this product is protected by copyright and licensed from NeXT’s Font Suppliers. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the United States Government is subject to the restrictions set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19. The product described in this publication may be protected by one or more U.S. patents, foreign patents, or pending applications. TRADEMARKS Sun, Sun Microsystems, the Sun logo, SMCC, the SMCC logo, SunSoft, the SunSoft logo, Solaris, SunOS, OpenWindows, DeskSet, ONC, NFS, NetISAM, and ToolTalk are trademarks or registered trademarks of Sun Microsystems, Inc. NeXT, the NeXT logo, NEXTSTEP, the NEXTSTEP logo, OpenStep, NEXTSTEP Developer, ObjectWare, Portable Distributed Objects, and PDO are trademarks or registered trademarks of NeXT Computer, Inc.
    [Show full text]
  • Carbon: an Essential Element of Mac OS X
    ADC March 2001 2/6/01 1:44 PM Page 1 Apple Developer Connection Direct Carbon: An Essential Element of Mac OS X ne of the things that makes Mac OS X unique is its integra- developers, while at the same time delivering tion of five separate application runtime environments: all the performance, features, and reliability OCarbon, Cocoa, Classic, Java, and BSD. Never before has an that Mac OS X has to offer. About 70 percent operating system offered developers so many options. This series of of the classic Mac OS APIs are fully support- articles will give you the information you need to make an informed ed, and Carbon adds many new APIs specifi- decision as to which of these environments is right for your applica- cally to take advantage of Mac OS X. tion on Mac OS X. This month, I’m going to talk about Carbon and what it offers you as a Macintosh developer. What Diamonds Are Made Of A Brief History of Carbon Carbon offers a wealth of features to support and accelerate your Carbon represents the evolution of the Mac OS API, from a single- Mac OS X development efforts. Whether you’re new to the platform, user, cooperatively scheduled system, to a modern multi-user system or an old-timer, here are some of the reasons why you’ll find Carbon with memory protection and preemptive multitasking. Carbon a solid foundation for your software product: sprang from Apple’s desire to provide a gentle migration path for • Broad Language Support Apple provides interfaces, compilers, and tools for Carbon programming in C and C++, while other languages such as BASIC and FORTRAN are offered by other tool vendors.
    [Show full text]
  • The Cross-Platform Developing Skills for Mac Applications
    The Cross-Platform Developing Skills for Mac Applications Xiao Hanyu1 October 17, 2009 1Computer Science and Technology 0706, Zhejiang University Contents 1 Basics of Mac Platform 3 1.1 Mac OS and iPhone .............................. 3 1.1.1 Introduction to Mac OS ....................... 3 1.1.2 Introduction to iPhone OS ...................... 3 1.1.3 iPhone and iPod Touch ........................ 6 1.2 Before Developing .............................. 6 1.2.1 Darwin (operating system) ..................... 6 1.2.2 Cocoa API ................................ 7 1.2.3 POSIX .................................. 7 1.3 Developing Tools ............................... 7 1.3.1 Xcode .................................. 7 1.3.2 Interface Builder ........................... 8 1.4 Objective-C ................................... 8 1.4.1 Introduction to Objective-C ..................... 8 1.4.2 A Short History of Objective-C ................... 9 1.4.3 Syntax Overview ........................... 10 2 The Cross-Platform Solution 11 2.1 Cygwin ..................................... 11 2.2 Cross-compiling ................................ 11 2.3 Makefile .................................... 13 2.4 GNUstep .................................... 15 2.4.1 Introduction to GNUstep ...................... 15 2.4.2 The Correlative OpenStep ...................... 16 1 CONTENTS CONTENTS 2.4.3 Gorm .................................. 16 2.4.4 ProjectCenter ............................. 17 2.4.5 Window Maker ............................. 17 3 Our First "Hello World" Application
    [Show full text]