Apple AppleCare Protection Plan Getting Started Guide Apple sur FNAC.COM - Pour voir la liste complète des manuels APPLE, cliquez ici

 

 

TELECHARGER LE PDF :

http://images.apple.com/support/applecare/pdfs/emea/iphone/2E034-4871-B.pdf

 

 

Voir également d'autres Guides APPLE :

Apple-systemoverviewj.pdf-Japon

Apple-Xserve_TO_J070411.pdf-Japon

Apple-Mac_Pro_User_Guide.pdf

Apple-iMacG5_iSight_UG.pdf

Apple-premiers_contacts_avec_iwork_08.pdf

Apple-services_de_collaboration_2e_ed_10.4.pdf

Apple-iPhone_Bluetooth_Headset_Benutzerhandbuch.pdf

Apple-Guide_de_l_utilisateur_de_Keynote08.pdf

APPLE/Apple-Logic-Pro-9-Effectsrfr.pdf

Apple-Logic-Pro-9-Effectsrfr.pdf

Apple-iPod_shuffle_3rdGen_UG_F.pdf

Apple-iPod_classic_160Go_Guide_de_l_utilisateur.pdf

Apple-iBookG4GettingStarted.pdf

Apple-Administration_de_technologies_web_10.5.pdf

Apple-Compressor-4-User-Manual-fr

Apple-MainStage-User-Manual-fr.pdf

Apple-Logic_Pro_8.0_lbn_j.pdf

Apple-PowerBookG4_15inch1.67-1.5GHzUserGuide.pdf

Apple-MacBook_Pro_15inch_Mid2010_CH.pdf

Apple-LED_Cinema_Display_27-inch_UG.pdf

Apple-MacBook_Pro_15inch_Mid2009_RS.pdf

Apple-macbook_pro_13inch_early2011_f.pdf

Apple-iMac_Mid2010_UG_BR.pdf

Apple-iMac_Late2009_UG_J.pdf

Apple-iphone_user_guide-For-iOS-6-Software

Apple-iDVD5_Getting_Started.pdf

Apple-guide_des_fonctionnalites_de_l_ipod_touch.pdf

Apple_iPod_touch_User_Guide

Apple_macbook_pro_13inch_early2011_f

Apple_Guide_de_l_utilisateur_d_Utilitaire_RAID

Apple_Time_Capsule_Early2009_Setup_F

Apple_iphone_4s_finger_tips_guide_rs

Apple_iphone_upute_za_uporabu

Apple_ipad_user_guide_ta

Apple_iPod_touch_User_Guide

apple_earpods_user_guide

apple_iphone_gebruikershandleiding

apple_iphone_5_info

apple_iphone_brukerhandbok

apple_apple_tv_3rd_gen_setup_tw

apple_macbook_pro-retina-mid-2012-important_product_info_ch

apple_Macintosh-User-s-Guide-for-Macintosh-PowerBook-145

Apple_ipod_touch_user_guide_ta

Apple_TV_2nd_gen_Setup_Guide_h

Apple_ipod_touch_manual_del_usuario

Apple_iphone_4s_finger_tips_guide_tu

Apple_macbook_pro_retina_qs_th

Apple-Manuel_de_l'utilisateur_de_Final_Cut_Server

Apple-iMac_G5_de_lutilisateur

Apple-Cinema_Tools_4.0_User_Manual_F

Apple-Personal-LaserWriter300-User-s-Guide

Apple-QuickTake-100-User-s-Guide-for-Macintosh

Apple-User-s-Guide-Macintosh-LC-630-DOS-Compatible

Apple-iPhone_iOS3.1_User_Guide

Apple-iphone_4s_important_product_information_guide

Apple-iPod_shuffle_Features_Guide_F

Liste-documentation-apple

Apple-Premiers_contacts_avec_iMovie_08

Apple-macbook_pro-retina-mid-2012-important_product_info_br

Apple-macbook_pro-13-inch-mid-2012-important_product_info

Apple-macbook_air-11-inch_mid-2012-qs_br

Apple-Manuel_de_l_utilisateur_de_MainStage

Apple-Compressor_3_User_Manual_F

Apple-Color_1.0_User_Manual_F

Apple-guide_de_configuration_airport_express_4.2

Apple-TimeCapsule_SetupGuide

Apple-Instruments_et_effets_Logic_Express_8

Apple-Manuel_de_l_utilisateur_de_WaveBurner

Apple-Macmini_Guide_de_l'utilisateur

Apple-PowerMacG5_UserGuide

Disque dur, ATA parallèle Instructions de remplacement

Apple-final_cut_pro_x_logic_effects_ref_f

Apple-Leopard_Installationshandbok

Manuale Utente PowerBookG4

Apple-thunderbolt_display_getting_started_1e

Apple-Compressor-4-Benutzerhandbuch

Apple-macbook_air_11inch_mid2011_ug

Apple-macbook_air-mid-2012-important_product_info_j

Apple-iPod-nano-Guide-des-fonctionnalites

Apple-iPod-nano-Guide-des-fonctionnalites

Apple-iPod-nano-Guide-de-l-utilisateur-4eme-generation

Apple-iPod-nano-Guide-de-l-utilisateur-4eme-generation

Apple-Manuel_de_l_utilisateur_d_Utilitaire_de_reponse_d_impulsion

Apple-Aperture_2_Raccourcis_clavier

AppleTV_Setup-Guide

Apple-livetype_2_user_manual_f

Apple-imacG5_17inch_harddrive

Apple-macbook_air_guide_de_l_utilisateur

Apple-MacBook_Early_2008_Guide_de_l_utilisateur

Apple-Keynote-2-Guide-de-l-utilisateur

Apple-PowerBook-User-s-Guide-for-PowerBook-computers

Apple-Macintosh-Performa-User-s-Guide-5200CD-and-5300CD

Apple-Macintosh-Performa-User-s-Guide

Apple-Workgroup-Server-Guide

Apple-iPod-nano-Guide-des-fonctionnalites

Apple-iPad-User-Guide-For-iOS-5-1-Software

Apple-Boot-Camp-Guide-d-installation-et-de-configuration

Apple-iPod-nano-Guide-de-l-utilisateur-4eme-generation

Power Mac G5 Guide de l’utilisateur APPLE

Guide de l'utilisateur PAGE '08 APPLE

Guide de l'utilisateur KEYNOTE '09 APPLE

Guide de l'Utilisateur KEYNOTE '3 APPLE

Guide de l'Utilisateur UTILITAIRE RAID

Guide de l'Utilisateur Logic Studio

Power Mac G5 Guide de l’utilisateur APPLE

Guide de l'utilisateur PAGE '08 APPLE

Guide de l'utilisateur KEYNOTE '09 APPLE

Guide de l'Utilisateur KEYNOTE '3 APPLE

Guide de l'Utilisateur UTILITAIRE RAID

Guide de l'Utilisateur Logic Studio

Guide de l’utilisateur ipad Pour le logiciel iOS 5.1

PowerBook G4 Premiers Contacts APPLE

Guide de l'Utilisateur iphone pour le logiciel ios 5.1 APPLE

Guide de l’utilisateur ipad Pour le logiciel iOS 4,3

Guide de l’utilisateur iPod nano 5ème génération

Guide de l'utilisateur iPod Touch 2.2 APPLE

Guide de l’utilisateur QuickTime 7  Mac OS X 10.3.9 et ultérieur Windows XP et Windows 2000

Guide de l'utilisateur MacBook 13 pouces Mi 2010

Guide de l’utilisateur iPhone (Pour les logiciels iOS 4.2 et 4.3)

Guide-de-l-utilisateur-iPod-touch-pour-le-logiciel-ios-4-3-APPLE

Guide-de-l-utilisateur-iPad-2-pour-le-logiciel-ios-4-3-APPLE

Guide de déploiement en entreprise iPhone OS

Guide-de-l-administrateur-Apple-Remote-Desktop-3-1

Guide-de-l-utilisateur-Apple-Xserve-Diagnostics-Version-3X103

Guide-de-configuration-AirPort-Extreme-802.11n-5e-Generation

Guide-de-configuration-AirPort-Extreme-802-11n-5e-Generation

Guide-de-l-utilisateur-Capteur-Nike-iPod

Guide-de-l-utilisateur-iMac-21-5-pouces-et-27-pouces-mi-2011-APPLE

Guide-de-l-utilisateur-Apple-Qadministrator-4

Guide-d-installation-Apple-TV-3-eme-generation

User-Guide-iPad-For-ios-5-1-Software

AppleCare Protection Plan Getting Started Guide for iPhoneContents 5 English 29 Français 47 Deutsch 65 Italiano 83 EspañolEnglish 5 AppleCare Protection Plan for iPhone Fact Sheet Peace of mind from Apple Every iPhone comes with one year of repair coverage and 90 days of technical support.The AppleCare Protection Plan for iPhone extends your coverage to two years from the date of your iPhone purchase. 1 Whether you use iPhone with a Mac or PC, just one phone call can help resolve most issues. Coverage information This comprehensive plan is available for all iPhone models within their one-year limited warranty. If you sell the covered iPhone before the AppleCare Protection Plan for iPhone expires, you may transfer the plan to the new owner. 2 For each iPhone you want to cover, you must purchase a separate AppleCare Protection Plan for iPhone. Keep your Proof of Coverage document, the original iPhone sales receipt, and the AppleCare Protection Plan for iPhone receipt. Apple may require proof of purchase if any questions arise about the eligibility of your iPhone for the AppleCare Protection Plan. Technical support options If you experience difficulties with your iPhone, try the troubleshooting steps on the iPhone Support website at www.apple.com/uk/support/iphone. If you are not able to resolve the issue, AppleCare representatives can help troubleshoot your iPhone and its connection with iTunes. Apple technical support contact information and hours of operation are listed in the Quick Reference Guide. Under the AppleCare Protection Plan for iPhone, Apple offers the same complete service for both Mac and Windows users.6 English Hardware service This plan extends repair and replacement service from the Apple one-year warranty to two years from your iPhone purchase date. This plan also extends service coverage to the iPhone battery when its capacity to hold an electrical charge has depleted fifty percent (50%) or more from its original specification. Either the carry-in or direct mail-in service option may apply when you obtain service. Refer to the Quick Reference Guide for additional details about obtaining service. The replacement equipment that Apple provides as part of the repair or replacement service may be new, used, or refurbished. 1. This plan extends your service coverage to two years from the date of your iPhone purchase. The plan must be purchased while your iPhone is still under its original one-year warranty. Service coverage may be subject to certain restrictions. AppleCare Protection Plan benefits are in addition to any legal rights provided by consumer protection laws in your jurisdiction. 2. See the enclosed AppleCare Protection Plan Terms and Conditions for complete details.English 7 Try these simple steps before contacting Apple for help. If you experience problems with your iPhone, try the troubleshooting steps on the iPhone Support website at www.apple.com/uk/support/iphone. As a precaution, back up all content before you troubleshoot your iPhone. Verify that you have the latest iTunes. You can download the latest iTunes at www.apple.com/uk/itunes/download. Visit the iPhone Support website. The iPhone Support website has links to service option availability, iPhone tutorial, discussions, and other resources to answer various “How-to” questions, which are available 24 hours a day at www.apple.com/uk/support/iphone. Contact Apple for more assistance. If the steps in this guide do not resolve your issue, contact Apple. An Apple representative will ask you for your AppleCare Protection Plan for iPhone agreement number or your iPhone serial number, which is located on the back of your iPhone. In the UK: In Ireland: (44) 0870 876 0753 (353) 1850 946 191 Monday – Friday Monday – Friday 8:00 am – 7:45 pm 8:00 am – 7:45 pm Saturday Saturday 10:00 am – 5:45 pm* 10:00 am – 5:45 pm* * Telephone numbers and hours of operation may vary and are subject to change. You can find the most up-to-date local and international contact information at www.apple.com/contact/phone_contacts.html. Quick Reference Guide AppleCare Protection Plan for iPhone9 AppleCare Protection Plan for iPhone Terms and Conditions Your AppleCare Protection Plan for iPhone (herein referred to as the “Plan”) is governed by these Terms and Conditions and constitutes your service contract with Apple Sales International (“Apple”). Subject to these Terms and Conditions, your Plan (i) covers defects for the Apple-branded iPhone product listed in your Plan’s Certificate or Proof of Coverage document (“Plan Confirmation”), an Apple-branded iPhone Bluetooth headset if owned by you and used with the covered iPhone and the hardware accessories that are contained in the covered iPhone’s original packaging (collectively the “Covered Equipment”) and (ii) provides you with access to telephone support and web-based support resources for the Covered Equipment. To obtain the Plan Confirmation you must register your Plan’s unique agreement or registration number (“Plan Agreement Number”) as described in the instructions included in the Plan’s packaging. Customers choosing the Auto-Registration option, where available, will automatically receive their Plan Confirmation. The duration of the Plan (“Coverage Period”) is for the period ending on the date specified in your Plan Confirmation. The price of the Plan is listed on the Plan’s original sales receipt. Apple may restrict service provided under this Plan to the Covered Equipment’s original country of purchase. 1. Repair Coverage a. Scope of Coverage. Your coverage for defects begins on the date your Covered Equipment’s Apple hardware warranty expires and terminates at the end of the Coverage Period (“Repair Coverage Period”). Apple will, at its option, repair or replace the affected Covered Equipment, if (i) during the Repair Coverage Period there is a defect in the Covered Equipment’s materials or workmanship or, (ii) during the Coverage Period, the capacity of the covered iPhone battery to hold an electrical charge has depleted fifty (50%) percent or more from its original specification, (after being fully charged and the covered iPhone playing audio or video with all settings reset). Apple will provide both parts and labor, but may require you to replace certain readily installable parts yourself, as described below. Apple may provide replacement 10 product or parts that are manufactured from parts that are new or equivalent to new in both performance and reliability. The replacement product or parts will be functionally equivalent to the replaced products or parts and will assume the remaining coverage under the Plan. The products or parts that are replaced become Apple’s property. Apple strongly advises you to record as a back up, data and software residing or recorded in the Covered Equipment, before making the Covered Equipment available for service. b. Limitations. The Plan does not cover: (i) Installation, removal or disposal of the Covered Equipment, or installation, removal, repair, or maintenance of non-Covered Equipment (including accessories, attachments, or other devices) or network or cellular service external to the Covered Equipment; (ii) Damage to the Covered Equipment caused by accident, abuse, neglect, misuse (including faulty installation, repair or maintenance by anyone other than Apple or an Apple authorized wireless service provider), unauthorized modification, extreme environment (including extreme temperature or humidity), extreme physical or electrical stress or interference, fluctuation or surges of electrical power, lightning, static electricity, fire, acts of God or other external causes; (iii) Covered Equipment with a serial number that has been altered, defaced or removed; (iv) Problems caused by a device that is not the Covered Equipment, including equipment that is not Apple-branded, whether or not purchased at the same time as the Covered Equipment; (v) Service necessary to comply with the regulations of any government body or agency arising after the date of this Plan; (vi) Problems caused by the function of a network or cellular service or viruses or other software problems introduced into the Covered Equipment; (vii) Covered Equipment that has been lost or stolen. This Plan only covers Covered Equipment that is returned to Apple in its entirety; (viii) Cosmetic damage to the Covered Equipment including but not limited to scratches, dents and broken plastic on ports; (ix) Preventative maintenance on the Covered Equipment; 11 (x) The provision of replacement equipment during the period when the Covered Equipment is being serviced; (xi) Damage to, or loss of any software or data residing or recorded in the Covered Equipment. THE CONTENTS OF YOUR iPHONE WILL BE DELETED AND THE STORAGE MEDIA REFORMATTED IN THE COURSE OF SERVICE. Your iPhone or a replacement iPhone will be returned to you as your iPhone was configured when originally purchased, subject to applicable updates. Apple may install system software (“iPhone OS”) updates as part of your service that will prevent the iPhone from reverting to an earlier version of the iPhone OS. Third party applications installed on the iPhone may not be compatible or work with the iPhone as a result of the iPhone OS update. You will be responsible for reinstalling all other software programs, data and passwords. Recovery and reinstallation of software programs and user data are not covered under this Plan; (xii) Defects caused by normal wear and tear or otherwise due to normal aging of the Covered Equipment; (xiii) Any support relating to software, data or media installed on the Covered Equipment; or (xiv) Except as specifically provided herein, any other damages that do not arise from defects in materials and workmanship or ordinary and customary usage of the Covered Equipment. c. Service Options. Apple may provide service through one or more of the following options: (i) Carry-in service. Return the Covered Equipment requiring service to an Apple-owned retail store location or the Apple authorized wireless service provider offering carry-in service. Service will be performed at the location, or the store may send the Covered Equipment to an Apple repair service location to be repaired. Once you are notified that service is complete, you will promptly retrieve the product. (ii) Direct mail-in service. If Apple determines that your Covered Equipment is eligible for mail-in service, Apple will send you prepaid way bills (and if you no longer have the original packaging, Apple may send you packaging material) and you will ship the Covered Equipment to Apple’s repair service location in accordance with its instructions. Once service is complete, the Apple repair service location will return the Covered Equipment to you. Apple will pay for shipping to and from your location if all instructions are followed.12 (iii) Do-It-Yourself Parts service is available for many Covered Equipment parts or accessories, allowing you to service your own product. If Do-It-Yourself Parts service is available in the circumstances, the following process will apply. (A) Do-It-Yourself Parts service where Apple requires return of the replaced part. Apple may require a credit card authorization as security for the retail price of the replacement part and applicable shipping costs. If you are unable to provide credit card authorization, Do-It-Yourself Parts service may not be available to you and Apple will offer alternative arrangements for service. Apple will ship you a replacement part with installation instructions and any requirements for the return of the replaced part. If you follow the instructions, Apple will cancel the credit card authorization, so you will not be charged for the part and shipping to and from your location. If you fail to return the replaced part as instructed, Apple will charge the credit card for the authorized amount. (B) Do-It-Yourself Parts service where Apple does not require return of the replaced part. Apple will ship you free of charge a replacement part accompanied by instructions on installation and any requirements for the disposal of the replaced part. (C) Apple is not responsible for any labor costs you incur relating to Do-It-Yourself Parts service. Should you require further assistance, contact Apple at the telephone number listed below. Apple reserves the right to change the method by which Apple may provide repair or replacement service to you, and your Covered Equipment’s eligibility to receive a particular method of service. Service options, parts availability and response times may vary. d. Obtaining Repair or Replacement Service. To obtain service under this Plan, access the Apple website for your country or call the telephone number, both listed below. Telephone numbers may vary according to your location. When accessing the website, follow the instructions for requesting repair service provided by Apple. If calling, an Apple technical support representative will answer, request your Plan Agreement Number, advise you and determine what service is necessary for the Covered Equipment. All service is subject to Apple’s prior approval. Location of service may vary due to your location. Keep your Plan Confirmation document and the original sales receipt for your Covered Equipment and your Plan. Proof of purchase may be required if there is any question as to your product’s eligibility for Plan coverage.13 2. Technical Support a. Telephone and Web Support. Your eligibility for technical support begins on the date your Covered Equipment’s complimentary technical support expires or the date your Coverage Period begins, whichever is later, and terminates at the end of the Coverage Period (“Technical Coverage Period”). During the Technical Coverage Period Apple will provide you with access to telephone technical support and web-based technical support resources. Technical support may include assistance with installation, launch, configuration, troubleshooting, and recovery (except for data recovery), including storing, retrieving, and managing files; interpreting system error messages; and determining when hardware repairs are required. Apple will provide technical support for the Covered Equipment, iPhone OS, software applications that are preinstalled with the Covered Equipment (“iPhone Software”) and connectivity issues between the Covered Equipment and a supported computer, meaning a computer that meets the Covered Equipment’s connectivity specifications and runs an operating system that is supported by the Covered Equipment. Apple will provide support for the then-current version of the iPhone OS and iPhone Software, and the prior Major Release, but reserves the right to change the support it provides on any previous versions at any time. For purposes of this section, “Major Release” means a significant version of software that is commercially released by Apple in a release number format such as “1.0” or “2.0” and which is not in beta or pre-release form. b. Limitations. The Plan does not cover: (i) Issues that could be resolved by upgrading software to the then current version; (ii) Your use of or modification to the Covered Equipment, the iPhone OS or iPhone Software in a manner for which the Covered Equipment or software is not intended to be used or modified; (iii) Third-party products or their effects on or interactions with the Covered Equipment, the iPhone OS or iPhone Software; (iv) Your use of a computer or operating system that is unrelated to iPhone Software or connectivity issues with the Covered Equipment; (v) Apple software other than the iPhone OS or iPhone Software, as covered under the Plan; (vi) iPhone OS software or any Apple-branded software designated as “beta”, “prerelease,” or “preview” or similarly labeled software; and14 (vii) Damage to, or loss of any software or data residing or recorded in the Covered Equipment. c. Obtaining Technical Support. You may obtain technical support by calling the telephone number listed below. The Apple technical support representative will provide you technical support. Apple’s hours of service are described below. Apple reserves the right to change its hours of technical service and telephone numbers at any time. Web-based support resources are offered to you at the Apple website list below. 3. Your Responsibilities To receive service under the Plan, you agree to comply with the following: a. Provide your Plan Agreement Number and serial number of the Covered Equipment; b. Provide information about the symptoms and causes of the problems with the Covered Equipment; and c. Follow instructions Apple gives you, including but not limited to refraining from sending Apple products and accessories that are not subject to repair or replacement service and packing the Covered Equipment in accordance with shipping instructions; and d. Update software to currently published releases prior to seeking service. 4. Limitation of Liability FOR CONSUMERS IN JURISDICTIONS WHO HAVE THE BENEFIT OF CONSUMER PROTECTION LAWS OR REGULATIONS, THE BENEFITS CONFERRED BY THIS PLAN ARE IN ADDITION TO ALL RIGHTS AND REMEDIES PROVIDED UNDER SUCH LAWS AND REGULATIONS. NOTHING IN THIS PLAN SHALL PREJUDICE CONSUMER RIGHTS GRANTED BY THE APPLICABLE MANDATORY LAWS, INCLUDING CONSUMER RIGHT TO SEEK FOR DAMAGES IN THE EVENT OF TOTAL OR PARTIAL NON-PERFORMANCE OR INADEQUATE PERFORMANCE BY APPLE OF ANY OF ITS CONTRACTUAL OBLIGATIONS. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, APPLE AND ITS EMPLOYEES AND AGENTS WILL UNDER NO CIRCUMSTANCES BE LIABLE TO YOU OR ANY SUBSEQUENT OWNER FOR ANY INDIRECT OR CONSEQUENTIAL DAMAGES, INCLUDING BUT NOT LIMITED TO COSTS OF RECOVERING, REPROGRAMMING, OR REPRODUCING ANY PROGRAM OR DATA OR THE FAILURE TO MAINTAIN THE CONFIDENTIALITY OF DATA, ANY LOSS OF BUSINESS, PROFITS, REVENUE OR ANTICIPATED SAVINGS, RESULTING FROM APPLE’S OBLIGATIONS UNDER THIS PLAN. TO THE 15 MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE LIMIT OF APPLE AND ITS EMPLOYEES AND AGENT’S LIABILITY TO YOU AND ANY SUBSEQUENT OWNER ARISING UNDER THE PLAN SHALL NOT EXCEED THE ORIGINAL PRICE PAID FOR THE PLAN. APPLE SPECIFICALLY DOES NOT WARRANT THAT IT WILL BE ABLE TO (i) REPAIR OR REPLACE COVERED EQUIPMENT WITHOUT RISK TO OR LOSS OF PROGRAMS OR DATA, AND (ii) MAINTAIN THE CONFIDENTIALITY OF DATA. NOTHING IN THIS AGREEMENT SHALL EXCLUDE OR LIMIT APPLE’S LIABILITY FOR (I) DEATH OR PERSONAL INJURY CAUSED BY ITS NEGLIGENCE, OR (II) FRAUD. TO THE EXTENT THAT LIABILITY UNDER SUCH LAWS AND REGULATIONS MAY BE LIMITED, APPLE’S LIABILITY IS LIMITED, AT ITS SOLE OPTION, TO REPLACE OR REPAIR OF THE COVERED EQUIPMENT OR SUPPLY OF THE SERVICE. 5. Cancellation You may cancel this Plan at any time for any reason. If you decide to cancel either call Apple at the telephone number below, or send or fax written notice with your Plan Agreement Number to Apple Customer Support, Hollyhill Industrial Estate, Hollyhill, Cork, Republic of Ireland (fax number: +353-(0)21-428-3917). A copy of the Plan’s original proof of purchase must accompany your notice. Unless local law provides otherwise, if you cancel within thirty (30) days of your Plan’s purchase, or receipt of these Terms and Conditions, whichever occurs later, you will receive a full refund less the value of any service provided under the Plan. If you cancel more than thirty (30) days after your receipt of this Plan, you will receive a pro rata refund of the original purchase price, based on the percentage of unexpired Coverage Period, less (a) any cancellation fee listed in section 8 or ten percent (10%) of the pro-rata amount, whichever is less, and (b) the value of any service provided to you under the Plan. Unless applicable local law provides otherwise, Apple may cancel this Plan if service parts for the Covered Equipment become unavailable, upon thirty (30) days’ prior written notice. If Apple cancels this Plan, you will receive a pro-rata refund for the Plan’s unexpired term. 6. Transfer of Plan You may transfer this Plan to a new owner of the Covered Equipment by sending or faxing notice of transfer to Apple Customer Support, Hollyhill Industrial Estate, Hollyhill, Cork, Republic of Ireland, fax number: +353-(0)21-428-3917. You must provide the Plan Agreement Number, the serial numbers of the Covered Equipment being transferred, proof of purchase of the Plan, and the name, address, telephone number and email address of the new owner.16 7. General Terms a. Apple may subcontract or assign performance of its obligations to third parties but shall not be relieved of its obligations to you in doing so. b. Apple is not responsible for any failures or delays in performing under the Plan that are due to events outside Apple’s reasonable control. c. You are not required to perform preventative maintenance on the Covered Equipment to receive service under the Plan. d. This Plan is offered and valid only in Austria, France (excluding Corsica, overseas departments and territories), Germany, Ireland, Italy, Spain (including Balearic Islands but excluding Canary Islands, Ceuta, Melilla), Switzerland and the United Kingdom. This Plan is not offered to persons who have not reached the age of majority. This Plan is not available where prohibited by law. e. In carrying out its obligations Apple may, at its discretion and solely for the purposes of monitoring the quality of Apple’s response, record part or all of the calls between you and Apple. f. You agree that any information or data disclosed to Apple under this Plan is not confidential or proprietary to you. Furthermore, you agree that Apple may collect and process data on your behalf when it provides service. This may include transferring your data to affiliated companies or service providers in accordance with the Apple Customer Privacy Policy available at the webpage listed below. g. Apple has security measures, which should protect your data against unauthorized access or disclosure as well as unlawful destruction. You will be responsible for the instructions you give to Apple regarding the processing of data, and Apple will seek to comply with those instructions as reasonably necessary for the performance of the service and support obligations under the Plan. If you do not agree with the above or if you have questions regarding how your data may be impacted by being processed in this way, contact Apple at the telephone numbers provided. h. Apple will protect your information in accordance with Apple Customer Privacy Policy. If you wish to have access to the information that Apple holds concerning you or if you want to make changes, access www.apple.com/contact/myinfo to update your personal contact preferences or you may contact Apple’s European data controller at privacyeurope@apple.com.17 i. The Terms and Conditions of this Plan prevail over any conflicting, additional, or other terms of any purchase order or other document, and constitute your and Apple’s entire understanding with respect to the Plan. j. Your rights under the Plan are in addition to any warranty rights you may be entitled to. You must purchase and register the Plan while your Apple-branded iPhone is within Apple’s One Year Limited warranty. Apple is not obligated to renew this Plan. If Apple does offer a renewal, it will determine the price and terms. k. There is no informal dispute settlement process available under this Plan. l. The financial obligations of this Plan are backed by Apple Sales International, Hollyhill Industrial Estate, Hollyhill, Cork, Republic of Ireland. Should Apple Sales International fail to meet those obligations, Apple Operations Europe, HollyHill Industrial Estate, Hollyhill, Cork, Ireland would assume such obligations. m. The laws of the country where entitlement to this Plan was purchased and activated shall be the relevant law of this Plan. This choice of law does not include the conflicts of laws provisions thereof nor the UN Sales Convention. n. In the event any section or portion of a section of these Terms and Conditions are deemed invalid, void or unenforceable, that section or portion of a section shall be stricken from the Terms and Conditions, and the remaining Terms shall continue in full force and effect. 8. Country Variations The following country variations will control if inconsistent with any other provisions of this Plan: AUSTRIA SECTION 4 - SECTION 4 IS REPLACED BY THE FOLLOWING: AN OBLIGATION FOR DAMAGES OF APPLE AS WELL AS OF ANY OF ITS EMPLOYEES OR AGENTS ON THE BASIS OF A CONTRACT OR ON ANY OTHER BASIS WHATSOEVER ONLY EXISTS TO THE EXTEND THAT SUCH DAMAGE HAS BEEN CAUSED DUE TO NEGLIGENCE OR WILFULL INTENT. APPLE WILL UNDER NO CIRCUMSTANCES BE LIABLE FOR ANY LOSS OF PROFIT, LOSS OF EXPECTED BUT NOT REALISED OPPORTUNITIES, INDIRECT DAMAGES OR CONSEQUENTIAL DAMAGES, DAMAGES TO DATA OR DAMAGES ARISING FROM THIRD PARTIES’ CLAIMS.18 SECTION 5 - IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF €25.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. FRANCE SECTION 4 - SECTION 4 IS REPLACED BY THE FOLLOWING: 4.1- IF YOU ARE A CONSUMER, NOTHING IN THE PROGRAM SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR BREACH OF ANY TERM IMPLIED BY MANDATORY STATUTE. 4.2 - IF YOU ARE NOT A CONSUMER: - THESE TERMS AND CONDITIONS SET OUT THE FULL EXTENT OF OUR OBLIGATIONS AND LIABILITIES IN RESPECT OF THE PROGRAM; - THERE ARE NO WARRANTIES, CONDITIONS OR OTHER TERMS THAT ARE BINDING ON US EXCEPT AS EXPRESSLY STATED IN THESE TERMS AND CONDITIONS; AND - ANY OTHER WARRANTY AND/OR OBLIGATION CONCERNING THE PROGRAM WHICH WE MIGHT BORN PURSUANT TO LAW (INCLUDING ANY IMPLIED TERM AS TO CARE AND SKILL) IS HEREBY EXPRESSLY EXCLUDED. IN PARTICULAR, APPLE WILL NOT BE RESPONSIBLE FOR ENSURING THAT THE PROGRAM IS SUITABLE FOR YOUR PURPOSES. 4.3 - NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR DEATH OR PERSONAL INJURY CAUSED BY OUR NEGLIGENCE OR FOR FRAUD. 4.4 - SUBJECT TO CLAUSE 4.3, WE WILL NOT BE LIABLE UNDER THESE TERMS AND CONDITIONS FOR ANY LOSS OF INCOME, LOSS OF PROFITS, LOSS OF OPPORTUNITIES, LOSS OF DATA OR FOR ANY OTHER INDIRECT LOSS. 4.5- SUBJECT TO CLAUSE 4.3, OUR MAXIMUM AGGREGATE LIABILITY UNDER THESE TERMS AND CONDITIONS, WHETHER IN CONTRACT, TORT OR OTHERWISE, SHALL IN NO CIRCUMSTANCES EXCEED THE AMOUNT YOU PAID IN RESPECT OF THE PROGRAM. SECTION 5 - IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF €25.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. IF YOU ARE A CONSUMER, PLEASE NOTE THAT YOUR RIGHT TO REPENT ACCORDING TO ARTICLE L.121-20 OF THE CONSUMER CODE IS TAKEN INTO ACCOUNT IN SECTION 5 (CANCELLATION). 19 SECTION 7 - THE FOLLOWING IS ADDED TO SECTION 7. DURATION OF THIS PLAN IS INDICATED IN THE PLAN CONFIRMATION. APART FROM THIS PLAN, AND IF APPLICABLE, APPLE WILL PROVIDE A GUARANTEE FOR THE DEFECTS OF CONFORMITY (ARTICLE L.211-15 OF THE CONSUMER CODE) AND FOR THE HIDDEN DEFECTS UNDER THE CONDITIONS STATED IN ARTICLE 1641 TO 1649 OF THE CIVIL CODE. IN ACCORDANCE WITH ARTICLE L.211-15 OF THE CONSUMER CODE, THE FOLLOWING ARTICLES APPLY TO CONSUMERS AND ARE HERE BELOW REPRODUCED WHOLLY: ARTICLE L.211-4 OF THE CONSUMER CODE: “THE SELLER MUST DELIVER A GOOD WHICH CONFORMS TO THE CONTRACT AND WILL BE LIABLE FOR DEFECTS OF CONFORMITY EXISTING AT THE TIME OF DELIVERY. THE SELLER WILL ALSO BE LIABLE FOR DEFECTS OF CONFORMITY RESULTING FROM THE PACKING, INSTRUCTIONS FOR ASSEMBLY OR INSTALLATION WHEN SELLER WAS IN CHARGE OF INSTALLATION PURSUANT TO THE CONTRACT OR WHEN CARRIED OUT UNDER THE SELLER’S RESPONSIBILITY”. ARTICLE L.211-5 OF THE CONSUMER CODE: “SO TO BE IN CONFORMITY WITH THE CONTRACT, THE GOOD MUST: 1° FIT FOR PURPOSES FOR WHICH IT IS USUALLY USED AND, IF APPLICABLE: CORRESPOND TO THE DESCRIPTION GIVEN BY THE SELLER AND HAVE THE QUALITIES PRESENTED TO THE BUYER IN A SAMPLE OR SPECIMEN; HAVE THE QUALITIES WHICH CAN BE LEGITIMATELY EXPECTED BY A BUYER ON THE BASIS OF THE PUBLIC DECLARATIONS MADE BY THE SELLER, THE MANUFACTURER OR ITS AGENT, INCLUDING IN AN ADVERTISEMENT OR LABELING; OR 2° HAVE THE QUALITIES DEFINED BY COMMON AGREEMENT OF THE PARTIES OR FIT ANY SPECIFIC USE LOOKED FOR BY THE BUYER, BROUGHT TO THE SELLER’S KNOWLEDGE AND ACCEPTED BY THE SELLER.” ARTICLE L.211-12 OF THE CONSUMER CODE: ”LEGAL ACTION BASED ON DEFECT OF CONFORMITY LAPSES AT THE END OF THE TWO YEAR PERIOD FOLLOWING DELIVERY OF THE GOOD.” ARTICLE 1641 OF THE CIVIL CODE: “SELLER IS LIABLE FOR THE HIDDEN DEFECTS THAT RENDER THE GOOD UNFIT FOR THE USE IT IS MEANT TO BE, OR THAT DECREASE THIS USE IN SUCH AN EXTENT THAT THE BUYER WOULD NOT HAVE ACQUIRED THE GOOD, OR WOULD HAVE OFFER A LOWER 20 PRICE, IF THESE DEFECTS WOULD HAVE BEEN KNOWN TO HIM.” ARTICLE 1648 PAR. 1 OF THE CIVIL CODE: “LEGAL ACTION BASED ON REDHIBITORY DEFECTS MUST BE INTRODUCED BY THE BUYER WITHIN A PERIOD OF TWO YEARS FOLLOWING THE DISCOVERY OF THE DEFECT.” GERMANY SECTION 4 - SECTION 4 IS REPLACED BY THE FOLLOWING: THE BENEFITS CONFERRED BY THE PLAN ARE IN ADDITION TO ANY STATUTORY RIGHTS OR CLAIMS IN THE EVENT OF DEFECTS IN WORKMANSHIP OR TITLE OF THE COVERED EQUIPMENT AND DO NOT RESTRICT SUCH RIGHTS. YOUR RIGHTS IN THE EVENT OF ANY DEFECTS IN WORKMANSHIP OR TITLE OF DELIVERABLES UNDER THE PLAN ARE GOVERNED BY STATUTORY LAW AND LIMITED AS FOLLOWS: IF YOU ARE A “CONSUMER” (I.E. A CUSTOMER PURCHASING THE PLAN FOR A PURPOSE OUTSIDE THE SCOPE OF ITS TRADE, BUSINESS OR INDEPENDENT PROFESSION), YOUR STATUTORY REMEDIES FOR DEFECTS LAPSE AFTER TWO YEARS, FOR ALL CUSTOMERS WHO ARE NOT CONSUMERS, THE LIMITATION PERIOD SHALL BE ONE YEAR. ANY LIABILITY IN DAMAGES BASED ON ANY LEGAL THEORY SHALL BE SUBJECT TO THE FOLLOWING LIMITATION: APPLE SHALL BE LIABLE IN DAMAGES, WHETHER BASED ON CONTRACT OR ANY OTHER LEGAL THEORY, ONLY TO THE EXTENT THAT THE DAMAGE WAS CAUSED BY GROSS NEGLIGENCE OR WILLFUL MISCONDUCT IMPUTABLE TO APPLE. THE LIMITATION OF LIABILITY UNDER THIS SEC. 4 SHALL ALSO APPLY TO THE LIABILITY OF APPLE’S EMPLOYEES AND AGENTS MANDATORY LIABILITY UNDER THE PRODUCT LIABILITY ACT, IN THE EVENT OF DEATH OF A NATURAL PERSON OR PERSONAL INJURY TO THE LATTER, OR OF A SLIGHTLY NEGLIGENT VIOLATION OF A FUNDAMENTAL DUTY UNDER THE PLAN, SHALL REMAIN UNAFFECTED. ANY LIABILITY FOR VIOLATION OF A FUNDAMENTAL DUTY UNDER THE PLAN WHICH IS NOT BASED ON GROSS NEGLIGENCE, WILLFUL MISCONDUCT OR ON THE DEATH OF A NATURAL PERSON OR PERSONAL INJURY TO THE LATTER, SHALL BE LIMITED TO SUCH DAMAGE AS COULD HAVE REASONABLY BEEN FORESEEN. THE FOREGOING SHALL NOT AFFECT ANY SHIFT IN A BURDEN OF PROOF TO YOUR DISADVANTAGE. SECTION 5 - IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF €25.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. 21 SECTION 7.E TO 7.G - SECTION 7.E TO 7.G SHALL NOT APPLY TO ANY PERSONAL DATA COLLECTED OR PROCESSED BY APPLE THROUGH AN ESTABLISHMENT OF APPLE IN GERMANY. WHERE LEGALLY REQUIRED, APPLE WILL SEPARATELY ASK YOU FOR YOUR CONSENT WITH REGARD TO SUCH DATA. IRELAND SECTION 4 - SECTION 4 IS REPLACED BY THE FOLLOWING: 4.1- IF YOU ARE A CONSUMER, NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR BREACH OF ANY TERM IMPLIED BY STATUTE. 4.2 - IF YOU ARE NOT A CONSUMER: - THESE TERMS AND CONDITIONS SET OUT THE FULL EXTENT OF OUR OBLIGATIONS AND LIABILITIES IN RESPECT OF THE PROGRAM; - THERE ARE NO WARRANTIES, CONDITIONS OR OTHER TERMS THAT ARE BINDING ON US EXCEPT AS EXPRESSLY STATED IN THESE TERMS AND CONDITIONS; AND - ANY WARRANTY, CONDITIONS OR OTHER TERM CONCERNING THE PROGRAM WHICH MIGHT OTHERWISE BE IMPLIED INTO OR INCORPORATED IN THESE TERMS AND CONDITIONS BY STATUTE, COMMON LAW OR OTHERWISE (INCLUDING WITHOUT LIMITATION ANY IMPLIED TERM AS TO QUALITY, FITNESS FOR PURPOSE, REASONABLE CARE AND SKILL) IS HEREBY EXPRESSLY EXCLUDED. IN PARTICULAR, APPLE WILL NOT BE RESPONSIBLE FOR ENSURING THAT THE PROGRAM IS SUITABLE FOR YOUR PURPOSES. 4.3 - NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR DEATH OR PERSONAL INJURY CAUSED BY OUR NEGLIGENCE OR FOR FRAUD. 4.4 - SUBJECT TO CLAUSE 4.3, WE WILL NOT BE LIABLE UNDER THESE TERMS AND CONDITIONS FOR ANY LOSS OF INCOME, LOSS OF PROFITS, LOSS OF CONTRACTS, LOSS OF DATA OR FOR ANY OTHER INDIRECT OR CONSEQUENTIAL LOSS OR DAMAGE OF ANY KIND HOWSOEVER ARISING AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR OTHERWISE. 4.5- SUBJECT TO CLAUSE 4.3, OUR MAXIMUM AGGREGATE LIABILITY UNDER THESE TERMS AND CONDITIONS, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE, SHALL IN NO CIRCUMSTANCES EXCEED THE AMOUNT PAYABLE BY YOU TO US IN RESPECT OF THE PROGRAM.22 SECTION 5 - IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF €25.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. ITALY SECTION 4 - A. IF YOU ARE A CONSUMER, NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE APPLE’S LIABILITY IN CASE OF VIOLATION OF THE LEGISLATION APPLICABLE TO THE PLAN. B. IF YOU ARE NOT A CONSUMER: (I) THESE TERMS AND CONDITIONS SET OUT THE FULL EXTENT OF OUR OBLIGATIONS AND LIABILITIES IN RESPECT OF THE SERVICES UNDER THIS PLAN; (II) THERE ARE NO WARRANTIES, CONDITIONS OR OTHER TERMS THAT ARE BINDING ON APPLE EXCEPT AS EXPRESSLY STATED IN THE PLAN; (III) ANY WARRANTY, CONDITION OR OTHER TERM CONCERNING THE PRODUCTS OR SERVICES WHICH MIGHT OTHERWISE BE IMPLIED INTO OR INCORPORATED IN THE PLAN BY STATUTE, COMMON LAW, LAWS APPLICABLE IN THE COUNTRY WHERE YOU PURCHASED THE PLAN OR OTHERWISE (INCLUDING WITHOUT LIMITATION ANY IMPLIED TERM AS TO QUALITY, FITNESS FOR PURPOSE, REASONABLE CARE AND SKILL) IS HEREBY EXPRESSLY EXCLUDED TO THE MAXIMUM EXTENT PERMITTED BY LAW. IN PARTICULAR, WE WILL NOT BE RESPONSIBLE FOR ENSURING THAT THE PLAN IS SUITABLE FOR YOUR PURPOSES. C. NOTHING IN THE PLAN SHALL LIMIT OR EXCLUDE APPLE’S LIABILITY (I) FOR DEATH OR PERSONAL INJURY CAUSED BY OUR NEGLIGENCE OR (II) FOR FRAUD OR (III) ANY BREACH OF THE OBLIGATIONS IMPLIED BY APPLICABLE COMPULSORY NATIONAL LAWS AS TO TITLE OR (IV) ANY LIABILITY WHICH CANNOT BE EXCLUDED BY LAW. D. SUBJECT TO CLAUSE 4.C IN THIS SECTION, APPLE WILL NOT BE LIABLE UNDER THE PLAN FOR ANY LOSS OF INCOME, LOSS OF PROFITS, LOSS OF CONTRACTS, LOSS OF DATA OR FOR ANY INDIRECT OR CONSEQUENTIAL LOSS OR DAMAGE OF ANY KIND HOWSOEVER ARISING AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR OTHERWISE.English 23 E. SUBJECT TO CLAUSE 4.C IN THIS SECTION, APPLE’S MAXIMUM AGGREGATE LIABILITY UNDER THE PLAN WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE SHALL IN NO CIRCUMSTANCES EXCEED THE AMOUNT PAYABLE BY YOU TO APPLE IN RESPECT OF THE PLAN. SECTION 5 - IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF €25.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. IF YOU ARE A CONSUMER, IN THE EVENT APPLE CANCELS THIS PLAN, YOU WILL RECEIVE FROM APPLE A CANCELLATION FEE EQUAL TO DOUBLE THE CANCELLATION FEE THAT YOU WOULD HAVE PAID IF YOU HAD CANCELLED THE PLAN AT THE TIME APPLE CANCELS. IF YOU ARE A CONSUMER AND YOU HAVE ENTERED THIS PLAN THROUGH THE APPLE STORE WEB SITE OR THROUGH THE PHONE, YOU MAY CANCEL THIS PLAN WITHIN FOURTEEN DAYS FOLLOWING YOUR PURCHASE OF THE PLAN. YOU WILL RECEIVE FULL REFUND. ARTICLES 50 - 61 OF THE ITALIAN LEGISLATIVE DECREE NO. 206 OF 6 SEPTEMBER 2005 (CONSUMER PROTECTION CODE) WILL APPLY TO THIS PLAN IF (I) THIS PLAN IS ENTERED THROUGH THE APPLE STORE WEB SITE, OR (II) THIS PLAN IS EXECUTED AS A “DISTANCE CONTRACT”. SECTION 7 - WITHOUT PREJUDICE TO ANY OTHER APPLICABLE LEGISLATION, ARTICLES 1519-BIS - 1519-NONIES OF THE ITALIAN CIVIL CODE APPLY TO THIS PLAN, WHICH CANNOT OVERRIDE THE RIGHTS AND REMEDIES CONFERRED ON CUSTOMERS BY THE ARTICLES MENTIONED ABOVE. SPAIN SECTION 4 - 4.1- IF YOU ARE A CONSUMER, NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR BREACH OF ANY TERM IMPLIED BY STATUTE. 4.2 - IF YOU ARE NOT A CONSUMER: - THESE TERMS AND CONDITIONS SET OUT THE FULL EXTENT OF OUR OBLIGATIONS AND LIABILITIES IN RESPECT OF THE PROGRAM; - THERE ARE NO WARRANTIES, CONDITIONS OR OTHER TERMS THAT ARE BINDING ON US EXCEPT AS EXPRESSLY STATED IN THESE TERMS AND CONDITIONS; AND - ANY WARRANTY, CONDITION OR OTHER TERM CONCERNING THE PROGRAM WHICH MIGHT OTHERWISE BE IMPLIED INTO OR INCORPORATED IN THESE TERMS AND CONDITIONS 24 English BY STATUTE OR REGULATION, CUSTOMARY LAW OR OTHERWISE (INCLUDING WITHOUT LIMITATION ANY IMPLIED TERM AS TO QUALITY, FITNESS FOR PURPOSE, REASONABLE CARE AND SKILL) IS HEREBY EXPRESSLY EXCLUDED. IN PARTICULAR, APPLE WILL NOT BE RESPONSIBLE FOR ENSURING THAT THE PROGRAM IS SUITABLE FOR YOUR PURPOSES. 4.3 - NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR DEATH OR PERSONAL INJURY CAUSED BY OUR NEGLIGENCE OR FOR FRAUD. 4.4 - SUBJECT TO CLAUSE 4.3, AND TO THE MAXIMUM EXTEND PERMITTED BY APPLICABLE LAW, WE WILL NOT BE LIABLE UNDER THESE PLAN FOR ANY LOSS OF INCOME, LOSS OF PROFITS, LOSS OF CONTRACTS, LOSS OF DATA OR FOR ANY INDIRECT OR CONSEQUENTIAL LOSS OR DAMAGE OF ANY KIND HOWSOEVER ARISING AND WHETHER CAUSED BY TORT, BREACH OF CONTRACT OR OTHERWISE. 4.5- SUBJECT TO CLAUSE 4.3, AND TO THE MAXIMUM EXTEND PERMITTED BY APPLICABLE LAW, OUR MAXIMUM AGGREGATE LIABILITY UNDER THE CONTRACT WHETHER IN CONTRACT, TORT OR OTHERWISE SHALL IN NO CIRCUMSTANCES EXCEED THE AMOUNT PAYABLE BY YOU TO US IN RESPECT OF THE PROGRAM. SECTION 5 - IF YOU ARE A CONSUMER AND YOU HAVE ENTERED THIS PLAN THROUGH THE APPLE STORE WEB SITE OR THROUGH THE TELEPHONE, YOU MAY CANCEL THIS PLAN WITHIN FOURTEEN DAYS FOLLOWING YOUR PURCHASE OF THE PLAN. YOU WILL RECEIVE FULL REFUND. IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF €25.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. SWITZERLAND SECTION 4 - SECTION 4 IS REPLACED BY THE FOLLOWING: 4.1 - IF YOU ARE A CONSUMER, NOTHING IN THE PROGRAM SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR BREACH OF ANY TERM IMPLIED BY MANDATORY STATUTORY LAW. 4.2 - IF YOU ARE NOT A CONSUMER: - THESE TERMS AND CONDITIONS SET OUT THE FULL EXTENT OF OUR OBLIGATIONS IN RESPECT OF THE PROGRAM;English 25 - ANY OBLIGATIONS AND WARRANTIES CONCERNING THE PROGRAM THAT MAY BE BINDING ON US BY STATUTE (INCLUDING ANY IMPLIED WARRANTY CONCERNING CARE AND SKILL) ARE HEREBY EXPRESSLY EXCLUDED. IN PARTICULAR, APPLE WILL NOT BE RESPONSIBLE FOR ENSURING THAT THE PROGRAM IS SUITABLE FOR YOUR PURPOSES. 4.3 - NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY FOR DEATH OR PERSONAL INJURY CAUSED BY NEGLIGENCE OR FOR FRAUD. 4.4 - TO THE MAXIMUM EXTEND PERMITTED BY APPLICABLE LAW, WE WILL NOT BE LIABLE UNDER THESE TERMS AND CONDITIONS FOR ANY LOSS OF INCOME, LOSS OF PROFITS, LOSS OF OPPORTUNITIES OR LOSS OF DATA. 4.5 - SUBJECT TO CLAUSE 4.3, OUR MAXIMUM AGGREGATE LIABILITY UNDER THESE TERMS AND CONDITIONS WHETHER IN CONTRACT, TORT OR OTHERWISE SHALL IN NO CIRCUMSTANCES EXCEED THE AMOUNT YOU PAID IN RESPECT OF THE PROGRAM. SECTION 5 - 5.1 - THE FOLLOWING PROVISIONS ARE ADDED TO SECTION 5: IF YOU ARE A CONSUMER AND YOU HAVE ENTERED THIS PLAN THROUGH THE APPLE STORE WEB SITE OR THROUGH THE PHONE, YOU MAY CANCEL THIS PLAN WITHIN FOURTEEN DAYS FOLLOWING YOUR PURCHASE OF THE PLAN. YOU WILL RECEIVE FULL REFUND. HOWEVER, IF YOU HAVE STARTED TO USE THE PROGRAM, YOU WILL RECEIVE A FULL REFUND LESS THE VALUE OF ANY SERVICE PROVIDED UNDER THE PLAN. 5.2 - IF YOU CANCEL MORE THAN 30 DAYS AFTER YOUR RECEIPT OF THIS PLAN, YOU WILL RECEIVE A PRO-RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, LESS A CANCELLATION FEE OF SFR39.00 OR 10 PER CENT OF THE PRO-RATA AMOUNT, WHICHEVER IS LESS. UNITED KINGDOM SECTION 4 - SECTION 4 IS REPLACED BY THE FOLLOWING PROVISIONS: 4.1- THESE TERMS AND CONDITIONS SET OUT THE FULL EXTENT OF OUR OBLIGATIONS AND LIABILITIES IN RESPECT OF THE PROGRAM. 4.2- THERE ARE NO WARRANTIES, CONDITIONS OR OTHER TERMS THAT ARE BINDING ON US EXCEPT AS EXPRESSLY STATED IN THESE TERMS AND CONDITIONS. 4.3 - ANY WARRANTY, CONDITIONS OR OTHER TERM CONCERNING THE PROGRAM WHICH 26 English MIGHT OTHERWISE BE IMPLIED INTO OR INCORPORATED IN THESE TERMS AND CONDITIONS BY STATUTE, COMMON LAW, LAWS APPLICABLE IN THE COUNTRY WHERE YOU PURCHASED THE PROGRAM OR OTHERWISE (INCLUDING WITHOUT LIMITATION ANY IMPLIED TERM AS TO QUALITY, FITNESS FOR PURPOSE, REASONABLE CARE AND SKILL) IS HEREBY EXPRESSLY EXCLUDED TO THE MAXIMUM EXTENT PERMITTED BY LAW. IN PARTICULAR, WE WILL NOT BE RESPONSIBLE FOR ENSURING THAT THE PROGRAM IS SUITABLE FOR YOUR PURPOSE. 4.4 - NOTHING IN THESE TERMS AND CONDITIONS SHALL LIMIT OR EXCLUDE OUR LIABILITY (I) FOR DEATH OR PERSONAL INJURY CAUSED BY OUR NEGLIGENCE OR (II) FOR FRAUD OR (III) ANY BREACH OF THE OBLIGATIONS IMPLIED BY APPLICABLE COMPULSORY NATIONAL LAWS AS TO TITLE OR (IV) ANY LIABILITY WHICH CANNOT BE EXCLUDED BY LAW. 4.5 - SUBJECT TO CLAUSE 4.4, WE WILL NOT BE LIABLE UNDER THESE TERMS AND CONDITIONS FOR ANY LOSS OF INCOME, LOSS OF PROFITS, LOSS OF CONTRACTS, LOSS OF DATA OR FOR ANY INDIRECT OR CONSEQUENTIAL LOSS OR DAMAGE OF ANY KIND HOWSOEVER ARISING AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR OTHERWISE. 4.6 - SUBJECT TO CLAUSE 4.4, OUR MAXIMUM AGGREGATE LIABILITY UNDER THESE TERMS AND CONDITIONS, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE, SHALL IN NO CIRCUMSTANCES EXCEED THE AMOUNT PAYABLE BY YOU TO US IN RESPECT OF THE PROGRAM. 4.7 – THIS DOES NOT AFFECT YOUR STATUTORY RIGHTS AS A CONSUMER, NOR YOUR RIGHT TO CANCEL THE PROGRAM AS PER SECTION 5. SECTION 5 - YOU HAVE THE RIGHT TO CANCEL THIS PLAN WITHIN FORTY-FIVE (45) DAYS OF PURCHASE AND RECEIVE A FULL REFUND UNLESS YOU HAVE RECEIVED SUPPORT OR SERVICES UNDER THE PLAN. AFTER THE 45-DAY CANCELLATION PERIOD, YOU MAY CANCEL THE PLAN AT ANY TIME WITHIN THE PLAN’S TERM AND OBTAIN A PRO RATA REFUND OF THE PLAN’S ORIGINAL PURCHASE PRICE, BASED ON THE REMAINING PERIOD OF FULL UNEXPIRED MONTHS OF COVER PROVIDED BY THE PLAN. IF YOU HAVE RECEIVED SERVICE AND SUPPORT, THE PLAN WILL CONTINUE IN ACCORDANCE WITH THESE TERMS AND CONDITIONS.English 27 Phone Numbers In the UK: In Ireland: (44) 0870 876 0753 (353) 1850 946 191 Monday – Friday Monday – Friday 8:00 am – 7:45 pm 8:00 am – 7:45 pm Saturday Saturday 10:00 am – 5:45 pm* 10:00 am – 5:45 pm* * Telephone numbers and hours of operation may vary and are subject to change. You can find the most up-to-date local and www.apple.com/support/contact/phone_contacts.html. Toll-free numbers are not available in all countries. Local and national telephone rates may apply. A list of authorized wireless service providers is available online at: http://images.apple.com/legal/warranty/docs/iPhoneAuthorizedDistributors.pdf APPLE SALES INTERNATIONAL, HOLLYHILL INDUSTRIAL ESTATE, HOLLYHILL, CORK, REPUBLIC OF IRELAND WWW.APPLE.COM EMEA APP iPhone Z v1Français 29 AppleCare Protection Plan pour iPhone Fiche d’informations Tranquillité d’esprit avec Apple Chaque iPhone bénéficie d’une garantie d’un an sur les réparations et d’une assistance technique de 90 jours. Le programme AppleCare Protection Plan pour iPhone prolonge la durée de votre couverture à deux ans à compter de la date d’achat de votre iPhone 1 . Que vous utilisiez iPhone avec un Mac ou un PC, un coup de fil peut suffire pour résoudre vos problèmes. Informations concernant la garantie Ce programme complet est disponible pour tous les modèles iPhone couverts par la garantie limitée d’un an. Si vous vendez l’iPhone couvert avant expiration du contrat AppleCare Protection Plan pour iPhone, vous pouvez transférer le programme au nouveau propriétaire 2 . Pour chaque iPhone que vous souhaitez couvrir, vous devez acheter un contrat AppleCare Protection Plan pour iPhone séparé. Veillez à conserver le document faisant office de preuve de garantie, c’est-à-dire la facture originale de l’iPhone ou de l’AppleCare Protection Plan pour iPhone. Une preuve d’achat peut vous être demandée par Apple en cas de doute concernant le droit de votre iPhone à être couvert par le programme AppleCare Protection Plan. Options d’assistance technique Si des problèmes se présentent lors de l’utilisation de votre iPhone, suivez les instructions de dépannage présentes sur le site web d’assistance iPhone à l’adresse www.apple.com/fr/support/iphone. Si vous ne parvenez pas à résoudre le problème, le personnel AppleCare peut vous aider à dépanner votre iPhone et à résoudre des problèmes de connexion avec iTunes. Vous trouverez la liste des informations de contact et des horaires du service d’assistance technique d’Apple dans le Guide de référence rapide. Sous la garantie du programme AppleCare Protection Plan pour iPhone, Apple fournit le même service d’assistance complet aux utilisateurs Mac et aux utilisateurs Windows.30 Français Service de réparation du matériel Ce programme étend le service de réparations et de remplacement de la garantie Apple d’un an à deux ans à compter de la date d’achat de votre iPhone. Il prolonge également la couverture de service sur la batterie iPhone lorsque sa capacité à retenir une charge électrique est réduite de cinquante pour cent (50%) ou plus par rapport à sa capacité d’origine. Les options de service après-vente en magasin ou d’enlèvement à domicile par transporteur peuvent s’appliquer. Reportez-vous au Guide de référence rapide pour des détails supplémentaires sur l’obtention du service. L’équipement de remplacement fourni par Apple dans le cadre du service de réparation ou de remplacement peut être neuf, d’occasion ou reconditionné. 1. Ce programme étend votre couverture de service à deux ans à compter de la date d’achat de votre iPhone. Le contrat du programme doit être acheté lorsque votre iPhone est encore sous sa garantie d’origine d’un an. La couverture du service peut être soumise à certaines conditions. Les avantages du programme AppleCare Protection Plan s’ajoutent à ceux de tous les droits légaux garantis par les lois de protection du consommateur dans votre juridiction. 2. Pour de plus amples informations, consultez les Conditions Générales du programme AppleCare Protection Plan, ci-jointes.Français 31 Essayez les opérations suivantes, faciles à réaliser, avant d’appeler Apple pour obtenir de l’aide Si vous avez des problèmes avec votre iPhone, essayez les procédures de dépannage disponibles sur le site web d’assistance iPhone à l’adresse www.apple.com/fr/support/iphone. Par mesure de précaution, il est recommandé de sauvegarder le contenu de votre iPhone avant d’appliquer ces procédures. Vérifiez que vous disposez de la dernière version d’iTunes disponible Vous pouvez télécharger la dernière version d’iTunes à l’adresse www.apple.com/fr/itunes/download. Consultez le site web d’assistance iPhone Le site web d’assistance iPhone présente des liens pour vérifier la disponibilité d’une option de service, des didacticiels relatifs à l’iPhone, des forums de discussions et d’autres ressources pour répondre à diverses questions d’utilisation et de dépannage. Ces ressources sont disponibles 24 heures sur 24 à l’adresse www.apple.com/fr/support/iphone. Contacts d’assistance Apple Si ces procédures ne permettent pas de résoudre le problème, veuillez contacter Apple pour obtenir une assistance. Lorsque vous appelez Apple, il vous est demandé d’indiquer votre numéro de contrat AppleCare Protection Plan pour iPhone ou le numéro de série de votre iPhone, situé au dos de votre iPhone. En France (33) 0805 540 003 Du lundi au vendredi De 8H00 à 19H45. Le samedi de 10H00 à 17H45 * * Les numéros de téléphone et les heures d’ouverture au public peuvent varier et sont susceptibles d’être modifiés. Vous trouverez la toute dernière liste des contacts nationaux et internationaux à l’adresse www.apple.com/contact/phone_contacts.html. Guide de référence rapide AppleCare Protection Plan pour iPhoneFrançais 33 AppleCare Protection Plan pour iPhone Conditions Générales Votre programme AppleCare Protection Plan pour iPhone (ci-après désigné le « Programme ») est régi par les présentes conditions générales (« Conditions Générales ») et constitue un contrat de prestation de services conclu avec la société Apple Sales International (« Apple »). Sous réserve des présentes Conditions Générales, votre Programme (i) couvre les défauts du produit de marque iPhone indiqué dans votre certification d’adhésion au Programme ou figurant sur la preuve de garantie (« Confirmation d’Adhésion ») les écouteurs de la marque iPhone Bluetooth si vous les possédez et utilisez avec l’iPhone couvert par la garantie, et les accessoires matériels informatiques livrés d’origine (collectivement ci-après les « Produits Couverts» ou le « Produit Couvert ») et (ii) vous permet d’avoir accès à une assistance téléphonique ainsi qu’à une assistance Internet pour le Produit Couvert. Pour obtenir votre Confirmation d’Adhésion, vous devez communiquer le numéro de contrat ou numéro d’inscription unique (« Numéro de Contrat AppleCare ») figurant sur l’emballage contenant la documentation relative au Programme. Les clients qui choisissent l’option d’inscription automatique, dans le cas où elle est disponible, reçoivent automatiquement la Confirmation d’Adhésion. La période de couverture du Programme (« Période de Couverture ») est spécifiée dans votre Confirmation d’Adhésion. Le prix du Programme est indiqué sur le ticket de caisse original. Apple peut limiter le service fourni par ce Programme au pays d’origine ou l’achat des Produits Couverts a eu lieu. 1. Couverture de la réparation a. Champ de la couverture. La garantie relative aux défauts prend effet à la date d’expiration de la garantie d’origine consentie par Apple au titre du Produit Couvert et expire à la fin de la Période de Couverture (« Période de Couverture de Réparation »). Apple, à son choix, réparera ou remplacera les Produits Couverts affectés, si (i) pendant la Période de Couverture, il apparaît un vice de fabrication ou de matière des Produits Couverts, ou, (ii) pendant la Période de Couverture, la capacité de la batterie iPhone couverte à contenir une charge électrique diminue de cinquante pourcent (50%) ou plus par rapport à ses spécifications 34 Français d’origine (après avoir été entièrement rechargée et l’iPhone couvert fonctionnant en mode audio ou vidéo avec tous les réglages réinitialisés). Apple fournit les pièces et la main d’œuvre, mais peut vous demander de remplacer vous-même certaines pièces faciles à installer, comme indiqué ci-dessous. Apple peut utiliser des produits ou des pièces de rechange neufs ou des pièces dont les performances et la fiabilité équivalent à celles d’une pièce neuve. Le produit ou les pièces de rechange seront équivalents, d’un point de vue fonctionnel, au produit ou pièces remplacés et bénéficient de la couverture restante au titre du Programme. Toute pièce de rechange ou tout produit remplacé devient la propriété d’Apple. Apple vous recommande fortement d’effectuer, avant de rendre les Produits Couverts disponibles pour toute prestation de service, une copie de sauvegarde des données et logiciels contenus ou enregistrés dans les Produits Couverts. b. Limites. Le Programme ne couvre pas : (i) L’installation, le déplacement ou l’enlèvement du Produit Couvert ; l’installation, l’enlèvement, la réparation ou l’entretien d’un Produit non couvert (y compris les accessoires, périphériques ou autres matériels) ; le service de réseau ou cellulaire non inhérentes au Produit Couvert ; (ii) Les dommages causés au Produit Couvert par un accident, un abus, une négligence, une utilisation incorrecte (notamment une installation, une réparation ou un entretien inapproprié effectué par un tiers autre qu’Apple ou d’un fournisseur de services sans fil autorisé), des modifications non autorisées, une utilisation dans un environnement inadapté (notamment une température ou une humidité inadéquate), des contraintes ou des interférences physiques ou électriques inappropriées, des défaillances ou variations de l’alimentation électrique, la foudre, l’électricité statique, un incendie, un cas de force majeure, ou toute autre cause étrangère au Produit Couvert ; (iii) Un Produit Couvert dont le numéro de série a été modifié, altéré ou supprimé ; (iv) Les problèmes dus à un appareil autre que le Produit Couvert, notamment les produits d’une autre marque qu’Apple, qu’ils aient été acquis ou non en même temps que le Produit Couvert ;Français 35 (v) L’intervention nécessaire pour assurer la conformité avec la réglementation d’une entité ou de tout organisme gouvernemental adoptée postérieurement à la date d’entrée en vigueur du présent Programme ; (vi) Les problèmes causés par le fonctionnement du service de réseau ou de cellulaire ou par des virus ou par d’autres problèmes de logiciels introduits dans les Produits Couverts ; (vii) Un Produit Couvert perdu ou volé. Le Programme ne couvre que les Produits Couverts retournés à Apple dans leur intégralité ; (viii) Les défauts esthétiques affectant le Produit Couvert, tels que notamment les rayures, les éraflures ou un défaut affectant les plastiques de protection des ports de connexion ; (ix) La maintenance préventive des Produits Couverts ; (x) La mise à disposition de produits de remplacement pour la durée pendant laquelle le Produit Couvert est en maintenance ; (xi) Les dommages aux ou les pertes de logiciels ou de données installés ou stockés sur le Produit Couvert. LE CONTENU DE VOTRE iPHONE SERA PERDU ET VOTRE SUPPORT DE MÉMOIRE REFORMATÉ LORS DE LA MISE EN ŒUVRE DU SERVICE. Votre iPhone ou un iPhone de remplacement vous sera retourné avec la même configuration que lorsque vous avez acheté votre produit, sous réserve des nouvelles versions applicables. Il est possible qu’Apple, dans le cadre du service, installe des mises à jour du logiciel de système (« iPhone OS ») qui empêcheront l’iPhone de revenir à une précédente version d’iPhone OS. Il est possible que les applications tierces installées sur l’iPhone ne soit pas compatibles ou ne fonctionnent pas avec l’iPhone conséquemment à la mise à jour d’iPhone OS. Il vous reviendra d’installer de nouveau tous programmes, données et mots de passe. La récupération et la réinstallation des logiciels et des données de l’utilisateur ne sont pas couvertes par le présent Programme ; (xii) Les défauts causés par une usure normale ou dus au vieillissement normal du Produits Couverts ; ou (xiii) Sous réserve de ce qui est spécifié ci-dessus, tout autre dommage qui ne résulte pas de défaut du matériel ou de fabrication ou d’un usage ordinaire et coutumier des Produits Couverts.36 Français c. Options. Apple pourra vous fournir un service de maintenance à travers une ou plusieurs des options suivantes : (i) Un service après-vente en magasin. Vous devez rapporter ou retourner votre Produit Couvert à un Apple Retail Store ou auprès d’un fournisseur de services sans fil autorisé offrant des prestations de service après-vente. Soit les services seront assurés sur place, soit le magasin Apple pourra envoyer le Produit Couvert à un centre de réparation Apple pour être réparé. Vous récupérerez promptement le Produit Couvert dès réception d’une notification vous indiquant que le service a été réalisé. (ii) Un service de réparation à distance, par expédition du matériel. Si Apple considère que votre produit peut bénéficier du service à distance, vous recevrez des lettres de voiture (et/ou le colis d’origine si vous ne le possédez plus) pour lesquels les frais d’expédition auront été préalablement acquittés par Apple et vous pourrez expédier le Produit Couvert au centre de réparation d’Apple comme indiqué dans les instructions. Une fois la réparation effectuée, le centre de réparation vous renverra le Produit Couvert. Apple prend en charge les frais de transport du Produit Couvert depuis et à destination de votre domicile si vous suivez correctement toutes les instructions. (iii) Un service de réparation par pièces à installer soi-même est disponible pour de nombreuses pièces de Produits Couverts ou des accessoires, vous permettant ainsi de dépanner vous-même votre produit. Si ce service est disponible, celui-ci s’effectuera de la manière suivante : (A) Service de réparation par pièces à installer soi-même si Apple exige la restitution de la pièce remplacée. Apple peut demander, à titre de sécurité, une autorisation sur votre carte de crédit pour le prix de détail de la pièce de rechange et les frais d’expédition applicables. Si vous ne pouvez pas fournir d’autorisation sur votre carte de crédit, vous pourriez ne pas bénéficier du service de réparation par pièces en libre-service et Apple vous proposerait le cas échéant d’autres formules de réparation. Apple vous enverra alors une pièce de rechange accompagnée des instructions d’installation et de toutes les consignes concernant le retour de la pièce remplacée. Si vous suivez toutes les instructions, Apple annulera l’autorisation sur votre carte de crédit, de sorte que vous ne devrez pas payer la pièce et pour l’expédition depuis et jusqu’à votre domicile. Si vous ne renvoyez pas la pièce Français 37 remplacée, comme indiqué dans les instructions, Apple facturera la pièce de rechange. (B) Service de réparation par pièces à installer soi-même si Apple n’exige pas la restitution de la pièce remplacée. Apple vous enverra gratuitement une pièce de rechange, accompagnée des instructions d’installation et de toutes les consignes concernant le retrait de la pièce défectueuse. (C) Apple n’est pas responsable du coût de main d’œuvre découlant du service de réparation par pièces en libre-service. Si vous souhaitez recevoir une assistance supplémentaire, contactez Apple au numéro que vous trouverez dans le Guide de Référence Rapide AppleCare (Guide). Le Guide est fourni avec la documentation du Programme. Apple se réserve le droit de modifier à tout moment les modalités de mise en œuvre des services de réparation ou de remplacement qui vous sont offerts, ainsi que les conditions d’application d’un service particulier à votre Produit Couvert. Les options de services, la disponibilité des pièces et les temps de réponse peuvent varier d’un pays à un autre. d. Obtention d’un service de réparation ou de remplacement. Pour obtenir un service de réparation ou de remplacement dans le cadre du Programme, connectez-vous au site Internet d’Apple (www.apple.com/fr/support) ou composez le numéro indiqué dans le Guide. Les numéros de téléphone peuvent varier en fonction de votre lieu de résidence. Si vous contactez nos services par le biais du site Internet, nous vous remercions de bien vouloir suivre les indications qui vous seront fournies en ligne. Si vous nous contactez par téléphone, vous serez mis en contact avec un technicien chargé de l’assistance auquel vous devrez communiquer votre Numéro de Contrat AppleCare. Notre technicien déterminera si votre produit nécessite une intervention. Toute intervention requiert l’approbation préalable d’Apple. Le lieu de l’intervention peut varier en fonction de votre lieu de résidence. Conservez l’ensemble des documents relatifs à votre Confirmation d’Adhésion, ainsi que l’original de la facture d’achat du Produit Couvert et de votre adhésion au Programme. Une preuve d’achat peut vous être demandée en cas de doute concernant l’éligibilité de votre produit au titre du Programme.38 Français 2. Assistance technique a. Assistance téléphonique et Internet. Votre éligibilité à l’assistance technique prend effet à la date d’expiration de l’assistance technique gratuite de votre Produit(s) Couvert(s), ou à la date du début de la Période de Couverture, (la plus éloignée de ces dates prévalant) et expire à la fin de la Période de Couverture (« Période de Couverture de l’Assistance »). Pendant la Période de Couverture de l’Assistance, Apple vous fournira accès à une assistance technique par téléphone et par Internet. L’assistance technique couvre l’installation, l’initialisation, la configuration, l’identification de la panne, et la remise en marche (à l’exception de la récupération des données), y compris le stockage, la récupération et la gestion des dossiers, l’analyse des messages d’erreur et détermine quand une réparation du matériel est nécessaire. Apple fournira une assistance technique pour le Produit Couvert, iPhone OS, les logiciels d’application qui sont préinstallés avec le Produit Couvert et les problèmes de connectivité entre le Produit Couvert et un ordinateur adapté, c’est-à-dire un ordinateur adapté à la connectivité spécifique du Produit Couvert et qui dispose d’un système d’exploitation compatible avec le Produit Couvert. Apple fournira une assistance pour la version en vigueur d’iPhone OS et du logiciel iPhone, et la précédente Mise-à-Jour Majeure, mais se réserve le droit de modifier à tout moment l’assistance qu’il fournit sur n’importe quelle précédente version. Dans le cadre de cet article, une « Mise-à-Jour Majeure » désigne une version du logiciel publiée par Apple comprenant un numéro de format tel que « 1.0 » ou « 2.0 » et qui n’est pas une version beta ou pré-commerciale. b. Limitations. Le présent Programme ne couvre pas : (i) Les problèmes qui peuvent être résolus en mettant les logiciels à jour de la version en vigueur ; (ii) L’usage ou la modification du Produit Couvert, d’iPhone OS ou du Logiciel iPhone nonconforme à la façon dont le Produit Couvert ou le logiciel a été conçu pour être utilisé ou modifié ; (iii) Les produits non-Apple, ou leurs effets sur, ou leurs interactions avec le Produit Couvert, l’iPhone OS ou le Logiciel iPhone ; (iv) L’utilisation d’un ordinateur ou d’un système d’exploitation qui n’est pas adapté au Logiciel iPhone ou à la connectivité du Produit Couvert ;Français 39 (v) Les logiciels d’Apple autres que l’iPhone OS ou le Logiciel iPhone tels que couverts par ce présent Programme ; (vi) Le logiciel iPhone OS ou tout autre logiciel Apple labellisé « beta », « pré-commercial », ou « preview » ou tout logiciel labellisé d’une manière similaire ; et (vii) L’endommagement ou la perte de tout logiciel ou donnée présente ou enregistrée dans le Produit Couvert. c. Obtention de l’Assistance Technique. Une assistance technique vous sera fournie au numéro de téléphone inscrit ci-dessous. Vous serez mis en relation avec un technicien Apple chargé de l’assistance. Les horaires du service d’assistance d’Apple sont indiqués ci-dessous. Apple se réserve le droit de modifier à tout moment les horaires et numéros de téléphone du service d’assistance. Une assistance technique est également disponible sur le site Internet Apple à l’adresse indiquée ci-dessous. 3. Vos obligations Afin de bénéficier des services fournis dans le cadre du Programme, vous devez respecter les obligations suivantes : a. Fournir votre Numéro de Contrat AppleCare et le numéro de série du Produit Couvert ; b. Répondre aux questions de notre technicien relatives aux symptômes et problèmes affectant le Produit Couvert, et ; c. Suivre les instructions communiquées par Apple, notamment en vous abstenant de nous renvoyer les produits et accessoires ne bénéficiant pas d’un service de remplacement ou de réparation et en respectant nos instructions relatives à l’emballage et à l’expédition du Produit Couvert ; et d. Mettre les logiciels à jour des dernières versions éditées avant de faire appel au service d’assistance. 4. Limitation de responsabilité POUR LES CONSOMMATEURS BENEFICIANT DE LA REGLEMENTATION OU DES LOIS SUR LA PROTECTION DES CONSOMMATEURS, LES AVANTAGES CONFERES PAR LE PROGRAMME S’AJOUTENT A TOUS LES DROITS ET VOIES DE DROIT PREVUS PAR CETTE REGLEMENTATION OU CES LOIS SUR LA PROTECTION DES CONSOMMATEURS. RIEN DANS LE PROGRAMME NE SAURAIT PORTER ATTEINTE AUX DROITS DES CONSOMMATEURS CONFERES PAR LES LOIS EN VIGUEUR, NOTAMMENT LE DROIT 40 Français DES CONSOMMATEURS A RECLAMER DES DOMMAGES ET INTERETS EN CAS DE NON-EXECUTION TOTALE OU PARTIELLE OU D’EXECUTION INADEQUATE PAR APPLE D’UNE QUELCONQUE DE SES OBLIGATIONS CONTRACTUELLES. DANS LA LIMITE DE CE QUI EST PERMIS PAR LA LOI APPLICABLE, APPLE, SES EMPLOYÉS ET SOUS-TRAITANTS NE SAURAIENT EN AUCUN CAS ÊTRE TENUS RESPONSABLES A VOTRE ÉGARD OU A L’ÉGARD D’UN QUELCONQUE SOUS-ACQUÉREUR DES DOMMAGES INDIRECTS LIES A L’EXÉCUTION DU PROGRAMME, NOTAMMENT, MAIS SANS LIMITATION, LES COUTS AFFERENTS A LA RECUPERATION, A LA REPROGRAMMATION OU A LA REPRODUCTION DE TOUT LOGICIEL OU DE TOUTE DONNEE, L’INCAPACITE A PRESERVER LA CONFIDENTIALITE DES DONNEES, TOUTE PERTE D’OPPORTUNITE COMMERCIALE, DE CHIFFRE D’AFFAIRES, DE PROFIT, OU D’ECONOMIE ESCOMPTEE. DANS TOUTE LA MESURE PERMISE PAR LA LOI APPLICABLE, LA RESPONSABILITE D’APPLE, DE SES EMPLOYES OU DE SES SOUS-TRAITANTS EN RAISON DE LA MISE EN ŒUVRE DU PROGRAMME NE SAURAIT EXCEDER LE PRIX QUE VOUS AVEZ ACQUITTE POUR BENEFICIER DU PROGRAMME. EN PARTICULIER, APPLE NE GARANTIT PAS QU’IL SERA POSSIBLE (I) DE REPARER OU REMPLACER LE PRODUIT COUVERT SANS RISQUER LA PERTE OU L’ENDOMMAGEMENT DES LOGICIELS OU DES DONNEES CONTENUS DANS LE PRODUIT COUVERT OU (II) DE PRESERVER LA CONFIDENTIALITE DES DONNEES. RIEN DANS CET ACCORD NE SAURAIT EXCLURE OU LIMITER LA RESPONSABILITE D’APPLE EN CAS DE (I) NEGLIGENCE PROVOCANT LA MORT OU LA BLESSURE DE PERSONNES OU (II) FRAUDE. DANS LA MESURE OU IL EST PERMIS QUE LA RESPONSABILITE SOIT LIMITEE EN VERTU DE CETTE REGLEMENTATION OU DE CES LOIS SUR LA PROTECTION DES CONSOMMATEURS, LA RESPONSABILITE D’APPLE EST LIMITEE, A SON ENTIERE DISCRETION, AU REMPLACEMENT OU A LA REPARATION DU PRODUIT COUVERT OU A LA FOURNITURE DES SERVICES. 5. Résiliation Vous pouvez résilier le Programme à tout moment et pour tout motif. Si vous décidez de résilier le Programme, contactez-nous par téléphone au numéro indiqué dans le Guideou faites-nous part de votre décision par écrit en adressant un courrier ou un fax mentionnant impérativement votre Numéro de Contrat AppleCare à notre Service Assistance Consommateur à l’adresse suivante : Hollyhill Industrial Estate, Hollyhill, Cork, République d’Irlande (ou au numéro de fax suivant : +353-(0)21-428-3917). Vous devez joindre à votre courrier une copie de votre preuve d’achat du Programme. Sous réserve d’éventuelles dispositions contraires du droit applicable, si vous résiliez le Programme dans les trente (30) jours de la date d’achat du Programme ou de la réception des Français 41 présentes Conditions Générales, la plus tardive de ces deux dates prévalant, vous obtiendrez le remboursement de la totalité de la somme acquittée en contrepartie du bénéfice du Programme, sous déduction des sommes correspondant aux services éventuellement fournis dans le cadre du Programme avant la date de résiliation. Si vous résiliez le Programme après l’expiration du délai de trente (30) jours mentionné ci-dessus, vous obtiendrez un remboursement partiel égal à la somme acquittée en contrepartie du bénéfice du Programme (réduite au prorata de la durée du Programme déjà écoulée au jour de la résiliation), sous déduction (a) tout frais de résiliation visé à l’article 8 ci-après ou d’une somme égale à dix (10) % de la somme proratisée servant de base au remboursement (la moins élevée de ces deux sommes prévalant), et (b) des sommes correspondant aux services éventuellement fournis dans le cadre du Programme jusqu’à la date de la résiliation. Sous réserve d’éventuelles dispositions contraires du droit applicable, Apple se réserve le droit de résilier le Programme moyennant le respect d’un préavis de trente (30) jours dans le cas où des pièces de rechange nécessaires à la fourniture des services fournis dans le cadre du Programme deviendraient indisponibles. En cas de résiliation du Programme à l’initiative d’Apple, vous serez remboursé au prorata de la durée du Programme restant à courir. 6. Transfert de droits Vous pouvez céder les droits dont vous bénéficiez au titre du Programme à la personne à laquelle vous vendez le Produit Couvert. Vous devez notifier le transfert des droits à notre Service Assistance Consommateur par courrier ou fax à l’adresse suivante : Hollyhill Industrial Estate, Hollyhill, Cork, République d’Irlande, ou au numéro de fax suivant : +353-(0)21-428-3917. A cette fin, vous devez nous communiquer le Numéro de Contrat AppleCare du contrat transféré, le numéro de série du Produit Couvert cédé, votre preuve d’achat du Programme, le nom, l’adresse, les coordonnées téléphoniques et l’adresse de courrier électronique du nouveau propriétaire. 7. Stipulations générales a. Apple se réserve le droit de sous-traiter ou de confier l’exécution de ses obligations à des tiers sans que cela puisse la décharger de ses obligations à votre égard. b. Apple ne saurait être tenue responsable d’un défaut ou retard d’exécution de l’une quelconque de ses obligations au titre du Programme résultant d’un événement présentant à son égard les caractéristiques de force majeure.42 Français c. Vous n’êtes pas tenu de procéder à une maintenance préventive des Produits Couverts afin de bénéficier du Programme. d. Le présent Programme est offert et valide seulement en Autriche, France (à l’exclusion de la Corse, des départements et territoires d’outre-mer), Allemagne, Irlande, Italie, Espagne (y compris les Iles Baléares, mais à l’exclusion des Iles Canaries, Ceuta, Melilla), Suisse et Royaume-Uni. Le présent Programme n’est pas proposé aux mineurs. Il n’est pas disponible dans les pays où la loi l’interdit. e. Dans le cadre de l’exécution de ses obligations, Apple se réserve le droit, à son entière discrétion et dans le seul but de contrôler la qualité de son service, d’enregistrer tout ou partie des communications téléphoniques entre vous et Apple. f. Vous acceptez que toute information ou donnée divulguée à Apple dans le cadre du présent Programme n’est ni confidentielle, ni votre propriété. De plus, vous acceptez le fait qu’Apple puisse collecter et traiter des données en votre nom lorsque Apple fournit ses services. Dans ce cadre, Apple pourra être amenée à transférer des données vous concernant à des sociétés qui lui sont affiliées ou à des prestataires de services concernant conformément à la politique de protection des données mise en œuvre par Apple, consultable sur notre site Internet à l’adresse suivante : http://www.apple.com/fr/legal/privacy. g. Apple dispose de mesures de sécurité pour protéger vos données contre des accès ou divulgations non autorisés de même que contre des destructions illégales. Vous êtes responsable des instructions que vous donnez à Apple concernant le traitement des données, et Apple cherchera à se conformer à ces instructions raisonnablement nécessaires à la réalisation du service et aux obligations de support dans le cadre du présent Programme. Si vous n’acceptez pas ce qui est mentionné ci-dessus, ou si vous avez des questions sur les conséquences de ce traitement sur vos données, veuillez contacter Apple aux numéros de téléphone fournis. h. Apple protégera vos informations personnelles conformément à la Politique de Confidentialité d’Apple. Si vous souhaitez accéder aux données personnelles vous concernant détenues par Apple ou les modifier, vous pouvez les mettre à jour à l’adresse suivante : www.apple.com/contact/myinfo ou contacter la personne chargée du contrôle des données personnelles pour l’Europe chez Apple, par e-mail, à l’adresse suivante : privacyeurope@apple.com Français 43 i. Les Conditions Générales du présent Programme prévalent sur toutes stipulations contraires, supplémentaires ou autres contenues dans des bons de commande ou autres documents. Ces Conditions Générales constituent l’intégralité de l’accord entre vous et Apple en ce qui concerne le Programme. j. Vos droits dans le cadre du présent Programme s’ajoutent aux garanties auxquelles vous pouvez avoir droit. Vous devez acquérir et souscrire au Programme tant que iPhone de la marque Apple est couvert par la Garantie Limitée d’un an. Apple n’est pas tenue de renouveler le présent Programme. Si Apple décide de renouveler le Programme, elle en déterminera le prix et les conditions. k. Aucune procédure de règlement amiable des différends n’est prévue dans le cadre du Programme. l. Les obligations financières du présent Programme incombent à la société Apple Sales International, Hollyhill Industrial Estate, Hollyhill, Cork, République d’Irlande. Si Apple Sales International ne s’acquitte pas de ses obligations, Apple Operations Europe, HollyHill Industrial Estate, Cork, République d’Irlande, assumera lesdites obligations. m. Le Programme est régi par les lois du pays où le Programme a été acquis et où vous vous êtes enregistré pour en bénéficier. Ce choix de juridiction n’inclut ni les dispositions relatives aux conflits de loi ni la Convention des Nations Unies sur les contrats de vente internationale de marchandises. 8. Stipulations spécifiques à certains pays Les stipulations ci-après s’appliquent pour chacun des pays concernés : FRANCE ARTICLE 4 - LES DISPOSITIONS DE L’ARTICLE 4 SONT REMPLACÉES PAR LES DISPOSITIONS SUIVANTES : 4.1- SI VOUS ÊTES UN CONSOMMATEUR, RIEN DANS LE PROGRAMME NE SAURAIT LIMITER OU EXCLURE NOTRE RESPONSABILITÉ POUR UN MANQUEMENT À L’UNE QUELCONQUE DES OBLIGATIONS À NOTRE CHARGE EN VERTU D’UNE DISPOSITION LÉGALE D’ORDRE PUBLIC. 44 Français 4.2 SI VOUS N’ÊTES PAS UN CONSOMMATEUR - LES PRÉSENTES CONDITIONS GÉNÉRALES DÉCRIVENT L’ENSEMBLE DE NOS OBLIGATIONS CONCERNANT LE PROGRAMME ; - LES SEULES OBLIGATIONS ET GARANTIES QUI NOUS INCOMBENT SONT CELLES EXPRESSÉMENT ÉNONCÉES DANS LES PRÉSENTES CONDITIONS GÉNÉRALES, À L’EXCLUSION DE TOUTES AUTRES GARANTIES ET/OU OBLIGATIONS ; ET - TOUTE AUTRE GARANTIE ET/OU OBLIGATION CONCERNANT LE PROGRAMME QUI POURRAIT ÊTRE À NOTRE CHARGE EN VERTU D’UNE DISPOSITION LÉGALE (CECI INCLUANT TOUTE GARANTIE IMPLICITE CONCERNANT LE SOIN ET LES COMPÉTENCES À METTRE EN ŒUVRE) EST PAR LA PRÉSENTE EXPRESSÉMENT EXCLUE. EN PARTICULIER, APPLE N’A PAS L’OBLIGATION DE S’ASSURER QUE LE PROGRAMME CORRESPOND À VOS BESOINS. 4.3 - RIEN DANS LES PRÉSENTES CONDITIONS GÉNÉRALES NE PEUT LIMITER OU EXCLURE NOTRE RESPONSABILITÉ EN CAS DE DÉCÈS OU DE DOMMAGES CORPORELS CAUSÉS PAR NÉGLIGENCE OU FAUTE INTENTIONNELLE. 4.4 - SOUS RÉSERVE DES DISPOSITIONS DE L’ARTICLE 4.3, NOTRE RESPONSABILITÉ NE POURRA ÊTRE ENGAGÉE EN VERTU DES PRÉSENTES CONDITIONS GÉNÉRALES POUR TOUTE PERTE DE REVENUS, PERTE DE PROFITS, PERTE D’OPPORTUNITÉS, PERTE DE DONNÉES AINSI QUE POUR TOUT AUTRE DOMMAGE INDIRECT. 4.5- SOUS RÉSERVE DES DISPOSITIONS DE L’ARTICLE 4.3, NOTRE RESPONSABILITÉ TOTALE EST PLAFONNÉE, QUEL QUE SOIT SON FONDEMENT, AU PRIX QUE VOUS AVEZ PAYÉ POUR LE PROGRAMME. ARTICLE 5 - Si vous résiliez le Programme plus de trente (30) jours après avoir reçu les présentes Conditions Générales, vous obtiendrez un remboursement partiel du prix payé en contrepartie du Programme réduit au prorata de la durée du Programme déjà écoulé, sous déduction de frais de résiliation d’un montant de 25 euros, ou 10% de la somme proratisée servant de base au remboursement (la moins élevée de ces deux sommes prévalant). Si vous êtes un consommateur, veuillez noter que les conditions d’annulation du Programme stipulées à l’Article 5 tiennent compte de votre droit de rétractation prévu à l’article L.121-20 du Code de la consommation.Français 45 SUISSE ARTICLE 4 – LES DISPOSITIONS DE L’ARTICLE 4 SONT REMPLACÉES PAR LES DISPOSITIONS SUIVANTES : 4.1 - SI VOUS ÊTES UN CONSOMMATEUR, RIEN DANS LE PROGRAMME NE SAURAIT LIMITER OU EXCLURE NOTRE RESPONSABILITÉ POUR UN MANQUEMENT À L’UNE QUELCONQUE DES OBLIGATIONS À NOTRE CHARGE EN VERTU D’UNE DISPOSITION LÉGALE D’ORDRE PUBLIC. 4.2 - SI VOUS N’ÊTES PAS UN CONSOMMATEUR : - LES PRÉSENTES CONDITIONS GÉNÉRALES DÉCRIVENT L’ENSEMBLE DE NOS OBLIGATIONS CONCERNANT LE PROGRAMME ; - TOUTES OBLIGATIONS ET GARANTIES CONCERNANT LE PROGRAMME QUI POURRAIENT ÊTRE A NOTRE CHARGE EN VERTU D’UNE DISPOSITION LÉGALE (CECI INCLUANT TOUTE GARANTIE IMPLICITE CONCERNANT LE SOIN ET LES COMPÉTENCES A METTRE EN ŒUVRE) SONT PAR LA PRÉSENTE EXPRESSÉMENT EXCLUES. EN PARTICULIER, APPLE N’A PAS L’OBLIGATION DE S’ASSURER QUE LE PROGRAMME CORRESPOND A VOS BESOINS. 4.3 - RIEN DANS LES PRÉSENTES CONDITIONS GÉNÉRALES NE PEUT LIMITER OU EXCLURE NOTRE RESPONSABILITÉ EN CAS DE DÉCÈS OU DE DOMMAGES CORPORELS CAUSÉS PAR NÉGLIGENCE OU FAUTE INTENTIONNELLE. 4.4 – DANS LA LIMITE DE CE QUI EST PERMIS PAR LA LOI APPLICABLE, NOTRE RESPONSABILITÉ NE POURRA PAS ÊTRE ENGAGÉE EN VERTU DES PRÉSENTES CONDITIONS GÉNÉRALES POUR TOUTE PERTE DE REVENUS, PERTE DE PROFITS, PERTE D’OPPORTUNITÉS OU PERTE DE DONNÉES. 4.5 - SOUS RÉSERVE DES DISPOSITIONS DE L’ARTICLE 4.3, NOTRE RESPONSABILITÉ TOTALE EST PLAFONNÉE, QUEL QUE SOIT SON FONDEMENT, AU PRIX QUE VOUS AVEZ PAYÉ POUR LE PROGRAMME. ARTICLE 5 5.1 – LES DISPOSITIONS SUIVANTES COMPLETENT L’ARTICLE 5 : SI VOUS ÊTES UN CONSOMMATEUR ET QUE VOUS AVEZ SOUSCRIT A CE PROGRAMME PAR LE SITE INTERNET APPLE STORE OU PAR TÉLÉPHONE, VOUS POUVEZ RÉSILIER CE PROGRAMME PENDANT QUATORZE JOURS SUIVANT L’ACHAT DE CE PROGRAMME. VOUS SEREZ ENTIÈREMENT REMBOURSÉS. CEPENDANT, SI VOUS AVEZ DEJA UTILISÉ CE PROGRAMME, VOUS SEREZ 46 Français ENTIÈREMENT REMBOURSÉS MOINS LA VALEUR DE TOUT SERVICE FOURNI EN VERTU DE CE PROGRAMME. 5.2 - SI VOUS RESILIEZ LE PROGRAMME PLUS DE 30 JOURS APRES AVOIR REÇU LES PRESENTES CONDITIONS GENERALES, VOUS OBTIENDREZ UN REMBOURSEMENT PARTIEL DU PRIX PAYE EN CONTREPARTIE DU PROGRAMME REDUIT AU PRORATA DE LA DUREE DU PROGRAMME DEJA ECOULE, SOUS DEDUCTION DE FRAIS DE RESILIATION D’UN MONTANT DE 39.00 CHF, OU 10% DE LA SOMME PRORATISEE SERVANT DE BASE AU REMBOURSEMENT (LA MOINS ELEVÉE DE CES DEUX SOMMES PREVALANT). Numéros de téléphone En France : En Suisse : (33) 0 805 540 003 (41) 0848 000 132 De 8H00 à 19H45 (lundi-vendredi) De 8H00 à 19H45 (lundi-vendredi) De 10H00 à 17H45 (samedi)* De 10H00 à 17H45 (samedi)* * Les numéros de téléphone et les heures d’ouverture du service peuvent varier et sont sujets à modification. Vous pouvez trouver les informations de contact locales et internationales les plus récentes à l’adresse suivantes : www.apple.com/support/contact/phone_contacts.html. Les numéros de téléphone gratuits ne sont pas disponibles dans tous les pays Numéro français est non surtaxé. Des frais peuvent s’appliquer pour les appels téléphoniques locaux. Une liste des fournisseurs de services sans fil autorisés est disponible en ligne sur : http://images.apple.com/legal/warranty/docs/iPhoneAuthorizedDistributors.pdf APPLE SALES INTERNATIONAL, HOLLYHILL INDUSTRIAL ESTATE, HOLLYHILL, CORK, REPUBLIC OF IRELAND WWW.APPLE.COM EMEA APP iPhone FR v1Deutsch 47 AppleCare Protection Plan für iPhone Produktinfo Umfassende Service- und Supportleistungen von Apple Für jedes iPhone gilt eine einjährige Herstellergarantie und der technische Support kann ab Kaufdatum 90 Tage lang in Anspruch genommen werden. Der AppleCare Protection Plan für iPhone erweitert Ihren Anspruch auf Reparaturen auf zwei Jahre ab Kaufdatum Ihres iPhone. 1 Egal, ob Sie das iPhone mit einem Mac oder PC verwenden, mit nur einem Anruf können die meisten Probleme gelöst werden. Deckungsumfang Dieser umfassende Plan kann vor Ablauf der einjährigen Herstellergarantie für alle iPhone-Modelle erworben werden. Wenn Sie das registrierte iPhone vor Ablauf des AppleCare Protection Plans für iPhone verkaufen, können Sie den Plan an den neuen Eigentümer weitergeben. 2 Sie müssen für jedes iPhone einen eigenen AppleCare Protection Plan für iPhone erwerben. Bitte bewahren Sie das Bestätigungsdokument, die Originalkaufbelege Ihres iPhone und den Kaufbeleg für den AppleCare Protection Plan für iPhone sorgfältig auf. Möglicherweise fordert Sie Apple auf, die Kaufbelege vorzulegen, um nachzuweisen, dass der Support für Ihr iPhone durch den AppleCare Protection Plan abgedeckt ist. Technische Support-Optionen Sollten Sie Schwierigkeiten mit Ihrem iPhone haben, versuchen Sie das Problem anhand der Tipps zur Fehlerbeseitigung auf der folgenden iPhone-Support-Website zu beheben: www.apple.com/de/support/iphone. Lässt sich das Problem nicht von Ihnen selbst lösen, können die Mitarbeiter des AppleCare Support Ihnen bei Fragen zu Ihrem iPhone und zur Anbindung an iTunes weiterhelfen. Kontaktinformationen für den technischen Support von Apple und dessen übliche Geschäftszeiten finden Sie in der Kurzübersicht. Apple bietet Mac- und Windows-Benutzern im Rahmen des AppleCare Protection Plans für iPhone denselben umfassenden Service & Support.48 Deutsch Hardware-Reparaturen Dieser Plan verlängert Ihren Anspruch auf Reparatur und Ersatz über die einjährige Herstellergarantie von Apple hinaus auf zwei Jahre ab Kaufdatum des iPhone. Durch diesen Plan verlängert sich auch die Garantie für die iPhone-Batterie, wenn deren Ladekapazität um fünfzig Prozent (50 %) oder mehr von dem angegebenen Originalwert abweicht. Bei Inanspruchnahme von Serviceleistungen stehen Ihnen zwei Optionen zur Verfügung: der Bringdienst (Carry-In) oder das Einsenden an den Reparaturservice. Weitere Informationen zu Serviceleistungen finden Sie in der Kurzübersicht. Bei den von Apple im Rahmen von Reparaturen oder Austauschleistungen verwendeten Ersatzteilen kann es sich um neue, gebrauchte oder generalüberholte Teile handeln. 1. Dieser Plan erweitert die Serviceleistungen auf zwei Jahre ab Kaufdatum Ihres iPhone. Der Plan muss vor Ablauf der einjährigen Herstellergarantie Ihres iPhone erworben werden. Die Serviceleistungen können Einschränkungen unterliegen. Die Leistungen des AppleCare Protection Plans gehen über die gesetzlich vorgeschriebenen Bestimmungen zum Verbraucherschutz hinaus. 2. Ausführliche Informationen hierzu finden Sie in den AppleCare Protection Plan Garantiebedingungen.Deutsch 49 Führen Sie vor einem Anruf bei Apple zunächst die folgenden einfachen Schritte aus: Sollten Sie Probleme mit Ihrem iPhone haben, beachten Sie zuerst die Tipps zur Fehlerbeseitigung auf der iPhone-Support-Website: www.apple.com/de/support/iphone. Als Vorsichtsmaßnahme empfiehlt es sich, die Daten auf Ihrem iPhone zu sichern, bevor Sie die beschriebenen Schritte ausführen. Stellen Sie sicher, dass die neuste iTunes-Software installiert ist. Sie können die neuste iTunes-Version von dieser Website laden: www.apple.com/de/itunes/download. Besuchen Sie die iPhone-Support-Website. Auf der iPhone-Support-Website befinden sich Links zu den verfügbaren Serviceoptionen, zur iPhoneEinführung, zu Diskussionsforen und zu anderen Ressourcen, die bei der Beantwortung verschiedener Fragen hilfreich sind. Diese Ressourcen stehen 24 Stunden pro Tag unter der folgenden Adresse zur Verfügung: www.apple.com/de/support/iphone. Wenden Sie sich an Apple, wenn Sie weitere Unterstützung benötigen. Kann das Problem mit diesen Schritten nicht behoben werden, rufen Sie Apple an, um weitere Unterstützung zu erhalten. Ein Apple-Mitarbeiter wird Sie nach der Vertragsnummer Ihres AppleCare Protection Plans oder der Seriennummer Ihres iPhone fragen. Sie finden die Seriennummer auf der Rückseite des iPhone. In Deutschland In Österreich In der Schweiz (49) 01805 009 433 (43) 0810 300 427 (41) 0848 000 132 Montag bis Freitag Montag bis Freitag Montag bis Freitag 8:00 bis 19:45 Uhr 8:00 bis 19:45 Uhr 8:00 bis 19:45 Uhr Samstag Samstag Samstag 10:00 bis 17:45 Uhr* 10:00 bis 17:45 Uhr* 10:00 bis 17:45 Uhr* * Telefonnummern und Geschäftszeiten können variieren und jederzeit geändert werden. Aktuelle Informationen hierzu finden Sie unter der folgenden Adresse: www.apple.com/contact/phone_contacts.html. Kurzübersicht AppleCare Protection Plan für iPhoneDeutsch 51 AppleCare Protection Plan für iPhone Garantiebedingungen Ihr AppleCare Protection Plan für iPhone (im Folgenden der „Plan“) unterliegt diesen Garantiebedingungen und stellt Ihren Servicevertrag mit Apple Sales International, Hollyhill Industial Estate, Hollyhill, Cork, Irland („Apple“) dar. Nach Maßgabe dieser Garantiebedingungen gewährt Ihnen der Plan (i) Deckung für Fehler des mit der Apple-Marke versehenen iPhones, das in dem Zertifikat oder Deckungsnachweis ihres Plans („Bestätigungsdokument“) aufgeführt ist, sowie für ein mit der Apple-Marke versehenes Bluetooth Headset, soweit sie dieses besitzen und mit dem vorgenannten iPhone nutzen, und für die in der Originalverpackung des iPhones enthaltenen Zubehörteile (zusammen „Erfasste Produkte“) sowie (ii) die Inanspruchnahme des telefonischen Supports und der Internet-basierten Support-Ressourcen für die Erfassten Produkte. Um das Bestätigungsdokument zu erhalten, müssen sie sich gemäß der in der Plandokumentation enthaltenen Anleitung registrieren. Zum Zwecke der Registrierung ist die in oder auf der Packung des Plans enthaltene eindeutige Vertrags- oder Registriernummer („Vertragsnummer des Plans“) anzugeben. Kunden, die sich, sofern verfügbar, für die Option der automatischen Registrierung entscheiden, erhalten automatisch ein Bestätigungsdokument. Die Laufzeit des Plans („Deckungszeitraum“) endet mit dem im Bestätigungsdokument angegebenen Zeitpunkt. Der Preis des Plans ergibt sich aus dem ursprünglichen Kaufbeleg. Apple ist berechtigt, die Leistungen aus diesem Plan auf das Ursprungsland zu beschränken, in dem die Erfassten Produkte erworben wurden. 1. Deckung für Reparaturen a. Deckungsumfang: Die Deckung für Produktfehler beginnt mit dem Tag, an welchem die Apple Hardware-Gewährleistung für das Erfasste Produkt ausläuft und endet mit dem Ende des Deckungszeitraums („Deckungszeitraum für Reparaturen“). Apple wird die betroffenen Erfassten Produkte nach eigenem Ermessen reparieren oder austauschen, wenn (i) während des Deckungszeitraums Material- und Herstellungsfehlern auftreten oder (ii) während des Deckungszeitraums die Ladeleistung der Batterie des vom Plan erfassten iPhones nur noch 50 % oder weniger der ursprünglichen Leistung beträgt (nachdem 52 Deutsch die Batterie vollständig aufgeladen wurde und mit dem erfassten iPhone Audio- und Videodateien bei zurückgesetzten Einstellungen abgespielt wurden). Apple übernimmt sowohl Material- als auch Lohnkosten, aber behält sich vor, Sie aufzufordern, einzelne sofort installierbare Teile nach Maßgabe der nachfolgenden Bestimmungen selbst zu installieren. Apple behält sich vor, für Ersatzlieferungen oder Ersatzteile entweder neue Teile zu verwenden oder Teile, die hinsichtlich ihrer Leistung und Zuverlässigkeit neuen Teilen gleichwertig sind. Solche Ersatzteile sind den ausgetauschten Teilen funktional wenigstens gleichwertig und unterliegen für den verbleibenden Deckungszeitraum dem Plan. Die ausgetauschten Produkte oder Teile werden Eigentum von Apple. Apple empfiehlt Ihnen dringend, Sicherungskopien sämtlicher Daten und Programme, die in den Erfassten Produkten gespeichert sind, zu erstellen, bevor die Erfassten Produkte zur Durchführung von Serviceleistungen übergeben werden. b. Beschränkungen: Der Plan gewährt keine Deckung für: (i) Installation, Entfernung oder Entsorgung des Erfassten Produktes bzw. Installation, Entfernung, Reparatur oder Wartung von Produkten, die nicht Erfasste Produkte sind (einschließlich Zubehör, Zusatzkomponenten oder anderer Geräte) oder externe Netzwerk- oder Mobilfunkdienste; (ii) Schäden an den Erfassten Produkten, die durch Unfall, Missbrauch, Vernachlässigung, unsachgemäßen Gebrauch (einschließlich fehlerhafter Installation, Reparatur- oder Wartungsarbeiten, die nicht von Apple oder einem von Apple autorisierten Wireless Partner durchgeführt wurden), nicht autorisierte Änderung, extreme Umgebungsbedingungen (einschließlich extremer Temperaturen und extremer Feuchtigkeit), extreme physische oder elektrische Belastungen, Interferenzen, Schwankungen oder Spannungsspitzen der Stromversorgung, Blitzschlag, Statische Elektrizität, Brand, Höhere Gewalt oder andere äußere Einflüsse verursacht worden; (iii) Erfasste Produkte, bei denen die Seriennummer geändert, unkenntlich gemacht oder entfernt wurde; (iv) Probleme, die durch Komponenten verursacht werden, die nicht Bestandteil des Erfassten Produktes sind, einschließlich von Produkten, die nicht von Apple stammen, wobei unerheblich ist, ob diese zusammen mit den Erfassten Produkt erworben wurden oder nicht;Deutsch 53 (v) Serviceleistungen, die zur Berücksichtigung von gesetzlichen Anforderungen erforderlich sind, die erst nach dem Beginn der Laufzeit des Plans in Kraft getreten sind; (vi) Probleme, die durch die Inanspruchnahme von Netzwerk- oder Mobilfunkanbietern entstehen bzw. durch Viren oder andere Softwareprogramme auf das Erfasste Produkt gelangen ; (vii) Erfasste Produkte, die verloren gegangen sind oder gestohlen wurden; Deckung gemäß Plan besteht ausschließlich für solche Erfassten Produkte, die vollständig an Apple zurückgegeben werden; (viii) Rein kosmetische Mängel an den Erfassten Produkten (insbesondere, aber nicht ausschließlich, Kratzer, Beulen, abgebrochene Plastikteile an Ports; (ix) Vorbeugende Wartungen der Erfassten Produkte; (x) Austauschgeräte für den Zeitraum, in dem das Erfasste Produkt gewartet wird; (xi) Beschädigung oder Verlust von Daten oder Software, die auf dem Erfassten Produkt gespeichert waren. DER INHALT IHRES iPHONES WIRD GELÖSCHT UND DIE SPEICHERMEDIEN WERDEN IM RAHMEN DER SERVICELEISTUNG NEU FORMATIERT. Sie erhalten Ihr iPhone oder ein Ersatz-iPhone in der jeweiligen konfigurierten Form zurück, in der Sie es ursprünglich erworben haben, vorbehaltlich etwaiger Updates. Apple kann im Rahmen der Serviceleistung Updates des Betriebssystems („iPhone OS”) installieren, die einen Rückgriff des iPhone auf frühere Version der iPhone OS verhindern. Es ist möglich, dass auf dem iPhone installierte Anwendungen von Drittanbietern infolge des iPhone OS Updates nicht mehr mit dem iPhone kompatibel sind oder nicht mehr damit funktionieren. Sie müssen sämtliche fremden Softwareprogramme, Daten und Passwörter neu installieren. Die Wiederherstellung und Neuinstallation von Softwareprogrammen und Benutzerdaten ist nicht in diesem Plan enthalten. (xii) Fehler, die auf gewöhnlichen Gebrauch oder gewöhnliche Abnutzung oder die übliche Alterung des Produktes zurückzuführen sind. (xiii) Jedwede anderen Schäden, die nicht durch Material– oder Herstellungsfehler oder bei üblicher und gewöhnlicher Nutzung des Erfassten Produkts entstehen, soweit dieser Plan keine besondere Ausnahme zulässt.54 Deutsch c. Bereitstellung der Serviceleistungen: Apple erbringt die Serviceleistungen in einer der nachfolgend beschriebenen Weisen: (i) Ein „Carry-In” Service, „Bringdienst“. Sie bringen das Erfasste Produkt zu einer Appleeigenen Verkaufsstelle oder Filiale eines von Apple autorisierten Wireless Partner, die den „Carry-In” Service anbietet. Serviceleistungen werden dann entweder vor Ort erbracht oder das Erfasste Produkt wird an einen Apple-Servicecenter eingeschickt. Es obliegt ihnen, das Produkt nach der Benachrichtigung, dass die Serviceleistungen fertig gestellt sind, unverzüglich wieder abzuholen. (ii) Direktes Einsenden an das Apple-Servicecenter. Wenn Apple feststellt, dass ihr Produkt für die Einsendung qualifiziert ist, wird Apple Ihnen einen bezahlten Frachtbrief zusenden und – falls Sie nicht mehr im Besitz der Originalverpackung sind – gegebenenfalls auch Verpackungsmaterial. Es obliegt Ihnen, das Erfasste Produkt an das Apple-Servicecenter gemäß dessen Vorgaben zu übersenden. Nach Abschluss der Serviceleistungen wird das Servicecenter das Erfasste Produkt an Sie zurücksenden. Die Kosten des Versands von und an Ihre Adresse übernimmt Apple, soweit Sie sich an alle Anweisungen halten. (iii) Für viele Erfasste Produkte und Zubehörteile ist ein Do-It-Yourself-Ersatzteilservice verfügbar, so dass Sie die Reparatur Ihres Produktes selbst durchführen können. Für den Fall, dass Do-It-Yourself-Ersatzteilservice verfügbar ist, gilt folgendes: (A) Do-It-Yourself-Ersatzteilservice mit Rücklieferung des zu ersetzenden Bauteils: Bei dieser Variante kann Apple als Sicherheit für den Einzelhandelspreis des Ersatzteils und die anfallenden Versandkosten eine Kreditkartenautorisierung verlangen. Falls Sie nicht in der Lage sind, eine Kreditkartenautorisierung zu erteilen, ist der Do-It-Yourself-Ersatzteilservice für Sie gegebenenfalls nicht verfügbar. Apple wird Ihnen in diesem Fall alternative Servicebedingungen anbieten. Bei Verfügbarkeit des Do-It-Yourself-Ersatzteilservices wird Apple Ihnen das Ersatzteil zusammen mit einer Installationsanweisung und gegebenenfalls Informationen zur Rückgabe der ersetzten Komponente schicken. Wenn Sie den Anweisungen Folge leisten, wird Apple die Kreditkartenautorisierung aufheben, so dass Ihnen die Kosten für das Ersatzteil und den Versand von und an Ihre Adresse nicht berechnet werden. Falls Sie die ersetzte Komponente nicht gemäß den Anweisungen zurückschicken, wird Apple Ihre Kreditkarte mit dem autorisierten Betrag belasten. Deutsch 55 (B) Do-It-Yourself-Ersatzteilservice ohne Rücklieferung des ersetzten Bauteils: Apple übersendet Ihnen gebührenfrei ein Ersatzteil zusammen mit Installationsanweisungen und gegebenenfalls Informationen zur Entsorgung des ersetzten Bauteils. (C) Aufwand, wie interne Lohnkosten, die Ihnen im Zusammenhang mit den Do-ItYourself-Ersatzteilservice entstehen, werden von Apple nicht erstattet. Falls Sie weitere Unterstützung benötigen, rufen Sie die unten angegebene Telefonnummer an. Apple behält sich das Recht vor, jederzeit die Art und Weise der Bereitstellung des Reparatur- oder Austauschservices sowie die Verfügbarkeit bestimmter Serviceoptionen für bestimmte Erfasste Produkte und die Kriterien für die Bereitstellung bestimmter Optionen zu ändern. Die Serviceoptionen, die Verfügbarkeit von Bauteilen und die Reaktionszeiten können unterschiedlich ausfallen. d. Inanspruchnahme von Reparaturleistungen im Rahmen des Plans: Wenn Sie Leistungen nach diesem Plan in Anspruch nehmen wollen, dann begeben Sie sich auf die unten angegebene Internetseite von Apple für Ihr jeweiliges Land oder rufen Sie die unten angegebene Telefonnummer an. Die zu benutzenden Telefonnummern variieren in Abhängigkeit von Ihrem Standort. Wenn Sie die Webseiten nutzen, dann folgen Sie den von Apple erteilten Instruktionen. Falls Sie die Telefonnummer wählen, werden Sie mit einem Mitarbeiter des technischen Supportteams verbunden. Dieser wird sich nach Ihrer Vertragsnummer des Plans erkundigen, Sie beraten und entscheiden, ob und welche Serviceleistungen für Ihr Erfasstes Produkt erforderlich sind. Serviceleistungen können immer nur gemäß vorheriger Abstimmung mit Apple in Anspruch genommen werden. Die Örtlichkeit, an der Serviceleistungen angeboten werden, variiert gemäß Ihrem Standort. Bewahren Sie das Bestätigungsdokument und die Original-Kaufbelege für Ihr Erfasstes Produkt und Ihren Plan auf. Apple kann jederzeit die Vorlage der Kaufbelege verlangen, um Ihre Berechtigung zur Inanspruchnahme von Serviceleistungen gemäß Plan zu prüfen. 2. Technischer Support a. Telefonischer und Internet-basierter Support. Sie haben ab dem Datum, an dem Ihr Anspruch auf kostenlosen technischen Support für Ihre Erfassten Produkte endet oder an dem Ihr Deckungszeitraum beginnt, je nachdem, welches Datum früher eintritt, Anspruch auf 56 Deutsch technischen Support; dieser endet mit Ablauf des Deckungszeitraums („Deckungszeitraum für Technischen Support”). Während des Deckungszeitraums für Technischen Support gewährt Ihnen Apple Zugang zu den telefonischen und Internet-basierten Ressourcen für technischen Support. Der technische Support umfasst Unterstützung bei der Installation, Inbetriebnahme, Konfiguration, Fehlerbehebung und Wiederherstellung (außer Datenwiederherstellung), einschließlich Speichern, Abrufen und Verwaltung von Dateien; Erläuterung von Systemfehlermeldungen; und Feststellung, ob Reparaturen der Hardware erforderlich sind. Apple gewährt technischen Support für die Erfassten Produkte, iPhone OS, auf den Erfassten Produkten vorinstallierte Softwareanwendungen („iPhone Software”) sowie Verbindungsprobleme zwischen den Erfassten Produkten und einem unterstützten Computer, d. h. ein Computer, der die Verbindungsanforderungen der Erfassten Produkte erfüllt und über ein Betriebssystem verfügt, das von den Erfassten Produkten unterstützt wird. Apple erbringt Supportleistungen für die jeweils aktuelle Version der iPhone OS und der iPhone Software sowie den vorherigen Major Release, behält sich jedoch das Recht vor, die für etwaige frühere Versionen erbrachten Supportleistungen jederzeit zu ändern. Im Sinne dieses Abschnitts bedeutet „Major Release” eine wichtige Version einer Software, die von Apple mit einer Veröffentlichungsnummer wie z. B. „1.0” oder „2.0” veröffentlicht wurde und nicht in Beta-Form oder als Vorveröffentlichung vorliegt. b. Beschränkungen. Der Plan gewährt keine Deckung für: (i) Probleme, die durch eine Aktualisierung der Software auf die aktuelle Version gelöst werden können; (ii) Nutzung oder Änderungen Ihrerseits in Bezug auf die Erfassten Produkte, das iPhone OS oder die iPhone Software in einer Weise, in der die Erfassten Produkte oder die Software nicht verwendet bzw. geändert werden dürfen; (iii) Produkte von Drittanbietern oder deren Auswirkungen auf die Erfassten Produkte, das iPhone OS oder die iPhone Software oder deren gegenseitige Beeinflussung; (iv) Ihre Nutzung von Computern oder Betriebssystemen, die nicht von der iPhone Software unterstützt werden oder Verbindungsprobleme mit den Erfassten Produkten; (v) Andere Apple-Software als die iPhone OS oder die iPhone Software gemäß dem Plan; (vi) iPhone OS Software oder andere Software der Marke Apple mit der Bezeichnung „Beta-”, Deutsch 57 „Vorveröffentlichungs-” oder „Probe”-Software oder einer ähnlichen Bezeichnung; sowie (vii) Beschädigung oder Verlust von Software oder Daten, die auf den Erfassten Produkten gespeichert oder aufgezeichnet sind. c. Inanspruchnahme des technischen Supports: Wenn Sie den technischen Support in Anspruch nehmen möchten, rufen Sie bitte die unten angegebene Telefonnummer an. Ein Mitarbeiter des technischen Supportteams von Apple wird Ihnen weiterhelfen. Die Dienstzeiten von Apple sind unten aufgeführt. Apple behält sich das Recht vor, die Dienstzeiten für den technischen Service sowie die Telefonnummern jederzeit zu ändern. Die Internet-basierten Supportressourcen finden Sie in der Liste der Internetseiten von Apple. 3. Ihre Obliegenheiten Als Voraussetzung für die Inanspruchnahme von Serviceleistungen nach dem Plan, obliegt es Ihnen: a. Ihre Vertragsnummer des Plans und die Seriennummer des Erfassten Produktes anzugeben; b. Fragen in Bezug auf Symptome und Ursachen der Probleme des Erfassten Produktes zu beantworten; und c. Die Instruktionen zu befolgen, die Apple Ihnen erteilt und insbesondere keine Produkte einzusenden, für die nach Auskunft von Apple keine Ersatz- oder Reparaturleistungen zu erbringen sind, und den Anweisungen in Bezug auf Verpackung und Versand der an Apple zu sendenden Erfassten Produkte Folge zu leisten. d. Software zu aktualisieren, so dass sie der jeweils aktuell veröffentlichten Version entspricht, bevor Sie Serviceleistungen in Anspruch nehmen. 4. Haftung FÜR VERBRAUCHER, DIE DEM SCHUTZ DER RECHTSVORSCHRIFTEN ZUM VERBRAUCHERSCHUTZ IN DEM LAND, IN DEM DER PLAN ERWORBEN WURDE, UNTERLIEGEN, GELTEN DIE VORTEILE, DIE IHNEN AUS DIESEM PLAN ENTSTEHEN, ZUSÄTZLICH ZU ALLEN RECHTEN, DIE SICH AUS SOLCHEN RECHTSVORSCHRIFTEN ZUM VERBRAUCHERSCHUTZ ERGEBEN. KEINE BESTIMMUNG DIESES PLANES SOLL SOLCHE ZWINGENDEN RECHTE DER VERBRAUCHER NACH SOLCHEN RECHTSVORSCHRIFTEN BESCHRÄNKEN ODER AUSSCHLIESSEN, EINSCHLIESSLICH DES RECHTS, BEI VERTRAGSVERLETZUNGEN SCHADENERSATZ ZU VERLANGEN.58 Deutsch SOWEIT NACH DEM ANWENDBAREN RECHT ZULÄSSIG, ÜBERNEHMEN APPLE, UND DIE ANGESTELLTEN UND ERFÜLLUNGSGEHILFEN VON APPLE IHNEN ODER IHREM RECHTSNACHFOLGER GEGENÜBER KEINERLEI HAFTUNG FÜR INDIREKTE SCHÄDEN ODER FOLGESCHÄDEN, INSBESONDERE, NICHT AUSSCHLIEßLICH, NICHT FÜR ETWAIGE KOSTEN DER WIEDERGEWINNUNG, NEUPROGRAMMIERUNG ODER REPRODUKTION VON PROGRAMMEN ODER DATEN ODER FOLGEN DER VERLETZUNG DER VERTRAULICHKEIT VON DATEN, GESCHÄFTSVERLUSTE JEGLICHER ART, ENTGANGENEN GEWINN, UMSATZ ODER EINSPARUNGEN, DIE INFOLGE DER VERLETZUNG VON VERPFLICHTUNGEN VON APPLE GEMÄß DIESEM PLAN AUFTRETEN. SOWEIT NACH DEM ANWENDBAREN RECHT ZULÄSSIG, IST DIE HAFTUNG VON APPLE UND DEN ANGESTELLTEN UND ERFÜLLUNGSGEHILFEN VON APPLE GEGENÜBER IHNEN UND IHREN RECHTSNACHFOLGERN AUF DIE HÖHE DESJENIGEN BETRAGES BESCHRÄNKT, DEN SIE URSPRÜNGLICH FÜR DEN ERWERB DES PLANS BEZAHLT HABEN. INSBESONDERE ÜBERNIMMT APPLE KEINE GEWÄHR FÜR DEN FALL, DASS APPLE NICHT IN DER LAGE IST (i) DAS ERFASSTE PRODUKT OHNE RISIKO FÜR ODER VERLUST VON PROGRAMMEN ODER DATEN ZU REPARIEREN ODER AUSZUTAUSCHEN ODER (ii) DIE VERTRAULICHKEIT DER DATEN ZU WAHREN. VON SÄMTLICHEN BESTIMMUNGEN DIESER VEREINBARUNG UNBERÜHRT BLEIBT DIE HAFTUNG VON APPLE FÜR (I) DURCH FAHRLÄSSIGKEIT VON APPLE VERURSACHTE TODESFÄLLE ODER KÖRPERVERLETZUNGEN ODER (II) BETRUG. SOWEIT DIE HAFTUNG IM RAHMEN DER VORGENANNTEN RECHTSVORSCHRIFTEN ZUM VERBRAUCHERSCHUTZ BESCHRÄNKT ODER AUSGESCHLOSSEN WERDEN KANN, IST DIE HAFTUNG SEITENS APPLE BESCHRÄNKT AUF DEN AUSTAUSCH ODER DIE REPARATUR DES PRODUKTES NACH WAHL VON APPLE ODER DIE BEREITSTELLUNG DER VEREINBARTEN SERVICELEISTUNGEN. 5. Kündigung Sie haben das Recht, diesen Plan jederzeit ordentlich zu kündigen. Rufen Sie Apple zu diesem Zweck unter der unten angegebenen Telefonnummer an oder senden Sie ihre schriftliche Kündigung an den Apple Customer Support, Hollyhill Industial Estate, Hollyhill, Cork, Irland (Fax Nummer: 0035-21/428 3917). Sie müssen Ihrer Kündigung eine Kopie des Beleges über den Erwerb des Plans beifügen. Soweit das lokal anwendbare Recht nicht zwingende abweichende Vorschriften enthält, gilt folgendes: Wenn Sie den Plan innerhalb von 30 Tagen nach Erwerb des Plans oder Erhalt dieser Bedingungen, je nachdem, was später eintritt, kündigen, wird Ihnen der für den Erwerb des Plans gezahlte Betrag zurückerstattet, abzüglich des Wertes von Leistungen, die gemäß diesem Plan bereits erbracht wurden. Wenn Sie diesen Plan nach Ablauf Deutsch 59 der vorgenannten Frist kündigen, wird Ihnen der für den Erwerb des Plans bezahlte Betrag anteilig rückerstattet, abzüglich (a) jedwede gemäß Abschnitt 8 festgelegten Kündigungsgebühr, höchstens aber 10 % des anteilig zurückzuerstattenden Betrages und (b) des Wertes von Leistungen, die gemäß dem Plan bereits erbracht wurden. Soweit nicht zwingende Vorschriften des lokal anwendbaren Rechts etwas anderes vorsehen, ist Apple berechtigt, diesen Plan mit einer Kündigungsfrist von 30 Tagen zu kündigen, falls Ersatzteile für das Erfasste Produkt nicht verfügbar sind. Im Falle einer Kündigung des Plans seitens Apple erhalten Sie eine anteilige Rückerstattung für die nicht verstrichene Laufzeit des Plans. 6. Übertragung des Plans Sie sind berechtigt, Ihr Recht aus diesem Plan an den neuen Eigentümer des Erfassten Produkts zu übertragen, indem Sie per Post oder Fax eine Mitteilung über die Übertragung an den Kundendienst von Apple senden: Apple Customer Support Hollyhill Industrial Estate, Hollyhill, Cork, Irland; Fax-Nummer: 00353 – 21 / 428 3917. Sie müssen die Vertragsnummer des Plans, die Seriennummer des Erfassten Produktes, sowie Name, Adresse, Telefonnummer und Emailadresse des neuen Eigentümers angeben und einen Beleg über den Erwerb des Plans beifügen. 7. Sonstige Bestimmungen a. Apple ist berechtigt, Unterauftragnehmer mit den im Rahmen dieses Plans zu erbringenden Dienstleistungen zu beauftragen oder Verpflichtungen zu delegieren, Apple wird hierdurch jedoch nicht von seinen Verpflichtungen Ihnen gegenüber befreit. b. Apple ist für etwaige Verzögerungen oder Terminüberschreitungen bei den Serviceleistungen nach dem Plan nicht verantwortlich, soweit Apple die dafür ursächlichen Umstände nicht in zumutbarer Weise beeinflussen konnte. c. Sie sind nicht verpflichtet, vorbeugende Erhaltungsmaßnahmen zu ergreifen, um in den Genuss der unter diesem Plan zu erbringenden Leistungen zu kommen. d. Dieser Plan wird nur in Österreich, Frankreich (mit Ausnahme von Korsika, Überseegebieten), Deutschland, Irland, Italien, Spanien (einschließlich der Balearen, jedoch mit Ausnahme der Kanarischen Inseln, Ceuta, Melilla), der Schweiz und im Vereinigten Königreich angeboten und hat nur dort Gültigkeit. Der Plan wird nur gegenüber Volljährigen angeboten. Der Plan ist nicht erhältlich, wo ein entsprechendes Angebot gesetzlich verboten ist. 60 Deutsch e. Apple behält sich ausdrücklich zum Zwecke der Qualitätssicherung das Recht vor, nach eigenem Ermessen Telefonate zwischen Ihnen und Apple vollständig oder teilweise aufzuzeichnen. f. Sie Stimmen zu, dass sämtliche Informationen und Daten, die Sie Apple im Rahmen dieser Vereinbarung übermitteln weder vertraulich noch geschützt sind. Dies umfasst gegebenenfalls auch die Weiterleitung Ihrer Daten an mit Apple verbundene Unternehmen oder Dienstleister unter Einhaltung der Kunden-Datenschutzrichtlinie von Apple, die Sie auf der unten angegebenen Internetseite einsehen können. g. Apple hat Schutzmaßnahmen ergriffe, die Ihre Daten sowohl gegen unerlaubte Verwendung oder Offenlegung als auch gegen rechtswidrige Zerstörung schützen sollte. Sie sind dafür verantwortlich, dass Sie Apple ordnungsgemäße Anweisungen zur Verarbeitung Ihrer Daten geben. Apple strebt die Einhaltung dieser Anweisungen an, soweit dies für die Durchführung der Serviceleistung und der Supportverpflichtungen vernünftigerweise geboten ist. Wenn Sie mit dieser Vorgehensweise nicht einverstanden sind oder wenn Sie weitere Fragen zum Einfluss der beschriebenen Verwertung auf Ihre Daten haben, wenden Sie sich bitte unter der unten angegebenen Telefonnummer an Apple. h. Apple wird Ihre Angaben in Übereinstimmung mit der Apple Kunden-Schutzrichtlinie sichern. Wenn Sie wissen möchten, welche Daten Apple von Ihnen gespeichert hat oder wenn Sie Änderungen daran vornehmen wollen, greifen Sie bitte auf die http://www.apple.com/ contact/myinfo zu. Dort können Sie Ihre persönlichen Kontaktpräferenzen aktualisieren. Sie können auch dem Europäischen Datenschutzverantwortlichen von Apple unter privacyeurope@apple.com ein Email senden. i. Die Bestimmungen dieses Plans haben Vorrang vor etwaigen dazu in Widerspruch stehenden oder ergänzend abweichenden Bestimmungen in Bestellungen oder anderen Dokumenten und stellen das gesamte, ausschließliche zwischen Ihnen und Apple vereinbarte Vertragswerk in Bezug auf den Plan da. j. Die sich aus diesem Plan ergebenden Rechte treten neben die Ihnen zustehenden Gewährleistungsrechte. Sie sind verpflichtet, diesen Plan innerhalb der für Ihr mit der AppleMarke versehenes iPhones bestehenden einjährigen beschränkten Garantie zu erwerben und zu registrieren. Apple ist nicht verpflichtet, diesen Plan zu erneuern oder zu verlängern. Für den Fall, dass Apple eine Erneuerung anbietet, bestimmt Apple den Preis und die Bedingungen.Deutsch 61 k. Ein Verfahren zur außergerichtlichen Streitbeilegung ist bei diesem Plan nicht vorgesehen. l. Vertragspartner und somit Schuldner der aus diesem Plan resultierenden Verpflichten ist Apple Sales International, Hollyhill Industrial Estate, Hollyhill, Cork, Irland. Sollte Apple Sales International Verpflichtungen nach diesem Plan nicht erfüllen, werden diese von Apple Operations Europe, Hollyhill Industrial Estate, Hollyhill, Cork Irland, übernommen. m. Dieser Plan unterliegt den Gesetzen desjenigen Landes, in dem die Planansprüche erworben und aktiviert wurden. Die Rechtswahl beinhaltet nicht die Bestimmungen des internationalen Privatrechts oder die UN-Kaufrechtskonventionen. n. Sollte ein Abschnitt oder ein Teil eines Abschnittes dieser Bedingungen unwirksam oder undurchsetzbar sein, bleiben die übrigen Bestimmungen hiervon unberührt und vollumfänglich wirksam. 8. Länderspezifische Regelungen Die nachfolgenden länderspezifischen Bestimmungen für das Land, in dem die Planansprüche erworben und aktiviert wurden, gehen etwa abweichenden Bestimmungen in den anderen Abschnitten dieses Planes vor: ÖSTERREICH ABSCHNITT 4 – DIE BESTIMMUNGEN IN ABSCHNITT 4 WERDEN DURCH FOLGENDE BESTIMMUNGEN ERSETZT: EINE HAFTUNG VON APPLE SOWIE ANGESTELLTEN ODER ERFÜLLUNGSGEHILFEN VON APPLE FÜR SCHÄDEN, GLEICH OB AUS VERTRAG ODER SONSTIGEN GRÜNDEN, BESTEHT NUR INSOWEIT, ALS DASS DER ENTSPRECHENDE SCHADEN VORSÄTZLICH ODER GROB FAHRLÄSSIG VERURSACHT WURDE. UNTER KEINEN UMSTÄNDEN HAFTET APPLE FÜR ENTGANGENEN GEWINN, VERLUSTE VON ERWARTETEN ABER NICHT REALISIERTEN GESCHÄFTSGELEGENHEITEN, MITTELBARE SCHÄDEN, FOLGESCHÄDEN, SCHÄDEN AN DATEN SOWIE FÜR SCHÄDEN INFOLGE VON INANSPRUCHNAHME DURCH DRITTE. ABSCHNITT 5 – SOLLTEN SIE DEN PLAN SPÄTER ALS 30 TAGE NACH ERHALT DES PLANS KÜNDIGEN, ERHALTEN SIE EINE ANTEILIGE RÜCKERSTATTUNG DES URSPRÜNGLICHEN KAUFPREISES DES PLANS ABZÜGLICH EINER KÜNDIGUNGSGEBÜHR VON 25 EURO, HÖCHSTENS ABER 10 % DES ANTEILIGEN ZURÜCKZUERSTATTENDEN BETRAGES.62 Deutsch DEUTSCHLAND ABSCHNITT 4 – DIE BESTIMMUNGEN IN ABSCHNITT 4 WERDEN DURCH FOLGENDE BESTIMMUNGEN ERSETZT: DIE IM RAHMEN DES PLANS GEWÄHRTEN VORTEILE GELTEN ZUSÄTZLICH ZU DEN GESETZLICHEN RECHTEN UND ANSPRÜCHEN IM FALLE VON SACH- ODER RECHTSMÄNGELN IN BEZUG AUF DIE ERFASSTEN PRODUKTE UND SCHRÄNKEN DIESE NICHT EIN. IHRE RECHTE IM FALLE VON SACH- ODER RECHTSMÄNGELN IN BEZUG AUF IM RAHMEN DES PLANS ZU ERBRINGENDE LEISTUNGEN UNTERLIEGEN DEN GESETZLICHEN BESTIMMUNGEN UND SIND WIE FOLGT BESCHRÄNKT: WENN SIE „VERBRAUCHER” SIND (D. H: EIN KUNDE, DER DEN PLAN FÜR ZWECKE AUßERHALB SEINES GEWERBES, GESCHÄFTS ODER SEINER SELBSTSTÄNDIGEN BERUFLICHEN TÄTIGKEIT ERWIRBT) GILT EINE VERJÄHRUNGSFRIST FÜR MÄNGELANSPRÜCHE VON ZWEI JAHREN; FÜR ALLE ANDEREN KUNDEN, DIE NICHT VERBRAUCHER SIND, GILT EINE VERJÄHRUNGSFRIST VON EINEM JAHR: FÜR SCHADENSERSATZANSPRÜCHE, GLEICH AUS WELCHEM RECHTSGRUND, GILT FOLGENDE HAFTUNGSBESCHRÄNKUNG: EINE VERTRAGLICHE ODER AUßERVERTRAGLICHE SCHADENSERSATZPFLICHT SEITENS APPLE GLEICH AUS WELCHEM RECHTSGRUND, BESTEHT NUR, SOFERN DER SCHADEN AUF GROBE FAHRLÄSSIGKEIT ODER VORSATZ ZURÜCKZUFÜHREN IST, DIE VON APPLE ZU VERTRETEN IST. DIE HAFTUNGSBESCHRÄNKUNG NACH DIESEM ABSCHNITT 4 GILT ENTSPRECHEND FÜR DIE ANGESTELLTEN UND ERFÜLLUNGSGEHILFEN VON APPLE. EINE EVENTUELLE ZWINGENDE HAFTUNG Z. B. NACH DEM PRODUKTHAFTUNGSGESETZ, WEGEN DER VERLETZUNG DES LEBENS, DES KÖRPERS ODER DER GESUNDHEIT ODER WEGEN DER ZUMINDEST LEICHT FAHRLÄSSIGEN VERLETZUNG EINER WESENTLICHEN VERTRAGSPFLICHT BLEIBT UNBERÜHRT. DER SCHADENERSATZ FÜR DIE VERLETZUNG WESENTLICHER VERTRAGSPFLICHTEN IST JEDOCH AUF DEN VERTRAGSTYPISCHEN, VORHERSEHBAREN SCHADEN BEGRENZT, SOWEIT NICHT VORSATZ ODER GROBE FAHRLÄSSIGKEIT VORLIEGT ODER WEGEN DER VERLETZUNG DES LEBENS, DES KÖRPERS ODER DER GESUNDHEIT GEHAFTET WIRD. EINE ÄNDERUNG DER BEWEISLAST ZU IHREM NACHTEIL IST MIT DEN VORSTEHENDEN REGELUNGEN NICHT VERBUNDEN. ABSCHNITT 5 - SOWEIT SIE SPÄTER ALS 30 TAGE NACH ERHALT DES PLANS KÜNDIGEN, ERHALTEN SIE EINE ANTEILIGE RÜCKERSTATTUNG DES URSPRÜNGLICHEN KAUFPREISES DES PLANS ABZÜGLICH EINER KÜNDIGUNGSGEBÜHR VON 25 EURO, HÖCHSTENS ABER 10 % DES ANTEILIGEN ZURÜCKZUERSTATTENDEN BETRAGES. Deutsch 63 ABSCHNITTE 7.E BIS 7.G - ABSCHNITTE 7.E BIS 7.G GELTEN NICHT FÜR PERSONENBEZOGENEN DATEN, DIE DURCH EINE NIEDERLASSUNG VON APPLE IN DEUTSCHLAND ERHOBEN WORDEN. FÜR SOLCHE DATEN WIRD APPLE, SOWEIT RECHTLICH ERFORDERLICH, EINE GESONDERTE EINWILLIGUNG EINHOLEN. SCHWEIZ ABSCHNITT 4 – DIE BESTIMMUNGEN IN ABSCHNITT 4 WERDEN DURCH FOLGENDE BESTIMMUNGEN ERSETZT: 4.1 – SOFERN SIE EIN ENDVERBRAUCHER SIND, WIRD UNSERE GESETZLICHE HAFTUNG IHNEN GEGENÜBER FÜR VERTRAGSVERLETZUNGEN IN KEINER WEISE DURCH DAS PROGRAMM BESCHRÄNKT ODER AUSGESCHLOSSEN. 4.2 – SOFERN SIE KEIN ENDVERBRAUCHER SIND GILT FOLGENDES: - DIESE ALLGEMEINEN GESCHÄFTSBEDINGUNGEN REGELN ABSCHLIESSEND UNSERE IHNEN GEGENÜBER BESTEHENDEN PFLICHTEN IM ZUSAMMENHANG MIT DEM PROGRAMM. - SÄMTLICHE GESETZLICHE VERPFLICHTUNGEN UND GARANTIEN DIE UNS IHNEN GEGENÜBER OBLIEGEN (EINSCHLIESSLICH STILLSCHWEIGNED ÜBERNOMMENER GARANTIEN FÜR FACHKENNTNIS UND SORGFALT) WERDEN HIERMIT AUSDRÜCKLICH AUSGESCHLOSSEN. INSBESONDERE TRIFFT APPLE KEINE VERANTWORTUNG DAFÜR, DASS DAS PROGRAMM IHREN ERFORDERNISSEN ENTSPRICHT. 4.3 - UNSERE HAFTUNG IHNEN GEGENÜBER FÜR DURCH FAHRLÄSSIGKEIT ODER ARGLISTIGE TÄUSCHUNG VERURSACHTE VERLETZUNG DES LEBENS, DES KÖRPERS ODER DER GESUNDHEIT WIRD IN KEINER WEISE DURCH DAS PROGRAMM BESCHRÄNKT ODER AUSGESCHLOSSEN. 4.4 - SOWEIT GESETZLICH ZULÄSSIG WIRD UNSERE HAFTUNG FÜR ENTGANGENES EINKOMMEN, ENTGANGENEN GEWINN, ENTGANGENE GESCHÄFTSGELEGENHEITEN ODER VERLUST VON DATEN HIERMIT AUSGESCHLOSSEN. 4.5 – VORBEHALTLICH DER REGELUNG NACH ZIFFER 4.3 IST UNSERE HAFTUNG, GLEICH OB VERTRAGLICH, DELIKTISCH ODER AUS SONSTIGEM RECHTSGRUND, INSGESAMT BESCHRÄNKT AUF DEN BETRAG, DEN SIE IM ZUSAMMENHANG MIT DEM PROGRAMM BEZAHLT HABEN.64 Deutsch ABSCHNITT 5 – 5.1 – ABSCHNITT 5 WIRD DURCH DIE FOLGENDEN REGELUNGEN ERGÄNZT: WENN SIE EIN ENDVERBRAUCHER SIND UND DIESEN PLAN AUF DER APPLE STORE WEBSITE ODER TELEFONISCH ABGESCHLOSSEN HABEN, KÖNNEN SIE DIESEN PLAN INNERHALB EINER FRIST VON 14 TAGEN NACH KAUF KÜNDIGEN. IHNEN WIRD VOLLE KOSTENERSTATTUNG GEWÄHRT. SOLLTEN SIE BEREITS MIT DER NUTZUNG DES PROGRAMMS BEGONNEN HABEN, WIRD IHNEN VOLLE KOSTENERSTATTUNG, ABZÜGLICH DER KOSTEN FÜR ETWA IN ANSPRUCH GENOMMENER LEISTUNGEN GEWÄHRT. 5.2 – SOLLTEN SIE DEN PLAN SPÄTER ALS 30 TAGE NACH ERHALT DES PLANS KÜNDIGEN, ERHALTEN SIE EINE ANTEILIGE RÜCKERSTATTUNG DES URSPRÜNGLICHEN KAUFPREISES DES PLANS ABZÜGLICH EINER KÜNDIGUNGSGEBÜHR VON 39 SFR, HÖCHSTENS ABER 10 % DES ANTEILIGEN ZURÜCKZUERSTATTENDEN BETRAGES. Telefonnummer In Deutschland In Österreich In der Schweiz (49) 01805 009 433 (43) 0810 300 427 (41) 0848 000 132 Montag bis Freitag Montag bis Freitag Montag bis Freitag 8:00 bis 19:45 Uhr 8:00 bis 19:45 Uhr 8:00 bis 19:45 Uhr Samstag Samstag Samstag 10:00 bis 17:45 Uhr* 10:00 bis 17:45 Uhr* 10:00 bis 17:45 Uhr* * Die angegebene Telefonnummer und die Geschäftszeiten sind freibleibend. Aktualisierte nationale und international Kontaktinformationen finden Sie unter www.apple.com/support/contact/phone_contacts.html. Gebührenfreie Nummern werden nicht in allen Ländern angeboten. **€ 0,14 pro Minute aus dem deutschen Festnetz. Eine Liste der von Apple autorisierten Wireless Partner finden Sie online unter: http://images.apple.com/legal/warranty/docs/iPhoneAuthorizedDistributors.pdf APPLE SALES INTERNATIONAL, HOLLYHILL INDUSTRIAL ESTATE, HOLLYHILL, CORK, REPUBLIC OF IRELAND WWW.APPLE.COM EMEA APP iPhone D v1.0Italiano 65 AppleCare Protection Plan per iPhone Scheda prodotto La tranquillità che ti dà solo Apple iPhone è venduto con un anno di copertura per riparazioni e 90 giorni di assistenza tecnica. Il programma AppleCare Protection Plan per iPhone amplia la tua copertura di due anni dalla data di acquisto di iPhone 1 . Sia che usi iPhone con un Mac che con un PC, con una semplice chiamata telefonica potrai risolvere la maggior parte dei problemi. Informazioni sulla copertura Questo programma globale è disponibile per tutti i modelli di iPhone la cui garanzia limitata di un anno è ancora in vigore. Se vendi iPhone prima che AppleCare Protection Plan per tale iPhone sia scaduto, puoi trasferire il programma di copertura assicurativa al nuovo proprietario 2 . Per ogni iPhone da assicurare, devi acquistare un programma AppleCare Protection Plan separato. Conserva il documento che testimonia la copertura, la ricevuta di acquisto originale di iPhone e quella del programma AppleCare Protection Plan per iPhone. Qualora sorgessero dubbi relativamente all’idoneità di iPhone per il programma AppleCare Protection Plan per iPhone, Apple potrebbe richiederti la ricevuta di acquisto. Opzioni relative all’assistenza tecnica In caso di difficoltà con iPhone, consulta la sezione dedicata alla risoluzione dei problemi tecnici sul sito web di supporto per iPhone su www.apple.com/it/support/iphone. Se non dovessi riuscire a risolvere il problema, dei rappresentanti di AppleCare possono aiutarti a risolvere eventuali problemi tecnici di iPhone e il suo funzionamento con iTunes. Nella Guida Rapida sono elencate le informazioni di contatto del servizio di assistenza tecnica di Apple e le ore in cui il tale servizio è operativo. Con la copertura del programma AppleCare Protection Plan per iPhone, Apple offre lo stesso servizio completo sia agli utenti Mac che Windows.66 Italiano Servizio hardware Questo programma amplia il servizio di riparazione e sostituzione, compreso nella garanzia di un anno di Apple, a due anni dalla data di acquisto di iPhone. Questo programma amplia inoltre il servizio di copertura per la batteria di iPhone ai casi in cui la sua capacità di conservazione della carica elettrica diminuisce del cinquanta percento (50%) o più rispetto alle specifiche originali. Quando ottieni il servizio, sono applicabili entrambe le opzioni: il servizio carry-in o per corriere espresso. Per ulteriori dettagli su come ottenere il servizio, consulta la Guida Rapida. Il dispositivo fornito da Apple come parte della riparazione o in sostituzione di quello per cui si richiede assistenza può essere nuovo, usato o ricondizionato. 1. Questo programma amplia la tua copertura di due anni dalla data di acquisto di iPhone. Il programma deve essere acquistato mentre la garanzia originale di un anno di iPhone è ancora valida. Il servizio di copertura potrebbe essere soggetto ad alcune restrizioni. I vantaggi di AppleCare Protection Plan si aggiungono a qualunque diritto legale fornito dalle leggi di tutela del consumatore vigenti nella tua giurisdizione. 2. Per informazioni complete, consulta il documento allegato contenente i termini e le condizioni del servizio AppleCare Protection Plan.Italiano 67 Prima di contattare il supporto tecnico di Apple, prova a eseguire queste semplici procedure In caso di problemi con iPhone, consulta la sezione dedicata alla risoluzione dei problemi tecnici sul sito web di supporto per iPhone su www.apple.com/it/support/iphone. Per precauzione, è bene fare una copia di backup dei dati prima di iniziare. Assicurati di avere l’ultima versione di iTunes Puoi scaricarla da www.apple.com/it/itunes/download. Visita il sito web di supporto per iPhone Il sito web di supporto per iPhone contiene link alle opzioni di servizio disponibili, al tutorial di iPhone, ai forum e ad altre risorse con risposte alle domande sui vari modi di procedere, disponibili 24 ore su 24 all’indirizzo www.apple.com/it/support/iphone. Contatta Apple per ulteriore assistenza Se dopo avere provato a eseguire le procedure descritte in questa guida il problema dovesse persistere, contatta Apple. Un rappresentante di Apple ti chiederà il numero di contratto AppleCare Protection Plan o il numero di serie di iPhone, che si trova sul retro del dispositivo. In Italia In Svizzera (39) 199 120 800 (41) 0848 000 132 Lunedì-venerdì Lunedì-venerdì 8:00-19:45* 8:00-19:45* 10.00-17.45 (sabato)* * I numeri di telefono e gli orari del servizio potrebbero variare e sono soggetti a modifiche. Puoi trovare le informazioni di contatto locali e internazionali più aggiornate su www.apple.com/contact/phone_contacts.html. Guida rapida AppleCare Protection Plan per iPhoneItaliano 69 AppleCare Protection Plan per iPhone Condizioni Generali Il Piano di Garanzia AppleCare iPhone (di seguito definito il “Piano”) è disciplinato dalle presenti Condizioni Generali e costituisce il contratto di servizio tra il cliente e Apple Sales International (“Apple”). Nel rispetto delle presenti Condizioni Generali, il Piano (i) garantisce dai difetti i prodotti iPhone di marca Apple elencati nel Documento di Certificazione o Prova di Garanzia del Piano (“Conferma del Piano”), un set di cuffie iPhone Bluetooth di marca Apple, se posseduto dal cliente e utilizzato con il prodotto iPhone garantito e gli accessori hardware contenuti nella confezione originale dei prodotti iPhone garantiti (collettivamente definiti “Apparecchiatura Garantita”) e (ii) fornisce l’accesso ai servizi di supporto telefonico e online con riferimento all’Apparecchiatura Garantita. Al fine di ottenere la Conferma del Piano, è necessario registrare il numero di contratto del Piano o il relativo numero di registrazione (“Numero di Contratto del Piano”), come da istruzioni riportate sulla confezione del Piano. I clienti che scelgono l’opzione dell’autoregistrazione, ove disponibile, riceveranno automaticamente la Conferma del Piano. La durata del Piano (“Periodo di Garanzia”) corrisponde al periodo che termina alla data specificata nella Conferma del Piano. Il prezzo del Piano è indicato sulla ricevuta di vendita originale del Piano. Apple si riserva la facoltà di limitare l’assistenza prevista dal Piano al Paese in cui l’acquisto dell’Apparecchiatura Garantita è stato effettuato. 1. Garanzia di riparazione a. Ambito della Garanzia. La garanzia per i difetti decorre dalla data di scadenza della garanzia hardware Apple per l’Apparecchiatura Garantita e termina alla fine del Periodo di Garanzia (“Periodo di Garanzia per Riparazione”). Apple, a sua discrezione, riparerà o sostituirà l’Apparecchiatura Garantita in questione se (i) durante il Periodo di Garanzia per Riparazione, sia riscontrato un difetto dei materiali o nella fabbricazione dell’Apparecchiatura Garantita o, (ii) durante il Periodo di Garanzia, la capacità della batteria dell’iPhone garantito di trattenere una carica elettrica sia diminuita del cinquanta (50%) per cento o più rispetto alle specifiche originarie (dopo essere stata completamente caricata e con l’iPhone in riproduzione 70 Italiano audio o video con le impostazioni resettate). Apple fornirà sia le parti di ricambio che la mano d’opera, ma avrà la facoltà di richiedere al cliente di procedere personalmente alla sostituzione di determinate parti facilmente installabili, come descritto di seguito. Apple potrà fornire prodotti o parti di ricambio derivanti da parti nuove o equivalenti per prestazioni e affidabilità. Il prodotto o le parti di ricambio saranno equivalenti da un punto di vista funzionale ai prodotti o alle parti sostituiti e saranno coperti dalla rimanente garanzia in conformità a quanto previsto dal Piano. I prodotti o le parti sostituiti diventano di proprietà di Apple. Apple raccomanda vivamente di effettuare copia di back-up dei dati o del software installato o registrato nell’Apparecchiatura Garantita, prima di consegnare l’Apparecchiatura Garantita affinché sia riparata. b. Limitazioni. Esulano dall’oggetto della garanzia prevista dal Piano: (i) L’installazione, la rimozione o l’eliminazione dell’Apparecchiatura Garantita; l’installazione, la rimozione, la manutenzione o la riparazione di apparecchiatura diversa dall’Apparecchiatura Garantita (inclusi accessori, apparati o altri dispositivi); nonché il servizio di rete o cellulare esterno all’Apparecchiatura Garantita; (ii) Gli eventuali danni subiti dall’Apparecchiatura Garantita a causa di incidenti, uso improprio, negligenza, cattivo utilizzo (ivi inclusa l’installazione, la riparazione o la manutenzione effettuata da soggetti diversi da Apple o Apple Authorized Wireless Service Provider), modifiche non autorizzate, condizioni ambientali estreme (ivi incluse temperatura e umidità estreme), inconsueta sollecitazione o interferenza fisica o elettrica, cali o sbalzi di corrente elettrica, fulmini, elettricità statica, incendi, cause di forza maggiore ovvero altre cause esterne; (iii) L’Apparecchiatura Garantita contraddistinta da un numero di serie modificato, cancellato o rimosso; (iv) Problemi causati da un dispositivo non compreso nell’ambito dell’Apparecchiatura Garantita, incluse apparecchiature non contraddistinte dal marchio Apple, indipendentemente dal fatto che siano state acquistate o meno unitamente all’Apparecchiatura Garantita; (v) L’intervento necessario per ottemperare alle disposizioni di un ente od organismo governativo emanate successivamente alla data del presente Piano;Italiano 71 (vi) I problemi derivanti dal funzionamento del servizio di rete o cellulare o da virus o da altri problemi relativi al software che interessano l’Apparecchiatura Garantita; (vii) L’eventuale perdita o furto dell’Apparecchiatura Garantita. Il presente Piano garantisce esclusivamente l’Apparecchiatura Garantita che viene restituita ad Apple nella sua integrità; (viii) I danni di tipo “estetico” ivi inclusi, a titolo meramente esemplificativo e non esaustivo, graffi, ammaccature, rottura degli elementi in plastica delle porte; (ix) La manutenzione preventiva dell’Apparecchiatura Garantita; (x) La messa a disposizione di apparecchi sostitutivi durante il periodo in cui l’Apparecchiatura Garantita é in fase di riparazione; (xi) I danni o le perdite di software o dati salvati o registrati nell’Apparecchiatura Garantita. IL CONTENUTO DELL’IPHONE DEL CLIENTE SARÁ CANCELLATO E IL SUPPORTO RIFORMATTATO DURANTE IL SERVIZIO. L’iPhone del cliente o un iPhone sostitutivo sarà restituito al cliente nella configurazione in cui è stato acquistato il prodotto originale, fermi restando i possibili aggiornamenti. Apple potrà installare aggiornamenti del software di sistema (“SO dell’iPhone”) come parte del servizio al fine di evitare che l’iPhone torni ad una precedente versione dell’SO dell’iPhone. Applicazioni terze istallate sull’iPhone potrebbero non essere compatibili o non funzionare con l’iPhone in conseguenza dell’aggiornamento dell’SO dell’iPhone. Il cliente è responsabile per la re-istallazione di tutti gli altri programmi software, dei dati e delle password. Il recupero e la re-istallazione dei programmi software e dei dati dell’utente non sono coperti dal presente Piano. (xii) I difetti riconducibili alla ordinaria usura del prodotto o altrimenti dovuti al normale invecchiamento dello stesso; o (xiii) Ad eccezione di quanto qui stabilito, qualsiasi altro danno che non sia causato da difetti dei materiali e di fabbricazione, o dall’uso normale e consueto dell’Apparecchiatura Garantita. c. Opzioni relative all’Assistenza. Apple potrà fornire il servizio di assistenza attraverso una o più delle seguenti opzioni: (i) Il servizio di assistenza “carry-in”. Il cliente porterà l’Apparecchiatura Garantita presso un Apple Retail Store o presso un Apple Authorized Wireless Service Provider (“AAWSP”) che 72 Italiano fornisce il servizio di assistenza “carry-in”. Il servizio di assistenza sarà prestato presso tale sede; alternativamente, il punto vendita potrà inviare l’Apparecchiatura Garantita presso un centro assistenza Apple affinché provveda alla riparazione. Una volta ricevuta la comunicazione relativa al completamento del servizio di assistenza, il cliente s’impegna a ritirare tempestivamente il prodotto. (ii) Il servizio di assistenza via posta. Una volta accertata la possibilità di utilizzare il servizio di assistenza via posta per l’Apparecchiatura Garantita, Apple provvederà ad inviare al cliente documenti prepagati per l’invio (e nel caso in cui il cliente non abbia conservato l’imballaggio originale, Apple potrà inviare anche il materiale necessario per l’imballaggio) e il cliente provvederà a spedire l’Apparecchiatura Garantita presso il centro di assistenza Apple, conformemente alle istruzioni ricevute. Una volta completata la riparazione, il servizio di assistenza Apple restituirà l’Apparecchiatura Garantita al cliente. Apple si farà carico delle spese di spedizione da e verso la sede del cliente a condizione che tutte le istruzioni siano eseguite. (iii) Il servizio per il ricambio di parti “fai-da-te” è disponibile per molte parti dell’Apparecchiatura Garantita o per i suoi accessori. Tale servizio consente al cliente di procedere personalmente alla riparazione del prodotto. Nel caso in cui il servizio per il ricambio di parti “fai-da-te” risulti disponibile, si applica la procedura descritta di seguito. (A) Servizio per il ricambio di parti “fai-da-te” in caso di richiesta di restituzione della parte sostituita da parte di Apple. A garanzia del pagamento del prezzo relativo alle parti di ricambio e alle spese di spedizione, Apple può richiedere al cliente un’autorizzazione per l’addebito del prezzo su carta di credito. Nel caso in cui il cliente non possa fornire detta autorizzazione, il servizio per il ricambio di parti “fai-da-te” potrebbe non essere disponibile; in tal caso, Apple offrirà al cliente un servizio di assistenza alternativo. Apple provvederà a spedire al cliente la parte di ricambio, allegando le istruzioni per l’installazione e altre indicazioni relative alla restituzione della parte sostituita. Se il cliente si atterrà alle istruzioni ricevute, Apple annullerà l’autorizzazione relativa all’addebito su carta di credito, pertanto il prezzo relativo alla parte di ricambio, nonché alle spese di spedizione al e dal domicilio del cliente, non sarà addebitato al cliente. Qualora la parte sostituita non venga restituita come da istruzioni, Apple addebiterà sulla carta di credito del cliente l’importo autorizzato.Italiano 73 (B) Servizio per il ricambio di parti “fai-da-te” senza richiesta di restituzione della parte sostituita da parte di Apple. Apple spedirà gratuitamente al cliente la parte da sostituire, allegando le istruzioni per l’installazione ed eventuali altre indicazioni relative alla dismissione della parte sostituita. (C) Apple non si fa carico di alcuna spesa relativa alla manodopera sostenuta dal cliente in relazione al servizio per il ricambio di parti “fai-da-te”. Nel caso in cui il cliente dovesse necessitare di ulteriore assistenza, potrà contattare Apple al numero telefonico indicato di seguito. Apple si riserva il diritto di modificare in qualsiasi momento le modalità di fornitura del servizio di riparazione o sostituzione, nonché i requisiti affinché l’Apparecchiatura Garantita possa usufruire di una particolare modalità di assistenza. Le opzioni relative al servizio di assistenza, la disponibilità delle parti di ricambio ed i tempi di risposta potranno essere soggetti a variazioni. d. Come ottenere il servizio di assistenza o sostituzione. Per usufruire del servizio di assistenza previsto dal presente Piano, è sufficiente accedere al sito Web di Apple relativo al Paese del cliente o chiamare il numero telefonico, entrambi indicati di seguito. I numeri di telefono possono variare in base alla sede del cliente. In caso di accesso al sito Web, occorrerà seguire le istruzioni relative alla richiesta del servizio di riparazione fornito da Apple. In caso di assistenza telefonica, risponderà un operatore dell’assistenza tecnica Apple, il quale richiederà il Numero di Contratto del Piano e consiglierà il servizio di assistenza più idoneo in relazione l’Apparecchiatura Garantita. Il servizio di assistenza è sempre soggetto alla previa approvazione da parte di Apple. La sede del servizio di assistenza potrà variare in base alla sede del cliente. Il cliente è tenuto a conservare il documento di Conferma del Piano e la ricevuta originale relativa all’Apparecchiatura Garantita e al Piano. La prova d’acquisto potrebbe essere necessaria per valutare l’idoneità del prodotto alla copertura prevista dal Piano. 2. Supporto tecnico a. Supporto telefonico e online. Il cliente ha diritto ad usufruire del supporto tecnico a partire dalla data di scadenza del supporto tecnico complementare dell’Apparecchiatura Garantita o dalla data di inizio del Periodo di Garanzia, a seconda di quale condizione si verifichi per ultima, e fino alla fine del Periodo di Garanzia (“Periodo di Garanzia Tecnica”). Durante il 74 Italiano Periodo di Garanzia Tecnica, Apple fornirà al cliente accesso ai servizi di supporto tecnico sia telefonico che online. Il Supporto tecnico può includere l’assistenza in riferimento all’istallazione, avvio, configurazione, analisi per la risoluzione dei problemi, ripristino (ad eccezione del ripristino dei dati), inclusi l’archiviazione, recupero e gestione dei file; interpretazione dei messaggi di errore di sistema; e valutazione della necessità di riparazioni dell’hardware. Apple fornirà supporto tecnico in relazione all’Apparecchiatura Garantita, all’SO dell’iPhone, alle applicazioni del software che sono pre-installate nell’Apparecchiatura Garantita e ai problemi di connettività fra l’Apparecchiatura Garantita e il computer supportato, intendendosi un computer che soddisfa le specifiche di connettività dell’Apparecchiatura Garantita e che utilizza un sistema operativo che è supportato dall’Apparecchiatura Garantita. Apple fornirà il supporto per la versione corrente dell’SO dell’iPhone e del software iPhone, e del precedente Major Release, ma si riserva il diritto di modificare, in qualunque momento, il supporto fornito con riferimento a qualunque versione precedente. Ai sensi della presente sezione, per “Major Release” si intende una versione principale del software che è messa in commercio da Apple con un numero di distribuzione con formato pari a “1.0” o “2.0” e che non sia in forma beta o pre-release. b. Limitazioni. Il Piano non copre: (i) I problemi che possono essere risolti attraverso l’aggiornamento del software alla versione corrente; (ii) L’utilizzo o la modifica, da parte del cliente, dell’Apparecchiatura Garantita, dell’SO dell’iPhone e del software dell’iPhone in un modo non conforme alla modalità in cui è previsto che l’Apparecchiatura Garantita e il software possano essere usati o modificati; (iii) I prodotti di terzi, i loro effetti su o la loro interazione con l’Apparecchiatura Garantita, l’SO dell’iPhone e il software dell’iPhone; (iv) L’uso, da parte del cliente, di un computer o di un sistema operativo che non ha relazione con il software iPhone o problemi di connettività con l’Apparecchiatura Garantita; (v) Il software Apple diverso dall’SO dell’iPhone o del software iPhone, come identificato dal Piano; (vi) Il SO dell’iPhone o ogni altro software avente marchio Apple definito come “beta”, “prerelease” o “preview” o software qualificato in modo similare;Italiano 75 (vii) Il danno a o la perdita di qualunque software o dei dati inseriti o registrati nell’Apparecchiatura Garantita. c. Modalità di fruizione del supporto tecnico. Il cliente può usufruire del supporto tecnico chiamando il numero telefonico indicato di seguito. L’operatore per il supporto tecnico di Apple fornirà al cliente il supporto tecnico. L’orario di operatività del servizio è elencato di seguito. Apple si riserva il diritto di modificare l’orario di operatività del servizio di supporto tecnico e i numeri telefonici in qualunque momento. I servizi di supporto on-line sono offerti al cliente al sito internet di Apple indicato di seguito. 3. Obblighi del cliente Per usufruire dei servizi previsti dal Piano, il cliente si impegna ad ottemperare ai seguenti impegni: a. Fornire il proprio Numero di Contratto del Piano e il numero di serie dell’Apparecchiatura Garantita; b. Fornire informazioni riguardo ai sintomi e le cause dei problemi relativi all’Apparecchiatura Garantita; e c. Seguire le istruzioni fornite da Apple, ivi incluse, a titolo meramente esemplificativo e non esaustivo, evitare di inviare ad Apple prodotti e accessori che non rientrano nel servizio di riparazione o sostituzione e imballare l’Apparecchiatura Garantita in conformità alle istruzioni di spedizione; e d. Aggiornare il software con la versione più aggiornata prima di richiedere il servizio. 4. Limitazioni di responsabilità PER I CONSUMATORI CHE, NEL PAESE IN CUI HANNO EFFETTUATO L’ACQUISTO, BENEFICIANO DELL’APPLICAZIONE DI LEGGI E NORME PER LA TUTELA DEL CONSUMATORE, LE GARANZIE PREVISTE DAL PRESENTE PIANO SONO DA CONSIDERARSI AGGIUNTIVE RISPETTO A TUTTI I DIRITTI E I RIMEDI PREVISTI DA DETTE LEGGI E NORME. NULLA DI QUANTO PREVISTO DAL PRESENTE PIANO PREGIUDICHERÁ I DIRITTI DEI CONSUMATORI PREVISTI DALLE LEGGI APPLICABILI, IVI INCLUSO IL DIRITTO DEL CONSUMATORE DI CHIEDERE IL RISARCIMENTO DEI DANNI IN CASO DI INADEMPIMENTO PARZIALE O TOTALE OVVERO IN CASO DI INESATTO ADEMPIMENTO DELLE OBBLIGAZIONI CONTRATTUALI DA PARTE DI APPLE. 76 Italiano ENTRO IL LIMITE MASSIMO CONSENTITO DALLA LEGGE APPLICABILE, APPLE E I SUOI DIPENDENTI E RAPPRESENTANTI NON SARANNO IN ALCUNA CIRCOSTANZA RITENUTI RESPONSABILI NEI CONFRONTI DEI CLIENTI O DEI SUCCESSIVI PROPRIETARI PER TUTTI GLI EVENTUALI DANNI INDIRETTI O CONSEQUENZIALI, IVI INCLUSI, A TITOLO ESEMPLIFICATIVO E NON ESAUSTIVO, I COSTI DI RIPRISTINO, RIPROGRAMMAZIONE O RIPRODUZIONE DI QUALSIASI PROGRAMMA O DATO, O LA MANCATA RISERVATEZZA DI DATI, LA PERDITA COMMERCIALE, IL MANCATO GUADAGNO, IL MANCATO RICAVO O RISPARMIO PRESUNTO, CHE SIANO RICONDUCIBILI AGLI OBBLIGHI DI APPLE PREVISTI DAL PRESENTE PIANO. NEI LIMITI IN CUI CIÓ SIA CONSENTITO DALLA LEGGE APPLICABILE, IL LIMITE DELLA RESPONSABILITÁ DI APPLE E DI SUOI DIPENDENTI E RAPPRESENTANTI NEI CONFRONTI DEI CLIENTI E DEI SUCCESSIVI PROPRIETARI DERIVANTE DAL PRESENTE PIANO NON ECCEDERÁ IL PREZZO ORIGINARIAMENTE PAGATO PER L’ACQUISTO DEL PIANO. IN PARTICOLARE, APPLE NON GARANTISCE CHE SARÁ IN GRADO DI (i) RIPARARE O SOSTITUIRE L’APPARECCHIATURA GARANTITA SENZA RISCHI CONNESSI ALLA PERDITA DI PROGRAMMI O DATI E DI (ii) MANTENERE LA RISERVATEZZA DEI DATI. NULLA DI QUANTO PREVISTO DAL PRESENTE CONTRATTO ESCLUDE O LIMITA LA RESPONSABILITÁ DI APPLE IN CASO DI (I) MORTE O LESIONI PERSONALI CAUSATE DA PROPRIA NEGLIGENZA O (II) DOLO. NEI LIMITI DI QUANTO CONSENTITO DALLE SUDDETTE NORME E LEGGI, LA RESPONSABILITÁ DI APPLE È LIMITATA, A SUA COMPLETA DISCREZIONE, ALLA SOSTITUZIONE O RIPARAZIONE DELL’APPARECCHIATURA GARANTITA OVVERO ALLA FORNITURA DEL SERVIZIO DI ASSISTENZA. 5. Recesso É possibile recedere in qualsiasi momento dal presente Piano, per qualsivoglia ragione. Nel caso in cui il cliente decida di recedere dal Piano può contattare Apple al numero di telefono indicato di seguito, ovvero spedire una comunicazione scritta recante il Numero di Contratto del Piano al seguente indirizzo: Apple Customer Support, Hollyhill Industrial Estate, Hollyhill, Cork, Repubblica d’Irlanda, ovvero inviare tale comunicazione via fax (numero di fax: +353-(0)21-428-3917). A tale comunicazione deve essere allegata una copia della prova di acquisto originale del Piano. Salvo quanto diversamente previsto dalle leggi locali, in caso di recesso esercitato entro trenta (30) giorni dall’acquisto del Piano, ovvero, se successiva, dalla ricezione delle presenti Condizioni Generali, il cliente riceverà un rimborso totale del prezzo pagato, dedotto il valore dell’assistenza eventualmente fornita ai sensi del Piano. In caso di recesso esercitato oltre trenta (30) giorni dalla ricezione del presente Piano, il cliente riceverà un rimborso proporzionale al prezzo di Italiano 77 acquisto originario, calcolato in base della percentuale del Periodo di Garanzia non maturato, dedotti (a) la penale per il recesso di cui alla sezione 8 ovvero, se inferire, il dieci per cento (10%) dell’importo pro rata, nonché (b) il valore dell’eventuale assistenza fornita in base al Piano. Salvo quanto diversamente previsto dalle leggi locali applicabili, nel caso in cui le parti di ricambio dell’Apparecchiatura Garantita non siano più disponibili, Apple potrà recedere dal presente Piano inviando un preavviso scritto di trenta (30) giorni. Qualora Apple receda dal presente Piano, il cliente riceverà un rimborso proporzionale al periodo di durata del Piano non ancora trascorso. 6. Cessione del Piano È possibile cedere il presente Piano ad un terzo acquirente dell’Apparecchiatura Garantita inviando via posta o via fax una comunicazione relativa alla cessione del Piano al seguente indirizzo: Apple Customer Support, Hollyhill Industrial Estate, Hollyhill, Cork, Repubblica d’Irlanda, numero di fax: +353-(0)21-428-3917. In caso di cessione del Piano, è necessario fornire i seguenti dati: il Numero di Contratto del Piano, i numeri di serie dell’Apparecchiatura Garantita oggetto della cessione, la prova d’acquisto del Piano, il nome, l’indirizzo, il numero di telefono e l’indirizzo di posta elettronica del nuovo proprietario. 7. Disposizioni generali a. Apple può subappaltare o cedere l’esecuzione dei propri obblighi a terzi. Apple non sarà tuttavia sollevata dai propri obblighi nei confronti del cliente. b. Apple non è responsabile di eventuali inadempimenti o ritardi nell’esecuzione dei propri obblighi derivanti dal presente Piano causati da eventi al di fuori del suo ragionevole controllo. c. Al fine di ricevere l’assistenza ai sensi del Piano, non è necessaria l’esecuzione di manutenzione preventiva sull’Apparecchiatura Garantita. d. Il presente Piano è offerto e valido solo in Austria, Francia (esclusa Corsica e i dipartimenti e territori d’oltremare), Germania, Irlanda, Italia, Spagna (incluse le Isole Baleari ma escluse le Isole Canarie, Ceuta e Melilla), Svizzera e Regno Unito. Il presente Piano non è offerto a soggetti non ancora maggiorenni. Il presente Piano non è disponibile laddove proibito dalla legge.78 Italiano e. Nell’adempimento dei propri obblighi, Apple potrà, a propria discrezione ed esclusivamente allo scopo di verificare la qualità delle risposte fornite, registrare parzialmente o interamente le conversazioni tra Apple ed il cliente. f. Il cliente concorda che le informazioni o i dati forniti ad Apple in base al Piano non sono confidenziali o di proprietà esclusiva del cliente. Inoltre, il cliente concorda che Apple possa raccogliere e trattare dati per conto del cliente stesso durante il processo di fornitura del servizio. Ciò potrebbe comportare la necessità di trasferire i dati del cliente a società collegate ovvero a fornitori del servizio di assistenza in conformità alla policy in materia di privacy di Apple consultabile sul sito web indicato di seguito. g. Apple ha messo a punto misure di sicurezza atte a proteggere i dati dei clienti contro l’accesso non autorizzato o alla divulgazione o alla distruzione illegale dei dati stessi. Il cliente sarà responsabile per le istruzioni impartite ad Apple sul trattamento dei dati, ed Apple cercherà di conformarsi a tali istruzioni nella misura necessaria secondo ragionevolezza al fine di fornire il servizio e l’assistenza di cui al Piano. Qualora il cliente non dovesse concordare con quanto suesposto o se avesse domande riguardanti l’impatto che potrebbe derivare ai propri dati dal trattamento degli stessi, é invitato a contattare Apple agli appositi numeri telefonici. h. Apple proteggerà le informazioni del cliente in conformità alla propria policy in materia di privacy del cliente (Apple Customer Privacy Policy). Il cliente, per accedere alle proprie informazioni di cui Apple risulta in possesso o per apportarvi delle modifiche, deve consultare il sito web URL www.apple.com/contact/myinfo, ovvero contattare il controller dei dati personali europeo di Apple all’indirizzo e-mail privacyeurope@apple.com. i. Le Condizioni Generali di cui al presente Piano sono destinate a prevalere su ogni condizione discordante, aggiuntiva ovvero qualunque altra condizione eventualmente prevista da ordini di acquisto o da qualsiasi altro documento, e costituiscono l’intero accordo tra Apple e il cliente in relazione al Piano. j. I diritti che il cliente detiene relativamente al Piano si aggiungono a qualsiasi diritto di garanzia al quale il cliente possa aver diritto. Il cliente deve acquistare e registrare il Piano durante l’anno in cui l’iPhone Apple é coperto dalla garanzia annuale limitata Apple. Apple non è obbligata a rinnovare il presente Piano. Nel caso in cui Apple dovesse proporre di rinnovare il Piano, ne determinerà il prezzo e le condizioni. Italiano 79 k. Il presente Piano non prevede un procedimento di composizione amichevole delle controversie. l. Gli obblighi finanziari del presente Piano sono sostenuti da Apple Sales International, Hollyhill Industrial Estate, Hollyhill, Cork, Repubblica d’Irlanda. Nel caso in cui Apple Sales International non adempia a tali obblighi, questi ultimi saranno assunti da Apple Operations Europe, Hollyhill Industrial Estate, Hollyhill, Cork, Irlanda. m. Il presente Piano sarà disciplinato dalle leggi vigenti nel Paese in cui il Piano è stato acquistato ed attivato. Tale scelta in materia di legislazione applicabile non include le norme in materia di conflitti tra leggi né la Convenzione delle Nazioni Unite sui contratti di vendita internazionale di merci. n. Nel caso in cui una sezione o parte di una sezione delle presenti Condizioni Generali sia ritenuta non valida, nulla o inapplicabile, detta sezione o parte di sezione sarà eliminata dalle Condizioni Generali e le restanti Condizioni Generali continueranno ad essere valide ed efficaci. 8. Variazioni in base al Paese di Acquisto Le seguenti variazioni in base al Paese di acquisto prevarranno nel caso in cui si discostino da altre disposizioni del presente Piano: ITALIA SEZIONE 4 - A. QUALORA IL CLIENTE SIA UN CONSUMATORE, LE PREVISIONI DEL PRESENTE PIANO NON POTRANNO LIMITARE O ESCLUDERE LA RESPONSABILITÀ DI APPLE IN CASO DI VIOLAZIONI DELLE NORME DI LEGGE APPLICABILI IN RELAZIONE AL PIANO. B. SE IL CLIENTE NON È UN CONSUMATORE: (I) LE CONDIZIONI ED I TERMINI QUI RIPORTATI RAPPRESENTANO NELLA LORO INTEREZZA GLI OBBLIGHI E LE RESPONSABILITÀ DI APPLE IN RELAZIONE ALLA PRESTAZIONI PREVISTE DAL PRESENTE PIANO; (II) APPLE NON SARÀ TENUTA AD ALTRE GARANZIE, CONDIZIONI O TERMINI DIVERSI DA QUELLI ESPRESSAMENTE STABILITI NEL PRESENTE PIANO; (III) EVENTUALI GARANZIE, CONDIZIONI O ALTRI TERMINI RIGUARDANTI I PRODOTTI O I SERVIZI CHE POTREBBERO ESSERE CONNESSI AL PIANO O INSERITI NELLO STESSO 80 Italiano PER LEGGE, PRASSI O LEGGI APPLICABILI NEL PAESE DI ACQUISTO O ALTRIMENTI (INCLUSA, SENZA LIMITAZIONI, OGNI CONDIZIONE IMPLICITA IN ORDINE ALLA QUALITÀ, ALL’IDONEITÀ ALLO SCOPO, ALLA RAGIONEVOLE DILIGENZA E PERIZIA) SONO QUI ESPRESSAMENTE ESCLUSI NEL LIMITE MASSIMO PERMESSO DALLA LEGGE. IN PARTICOLARE, APPLE NON SARÀ TENUTA AD ASSICURARSI CHE IL PIANO SIA IDONEO AGLI SCOPI DEL CLIENTE. C. LE PRESENTI PREVISIONI CONTRATTUALI NON POTRANNO IN ALCUN CASO ESCLUDERE O LIMITARE LA RESPONSABILITÀ DI APPLE IN CASO DI (I) MORTE O LESIONI PERSONALI RICONDUCIBILI A NEGLIGENZA DI APPLE O (II) DOLO O (III) QUALUNQUE VIOLAZIONE DELLE OBBLIGAZIONI PREVISTE DALLA LEGGE NAZIONALE APPLICABILE IN RIFERIMENTO AL TITOLO DI PROPRIETÁ O (IV) QUALUNQUE RESPONSABILITÁ LA CUI ESCLUSIONE NON SIA CONSENTITA DALLA LEGGE. D. FERMO RESTANDO QUANTO PREVISTO DAL PARAGRAFO 4.C DELLA PRESENTE SEZIONE, IN RELAZIONE A QUESTO PIANO, APPLE NON SARÀ RESPONSABILE IN IPOTESI DI PERDITE DI RICAVI, DI UTILI, DI CONTRATTI, DI DATI O PER OGNI ALTRO DANNO, O PERDITA, DIRETTO O CONSEQUENZIALE DI QUALSIASI NATURA, DERIVANTE DA O COMUNQUE CAUSATO DA FATTI ILLECITI (ANCHE A TITOLO DI COLPA), INADEMPIMENTI CONTRATTUALI O AD ALTRO TITOLO. E. FERMO RESTANDO QUANTO PREVISTO DAL PARAGRAFO 4.C DELLA PRESENTE SEZIONE, IL LIMITE MASSIMO DI RESPONSABILITÀ CONTRATTUALE, PER FATTO ILLECITO (ANCHE A TITOLO DI COLPA) O AD ALTRO TITOLO, NON POTRÀ IN ALCUN CASO SUPERARE L’IMPORTO CORRISPOSTO DAL CLIENTE AD APPLE IN RELAZIONE AL PRESENTE PIANO. SEZIONE 5 – IN CASO DI RECESSO ESERCITATO OLTRE TRENTA (30) GIORNI DAL RICEVIMENTO DEL PRESENTE PIANO, IL CLIENTE RICEVERÁ UN RIMBORSO PRO-RATA DEL PREZZO DI ACQUISTO ORIGINARIO DEL PIANO, DEDOTTA LA PENALE PER IL RECESSO PARI A 25 EURO, OVVERO, SE INFERIORE, PARI AL DIECI PER CENTO (10%) DELL’IMPORTO PRO RATA IN CASO DI RECESSO DA PARTE DI APPLE, IL CLIENTE, QUALORA SIA UN CONSUMATORE, RICEVERÁ DA APPLE UNA PENALE PER IL RECESSO PARI AL DOPPIO DELLA PENALE PER IL RECESSO CHE IL CLIENTE AVREBBE DOVUTO PAGARE NEL CASO IN CUI AVESSE DECISO DI RECEDERE DAL PIANO AL MOMENTO IN CUI SI È VERIFICATO IL RECESSO DI APPLE. QUALORA IL PRESENTE PIANO SIA STATO ACQUISTATO DA UN CONSUMATORE MEDIANTE IL SITO WEB DI APPLE STORE OVVERO TELEFONICAMENTE, IL CONSUMATORE HA IL DIRITTO DI RECEDERE Italiano 81 ENTRO QUATTORDICI (14) GIORNI DALL’ACQUISTO DEL PIANO. IL CLIENTE RICEVERÀ UN RIMBORSO PIENO. GLI ARTICOLI 50 – 61 DEL DECRETO LEGISLATIVO N. 206 DEL 6 SETTEMBRE 2005 (CODICE DEL CONSUMO) SI APPLICHERANNO AL PRESENTE PIANO NEL CASO IN CUI (I) IL PRESENTE PIANO SIA ACQUISTATO MEDIANTE IL SITO WEB APPLE STORE, OVVERO (II) IL PRESENTE PIANO SIA PERFEZIONATO COME UN “CONTRATTO A DISTANZA”. SVIZZERA SEZIONE 4 – LA SEZIONE 4 È SOSTITUITA DALLE PREVISIONI SEGUENTI: 4.1 – QUALORA IL CLIENTE SIA UN CONSUMATORE, LE PREVISIONI DEL PRESENTE PIANO NON POTRANNO LIMITARE O ESCLUDERE LA RESPONSABILITÀ DI APPLE IN CASO DI VIOLAZIONE DELLE CONDIZIONI STABILITE DALLA LEGGE APPLICABILE. 4.2 – SE IL CLIENTE NON È UN CONSUMATORE: - LE CONDIZIONI E I TERMINI QUI RIPORTATI RAPPRESENTANO NELLA LORO INTEREZZA GLI OBBLIGHI DI APPLE IN RELAZIONE AL PRESENTE PIANO; - EVENTUALI OBBLIGHI E GARANZIE IN RELAZIONE AL PRESENTE PIANO CHE POTREBBERO VINCOLARE APPLE SULLA BASE DELLA LEGGE APPLICABILE (IVI INCLUSE LE GARANZIE CONCERNENTI DILIGENZA E PERIZIA) SONO, CON IL PRESENTE, ESPRESSAMENTE ESCLUSE. IN PARTICOLARE, APPLE NON SARÀ TENUTA AD ASSICURARSI CHE IL PIANO SIA IDONEO AGLI SCOPI DEL CLIENTE. 4.3 - LE PREVISIONI DEL PRESENTE PIANO NON POTRANNO LIMITARE O ESCLUDERE LA RESPONSABILITÀ DI APPLE IN CASO DI MORTE O LESIONI PERSONALI CAUSATE DA NEGLIGENZA O DOLO. 4.4 – NEL LIMITE MASSIMO PERMESSO DALLA LEGGE APPLICABILE, APPLE NON SARÀ RESPONSABILE, IN RELAZIONE ALLE PRESENTI CONDIZIONI, IN IPOTESI DI PERDITE DI RICAVI, DI UTILI, DI OPPORTUNITÀ O DI DATI. 4.5 – FERMO RESTANDO QUANTO PREVISTO DAL PARAGRAFO 4.3,IN RELAZIONE ALLE PRESENTI CONDIZIONI, IL LIMITE MASSIMO DI RESPONSABILITÀ CONTRATTUALE, PER FATTO ILLECITO O AD ALTRO TITOLO, NON POTRÀ IN ALCUN CASO SUPERARE L’IMPORTO CORRISPOSTO DAL CLIENTE AD APPLE IN RELAZIONE AL PRESENTE PIANO.82 Italiano SEZIONE 5 - 5.1 - LE SEGUENTI PREVISIONI SONO AGGIUNTE ALLA SEZIONE 5: QUALORA IL CLIENTE SIA UN CONSUMATORE E ABBIA ACQUISTATO IL PRESENTE PIANO MEDIANTE IL SITO WEB DI APPLE STORE OVVERO TELEFONICAMENTE, IL CONSUMATORE HA IL DIRITTO DI RECEDERE ENTRO QUATTORDICI (14) GIORNI DALL’ACQUISTO DEL PIANO. IL CLIENTE RICEVERÀ UN RIMBORSO PIENO. IN OGNI CASO, SE IL CLIENTE HA GIA USUFRUITO DEL PIANO, IL CLIENTE RICEVERÀ UN RIMBORSO PIENO DEDOTTO IL VALORE DI OGNI SERVIZIO FORNITO IN RELAZIONE AL PRESENTE PIANO. 5.2 – IN CASO DI RECESSO ESERCITATO OLTRE TRENTA (30) GIORNI DAL RICEVIMENTO DEL PRESENTE PIANO, IL CLIENTE RICEVERÀ UN RIMBORSO PRO-RATA DEL PREZZO DI ACQUISTO ORIGINARIO DEL PIANO, DEDOTTA LA PENALE PER IL RECESSO PARI A SFR 39.00 OVVERO, SE INFERIORE, PARI AL DIECI PER CENTO (10%)DELL’IMPORTO PRO-RATA. Telefoni di contatto In Italia In Svizzera (39) 199 120 800 (41) 0848 000 132 Lunedì-venerdì Lunedì-venerdì 8:00-19:45* 8:00-19:45* 10.00-17.45 (sabato)* * I numeri di telefono e gli orari di operatività potrebbero variare e sono soggetti a modifiche. Il cliente può trovare le più aggiornate informazioni per contatti locali e internazionali al sito www.apple.com/support/contact/phone_contacts.html . Non in tutti i paesi sono disponibili numeri gratuiti. Tariffe locali o nazionali potrebbero essere applicabili. APPLE SALES INTERNATIONAL, HOLLYHILL INDUSTRIAL ESTATE, HOLLYHILL, CORK, REPUBLIC OF IRELAND WWW.APPLE.COM EMEA APP iPhone IT v1Español 83 AppleCare Protection Plan para iPhone Hoja informativa La tranquilidad de la mano de Apple Todos los iPhone ofrecen un año de cobertura de reparación y 90 días de asistencia técnica gratuita. El AppleCare Protection Plan para el iPhone amplía esta cobertura a dos años a partir de la fecha de compra del iPhone 1 . Tanto si usa el iPhone con un Mac como con un PC, podrá resolver prácticamente todos sus problemas con tan solo una llamada de teléfono. Información acerca de la cobertura Este plan integral está disponible para todos los modelos de iPhone cuya garantía limitada de un año aún permanezca en vigor. En caso de que decida vender el iPhone durante el periodo de vigencia del AppleCare Protection Plan para el iPhone, podrá transferir el plan al nuevo propietario 2 . Para cada iPhone que desee cubrir, es necesario adquirir un AppleCare Protection Plan para el iPhone distinto. Conserve el documento de confirmación de la cobertura del plan y la factura de compra original del iPhone, junto con el comprobante del AppleCare Protection Plan para el iPhone, ya que Apple podría necesitarlos para determinar la inclusión de su iPhone en la cobertura del plan. Opciones de asistencia técnica Si experimenta algún problema con el iPhone, siga los consejos que figuran en el sitio web de soporte del iPhone: www.apple.com/es/support/iphone. Si no es capaz de resolverlo, el personal técnico de Apple le ayudará a solucionar los problemas relacionados con su iPhone y con su conexión a iTunes. En la Guía de referencia también encontrará la información de contacto del servicio de soporte técnico de Apple y el horario de atención al usuario. Con el AppleCare Protection Plan para el iPhone, Apple ofrece el mismo servicio de cobertura tanto a los usuarios de Mac como a los usuarios de Windows.84 Español Servicio para el hardware Este plan amplía el servicio de reparación y sustitución de la garantía de un año de Apple a dos años a partir de la fecha de compra del iPhone. Asimismo, extiende la cobertura a la batería del iPhone en caso de que su capacidad de carga se reduzca en un cincuenta por ciento (50%) o menos con respecto a su capacidad original. La prestación del servicio puede efectuarse en un establecimiento autorizado o bien por correspondencia directa. Consulte la Guía de referencia para obtener más detalles acerca de cómo obtener el servicio. Como parte del servicio de reparación o sustitución proporcionado, Apple puede suministrar componentes nuevos, usados o restaurados. 1. Este plan amplía la cobertura de reparación a dos años a partir de la fecha de compra del iPhone. Debe adquirirse antes de que termine el período de garantía original del iPhone (un año). La cobertura de reparación puede estar sujeta a ciertas restricciones. Las ventajas del AppleCare Protection Plan se sumarán a todos los derechos legales conferidos por las leyes de protección al consumidor vigentes en su jurisdicción. 2. Si desea obtener más detalles, consulte el documento Condiciones del AppleCare Protection Plan adjunto.Español 85 Antes de ponerse en contacto con Apple para solicitar ayuda, realice estas sencillas operaciones Si experimenta algún problema con el iPhone, siga los consejos que figuran en el sitio web de soporte del iPhone: www.apple.com/es/support/iphone. Como medida de precaución, antes de comenzar es recomendable efectuar una copia de seguridad de todos sus datos contenidos en el iPhone. Compruebe que dispone de la última versión de iTunes Puede descargar la versión más reciente de iTunes en www.apple.com/es/itunes/download. Visite el sitio web de soporte del iPhone En el sitio web de soporte del iPhone, www.apple.com/es/support/iphone, tiene a su disposición una serie de enlaces que le permitirán acceder las 24 horas del día a todas las opciones de servicio disponibles, a las lecciones de iniciación del iPhone, a los foros de debate y a otros recursos de ayuda acerca del funcionamiento y la solución de problemas. Póngase en contacto con Apple para obtener más asistencia Si mediante las instrucciones de esta guía no ha podido resolver el problema, póngase en contacto con Apple. El representante de Apple que le atienda le solicitará el número de contrato de su AppleCare Protection Plan para el iPhone y el número de serie de su iPhone, que está grabado en la parte posterior de la carcasa. En España (34) 902 151 992 De 0900 - 19h45 (de lunes a viernes)* * Números de teléfono y horarios de servicio sujetos a posibles modificaciones. Puede consultar la información de contacto local e internacional más actualizada en la dirección: www.apple.com/contact/phone_contacts.html. Guía de referencia AppleCare Protection Plan para iPhoneEspañol 87 AppleCare Protection Plan para iPhone Condiciones del Plan Su Plan de Protección AppleCare para iPhone (en adelante el “Plan”) se rige por los presentes Términos y Condiciones y constituye su contrato de mantenimiento con Apple Sales International (en adelante, “Apple”). Conforme a estos Términos y Condiciones, su plan (i) cubre los defectos del producto de marca Apple, iPhone, mencionado en su Certificado o Comprobante de Cobertura del Plan (la “Confirmación del Plan”), un auricular iPhone Bluetooth de marca Apple, si es de su propiedad y es utilizado con el iPhone cubierto y los accesorios de hardware incluidos en el empaquetado original del iPhone (referidos de forma conjunta como el “Equipo Cubierto”) y (ii) le proporciona acceso a soporte telefónico y on line basado en recursos web para el Equipo Cubierto. Para obtener la Confirmación del Plan deberá registrar el número identificativo del contrato o registro (el “Número de Contrato del Plan”) conforme a lo expuesto en las instrucciones incluidas en el empaquetado del Plan. Los clientes que opten por la alternativa del auto-registro, cuando esta opción esté disponible, recibirán automáticamente su Confirmación del Plan. La duración del Plan (el “Período de Cobertura”) será la correspondiente al período que finaliza en la fecha señalada en su Confirmación del Plan. El precio del Plan figura en su recibo de venta original. Apple puede restringir los servicios prestados en virtud del Plan al País de Compra original del Equipo Cubierto. 1. Cobertura de Reparaciones. a. Ámbito de cobertura. Su cobertura por defectos comienza en la fecha de expiración de la garantía del hardware Apple de su Equipo Cubierto y termina al final del Período de Cobertura (el “Período de Cobertura de Reparación”). Apple, a su elección, reparará o sustituirá el Equipo Cubierto afectado, si (i) dentro del Periodo de Cobertura de Reparación existe un defecto de materiales o mano de obra del Equipo Cubierto o si (ii), durante el Periodo de Cobertura, la capacidad para mantener la carga eléctrica de la batería iPhone cubierta, se hubiera reducido en un cincuenta por ciento (50%) ó más respecto a sus especificaciones originales (tras haber sido debidamente cargada y los parámetros de audio y vídeo del iPhone cubierto restablecidos). Apple proporcionará las piezas y la mano de obra, 88 Español pero podrá pedirle que Ud mismo sustituya ciertas piezas de fácil instalación, tal y como se detalla a continuación. Apple podrá proporcionar productos o piezas de nueva fabricación o partes que se fabrican a partir de piezas que son nuevas o equivalentes a nuevas tanto en rendimiento como en fiabilidad. El producto o las piezas de repuesto serán funcionalmente equivalentes a los sustituidos y tendrán la cobertura restante conforme al Plan. Los productos y piezas sustituidos pasarán a ser propiedad de Apple. Apple le recomienda expresamente que haga una copia de seguridad de los datos y el software instalados o grabados en el Equipo Cubierto antes de entregarlo para su reparación o sustitución. b. Limitaciones. El Plan no cubre: (i) la instalación, retirada y eliminación del Equipo Cubierto ni la instalación, retirada, reparación y mantenimiento de equipos no cubiertos (incluidos los accesorios, complementos y otros dispositivos) ni servicios celulares o de red externos al Equipo Cubierto; (ii) los daños en el Equipo Cubierto causados por accidente, uso indebido, negligencia, uso incorrecto (incluida la instalación, reparación o mantenimiento defectuosos por parte de cualquier persona distinta de Apple o un Proveedores de Servicio Autorizados para Dispositivos Inalámbricos Apple), modificación no autorizada, inadecuación del entorno (incluidas la temperatura y la humedad extremas), interferencias y tensiones eléctricas o físicas anómalas, fluctuaciones y subidas de la tensión eléctrica, relámpagos, electricidad estática, incendio, causas de fuerza mayor u otras causas externas; (iii) los Equipos Cubiertos cuyo número de serie hubiera sido alterado, modificado, desfigurado o eliminado; (iv) los problemas causados por dispositivos que no formen parte del Equipo Cubierto, incluido el equipo que no sea de marca Apple, aunque se hubiera adquirido junto con el Equipo Cubierto; (v) los servicios necesarios para ajustarse a las normativas de cualquier ente u organismo administrativo, posteriores a la fecha de contratación de este Plan; (vi) los problemas causados por el funcionamiento del servicio de red o celular o por virus, o cualquier otro tipo de problemas de software introducidos en el Equipo Cubierto; (vii) la pérdida o robo del Equipo Cubierto; este Plan solamente cubre el Equipo Cubierto devuelto a Apple en su integridad;Español 89 (viii) los daños superficiales en el Equipo Cubierto, incluidas, entre otras, las raspaduras, abolladuras y plásticos rotos en puertos; (ix) el mantenimiento preventivo del Equipo Cubierto; (x) la entrega de un equipo sustitutivo durante la reparación o sustitución del Equipo Cubierto; (xi) los daños o la pérdida del software y/o los datos instalados o grabados en el Equipo Cubierto. EL CONTENIDO DE SU iPHONE SERÁ ELIMINADO Y LOS MEDIOS DE ALMACENAJE REFORMATEADOS EN EL CURSO DEL SERVICIO. Su iPhone o un iPhone de sustitución le serán devueltos con la misma configuración que tenia el iPhone cuando fue adquirido, sujeto a las actualizaciones aplicables. Apple puede instalar actualizaciones del software de sistema (“ iPhone OS “) como parte de su servicio que impedirán que el iPhone vuelva a una versión anterior del iPhone OS. Puede que las aplicaciones de terceros instaladas en el iPhone no sean compatibles o no funcionen con el iPhone como consecuencia de la actualización del iPhone OS. Usted será responsable de instalar de nuevo todos los otros programas de software, datos y contraseñas. La recuperación y la nueva instalación de programas de software y datos de usuario no están cubiertas bajo este Plan; (xii) defectos debidos al desgaste o envejecimiento natural del Equipo Cubierto; (xiii) salvo cuando esté específicamente previsto en el Plan, cualquier otro daño que no sea resultado de defectos de materiales o mano de obra o del uso normal y habitual del Equipo Cubierto. c. Opciones de servicio. Apple podrá prestar el servicio a través de una o más de las siguientes alternativas: (i) El servicio de reparación en un establecimiento autorizado. Para ello, deberá llevar el Equipo Cubierto que precise de mantenimiento a una Apple Retail Store o Proveedores de Servicio Autorizados para Dispositivos Inalámbricos Apple que ofrezca este servicio. La tienda podrá realizar la reparación en su local o enviar el Equipo Cubierto para su reparación a un centro de reparación de Apple. Una vez le haya sido notificada la conclusión de la reparación, Usted deberá recoger el producto inmediatamente.90 Español (ii) El servicio de reparación por correo directo. Si Apple considera que su Equipo Cubierto reúne los requisitos para el servicio de reparación por correo, Apple le remitirá el albarán de transporte prepagado(y, si no dispone Usted del embalaje original, Apple puede remitirle también material de embalaje) y Usted deberá seguir sus instrucciones para enviar el Equipo Cubierto al centro de reparación de Apple correspondiente. Una vez finalizadas las tareas de reparación pertinentes, se le enviará de vuelta el Equipo Cubierto. Si sigue todas nuestras instrucciones, Apple satisfará los gastos de transporte hasta y desde el lugar donde Usted se encuentre. (iii) El servicio de envío de piezas de recambio para su sustitución a cargo del usuario está disponible para gran parte de las piezas y accesorios del Equipo Cubierto. Mediante este servicio, será Usted mismo el encargado de reparar su propio producto. Si dicho servicio estuviera disponible, se aplicará, en su caso, el siguiente procedimiento: (A) Servicio de envío de piezas de recambio para su sustitución a cargo del usuario en el que deba devolverse la pieza sustituida a Apple. Apple puede requerir una autorización de cargo en su tarjeta de crédito como fianza por el precio de venta de la pieza de recambio y los gastos de transporte pertinentes. Si Usted no pudiera proporcionar una autorización de tarjeta de crédito, es posible que no pueda beneficiarse del servicio de envío de piezas de recambio para su sustitución a cargo del usuario y Apple le ofrecería métodos alternativos para prestarle el servicio. Apple le enviará una pieza de recambio acompañada de las instrucciones para su instalación y los requisitos necesarios para la devolución de la pieza sustituida. Si Usted sigue las instrucciones, Apple cancelará la autorización de la tarjeta de crédito, de manera que no se le cobrará la pieza ni los gastos de transporte desde y hasta el lugar de destino. Si, en cambio, no siguiera todas las instrucciones facilitadas para la devolución de la pieza sustituida, Apple cargará en su tarjeta de crédito el importe autorizado. (B) Servicio de envío de piezas de recambio para su sustitución a cargo del usuario en el que no se requiere la devolución de la pieza sustituida. Apple le remitirá gratuitamente una pieza de recambio acompañada de las instrucciones para su instalación y cualquier otro requisito necesario para desechar la pieza sustituida.Español 91 (C) Apple no se hace responsable de ningún coste de mano de obra en que Ud. pueda incurrir en relación con el servicio de envío de piezas de recambio para su sustitución a cargo del usuario. Si desea recibir asistencia adicional, póngase en contacto con Apple a través del número de teléfono que aparece a continuación. Apple se reserva el derecho a modificar en cualquier momento el método de prestación del servicio de reparación o sustitución y los requisitos necesarios para recibir cada tipo de servicio. Las opciones de servicio, la disponibilidad de piezas y los plazos de respuesta pueden variar. d. Obtención del servicio de reparación o sustitución. Para obtener el servicio de reparación o sustitución contemplado en el Plan, acceda al sitio web de Apple para su País (o llame al número de teléfono referenciados mas abajo. Los números de teléfono pueden variar dependiendo del lugar en que Ud. se halle. Si accede a través del sitio web, siga las instrucciones facilitadas por Apple. Si llama por teléfono, le atenderá un representante del servicio técnico de Apple, quien le solicitará su Número de Contrato del Plan, y le informará y decidirá qué servicios precisa su Equipo Cubierto. Todos los servicios están sujetos a la previa aprobación de Apple. El lugar de realización del servicio puede variar dependiendo del lugar en que Ud. se halle. Conserve el documento de Confirmación del Plan y el recibo original de compra de su Equipo Cubierto y su Plan de Protección. Puede ser necesaria la acreditación de la compra si se plantea alguna duda sobre la inclusión de su producto en la cobertura del Plan. 2. Soporte Técnico. a. Soporte telefónico y On Line. Su derecho para solicitar y hacer uso del soporte técnico comienza en la fecha en la que expira el soporte técnico gratuito de su Equipo Cubierto o en la fecha en el que el Periodo de Cobertura empieza, si éste es posterior, y termina al final del periodo de cobertura técnica (“Periodo de Cobertura Técnica”). Durante el Periodo de Cobertura Técnica Apple le proporcionará acceso a soporte técnico telefónico y soporte técnico on line. El Soporte Técnico podrá incluir asistencia en la instalación, lanzamiento, configuración, solución de problemas y recuperación (excepto recuperación de datos), incluyendo almacenamiento, recuperación, y gestión de archivos, sistema de interpretación de mensajes de error, y determinar cuándo se requieren reparaciones de hardware. Apple proporcionará soporte técnico para el Equipo Cubierto, iPhone OS, aplicaciones de software preinstaladas con el Equipo Cubierto (“iPhone Software”) y problemas de conectividad 92 Español entre el Equipo Cubierto y el Ordenador de apoyo, es decir, un Equipo que cumple las especificaciones de conectividad del Equipo Cubierto y ejecuta un sistema operativo soportado por el Equipo Cubierto. Apple proporcionará soporte para la versión actual del iPhone OS y el iPhone Software y la Versión Principal previa pero se reserva el derecho a modificar, en cualquier momento, el soporte prestado a todas las versiones anteriores a la actual. A los efectos de este apartado se entenderá por “Versión Principal” una importante y/o significativa versión de software que es lanzada comercialmente por Apple con un formato numérico de tipo 1.0 ó 2.0. y que no se encuentre en un formato Beta o de pre-lanzamiento. b. Limitaciones. El Plan no cubre: (i) Cuestiones que podrían resolverse actualizando el software a la versión actual. (ii) El uso o modificación del Equipo Cubierto, el iPhone OS o Software iPhone de una manera para la que el Equipo Cubierto o Software no está destinado a ser utilizado o modificado. (iii) Productos de terceros o sus efectos sobre el Equipo Cubierto o las interacciones con el Equipo Cubierto, el iPhone OS o software iPhone. (iv) El uso de un ordenador o sistema operativo que no este relacionado con el iPhone Software o problemas de conectividad con el Equipo Cubierto. (v) Otros Software de Apple que no sean el iPhone OS o iPhone Software, tal como se definen en el Plan. (vi) iPhone OS software o cualquier software marca Apple designado como “beta”, “preLanzado” o “preestrenado” o etiquetado de manera similar. (vii) Daños o pérdida de cualquier software o información almacenada o grabada en el Equipo Cubierto. c. Obtención de Soporte Técnico. Usted podrá acceder al Soporte Técnico llamando al número de teléfono que aparece a continuación. El representante de soporte técnico de Apple le proporcionará apoyo técnico. Las Horas de servicio de Apple se describen a continuación. Apple se reserva el derecho a cambiar sus horas de servicio técnico y los números de teléfono en cualquier momento. Los recursos de Soporte Técnico On line (basados en Web) se ofrecen en el sitio web de Apple señalado en la lista señalada a continuación. Español 93 3. Obligaciones asumidas por Usted Para recibir los servicios previstos en el Plan, Usted se compromete a realizar lo siguiente: a. Facilitar su Número de Contrato del Plan y número de serie del Equipo Cubierto; b. Proporcionar información sobre los síntomas y causas de los problemas del Equipo Cubierto; c. Seguir las instrucciones que Apple le facilite, incluidas, entre otras, abstenerse de remitir a Apple los productos y accesorios que no sean objeto del servicio de reparación o sustitución y embalar el Equipo Cubierto con arreglo a las instrucciones de envío y, d. Actualizar el software a la versión actual lanzada publicada antes de solicitar el servicio. 4. Limitación de Responsabilidad PARA LOS CONSUMIDORES SITUADOS EN PAÍSES EN LOS QUE LES SEAN DE APLICACIÓN NORMAS LEGALES Y REGLAMENTARIAS DE PROTECCIÓN DEL CONSUMIDOR, LAS VENTAJAS CONFERIDAS POR ESTE PLAN TENDRÁN CARÁCTER ADICIONAL A TODOS LOS DERECHOS Y LAS MEDIDAS DE PROTECCIÓN LEGAL DERIVADOS DE DICHAS NORMAS. NADA DE LO ESTIPULADO EN ESTE PLAN PERJUDICARÁ LOS DERECHOS RECONOCIDOS AL CONSUMIDOR EN LAS LEYES IMPERATIVAS APLICABLES, INCLUIDO EL DE LA INDEMNIZACIÓN DE LOS DAÑOS Y PERJUICIOS EN CASO DE INCUMPLIMIENTO TOTAL O PARCIAL O CUMPLIMIENTO INADECUADO DE CUALQUIERA DE LAS OBLIGACIONES DE APPLE. EN LA MEDIDA PERMITIDA POR LA LEY APLICABLE, APPLE Y SUS EMPLEADOS Y AGENTES NO SERÁN EN NINGÚN CASO RESPONSABLES FRENTE A USTED O CUALQUIER PROPIETARIO POSTERIOR POR LOS DAÑOS INDIRECTOS O EMERGENTES, INCLUIDOS, A TÍTULO MERAMENTE ENUNCIATIVO Y NO LIMITATIVO, LOS COSTES DE LA RECUPERACIÓN, REPROGRAMACIÓN Y REPRODUCCIÓN DE CUALESQUIERA PROGRAMAS O DATOS O EL INCUMPLIMIENTO DE LA OBLIGACIÓN DE MANTENER LA CONFIDENCIALIDAD DE LOS DATOS Y DE LA PÉRDIDA DE NEGOCIO, BENEFICIOS, INGRESOS O AHORROS ESPERADOS, RESULTANTES DE LAS OBLIGACIONES DE APPLE DERIVADAS DEL PLAN. CON EL MÁXIMO ALCANCE PERMITIDO POR LA LEY APLICABLE, EL LÍMITE DE LA RESPONSABILIDAD DE APPLE Y SUS EMPLEADOS Y AGENTES FRENTE A USTED Y CUALQUIER PROPIETARIO POSTERIOR EN VIRTUD DEL PLAN NO EXCEDERÁ DEL PRECIO INICIAL SATISFECHO POR EL MISMO. EN PARTICULAR, APPLE NO GARANTIZA QUE PUEDA (i) REPARAR O SUSTITUIR EL EQUIPO CUBIERTO SIN RIESGO PARA LOS PROGRAMAS Y DATOS O PÉRDIDA DE LOS MISMOS NI (ii) MANTENER LA CONFIDENCIALIDAD DE LOS DATOS. NADA DE LO ESTIPULADO DE ESTE CONTRATO 94 Español EXCLUIRÁ NI LIMITARÁ LA RESPONSABILIDAD DE APPLE EN CASO DE (I) FALLECIMIENTO O LESIONES PERSONALES OCASIONADAS POR SU NEGLIGENCIA Y (II) FRAUDE. EN LA MEDIDA EN QUE ESTA RESPONSABILIDAD PUEDA LIMITARSE CON ARREGLO AL DERECHO APLICABLE, LA RESPONSABILIDAD DE APPLE SE LIMITARÁ, A SU EXCLUSIVA DISCRECIÓN, A LA SUSTITUCIÓN O REPARACIÓN DEL EQUIPO CUBIERTO O A LA PRESTACIÓN DEL SERVICIO. 5. Cancelación Puede cancelar el presente Plan en cualquier momento y por cualquier motivo. Si decide hacerlo, llame al número de teléfono que figura abajo o envíe o remita por fax una notificación por escrito indicando su Número de Contrato del Plan al Servicio de Atención al Cliente de Apple, Hollyhill Industrial Estate, Hollyhill, Cork, República de Irlanda (número de fax: +353-(0)21-428-3917). Deberá adjuntar a su notificación una copia del documento original acreditativo de la compra del Plan. A menos que la legislación local disponga otra cosa, si efectúa la cancelación en un plazo de treinta (30) días desde la fecha de compra de su Plan o la de recepción de estas Condiciones, si fuera posterior, recibirá el reembolso íntegro menos el valor de cualquiera de los servicios prestados en virtud del Plan. Si efectúa la cancelación transcurridos más de treinta (30) días desde la recepción del Plan, recibirá un reembolso proporcional del precio inicial de compra del Plan correspondiente a la parte del Período de Cobertura que no hubiera expirado aún, menos: (a) cualquier comisión de cancelación aplicable fijada en la cláusula 8 o un diez por ciento (10%) del importe proporcional, si fuera menor, y (b) el valor de los servicios prestados en virtud al Plan. A menos que la legislación local disponga otra cosa, Apple podrá cancelar el presente Plan si no hubiera piezas de recambio disponibles para el Equipo Cubierto, con un preaviso escrito de treinta (30) días. Si Apple cancelara el Plan, Usted percibirá un reembolso proporcional al período del Plan que no hubiera expirado aún. 6. Transmisión del Plan Usted podrá transmitir este Plan a un nuevo propietario del Equipo Cubierto enviando por correo ordinario o fax, un aviso de transmisión al Servicio de Atención al Cliente de Apple, Hollyhill Industrial Estate, Hollyhill, Cork, República de Irlanda (número de fax: +353-(0)21-428-3917. Deberá facilitar su Número de Contrato del Plan, los números de serie del Equipo Cubierto objeto de transmisión, la acreditación de la compra del Plan y el nombre, domicilio, número de teléfono y dirección de correo electrónico del nuevo propietario.Español 95 7. Condiciones generales a. Apple podrá subcontratar o ceder a terceros la ejecución de sus obligaciones, pero no por ello quedará exenta de las mismas frente a Ud. b. Apple no será responsable de incumplimiento o retraso alguno en el cumplimiento del Plan por acontecimientos que razonablemente estén fuera de su control. c. Usted no estará obligado a llevar a cabo un mantenimiento preventivo del Equipo Cubierto para recibir los servicios del Plan. d. Este Plan se ofrece y es válido únicamente en Austria, Francia (excluida Córcega y sus territorios y departamentos en el exterior), Alemania, Irlanda, Italia, España(incluidas Islas Baleares pero excluidas Islas Canarias, Ceuta y Melilla)Suiza y Reino Unido. Este plan no se ofrece a personas menores de edad. El Plan no está disponible tampoco en los lugares en que esté prohibido por la ley. e. En el cumplimiento de sus obligaciones, Apple podrá, a su discreción y exclusivamente para supervisar la calidad de su servicio, grabar la totalidad o parte de las conversaciones telefónicas mantenidas con Ud. f. Usted acepta que cualquier información o datos revelados a Apple conforme a este Plan no son confidenciales y no son de su propiedad. Además, usted acepta que Apple recopile y procese datos en su nombre cuando presta los servicios de reparación y sustitución. Ello puede incluir la necesidad de transmitir sus datos a compañías asociadas o suministradores de servicios de mantenimiento con arreglo a la Política de Privacidad del Cliente de Apple, disponible en la página web señalada a continuación. g. Apple tiene unas medidas de seguridad, que deberían proteger sus datos contra el acceso no autorizado, revelación, o destrucción ilegal. Ud. será responsable de las instrucciones que dé a Apple con respecto al procesamiento de sus datos, y Apple se esforzará en cumplir estas instrucciones en la forma que racionalmente sea necesaria para la realización de las obligaciones de asistencia, reparación y sustitución conforme a este Plan. Si no está de acuerdo con lo anterior o si tiene alguna pregunta en relación a como sus datos pueden verse afectados al verse procesados de esta forma, contacte a Apple utilizando lo números de teléfono que se le han dado.96 Español h. Apple protegerá su información conforme a la Política de Privacidad del Cliente de Apple. Si desea acceder a la información que Apple dispone sobre Ud., o si desea realizar modificaciones,acceda a la URL www.apple.com/contact/myinfo para actualizar sus preferencias de contacto personales o póngase en contacto con el controlador de datos europeo de Apple en privacyeurope@apple.com. i. En caso de conflicto, las Condiciones del presente Plan prevalecerán sobre cualesquiera otras contrarias o adicionales u otras condiciones que puedan figurar en los pedidos de compra u otros documentos y representan el acuerdo íntegro entre Usted y Apple con respecto al Plan. j. Los derechos a Ud. conferidos según el Plan tendrán carácter adicional a cualquier derecho de garantía al que Ud. pueda tener derecho. Ud. ha de comprar y registrar el Plan mientras su iPhone marca Apple se encuentre en el periodo de Un Año de Garantía Limitada de Apple. Apple no está obligada a renovar este Plan. Apple, en el caso de que sí le ofrezca una renovación, determinará el precio y las condiciones. k. No existe un procedimiento informal de resolución de conflictos en el ámbito del Plan. l. Las obligaciones económicas del Plan están respaldadas por Apple Sales International, Hollyhill Industrial Estate, Hollyhill, Cork, República de Irlanda. Si Apple Sales International no las cumpliera, Apple Operations Europe, HollyHill Industrial Estate, Hollyhill, Cork, Irlanda, asumirá dichas obligaciones. m. Este Plan se regirá por las leyes del país en el cual se hubiera adquirido y hubiera surgido el derecho al mismo. Esta elección de ley aplicable no incluye sus disposiciones sobre conflicto de leyes ni la Convención de las Naciones Unidas sobre Compraventa de Bienes. n. Si algún apartado o parte de un apartado de estas Condiciones fuera considerado nulo o ineficaz, dicho apartado o parte del mismo se suprimirá de ellas y los restantes conservarán su plena vigencia y eficacia.Español 97 8. Variaciones por países En caso de contradicción con otras estipulaciones del Plan, prevalecerán las siguientes variaciones por países: ESPAÑA APARTADO 4: 4.1- SI ES UD. UN CONSUMIDOR, NADA DE LO QUE FIGURA EN EL PLAN LIMITARÁ O EXCLUIRÁ NUESTRA RESPONSABILIDAD POR INFRACCIÓN DE CUALQUIER NORMA IMPERATIVA. 4.2 - SI UD. NO ES UN CONSUMIDOR, ENTONCES: - ESTOS TÉRMINOS Y CONDICIONES DETALLAN NUESTRAS OBLIGACIONES Y RESPONSABILIDADES EN TODA SU EXTENSIÓN CON RESPECTO AL PLAN; - NO EXISTEN OTRAS GARANTÍAS, CONDICIONES U OTROS TÉRMINOS VINCULANTES PARA APPLE SALVO LOS EXPRESAMENTE MANIFESTADOS EN EL PLAN; Y - QUEDAN EXPRESAMENTE EXCLUIDOS DEL PRESENTE CUALESQUIERA GARANTÍA, CONDICIONES U OTROS TÉRMINOS RELATIVOS AL PLAN QUE PUDIERAN DE OTRO MODO VINCULARSE O INCORPORARSE EL PLAN POR DERECHO DISPOSITIVO, DERECHO CONSUETUDINARIO, O DE CUALQUIER OTRA FORMA (INCLUYENDO, SIN LIMITARSE A ELLO, CUALESQUIERA TÉRMINOS IMPLÍCITOS DE CALIDAD O IDONEIDAD PARA UN FIN DETERMINADO, CUIDADO Y PERICIA RAZONABLES). EN ESPECIAL, APPLE NO SERA RESPONSABLE DE GARANTIZAR QUE EL PLAN SEA ADECUADO A LOS FINES DESEADOS POR UD. 4.3 - NADA DE LO QUE FIGURA EN EL PLAN LIMITARÁ O EXCLUIRÁ NUESTRA RESPONSABILIDAD POR MUERTE O LESIONES PERSONALES CAUSADOS POR NUESTRA CULPA O NEGLIGENCIA. 4.4 - CON SUJECIÓN A LA CLÁUSULA 4.3 ANTERIOR, Y CON EL ALCANCE MÁXIMO PERMITIDO POR LA NORMATIVA SOBRE RESPONSABILIDAD CIVIL, NO SEREMOS RESPONSABLES, DE ACUERDO CON EL PLAN, POR PÉRDIDA DE INGRESOS O BENEFICIOS, PÉRDIDA DE NEGOCIO, PÉRDIDA DE DATOS NI POR CUALQUIER PÉRDIDA INDIRECTA NI POR DAÑOS DE CUALQUIER CLASE, SEA CUAL FUERE LA FORMA EN QUE SE PRODUZCAN Y TANTO SI SON CAUSADOS POR RESPONSABILIDAD EXTRACONTRACTUAL, INCUMPLIMIENTO CONTRACTUAL O DE CUALQUIER OTRO TIPO.98 Español 4.5 - CON SUJECIÓN A LA CLÁUSULA 4.3, Y CON EL ALCANCE MÁXIMO PERMITIDO POR LA NORMATIVA SOBRE RESPONSABILIDAD CIVIL, NUESTRA RESPONSABILIDAD MÁXIMA TOTAL, SEGÚN EL PLAN, YA SEA POR RESPONSABILIDAD CONTRACTUAL, EXTRACONTRACTUAL U OTRAS, NO EXCEDERÁ EN NINGÚN CASO DEL IMPORTE QUE UD. NOS HAYA PAGADO EN RELACIÓN AL PLAN. Apartado 5 - Si Ud. es un consumidor y ha suscrito el presente Plan a través de la página web de Apple Store o por teléfono, Ud. podrá cancelar el presente Plan en el plazo de catorce días desde la suscripción del mismo. En tal caso, Ud. recibirá el importe íntegro de la cantidad abonada. Si realiza la cancelación transcurridos más de 30 días desde la recepción del Plan, recibirá un reembolso proporcional del precio de compra inicial del Plan, menos una comisión de cancelación de 25,00€ o el 10 por ciento del importe proporcional, si fuera menor. Números de teléfono En España: (34) 902 151 992 De 0900 - 19h45 (de lunes a viernes)* * Los números de teléfono y el horario de operación pueden variar y están sujetos a cambio. Puede encontrar los datos de contacto locales e internacionales más actuales en www.apple.com/support/contact/phone_contacts.html. Los números de teléfono gratuito no están disponibles en todos los países. Podrían aplicarse tarifas telefónicas locales y nacionales. Hay una relación de Proveedores de Servicio Autorizados para Dispositivos Inalámbricos Apple disponible on-line en: http://images.apple.com/legal/warranty/docs/iPhoneAuthorizedDistributors.pdf APPLE SALES INTERNATIONAL, HOLLYHILL INDUSTRIAL ESTATE, HOLLYHILL, CORK, REPUBLIC OF IRELAND WWW.APPLE.COM EMEA APP iPhone ES v1 www.apple.com © 2008 Apple Inc. All rights reserved. Apple, the Apple logo, AirPort, AirPort Express, AirPort Extreme, iPod, Mac, MacBook, Mac OS, Macintosh, and SuperDrive are trademarks of Apple Inc., registered in the U.S. and other countries. Time Capsule is a trademark of Apple Inc. AppleCare is a service mark of Apple Inc., registered in the U.S. and other countries. Other product and company names mentioned herein may be trademarks of their respective companies. 2E034-4871-B Printed in XXXX Xserve Technology Overview 2006年12月目次 Page  はじめに Page  製品概要 主な特長 1Uサイズに最適化された可用性の高いデザイン Page  パフォーマンス概要 プロセッサパフォーマンス メモリパフォーマンス ストレージパフォーマンス サーバパフォーマンス Page 1 デュアルコアIntel Xeonプロセッサ Xeon×4コアのパフォーマンス 次世代のマイクロアーキテクチャ 64ビットプロセッサアーキテクチャ マルチコアとMac OS X Server Page 1 高いバンド幅のサーバアーキテクチャ 独立した2系統の1.33GHzフロントサイドバス 先進のFB-DIMMメモリテクノロジ ハイパフォーマンスのPCI Express拡張スロット 業界標準の接続性 卓越した信頼性 Page 1 業界をリードする柔軟なストレージ構成 SATAドライブテクノロジー SASドライブテクノロジー Apple Drive Module ソフトウェアとハードウェアのRAIDオプション ファイバーチャネルによる相互接続 Page  統合されたLights-outリモート管理 いつでも、どこでも、監視と管理が可能 同率下ハードウェア監視機能Dedicated Monitoring ハードウェア Server監視ソフトウェア Apple Remote Desktop Technology Overview  XserveTechnology Overview  Xserve Page  Mac OS X Server v10.. 64ビットコンピューティング 2基のオンボード搭載ギガビットEthernet 革新的なリモート管理 パワフルなワークグループ管理サービス Xcodeを使用した64ビットソフトウェア開発 Page 1 サービス&サポートおよびトレーニングオプション AppleCare Premium Service and Support Plan AppleCare Service Parts Kit AppleCare Help Desk Support トレーニングと認定制度 Page  製品情報 Xserveの標準システム構成 構成オプション 関連製品 Page  技術仕様 ハードウェア ソフトウェアはじめに アップルはまたもや、パワフルで画期的な高性能のサーバテクノロジーをお届けします。デュアルコ アIntel XeonプロセッサのパワーにMac OS X Serverを組み合わせ、革新的なアーキテクチャと デザインを備えた全く新しいXserveの登場です。処理速度、パフォーマンス、柔軟性のいずれにお いても、驚くべきレベルに進化しています。これにより、アップル製のすべてのコンピュータにインテ ルプロセッサを搭載し終えました。 処理速度 新型Xserveでは、旧モデルのXserve G5と比較して最大5倍という大幅な処理速度向 上を実現しました2。64ビット処理のデュアルコアIntel Xeon "Woodcrest"プロセッサを2基搭 載し、3.0GHzという高クロック速度を採用することにより、各種アプリケーションに驚きの処理能 力を与えます。 パフォーマンス Xserveは消費電力あたりのパフォーマンスも秀逸です。Intel Coreマイクロアー キテクチャと65nmプロセステクノロジーにより、少ない消費電力で超高速演算を行えるプロセッ サを採用していることに加え、Xserveに搭載されているすべてのハイパフォーマンスな周辺回路が 効率良く動作するように設計されているからです。アップルの優秀なシステムデザインと、パワフル なUNIXベースのオペレーティングシステム「Mac OS X Server」が最大のパフォーマンスをもたら します。 Xserveに搭載されているすべての主要部品には、高いパフォーマンスと信頼性に優れた製品を厳 選しています。チャネルあたり最大10.5GB/sの能力を誇る独立した2系統の1.33GHzフロントサ イドバス、256ビット幅のメモリコントローラと667MHz DDR2 ECC FB-DIMMを使用して最大 32GBまで拡張可能な先進のFB-DIMMメモリテクノロジーなど、画期的なハードウェアを満載して います。また、高性能なグラフィックシステム、ホットスワップ可能な冗長型電源ユニット、高効率の 温度管理を行うインテリジェント型冷却システムなど、他社製品と一線を画する安心機能が内蔵さ れています。 そのハードウェアに秘められたパフォーマンスを解き放つのがMac OS X Server v10.4.8です。 Intelプロセッサでネイティブに動作し、パフォーマンスを最大限に引き出すことが可能なMac OS X Serverには、各種のネットワークサービス機能と新開発のLights-outリモート管理&監視ツー ルが付属します。クライアント数無制限のソフトウェアライセンスが付属しているため、ユーザ数が 増えた場合でも追加費用は一切発生しません。 柔軟性 100万通り以上のシステム構成が可能なXserveは、業界でも最も拡張性とシステムデザ イン性に優れた1Uサーバです。PCI Express 2GB/s拡張スロット(8レーン)を2基備え、業界で も最大級のホットプラグ可能な内蔵ストレージ(SATAドライブ使用時は最大2.25TB、超高速の 15,000rpm SASドライブ使用時は最大900GB)を搭載可能です。Xserveは標準仕様で販売され ますが、プロセッサ速度から、ドライブ種別、ストレージ容量、ネットワーキングオプションまで、あ らゆる用途を満たす豊富な構成オプションが用意されています。 新型Xserveは弛まぬ技術開発と改良の結果です。パワフルで、拡張性に富み、そしてお求めやすい 価格。スモールビジネスからエンタープライズ用途まで、各種教育分野、制作部門、科学技術分野 等、あらゆる分野の要求にお応えできるソリューションです。 Technology Overview  Xserve 新しい特長 • 6 4ビット 処 理 の デュアルコア I n t e l X e o n “Woodcrest”プロセッサ(最大3GHz) • 4MB共有二次キャッシュと、プロセッサ毎に独立 した2系統の1.33GHzフロントサイドバス(最大 10.5GB/s)による高バンド幅のサーバアーキテク チャ • 256ビット幅のメモリコントローラにより、最大 32GBまでの667MHz DDR2 ECC FB-DIMMを搭 載可能 • スロットあたり最大2GB/sのバンド幅を誇るPCI Express拡張スロット(8レーン)を2基搭載 • SATA(Serial ATA)およびSAS(Serial Attached SCSI)をサポートした柔軟性の高い内蔵ストレージ コントローラを搭載。 • ホットプラグ可能なApple Drive Moduleを使用し て、最大2.25TB(SATAドライブ使用時)または最 大900GB(超高速の15,000rpm SASドライブ使用 時)1 • 統合されたLights-outリモート管理&監視機能 • ホットスワップ可能な冗長型電源ユニット(オプ ション) • サーバクラスのグラフィックインターフェイスを内 蔵。Xserveにディスプレイを接続して設定や管理が 行えます。 • Intelプロセッサ用に最適化されたMac OS X Server v10.4.8を付属(クライアント数無制限)製品概要 特長 アップルの第5世代のラックマウントサーバ「Xserve」には、最先端のIntelプロセッサ、先進の サーバアーキテクチャ、柔軟なストレージ機能が内蔵されています。さらに、アップルの伝説的な使 い易さを備えたパワフルなリモート管理機能、Mac OS X Serverの豊富なサーバ機能のすべても 付属します。ビジネス用途を含むあらゆる分野でパワフルかつ多目的に使えるサーバソリューション として、Xserveでは以下に挙げるテクノロジーが採用されています。 デュアルコアIntel Xeonプロセッサを基搭載 Xserveでは2基のデュアルコアIntel Xeon "Woodcrest"プロセッサを搭載。旧モデルのXserve G5との比較で最大5倍のパフォーマンスを 実現しました2。それぞれの64ビットXeonプロセッサには4MBの共有二次キャッシュ(旧モデルに 採用されていたPowerPC G5では512KB)と128ビットSSE3ベクトル演算エンジンが内蔵されて います。 デュアル ポイント・ツー・ポイント システムバス 独立した2系統のフロントサイドバス(各 1.33GHz駆動)により、システムメモリへの高速アクセスが可能。両チャネル合計で21.3GB/sのス ループットで命令およびデータの転送を高速化することにより、プロセッサのパフォーマンスも最 大限に向上されます。 先進のメモリテクノロジー Xserveでは最新の256ビット幅メモリコントローラを採用。4チャネ ルの667MHz DDR2 Full Buffered DIMM(FB-DIMM)と、エラー訂正保護機能(ECC)もサ ポートしています。この画期的なメモリサブシステムでは、Xserve G5の最大3倍のメモリバンド幅 と2倍のメモリ容量(最大32GB)を実現。メモリコントローラ経由でのメモリ同時読み書きや、パ フォーマンスを向上させるその他の最新機能もサポートされています。 高バンド幅のサーバアーキテクチャ 最高のサーバパフォーマンスを得るため、Xserveでは、メ モリバンド幅、ストレージバンド幅、I/Oバンド幅を無駄なく使用して全体の処理能力を向上させる システム設計が施されています。ロジックボードに用意されたPCI Express拡張スロットはすべて の主要サブシステムに接続されています。8レーンのPCI Express拡張カードを2枚搭載した場合の I/Oバンド幅は、Xserve G5でのI/Oバンド幅の4倍に達し、Fibre Channel、グラフィック、ネット ワーク等の各種用途に対応した最新の高バンド幅I/Oカードを実装可能です。内蔵(オンボード) I/Oには、ギガビットEthernetポート×2系統、FireWire 800ポート×2、USB 2.0ポート、シリアル ポートが用意されています。 先進かつ柔軟なストレージ 3つのドライブベイに加え、Xserveには、SATA(Serial ATA)およ びSAS(Serial Attached SCSI)の両方をサポートした先進のストレージコントローラ(3Gb/s) が搭載されています。SATAドライブはお求めやすい価格で優れたパフォーマンスが得られます。 業界最大級の750GBハードディスクドライブを使用して最大2.25TBまでの拡張が可能です。最大 126MB/sのデータ転送速度と3.5msのシークタイムを誇るエンタープライズクラスのSASハード ディスクドライブでは、驚異的なパフォーマンスが得られます。データセンターなど、データアクセ スが激しいアプリケーションに最適です3。さらに、オプションのPCI Expressカードを実装すれば、 アップルのXserve RAIDストレージシステムなどの外部ストレージデバイスにも接続可能です。 Technology Overview  Xserve Xserve Xserveは、Xeonプロセッサ×4コアの演算能力と、 高速で低価格のストレージを1Uサイズに凝縮した高 性能サーバです。幅広いBTOオプション構成により、 あらゆる用途に対応します。 Xserve RAID アップルのお求めやすいストレージソリューションで す。コンパクトな3U筐体のXserveと接続すれば、 最大10.5TB1の膨大な容量と高度なデータ保護を高 い可用性で実現できます。リモート管理も容易 電源とEthernetケーブルが接続されている限り、内蔵のリモート管理機能 を利用して、Xserveをネットワーク経由で管理することが可能です。外部に接続されていればイ ンターネット経由でも管理できます。また、Xserveの電源がオフの場合でも、ネットワーク経由で リモート起動できます。Xserveのリモート監視やリモート操作をGUI経由で容易に行える便利な 「Server Monitor」ソフトウェアが付属します。 UNIXベースのパワフルなオペレーティングシステム XserveにはMac OS X Server(クライア ント数無制限版)が付属します。このMac OS X Serverは、オープンスタンダード仕様に基づいて 開発され、64ビット処理のデュアルコアIntel Xeonプロセッサの処理能力を最大限に引き出せる ように最適化されたネイティブバージョンです。使い易い、各種のワークグループ機能およびイン ターネットサービス機能も付属しています。各種のエンタープライズインフラストラクチャへの統合 も容易で、追加ユーザのライセンス料も不要です。 サーバクラスのサポート製品 ダウンタイムを最小限に抑えるために、アップルはオンサイトハード ウェア修理、高度なソフトウェアサポート、便利なスペアキットを含むエンタープライズクラスのサ ポート製品を提供しています。 1Uラックサイズに最適化されたサーバ設計 膨大な処理能力と大容量ストレージを高さ1U、19インチ幅のコンパクトな筐体に収めたXserveは、 優れたパフォーマンスとサービス性能を備え、広範囲なコンピューティング環境に容易に統合でき るようにゼロから設計されました。業界標準の4ポストラックやキャビネットに対応するマウント金 具やスライドレール等の部品と、セットアップの詳しい解説書は製品に同梱されています。 Technology Overview  Xserve 100%ネイティブ Mac OS X Server v10.4.8は、Intelプロセッサを 搭載したMacシステムにおいても100%ネイティ ブに動作します。すべてのサービスは最高速度で動 作するため、Mac OS X Serverのすべての機能を、 Xserveに搭載されているデュアルコアIntel Xeon プロセッサで高速実行できます。Technology Overview  Xserve インジケータランプ 電源状態、筐体のロック、ドライブ状態、 Ethernetリンク、プロセッサ状態など、システムの各種動作状態とス テータスが一目で判るように表示します。 FireWireおよびUSBポート 背面パネルに用意されたFireWire 800ポート×2基、および前面パネルに用意されたFireWire 400ポー ト×1基を使用して、外部ストレージ、バックアップデバイス、その他の サーバ等に高層接続可能です。背面パネルに用意されたUSB 2.0ポー ト×2基には各種の周辺機器を接続できます。 エアダクト 大口径のエアダクトと、専用のマイクロコントローラによ り個々に制御される7つの2枚羽冷却ファンを搭載したインテリジェン ト型冷却システムを採用しています。前面から背面へのエアフローに より効率的にシステムの冷却を行い、個々の冷却ファンはシステム冷 却に必要な速度で回転するため、回転音と消費電力を抑えることが可 能です。ひとつの冷却ファンが故障した場合は、他の冷却ファンの回転 速度を上げてシステム冷却を補います。 ドライブベイ 3つのドライブベイには、SATAおよびSAS内蔵スト レージをサポートした、独立したドライブチャネルが用意されています。 ホットプラグ機能により、サーバの電源を入れたままでドライブの追加 や交換が行えます。Apple Drive ModuleのLEDには、ドライブの 動作状態と、SMART(S elf-Monitoring, Anal y sis, and Reporting Technology)テクノロジーによる故障予報が表示され ます。 光学式ドライブ ソフトウェアのインストールやシステム復帰用に、ス ロットローディング式の24倍速コンボドライブ(DVD- ROM/ CD-RW)が標準搭載されています。オプションの2層メディア対応8倍 速SuperDrive(DVD+R DL/DVD±RW/CD-RW)を搭載すれば、 データの保存やバックアップを高速かつ容易に行えます。 着脱が容易なラックマウントシステム 着脱が容易なレールを使用し た、使い易いラックマウントシステムを採用しています。各種のラック やキャビネットに対応し、短時間でのセットアップが可能です。 冗長型電源ユニット ホットスワップ対応のロードシェアシステムを装 備しています。2台目の電源ユニット(オプション)を実装することによ り、Xserveの可用性が向上するだけではなく、電源ユニットが故障し た際の修理も容易になります。 システム情報タグスロット システム構成、ユニットのシリアル番号、 Ethernet MACアドレスなどの、システムの主要情報を文字および バーコードで記載したカードが挿し込まれています。余白部分には ユーザネットワークに固有の情報や、組織の資産管理用情報などを書 き込めます。 ギガビットEthernetインターフェイス 2系統の独立したギガビット Ethernetリンクが用意されています。システム接続や管理用に使用で きます。 PCI Express拡張スロット Xserve G5の4倍のI/Oバンド幅を持っ た、8レーンのPCI Express拡張スロット×2基には、最新のI/Oカード やネットワークインターフェイスを実装できます。オプションのライ ザーカードを使用すれば、スロット1はPCI-X拡張スロットとしても使 用できます。 外部ディスプレイポート 23インチApple Cinema HD Displayま での外部ディスプレイを、DVIまたはVGA接続できます。システム管理 者がローカルにメンテナンスを行う場合でも、ディスプレイカード用に 拡張スロットを潰す必要がありません。 シリアルポート DB-9コネクタ仕様のシリアルポートです。ネットワー クが機能していない場合でも、シリアルコンソール経由でXserveに接 続して操作できます。 Xserveシステム         1 前面パネル 背面パネル 1  11 10   1   1 11 10     パフォーマンス概要 アップルのXserveは、業界をリードする使いやすさで驚異的なパフォーマンスを実現するように 設計されています。64ビット処理のXeon×4コアの処理パワー、先進のメモリテクノロジー、高バ ンド幅アーキテクチャ、などにより、Xserveは各種のサーバ処理を容易にこなします。その優れた パフォーマンスを評価するため、アップルでは新型Xserveの試作品とXserve G5の比較を行いま した。 プロセッサパフォーマンス 128ビットSSE3ベクトル演算エンジンを内蔵した、64ビット処理デュアルコアIntel Xeonプロセッ サ×2基の高いスループットにより、Xserveはビジネス分野や科学技術分野、イメージ処理、メディ アエンコーディングなどに不可欠な複雑な演算処理に秀でています。 SPEC SPECレートでは、複数のベンチマークコードを同時に実行し、複数のCPUコアを並列使用 することで、マルチコアプロセッサの性能を測定します。SPECfp_rate_base2000および SPECint_rate_base2000では、単位時間あたりに処理できた一連の浮動小数点演算および整 数演算の回数を測定するベンチマークです。3.0GHzのデュアルコアIntel Xeonプロセッサを搭載 したXserveは、2.3GHzのPowerPC G5プロセッサを搭載したXserve G5と比較して、浮動小数 点演算では3.7倍、整数演算では5.3倍高速でした。 ベンチマーク結果: Xserve G5との比較で最高5倍高速 整数演算では、XserveはXserve G5との比較で最高5倍高速、浮動小数点演算では約4倍高速 です。 Xserve G5 2.3GHz PowerPC G5×2(2コア) Xserve 3.0GHz Xeon×2(4コア) 基準速度 5.3倍 SPECint_rate_base2000整数演算(推定値) Xserve G5 2.3GHz PowerPC G5×2(2コア) Xserve 3.0GHz Xeon×2(4コア) 基準速度 3.7倍 SPECfp_rate_base2000浮動小数点演算(推定値) テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販 品のXserve G5を使用しました。SPECint_rate_base2000スコア(推定値): 112.0(デュアル3.0GHz Xeonシステム)、21.1(デュアル2.3GHz G5システム)。 SPECfp_rate_base2000スコア(推定値): 76.2(デュアル3.0GHz Xeonシステム)、20.4(デュアル2.3GHz G5システム)。SPEC®、SPECfp®、SPECint®は Standard Performance Evaluation Corporation(SPEC)の登録商標です。詳細はwww.spec.orgをご覧ください。テストには特定のコンピュータシステムを 使用しましたが、Xserveのおおよそのパフォーマンスを示しています。 Technology Overview  Xserve Xserveの優れたシステムパフォーマンスを示すた め、ポピュラーなベンチマークテスト手法を利用して、 Xserve G5との速度比較を行いました。以下のテス ト結果は、公開されているソフトウェアを使用して、 2006年10月にアップル社内の研究施設で測定され たものです。各サーバの構成は以下の通りです。 • Apple Xserve 3.0GHzデュアルコアIntel Xeon 5100プロセッサ×2基、メモリ4GB(667MHz DDR2 ECC FB-DIMM)、Apple Drive Module (8 0 GB S A T A)×1基 、デュアルギガビット Ethernet、Mac OS X Server v10.4.7 • Apple Xserve G5 2.3GHz PowerPC G5プロ セッサ×2基、メモリ4GB(400MHz DDR1 ECC メモリ)、Apple Drive Module(80GB SATA) ×1基、デュアルギガビットEthernet、Mac OS X Server v10.4.7Technology Overview  Xserve 消費電力とパフォーマンス 消費電力あたりのパフォーマンスは電力効率を示し、単位としては、SPECint_rate_base2000値 をプロセッサの消費電力(TDP値)で割ったものが使用されます。2.0GHzおよび2.66GHzのデュ アルコアIntel Xeon 5100プロセッサではソケットあたり65W、3.0GHzのプロセッサでは80Wを 消費します。Xserve G5と比較した場合、消費電力あたりのパフォーマンスは約4倍になります。 ベンチマーク結果: 消費電力あたりのパフォーマンスは業界最高クラス Xserveに搭載されているデュアルコアIntel Xeonプロセッサは、電力効率が従来のIntel Xeonよ りも4倍以上優れています。AMD Opteron 285プロセッサと比較した場合でも、ほぼ2倍の電力 効率を示しています。 Intel Xeon 5100 3.0GHz AMD Opteron 285 2.6GHz 3.77倍 2.17倍 PowerPC G5 2.3GHz Intel Xeon 3.6GHz 1.03倍 基準値 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサ×2(4コア)を搭載した新型Xserveの試作品 と、市販品のXserve G5を使用しました。SPECint_rate_base2000スコア(推定値): 112.0(デュアル3.0GHz Xeonシステム)、21.1(デュアル2.3GHz G5システ ム)。SPEC®、SPECint®はStandard Performance Evaluation Corporation(SPEC)の登録商標です。詳細はwww.spec.orgをご覧ください。2.6GHz AMD Opteronと3.6GHz Intel Xeonプロセッサの比較は、各プロセッサの2006年11月9日時点でのSPECint_rate_base2000公表値と、TDP(Thermal Design Power)値の公開情報を使用して行いました。パフォーマンステストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示して います。 LINPACK 大きな数やきわめて高い精度が求められる計算の場合、コンピュータは倍精度浮動少数点演算を 実行します。アップルはデュアルコアIntel Xeonプロセッサ×2基の浮動少数点演算ユニットの利 点を明らかにするためにLINPACKベンチマークを使用しました。LINPACKは一次方程式の解法プ ログラムを実行することで、倍精度浮動少数点演算のパフォーマンスを測定します。 ベンチマーク結果: Xserve G5における浮動少数点演算との比較で3倍高速 Xserveは、単精度浮動少数点演算ではXserve G5の3.1倍、倍精度浮動少数点演算ではXserve G5の3倍高速です。 Xserve G5 2.3GHz PowerPC G5×2(2コア) Xserve 3.0GHz Xeon×2(4コア) 基準速度 3.0倍 倍精度浮動少数点演算速度 Xserve G5 2.3GHz PowerPC G5×2(2コア) Xserve 3.0GHz Xeon×2(4コア) 基準速度 3.1倍 単精度浮動少数点演算速度 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販 品のXserve G5を使用しました。テストに使用したすべてのシステムには4GBのメモリを搭載しています。テストにはwww.netlib.org/benchmarkから入手し たLINPACKベンチマーク(1000sおよび1000d)を使用し、単精度浮動少数点演算での配列サイズを20,000、倍精度浮動少数点演算での配列サイズを16,000 (3.0GHzのXeonプロセッサを搭載したXserveの試作品)および15,000(Xserve G5)に設定してテストを行いました。テストに使用したすべてのシステムで Accelerate Frameworkを使用しています。テストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示しています。Technology Overview 10 Xserve HMMER HMMERは、複数シーケンスの合致を検出する統計モデルである隠れマルコフモデル(Hidden Markov Models)をインプリメントした、バイオインフォマティクス分野では一般的に用いられ ているアプリケーションです。コンピュータ生命工学などの分野でDNAシーケンス内のパターンを 検索するためによく使用されます。新型Xserveに搭載されたプロセッサとメモリのパフォーマン スを測定するため、hmmcalibrateを使用して、同じサンプルデータセットをXserve G5と新型 Xserveで解析し、解析に要した時間を測定しました。 hmmcalibrateによるテスト結果: Xserve G5のほぼ3倍の処理速度 Xserve 3.0GHz Xeon×2(4コア) Xserve G5 2.3GHz PowerPC G5×2(2コア) 2.9倍 基準速度 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販品の Xserve G5を使用しました。HMMERテストでは、hmmer.janelia.orgからXserve G5用アプリケーションを入手して使用しました。Xeonプロセッサを搭載した Xserveの試作品では、Xserve用のソースコードにwww.scalableinformatics.comから入手したパッチを施してコンパイルしたものを使用しました。コンパイル時 のオプションは「-O3」(スレッド処理を許可)に設定しました。テストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示して います。 ビデオ圧縮 ビデオを圧縮して、一般的な配信フォーマットにエンコードする処理には膨大なプロセッサパ フォーマンスが必要です。ビデオコンテンツを各種のフォーマットで配信したい場合は、アップル のFinal Cut Studioに含まれているCompressorアプリケーションなどをXserve上で使用する と便利です。ビデオコンテンツの圧縮と配信をバッチ処理で自動化できます。アップルでは、新型 XserveとXserve G5を使用して、各種のビデオフォーマット素材をMPEG-2フォーマットにエン コードするテストを行いました。 Compressor 2.3によるテスト結果: MPEG-2エンコードのパフォーマンス XserveはMPEG-2圧縮処理を、Xserve G5の最高2.3倍の速度で行いました(ソースビデオ素材 のフォーマットによって異なります)。 Xserve(DVコンテンツ処理) 3.0GHz Xeon×2(4コア) Xserve(HDコンテンツ処理) 3.0GHz Xeon×2(4コア) 2.3倍 1.8倍 Xserve(SDコンテンツ処理) 3.0GHz Xeon×2(4コア) Xserve G5 2.3GHz PowerPC G5×2(2コア) 1.9倍 基準速度 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販品の Xserve G5を使用しました。Compressorでは、MPEG-2(6.2Mbps)で2パスエンコードを行うように設定しました。テストには特定のコンピュータシステムを使用 しましたが、Xserveのおおよそのパフォーマンスを示しています。 メモリパフォーマンス Xserveには、さらに高速、大容量、高信頼を実現した、256ビット幅メモリアーキテクチャが新規 採用されています。4チャネルの667MHz DDR2 ECC Full Buffered DIMM(FB-DIMM)を使 用して、最大21.3GB/sのメモリバンド幅を達成しました。このメモリバンド幅向上により、パフォー マンスもそのまま向上しています。Xserveでは、巨大なファイルやデータセットをメモリ上に読み 込んで、2基のデュアルコアXeonプロセッサから高速アクセスできます。高速かつ大容量のメモリ を追加することにより、グラフィック、ビデオ、科学技術アプリケーションなどの幅広いサーバサー ビスを超高速に実行することが可能です。Technology Overview 11 Xserve STREAM STREAMベンチマークは、定常的な連続メモリバンド幅を測定する単純なベンチマークプログラム です。バーストモード等の瞬間的なパフォーマンスではなく、連続して維持できるバンド幅を測定し ます。STREAMベンチマークはプロセッサキャッシュよりも遥かに大きなデータセットを対象とし ているため、大きなデータセットを扱うアプリケーションのパフォーマンスに沿った結果が得られ ます。 大量メモリにおけるバンド幅 Xserveでは、Xserve G5の2倍以上のメモリバンド幅が得られます Xserve 1GB 667MHz DDR2 FB-DIMM×4 Xserve G5 1GB 400MHz DDR1 DIMM×4 2.1倍 基準速度 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販品の Xserve G5を使用しました。テストに使用したすべてのシステムには4GBのメモリを搭載しています。テストには、STREAM v5.6ベンチマーク(www.cs.virginia. edu/stream/ref.html)と、マルチプロセッサ用のビルドにOMPサポートを使用しています。最適化にはICC(Xserve、Xeon×4コア)およびXLC(Xserve G5)を 使用しました。 テストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示しています。 ストレージパフォーマンス 科学技術アプリケーションなどではプロセッサのパフォーマンスが重要ですが、サーバ処理の多く では、総合的なパフォーマンスを得るために、プロセッサ、メモリ、ディスク、ネットワークのバラン スが重要です。Xserveでは、SATA(Serial ATA)ドライブとSAS(Serial Attached SCSI)ドラ イブの両方をサポートし、チャネルあたり3Gbpsの速度を誇るストレージコントローラを採用する ことにより、Xserve G5を遥かに超える、ストレージ機能の大幅な向上を実現しました。SATAド ライブを実装した場合、Xserveは素晴らしいストレージパフォーマンスを発揮します。さらに、市 場でも最も高速かつ信頼性の高い15,000rpm SASドライブを実装すれば、超高速シークタイムと 合わせて、あらゆるアプリケーションで最高のパフォーマンスを出します。 Iometer Iometerはサーバ用のI/Oパフォーマンス解析ツールです。もともとはIntel社によって開発され、後 にオープンソースで公開されたものです。サーバに一定の処理を与えることでシステムに負荷を掛け て、スループットや遅延時間など、システムのI/Oパフォーマンスを測定します。 優れたストレージパフォーマンス SATA drive 750GB 7200rpm SAS drive 300GB 15,000rpm 76MB/s 126MB/s Iometerによる測定値(MB/s) SATA drive 750GB 7200rpm SAS drive 300GB 15,000rpm 8.0ms 3.5ms 平均シーク時間(短いほど優秀) テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販品の Xserve G5を使用しました。テストにはIometer 2004.07.03を使用し、ランプアップ時間を30秒、テスト時間を2分、リクエストサイズを512KBに設定しました。テス トに使用した各システムには起動用ドライブとテスト用ドライブを接続し、オペレーティングシステムが格納されている起動用ドライブの影響を受けない状態で、テスト 用ドライブ上のパフォーマンスを測定しました。各ドライブの平均シーク時間は各ドライブメーカーの公表値です。テストには特定のコンピュータシステムを使用しまし たが、Xserveのおおよそのパフォーマンスを示しています。Technology Overview 1 Xserve 750GB 7,200rpm SATAドライブを実装した場合、Xserveはドライブあたり76MB/sのパフォー マンスで、最大2.25TBのストレージ容量を1U筐体で実現します。また、300GB 15,000rpm SAS ドライブを実装した場合は、ドライブあたり126MB/sのブレークスルーと平均ランダムアクセス時 間3.5msの超高速ディスクアクセスを実現できます。データベースやメールサーバ等、ディスクアク セス頻度が高いアプリケーションに最適です。 サーバパフォーマンス Xserveのバランスの取れたハードウェアアーキテクチャは、プロセッサ、メモリ、ストレージ、ネット ワークのいずれにおいても優れたパフォーマンスを示します。デュアルコアIntel Xeonプロセッサ 用に最適化されたMac OS X Serverソフトウェアにより、大量ユーザに対して各種のネットワーク およびファイルサービスを提供できます。クライアントはMacintosh、Windows、Linuxのいずれ でも構いません。先進のアーキテクチャと最適化されたオペレーティングシステムにより、サーバパ フォーマンスが劇的に向上しました。 ファイルサービス 優れたファイルサーバパフォーマンスを実現するには、高速プロセッサがあれば良い訳ではありま せん。優れたサーバシステムには、優れたストレージシステムと優れたネットワークパフォーマンス も必要になります。アップルでは、NetBenchベンチマークを使用して、XserveとXserve G5の Mac OS X Serverに内蔵されたSambaスタックのSMB/CIFSパフォーマンスを測定しました。さ らに、AFPテストツールを使用して、両システムのAFPスタックに対しても測定を行いました。 AFPおよびSMBパフォーマンス AFPおよびSMBサービスでのネットワークファイルサーバパフォーマンスは、XserveではXserve G5の2.5倍に達しました。 Xserve G5 2.3GHz PowerPC G5×2(2コア) Xserve 3.0GHz Xeon×2(4コア) 基準速度 2.5倍 AFPでの結果 Xserve G5 2.3GHz PowerPC G5×2(2コア) Xserve 3.0GHz Xeon×2(4コア) 基準速度 2.3倍 NetBench 7.0.3での結果 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販品の Xserve G5を使用しました。テストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示しています。 MySQLパフォーマンス データベース用途ではプロセッサパフォーマンスに加え、優れたメモリパフォーマンスとディスクパ フォーマンスが必要になります。ここでは、MySQLでのベンチマークや負荷テストなどで使用され るSuper Smackを使用してテストを行いました。 Super Smack 1.1 MySQLでは、XserveはXserve G5の最高1.7倍高速でした。 Xserve 3.0GHz Xeon×2(4コア) Xserve G5 2.3GHz PowerPC G5×2(2コア) 1.7倍 基準速度 テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型Xserveの試作品と、市販品の Xserve G5を使用しました。テストにはSuper Smack 1.1ベンチマーク(vegan.net/tony/supersmack)を使用し、複数クライアントから単純なSELECTクエリを 合計100万回発行しました。テストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示しています。デュアルコアIntel Xeon プロセッサ Xserveには2基の最新型デュアルコアIntel Xeonプロセッサ(最高3.0GHz)が搭載されていま す。コード名「Woodcrest」として知られるこのプロセッサは、次世代のIntel Coreマイクロアーキ テクチャを採用した初の64ビットプロセッサです。高いパフォーマンスと優れた電力効率を備えた デュアルコアXeonプロセッサは各種のサーバ用途に理想的です。 Xeon×4コアのパフォーマンス Xeon 5100シリーズプロセッサの採用により、最もパワフルなアップル製サーバを、業界最先端 の電力効率で実現することが可能になりました。Xserve G5との比較で最高5倍のパフォーマンス は、各種の演算環境、32ビットおよび64ビットのビジネスアプリケーション、堅固なサーバプラット フォームの構築にも理想的です。2 プロセッサの動作クロック周波数は2.0GHz、2.66GHz、3.0GHzが選べ、各デュアルコアプロセッ サには独立した1.33GHzのフロントサイドバスが用意されています。システムバスのバンド幅は合 計で21.3GB/sに達し、システムパフォーマンスは大幅に向上しています。さらに、大容量の4MB共 有二次キャッシュにより、命令やデータをプロセッサコアの近傍に一時保管しておくことで、さらな るパフォーマンス向上が図られています。キャッシュメモリは2つのプロセッサコア間でデータの重 複なしに効率的に共有されるため、システムバスへのアクセス頻度を大幅に減らせます。 Intel社の画期的な65nmプロセス技術により、Xeonプロセッサでは低消費電力で高いパフォーマ ンスが得られます。2.0GHzおよび2.66GHzのプロセッサではソケットあたり65W、3.0GHzのプ ロセッサではソケットあたり80Wの電力で動作するため、デュアルコアIntel Xeonプロセッサによ る消費電力あたりのパフォーマンスはXserve G5のほぼ4倍に達します。これにより、電源設備や 空調設備の費用も軽減できます。4 次世代のマイクロアーキテクチャ Intel Coreは最新の、電力効率パフォーマンスに非常に優れた、マルチコアに最適化されたマイク ロアーキテクチャです。デュアルコアIntel Xeonプロセッサでも採用されているこの技術は、以下 のような革新的な機能を持っています。 ワイド・ダイナミック・エグゼキューション インテル ワイド・ダイナミック・エグゼキューションは、クロックサイクルあたりに実行される命令数 を増やすことで実行速度とエネルギー効率を向上させる技術です。実行コアの処理幅を広くするこ とにより、命令の読み込み、解析、実行、結果返却の4つの処理を同時に行います。より正確な分岐 予測や、より大きな命令バッファなどによる実行効率改善に加え、その他にも数々の高速化技術が 投入されています。 Technology Overview 1 Xserve 主な特徴 • 64ビット処理 • 独立した2つの1.33GHzシステムバス • ワイド・ダイナミック・エグゼキューション • インテリジェント・パワー機能 • 4MBアドバンスト・スマート・キャッシュ • スマート・メモリー・アクセス • アドバンスト・デジタル・メディア・ブーストインテリジェント・パワー機能 インテル インテリジェント・パワー機能は、プロセッサ内の実行コアの消費電力を制御して電力消 費を抑えるための幾つかの機能を総称したものです。アドバンスト・パワー・ゲーティング機能によ り、プロセッサを構成する回路のうち、動作させる必要がない部分の電源を切ることで低消費電力 を実現します。また、内部バスやロジックアレーを分離することで、特定のモードでのみ必要とされ るデータを不要時には低消費電力状態にして電力消費を抑えます。 MBアドバンスト・スマート・キャッシュ インテル アドバンスト・スマート・キャッシュは、マルチコアに最適化されたキャッシュテクノロジー です。ハイパフォーマンスで効率の高いキャッシュサブシステム内のデータに、デュアルコアプロ セッサのそれぞれの実行コアがアクセスできる確率を高めて、パフォーマンスと効率を向上させま す。これを実現するため、デュアルコアXeonプロセッサでは4MBのL2キャッシュを2つのコア間で 共有しています。ほとんどのマルチコアシステムでは、それぞれの実行コア毎に独自のL2キャッシュ が用意されていますが、Advanced Smart Cacheではキャッシュリソースを最適化して、それぞ れの実行コアからアクセスできるひとつの場所にデータを格納します。L2キャッシュを複数の実行 コアで共有することにより、インテル アドバンスト・スマート・キャッシュはL2キャッシュをダイナ ミックにほぼ100%の効率で有効に活用できています。片方のコアがあまりキャッシュを必要とし ない場合には、もう片方のコア側にL2キャッシュを回すことができるため、キャッシュのミスヒット が少なくなってパフォーマンスが向上します。 スマート・メモリー・アクセス インテル スマート・メモリー・アクセスは、メモリやキャッシュサブシステムへのアクセスに使用さ れるデータバンド幅を最適化し、見掛け上のメモリアクセス遅延をなくすことによってシステムパ フォーマンスを向上させる技術です。今日の多くのプロセッサは、データの必要性を予測して必要 なデータをメインメモリからプロセッサキャッシュに読み込むプリフェッチ機構を備えています。こ れを実現するためには、プロセッサは最初にメインメモリへの書き込み依存関係を調べて、誤った データを読み込まないようにすることが必要になります。 インテル スマート・メモリー・アクセスでは、メモリー・ディスアンビゲーションと呼ばれる新機能を 搭載し、最新のアルゴリズムを使用して、メモリへの書き込みの直前に同一アドレスの読み出しが可 能かどうかを判定します。同一アドレスへの読み書きに依存関係がなければ、読み込みと書き込み をタイミング依存なしに実行できるためメモリアクセスの待ち時間を減らすことができ、命令処理 時間をより活用できます。結果として、命令の高速実行とプロセッサリソースの有効利用が可能に なりました。 さらに、Intel Coreマイクロアーキテクチャでは、L1キャッシュあたり2つ、L2キャッシュあたり2 つの、強化されたプリフェッチ機構が用意されています。このプリフェッチ機構では、連続して出 現するデータや、あるいは適当な間隔毎に発生するデータパターンを同時に検出して、効率の良い キャッシュ利用が可能です。スマート・メモリ-・アクセスでは、この強化されたプリフェッチ機構や メモリー・ディスアンビゲーション機能を使用して、メインメモリサブシステムへのアクセス遅延を 排除してシステムバスのバンド幅をフルに活用することで、命令実行スループットを大幅に向上して います。 アドバンスト・デジタル・メディア・ブースト SIMDプロセッシングでは、ひとつの命令で複数のデータを同時に処理することによってデータ 操作を高速化します。PowerPC G5プロセッサではVelocity Engineを使用してこの処理を 行っていましたが、デュアルコアXeonプロセッサでは128ビットStreaming SIMD Extensions (SSE)ベクター演算エンジンが搭載されています。デュアルコアIntel Xeonプロセッサでは、SSE3 として13種類の新しいSSE命令が装備され、Advanced Digital Media Boostと名付けられて います。従来の多くのプロセッサでは、128ビットのSSE/SSE2/SSE3命令は一定の速度(2クロック サイクルで1命令実行)で処理されてきました。例えば、下位の64ビットを1クロックサイクルで処理 し、上位の64ビットを次の1クロックサイクルで処理します。デュアルコアIntel Xeonプロセッサで は、128ビット処理命令を1クロックサイクルだけで実行できるため、このような命令の実行速度は 2倍になります。ビデオ、音声合成、イメージ処理、写真処理、暗号化処理、会計処理、エンジニアリ ング、科学技術計算など、あらゆる分野のアプリケーションを高速化できます。 Technology Overview 1 Xserve エネルギー効率の向上 データセンターで最も大きなコストを占めるもの は、残業代、電気代、冷房代です。デュアルコアIntel Xeonプロセッサの製造に使われている65nmテク ノロジーでは、シリコン基板内のトランジスタの大き さを小さくすることでパフォーマンスを向上させ、同 時に消費電力を抑えます。消費するエネルギーが少 ないため、発熱も抑えられ、信頼性が向上すると同時 に冷却システムのコストも少なく済みます。Technology Overview 1 Xserve 64ビットプロセッサアーキテクチャ Mac OS Xとの動作で、64ビットのIntel Xeon アーキテクチャは、32ビット処理の限界であった 4GBのメモリ領域の壁を打ち破ります。実際、ほぼ無制限と言えるメモリ空間を使えるようなって います。命令事項やデータ処理においても、32ビットに対して64ビットという、2倍の容量が扱える ようになりました。 これらの機能により、複数の64ビット倍精度浮動小数点演算を同時に処理したり、1クロックサイ クルで膨大な整数演算を処理したりと、処理速度と軽快さも大幅に向上しています。32ビットプロ セッサでは、このような膨大なデータ処理を小さな部分に分割して処理する必要があるため、プロ セッサは複数の処理を経なければならず、アプリケーションのパフォーマンスを低下させていまし た。 32ビット処理から64ビット処理への移行はパフォーマンスに大きな変化をもたらし、科学技術演 算、技術研究、3D処理、ビデオエンコーディングなどの分野で必要とされる非常に高精度な計算な ど、従来では不可能であった数々の処理を実用化しています。 マルチコアとMac OS X Server マルチプロセッサを最初から視野に入れて設計されているMac OS X Serverは、マルチコアシス テムの能力を十二分に引き出します。Mac OS X Serverに内蔵された対称型マルチプロセッシング、 プリエンプティブマルチタスキング、マルチスレッディングなどの機能により、Xserveは驚くべきシ ステムパフォーマンスを発揮します。 Mac OS X Serverの対称型マルチプロセッシングは、複数のプロセッサや複数のプロセッサコア にまたがる処理をダイナミックに管理します。アプリケーションの特別な最適化や、システム管理 者による特殊な設定は必要ありません。対称型マルチプロセッシングでは、管理用タスクは各種の サービスタスクの実行中にバックグラウンドで実行されます。Mac OS X Serverは、それぞれのタ スクに異なるプロセッサまたは異なるプロセッサコアを割り当てて同時に実行できるようにし、同 時に各プロセッサ間での負荷バランスを調整します。 プリエンプティブマルチタスキングでは、Mac OS X Serverが各プロセッサまたはプロセッサコア における実行タスクの優先順位を設定することで、さらなるパフォーマンスの最適化が行われます。 マルチスレッディングに対応したアプリケーションでは、マルチコアによる速度向上が見込めます。 Mac OS X Serverに含まれている各種のサービスをはじめとした多くのサーバアプリケーション はマルチスレッディングに対応しているため、Xserveなどのマルチコアシステム上では大幅にパ フォーマンスが向上します。Technology Overview 1 Xserve 高バンド幅の サーバアーキテクチャ デュアルコアIntel Xeonプロセッサは、Xserveの優秀なパフォーマンスを語るうえでの一部でし かありません。2つの独立したフロントサイドバスは各プロセッサでの高速データアクセスを支え、 高効率のシステムコントローラはすべてのサブシステム間での高速データ移動をサポートしていま す。バンド幅は256ビット幅のメモリコントローラとPCI Express I/Oアーキテクチャによっても高 められています。これらの最新テクノロジーを集結することにより、インターネットアプリケーション、 堅固なネットワークインフラソリューション、ハイパフォーマンスなクラスタ演算環境などに必要と される高いパフォーマンスとスループットが実現されます。 ビット幅のメモリコント ローラと MHz DDR  ECC FB-DIMMメモリ 最高 21.3GB/sのメモリバンド幅を 実現。最大32GBまで実装可能 です。 基のデュアルコアIntel Xeonプ ロセッサ Xserve G5の最高5倍 のパフォーマンスを実現。各プロ セッサには独立した1.33GHzフロ ントサイドバスと4MBの共有二次 キャッシュが用意されています。2 基のギガビットE the rne t V L A Nタグ、ジャンボフレー ム、TCP・IP・UDP ハードウェ アチェックサムなどの機能もサ ポートした、独立した2系統のギ ガビットEthernetポートをオン ボードで実装しています。 先進のシステムコントローラ PCI Expressアーキテクチャを使用して、 各サブシステム間でデータを直接 転送できます。 基のPCI Express拡張スロット 8レーンのPCI Expressカードを実 装でき、スロットあたり2GB/sのバ ンド幅を実現しています。スロット1 はPCI-X拡張カード用に設定するこ とも可能です。 ハイパフォーマンスなGbpsスト レージコントローラ SATAドライ ブとSASドライブの両方をサポー ト。処理速度が重視されるアプリ ケーションでは15,000rpmのSAS ドライブも実装可能です。チャネル あたり最高3Gbpsのストレージパ フォーマンスを実現し、ホットプラ グ可能な内蔵ストレージで2TB以 上の容量を確保できます。12つの独立した1.33GHzフロントサイドバス Xserveには、プロセッサ毎に独立した2つの64ビットフロントサイドバスが用意され、システムメモ リへの高速アクセスが可能です。この、パリティ保護されたバスには、最大バンド幅を必要としな い場合には、不要なバス回路への電源を断つことで消費電力を抑える、独自の消費電力削減機能 が用意されています。各バスチャネルは、プロセッサの動作クロック速度に関わらず1.33GHzで動 作し、2チャネル合計のバンド幅は最大で21.3GB/sに達します。 最新のFB-DIMMメモリテクノロジー 完全バッファ型DIMM(FB-DIMM)は、メモリ容量とメモリバンド幅の両方を向上させる、サーバ およびワークステーション向けの次世代メモリテクノロジーです。従来のメモリテクノロジーでは、 信号速度を上げると同時に、チャネルあたりに使用されるDIMMの数が減らされてきました。結果 として、全体のメモリ容量とバンド幅は背反するということになります。FB-DIMMではこの問題を 回避し、大容量のメモリを最高のバンド幅で使用することが可能です。 FB-DIMMでは、メモリモジュールとメモリコントローラの間に用意されたAdvanced Memory Buffer(AMB)を使用して、ポイント間での高速インターフェイスを行います。高速シリアル通信に より、チップセットとメモリモジュール間を接続する配線も極めて少なく済みます。従来のパラレル 型DDR2メモリでは240ピンを必要としていましたが、FB-DIMMのメモリチャネルでは僅か69ピ ンの配線でメモリコントローラに接続されています。メモリコントローラに接続できるメモリチャネ ル数が増やせるため、メモリパフォーマンスの向上に寄与しています。 従来のメモリテクノロジーは、システムバス上のすべてのDIMMでひとつのパラレルインターフェイ スを共有している構造でした。AMBでは、メモリインターフェイスとDRAMチップを分離し、メモリ バスをさらに高速駆動することで複数のDIMMを同時にサポートします。また、業界標準のDDR2 DRAMチップを使用することで、メモリの読み書きを同時に行うことも可能です。 FB-DIMMとパラレルメモリでの通信技術の違いは、PCI ExpressとPCI (またはPCI-X)での通 信技術の違いに似ています。PCI ExpressとFB-DIMMでは高速シリアルインターフェイスを使用 し、信号レートを上げて接続回路の配線数を減らしています。データの送信と受信には別々のチャ ネルを用意して、同時に双方向通信が行えます。いずれのテクノロジーでも、従来のものよりも少 ない配線数でより高いバンド幅を実現しています。システム設計の柔軟性を大幅に向上させること が可能なため、エンドユーザレベルで実現可能な機能も増えることになります。 さらに、FB-DIMMテクノロジーでは、データパス全体のCRC(cyclic redundancy checking) を使用したECC(Error Correction Code)エラー訂正によるデータ保護に加え、最新のSDDC (Single Device Data Correction)アルゴリズムによってエラー訂正を行うことで、メモリの信 頼性、可用性、そしてサービス性も向上しています。FB-DIMMでは、アドレス、命令、データのすべ てにおいてCRCチェックを行い、エラーが検出された場合は自動的に再転送を試みます。これによ り、偶発的な一時的エラーに対して処理が中段されることはなくなりました。SDDCはメモリコン トローラで実行され、強力なデータ保護と訂正が行われます。メモリコントローラは単一ビットの エラーをSDDCではなく、ECCで検出・訂正します。また、メモリコントローラは、FB-DIMM内の DRAMチップの故障(4バンクまたは8バンク)、DIMMの2線通信不良、DIMMスロットの故障、メ インロジックボードの故障などを検出して訂正する機能も備えています。 チャネル構成のビット幅メモリコントローラ Xserveには、さらに高速、大容量、高信頼の、新開発の256ビット幅メモリコントローラが採用さ れています。高速な667MHz DDR2 FB-DIMMメモリを使用し、アプリケーションのパフォーマン スが向上します。Xserveに4つの同容量DIMMメモリを実装した場合、メモリコントローラは4つの メモリチャネルを使用して256ビット同期メモリ転送を行うため、さらにパフォーマンスが向上しま す。参考までに、Xserve G5システムでは128ビット幅のメモリコントローラと400MHz DDR1メモ リを使用していました。 DRAM DRAM DRAM DRAM DRAM DRAM DRAM DRAM バッファ DRAM DRAM DRAM DRAM DRAM DRAM DRAM DRAM システム バッファ コントローラ 10 作動 信号線ペア 14 Technology Overview 1 Xserve FB-DIMMとは? 完全バッファ型DIMM(FB-DIMM)は、コストを下 げつつ、システムの信頼性、処理速度、メモリ密度を 向上させることが可能な、ハイパフォーマンスなコン ピュータ用メモリモジュールです。高速度のポイント 間通信インターフェイスを使用しているため、業界標 準のDRAMチップを使用してフルスピードでの同時 読み書きが行えるAdvanced Memory Buffer カスタムチップと組み合わせて使用します。最大GBのメモリ容量 XserveではXserve G5の2倍、最大32GBまでのメモリを実装できます。また、Xserve G5で使用 されていた400MHz DDR1の最大3倍のメモリバンド幅を実現しています。 先進のエラー保護機能 FB-DIMMテクノロジーでは、メモリの信頼性、可用性、サービス性も向上しています。単一ビットエ ラー訂正と複数ビットエラー検出が行えるパワフルな最新のECCエラー訂正に加え、ECCオンデマ ンドエラー訂正、すべての通信のCRCチェック、単一デバイス故障によるエラー検出とデータ訂正を 行うSDDCアルゴリズムなど、可用性を高める各種の機能が内蔵されています。 • オンデマンドエラー訂正を備えたECC(Error Correction Code)エラー保護 メインメモリ 読み出し時の単一ビットエラー検出・訂正と、複数ビットエラーの検出(訂正はできません)が自動 的に行えます。キャッシュラインがメインメモリから読み込まれた際に単一ビットECCエラーが検 出された場合、メモリコントローラは割り込みを発生させてエラーを記録し(リモート監視ツール でDIMM番号も表示できます)、エラーを自動的に訂正してからプロセッサキャッシュに渡し直し ます。エラー訂正処理の一環として、メインメモリ内でのエラーを訂正するために、メモリエラー訂 正回路が正しい値をメモリに書き戻します。この機能により、同一メモリアドレスからの読み出し を行った際に、再度ECC割り込みが発生してパフォーマンスを低下させることを防ぎ、単一ビットエ ラーが複数ビットエラーに悪化することを防ぎます。 • 強化されたCRC(Cyclic Redundancy Checking)保護 アドレス、命令、データの転送時に チェックを行い、エラーが検出された場合には再転送を試みます。これにより、偶発的な一時的エ ラーに対して処理が中段されることはなくなります。FB-DIMMの強力なエラー検出機構がなけれ ば、このようなエラーはシステム全体の処理を止めてしまいます。 • Single Device Data Correction(SDDC) 一般的なECCメモリサブシステムでは単一ビッ トエラーしか訂正できないため、複数ビットエラーが発生した場合にはシステム全体を止めてしま います。Chipkillテクノロジーをサポートしたシステムで4バンクのDRAMで構成されているDIMM を使用している場合は、ひとつのDRAMが故障した場合でもデータ訂正機能が働きます。Xserve に搭載されたメモリコントローラでは、Single Device Data Correction(SDDC)と呼ばれる 最新のエラー検出・訂正アルゴリズムを採用することで、メモリの可用性を高めています。このアル ゴリズムは伝統的なECC機能をサポートするだけでなく、FB-DIMM内の4バンクまたは8バンク構 成のDRAMの故障を検出してデータ訂正が行えます。また、DIMMソケットやメインロジックボー ドにおける2線通信不良も検出できます。 • 自己診断機能をDIMMに内蔵 FB-DIMMに搭載されたAdvanced Memory Buffer(AMB) カスタムチップには、エラー検出、エラー発生、セルフテスト(BIST)などの自己診断機能が内蔵さ れています。これらの機能はシステム稼働時のエラー保護にはなりませんが、システム起動時のセ ルフテスト(POST)や、診断用ソフトウェアを使用した場合のメモリテストに役立ちます。また、工 場でのテストやシステム診断にも活用されています。これらの機能は、DRAMやAMBチップの故障、 あるいはFB-DIMMとメモリコントローラ間での通信不良などに起因した、システムメモリによる ハードウェア故障の診断を助け、迅速な修理や早期の故障予測に役立ちます。 Technology Overview 1 Xserve GB DIMMをサポート Xserveは4GB DIMMをサポートしているため、最 大32GBのメインメモリを実装できます。 最高のメモリパフォーマンス 256ビット幅のメモリアーキテクチャと4つのメモリ チャネルを使用して、Xserveでは21.3GB/sのバンド 幅を実現しました。同一容量のFB-DIMMを4つ一 組で実装すると、最高のシステムパフォーマンスが得 られます。Technology Overview 1 Xserve ハイパフォーマンスなPCI Express拡張スロット Xserveには、Xserve G5の最高4倍のバンド幅を持ったPCI Express拡張スロットが用意されて います。別売の拡張カードを使用して、ハイパフォーマンスなネットワーク、 ストレージ、 クラス タシステム、 グラフィックシステム、バックアップデバイスなどに接続できます。2基の8レーンPCI Expressスロットはそれぞれ2GB/sのバンド幅を持っています。オプションのライザーカードを使用 すれば、スロット1はPCI-X拡張スロットとしても使用できるため、既にご使用の高価な拡張カード や、特殊な拡張カードも無駄になりません。扱い易いライザーカードと止めネジにより、拡張カード の実装や取り外しも簡単に行え、大きなサイズのカードの収容時の強度と安定性も増しています。 テクノロジー 最大カードサイズ 供給可能電力 スロット1 PCI Express(8レーン) 9インチ 25W (PCI Expressライザーカード使用時) (22.86 cm) 133MHz PCI-X (別売のPCI-Xライザーカード使用時) スロット2 PCI Express(8レーン) 6.6インチ 25W (PCI Expressライザーカード使用時) (16.76 cm) アップルではXserve用に、ファイバーチャネル、Ultra320 SCSI、デュアルギガビットEthernet、 PCI Expressグラフィックカードなどの各種拡張カードをご用意しています。オプションのグラ フィックカードATI Radeon X1300(256MBビデオメモリ、デュアルリンクDVI出力)を使用すれ ば、30インチApple Cinema HDディスプレイに接続して、アップルのFinal Cut Studioを含む、 グラフィックス、3Dモデリング、レンダリング、ビジュアライゼーションなどの各種アプリケーション も使用できます。これにより、XserveをXsanベースのビデオワークフロー環境としても理想的に 使用できます。 業界標準の接続性 系統のギガビットEthernet(オンボード) Xserveでは、ハイパフォーマンスなEthernetコントローラをI/Oチップセットに内蔵させること で、より高度なネットワーキングパフォーマンスを実現しています。この先進のEthernetコントロー ラには、2系統の独立した10/100/1000BASE-T Ethernetインターフェイスが用意され、それぞ れのインターフェイスは異なる物理ネットワークとして別々に設定できます。また、両方をまとめて、 Mac OS X Serverに内蔵された802.3adリンクアグリゲーション機能を使用することも可能です。 結果として高いネットワーキングバンド幅が得られ、I/Oサブシステムとのデータ競合もありません。 さらに、ギガビットEthernetコントローラには以下に挙げるネットワーキング機能も用意されてい ます: • ハードウェア生成によるTCP・IP・UDPチェックサムにより、パケット競合と転送エラーを検出可能。 • 802.1q VLAN(Virtual LAN)タグにより、Xserveを複数の仮想ネットワークに接続して、各仮想 ネットワーク毎に独自のネットワークサービスを提供することが可能。 • 48Kbのバッファにより、最大9KBまでのジャンボフレームに対応。システムのオーバヘッドを軽減 して、ネットワーク全体のスループットを向上させることが可能です。 2つのギガビットEthernetポートでは、ポートあたり最高980Mbpsというニアラインレートのス ループットを実現しているため、巨大ファイルの転送や、email、Webアクセス、ファイルおよびプ リンタ共有サービスなどの処理におけるボトルネックが軽減されます。Mac OS X Serverに内蔵 されたマルチホーミング機能を併用すれば、Xserveの2つのネットワークポートを使用して、さら に多くのクライアントシステム接続、冗長リンク構成、Xsan用の専用メタデータネットワーク、ク ライアントサービスネットワークから隔離された管理用ネットワーク作成などを行うことも可能で す。Xserveのデュアルネットワークポートを使用すれば、高速度のネットワーク相互接続も容易で す。(片方のポートを通常のネットワーキングに使用し、もう片方のポートをクラスタ内での相互接 続に使用する例がよく見られます。)Technology Overview 0 Xserve ディスプレイインターフェイスを内蔵 システム管理者としては、サーバにディスプレイを接続して管理を行いたい場合があります。Xserve ではディスプレイインターフェイスを内蔵しているため、貴重なPCI Express拡張スロットを消費す るオプションのグラフィックカードを必要としません。内蔵のグラフィックコントローラには64MB のビデオメモリとmini-DVI出力ポートが実装されているため、DVI経由で最大23インチまでの Apple Cinema HDディスプレイを接続できます。mini-DVI-VGAアダプタも標準付属しています ので、標準のVGAディスプレイやディスプレイ切り替え器、KVM(ディスプレイ、キーボード、マウス 切り替え器)なども使用できます。 周辺機器との接続も容易 Xserveには業界標準のインターフェイスが用意されているため、各種のI/Oデバイスに接続でき ます。 • 基のFireWire 00ポート 背面パネルにはFireWire 800ポート×2基が、前面パネルには FireWire 400ポート×1基が用意されています。ストレージデバイスやオーディオ&ビデオ入力 デバイスなど、高バンド幅の各種FireWire(IEEE 1394)デバイスを接続できます。TCP/IP over FireWire機能を使用すれば、小規模クラスタの形成や、IPフェールオーバー用のバックチャネルネッ トワークの作成にも利用できます。また、FireWireターゲットディスクモードを使用すれば、ファイ ルのコピーやシステムのバックアップも容易に行えます。 • シリアルポート(DB-) 業界標準の9ピンシリアルポートを使用して、シリアルコンソールセッ ション経由でのシステムアクセスが可能です。 • 基のUSB .0ポート 背面パネルにはUSBポート×2基が用意されています。キーボード、マウス、 USBスピーカーなど、業界標準の各種USB周辺機器を接続できます。 • 光学式ドライブ ソフトウェアのインストールやシステム修復のために、スロットローディング方式 の24倍速コンボドライブ(DVD-ROM/CD-RW)が標準装備されています。オプションで、DVD-R やDVD+R DLメディアにデータをバックアップ可能な、2層メディア対応の8倍速SuperDrive (DVD+R DL/DVD±RW/CD-RW)もお選びいただけます。 卓越した信頼性 24時間運用が可能な3Gbps Serial ATAドライブ、可用性の高いメモリ機能、アップルの高い技術 力からそのデザインに至るまで、Xserveは卓越した信頼性と長寿命を考慮して作られています。そ して、間違いを犯さないこと。これらはすべてサーバに不可欠な品質です。サーバのダウンは、ビジ ネスや組織そのもののダウンにも繋がるからです。 基の冗長型電源ユニット オプションの、ホットスワップ可能な電力分散型の冗長型電源ユニットを実装すれば、信頼性が大 幅に高まります。片方の電源ユニットが故障した場合でも、もう片方のユニットで全体の電力を賄え るため、システム全体がダウンすることはありません。故障した電源ユニットは、システムの動作を 止めずにそのまま交換できます。 メモリRAS機能 オンデマンドエラー訂正機能を備えたECCエラー訂正機能、自動再転送機能を備えたCRCによ るデータおよび命令保護、Single Device Data Correction(SDDC)によるDRAMチップの エラー訂正、メモリモジュールに内蔵の自己診断機能など、各種のエラー訂正機能が内蔵されて います。 ソフトウェアRAID機能を内蔵 内蔵ハードディスクドライブ上のデータを保護するため、パワフルなMac OS X Serverを搭載した Xserveには、データのミラーリング、ミラーディスクからのシステム起動、オンラインでのミラー再 構成などの機能を備えた、業界最先端ソフトウェアRAID機能が用意されています。また、アップル では、ギガバイト単価の安い、高スループットの大容量外部ストレージとして、Xserve RAIDもご 用意しています。業界最先端の ストレージフレキシビリティ 巨大なデータベースや科学データセット、非圧縮や長尺のデジタルビデオなどはサーバのストレー ジリソースに大きく依存します。これらの需要が高まる中、3つのドライブベイとホットプラグ可能な Apple Drive Moduleを使用して業界最先端の2.25TB1という内蔵ストレージを低価格で提供で きるXserveは、特有のストレージパフォーマンスと柔軟性を提供しています。Xserve G5と同様に 新型XserveではSATA(Serial ATA)ドライブをサポートしておりますが、速度、記憶容量、コス トパフォーマンスのすべてに優れた最新型のSATAハードディスクドライブもサポートされています。 新型Xserveではさらに、SAS(Serial Attached SCSI)ハードディスクドライブもサポートされて いるため、最高のパフォーマンスでほとんどのアプリケーションを高速化できます。 各Apple Drive Moduleは独立したドライブチャネルで3Gbpsの速度を誇るストレージコント ローラに接続され、Xserveのストレージサブシステムはパフォーマンスを犠牲にすることなく処理 を行います。この独自のアーキテクチャにより、パフォーマンス、信頼性、価格のベストバランスを 実現しました。 SATAドライブテクノロジー Xserveでは、各Apple Drive Moduleに対して独立したバスを備えた先進の3Gbps SATA/SAS ストレージコントローラなど、サーバ内蔵ストレージシステムを革新する各種の最新機能が採用さ れています。Xserveは常に内蔵ストレージ容量とその価格を更新し、新型モデルでは画期的な垂 直磁化記録テクノロジーを採用した最新の750GB Apple Drive Module(7200rpm)を使用し て、最大2.25TBの内蔵ストレージ容量を実現しました。 XserveのSATAドライブには、信頼性とパフォーマンスが高い、24時間連続稼働が可能なサーバ クラスの製品を採用しています。Xserveのドライブ分離アーキテクチャは各ドライブを電気的に絶 縁し、ドライブの故障が他のドライブに影響を与えないようになっています。このため、複数のハー ドディスクドライブをSCSI接続した場合によく見られるような、すべてのドライブが使用不可能に なったり、パフォーマンスが低下したりする事態に陥ることはありません。これらの機能により、膨 大なスループットと優秀なストレージスケーラビリティを同時に得られるストレージアーキテクチャ を実現しています。 SASドライブテクノロジー 次世代のSCSIテクノロジーであるSerial Attached SCSIストレージは、ディスクアクセス頻度が高 いアプリケーションの為に開発された技術です。126MB/sを超える連続読み込みパフォーマンスと、 3.5msの平均シーク時間により、SATAドライブを遥かに超えるランダムアクセス性能が得られま す3。 15,000rpmのApple SASドライブでは、今日において最高のストレージパフォーマンスが得ら れます。エンタープライズクラスに分類されるこのドライブは、クラス最高のMTBF(Mean Time Between Failures、平均故障時間)を誇ります。Xserveは、処理の中断を許さないサーバ環境は もちろん、emailやデータベースなどのアプリケーションでも驚くべき信頼性を発揮します。 Technology Overview 1 Xserve 垂直磁化記録方式の0GB SATAドライブ データを構成する「ビット」は、端から端まで、あるい は回転する磁気円盤の回転方向に沿って記録されま す。Xserveで新規採用された750GB SATAドライ ブは、画期的な垂直磁化記録テクノロジーを使用し て、ビットデータを複数の層に垂直方向に記録しま す。これにより、単位面積あたりの記録密度が大幅に 向上しました。Xserveにはこの新型ドライブを3台 まで内蔵できるため、1U筐体で最大2.25TBのスト レージ容量を実現できます。 SATAおよびSASドライブのテクノロジー Xserveの内蔵ストレージには、SATA(Serial ATA) またはSAS(Serial Attached SCSI)ドライブを選 択できます。高い信頼性と優れたパフォーマンスの SATAドライブは、大容量ストレージを低価格で実現 することが主目的の場合に適しています。さらに優れ たパフォーマンスと高い信頼性が必要な場合は、業 界最高水準のディスクパフォーマンスを備えたSAS ドライブが最適です。SASドライブの物理インターフェイスはSATAドライブと同一であるため、Xserveではホットプラグ 可能なApple Drive Moduleキャリアを使用して、ドライブベイ毎にSATAまたはSASドライブを 使い分けることが可能です。この柔軟性はXserveを幅広いアプリケーションや特定の目的のため に使用することを容易にし、企業やデータセンターで長期間使用する場合にも向いています。 Apple Drive Module Xserveには、3つの3.5インチハードディスクドライブ用ドライブベイが用意されているため、同ク ラスの他のサーバ機と比較した場合でも、より柔軟なRAID構成が可能です。お求めやすいApple Drive Moduleは増設も容易です。80GBまたは750GBのSATA Apple Drive Module(各 7,200rpm)、73GBまたは300GB SAS Apple Drive Module(各15,000rpm)をお選びいた だけます。3 Apple Drive Moduleの頑丈なホットプラグコネクタでは接続ピンが保護されているため、ドラ イブモジュールの着脱時に接続ピンが折れ曲がることがありません。ホットプラグ機能により、シ ステム管理者はサーバの電源を落とさずにドライブモジュールを追加できます。Apple Drive Moduleを任意に挿し込むだけで、サーバは自動的にドライブを認識して使用可能にします。この 便利さは、システムハードウェアとソフトウェアの統合によって実現しています。 Apple Drive Moduleでは、抜き差しが容易な独自のハンドルデザインが施されています。ドラ イブモジュールの挿入時にはロックメカニズムが働いて確実に固定されます。ドライブキャリアに はドライブの振動を絶縁するドライブマウント技術が採用されています(ハイパフォーマンスな 15,000rpmのドライブでは特に重要)。最高のパフォーマンスと信頼性を確保するため、念入りに テストと動作検証が行われたApple Drive Moduleは、Xserveの監視用センサおよびリモート 監視ソフトウェア「サーバモニタ」ともシームレスに連係して動作します。 ドライブの健康状態を監視 Xserveには、ハードウェアとソフトウェアを組み合わせた、業界最先端のリモート監視機能と警告 機能が内蔵されています。サーバオペレーティングシステムは各ハードディスクドライブからSMART (Self-Monitoring, Analysis, and Reporting Technology)データを読み込みます。サーバ モニタソフトウェアは、SMARTデータに含まれるドライブの自己診断情報を基に、システム管理者 に対して故障予測を通知することができます。従って、実際に故障が発生する前に、重要なデータ のバックアップやドライブ交換を行うチャンスを得ることができる訳です。また、各Apple Drive Moduleには2つのLEDが装備され、ドライブの動作状態と健康状態が表示されます。 ソフトウェアおよびハードウェアによるRAIDオプション 低価格で装着が簡単なドライブモジュールにより、度重なるストレージ要求に合わせてXserveシ ステムを発展させることが可能です。さらに大きなストレージ容量が必要な場合や、ストレージを 複数のサーバで共有したい場合は、高スループットのPCI Express拡張カードを使用して、ファイ バーチャネルやSCSIデバイス、あるいはアップルのXserve RAIDなどの外部ラックマウントスト レージやバックアップシステムにも接続できます。 Mac OS X ServerのソフトウェアRAID機能 Mac OS X Serverに内蔵されたソフトウェアRAID機能を使用して、3台のApple Drive Moduleをストライピングして高いパフォーマンスを得たり、ミラーリングしてデータの信頼性を高 めることが可能です。 • RAID 0(ストライピング) データを複数のApple Drive Moduleに分散して記録し、各ドライ ブに対して同時に読み書きを行うことでストレージのパフォーマンスを大幅に向上させます。ドライ ブのストライピングでは独立した3つのドライブチャネルを有効に利用でき、Mac OS X Serverの I/O機能をフルに活用できます。 Technology Overview  Xserve Apple Drive Module Xserveでは、信頼性が高く、装着が簡単でハイパ フォーマンスなApple Drive Moduleを使用して、 コストパフォーマンスが高く大容量のシステムスト レージを実現しています。• RAID 1(ミラーリング) 書き込みデータをリアルタイムに複製して、2台のApple Drive Moduleに書き込むことで高度なデータ保護を行います。Mac OS X Server v10.4以降に用意さ れているボリュームプロモーション機能を使用すれば、ハードディスクドライブの再フォーマットや オペレーティングシステムの再インストールを行うことなく、シングルドライブシステムからRAID 1 システムへのアップグレードが可能です。ミラー用ドライブが故障した場合は、データのサービスを 行いながらバックグラウンドでアレーの再構築も行えます。ドライブ分離アーキテクチャとソフト ウェアRAID機能により、パフォーマンスを犠牲にすることなくRAID 1でのデータ保護が行えます。 さらに高い信頼性とパフォーマンスを実現するため、Xserveではミラーリングまたはストライピン グされたディスクボリュームからMac OS X Serverを起動して使用することも可能です。 ファイバーチャネル ファイバーチャネルは、データストレージ需要が増大するあらゆる組織や企業に最適な、パフォー マンスと信頼性に最も優れたネットワーキングの選択肢です。各種のサーバアプリケーションにも 理想的で、コンピュータ、サーバ、ディスクアレーなどの各種デバイス間において数ギガビット単位 の速度で高度にスケーラブルなデータ移動を行う高速スイッチシステムでは、事実上の業界標準仕 様になっています。さらに、ファイバーチャネルはビデオ配信などのストリーミングメディアにおいて 重視されるデータパケットの順次配信などにも有効な、バンド幅が保証された唯一のストレージ間 通信テクノロジーでもあります。 XserveではApple 4Gb Fibre Channel PCI Expressカードを使用して、チャネルあたり 400MB/sのバンド幅とスループットを持った高速ストレージインターフェイスを実現できます。ファ イバーチャネルでは複数のトポロジーをサポートしているため、Xserveでのストレージオプション がさらに広がります。ポイント間通信に付属のSFP-SFPケーブルを使用すれば、ファイバーチャネル 経由でXserve RAIDを接続して、両チャネル間で380MB/s近くものバンド幅が得られます。 ファイバーチャネルスイッチを使用すれば、複数台のXserve RAIDシステムを1台のXserveに接 続したり、複数のXserveを1台または複数台のXserve RAIDシステムに接続したSAN(Storage Area Network)環境を構築することも可能です。さらに、アップルのXsanソフトウェアを使用す れば、同一のボリュームやファイルに対するアクセスを共有した複数のサーバやワークステーション による、巨大で柔軟に使用できるストレージプールをサポートした共有ストレージアーキテクチャ を実現できます。 Xserve RAID 巨大なストレージ容量と最新のデータ保護機能、ならびに高い可用性が必要な場合は、Apple Fibre Channel PCI Expressカードを使用して、XserveをXserve RAIDストレージシステムに接 続できます。14台までのApple Drive Moduleを実装できるXserve RAIDでは、3U筐体で最大 10.5TB1のストレージ容量を実現できます。アップルが開発した革新的なアーキテクチャにより、低 価格で大容量のATAドライブテクノロジーと2Gb Fibre Channel SFPインターフェイスを使用し て、高速かつ高信頼のデータアクセスを最大500mの範囲で展開できます。冗長部品の採用によ り、データ保護とシステムの可用性がさらに高まります。使い易いツールによりリモートセットアップ やリモート管理も容易に行えるこのパワフルなRAIDシステムは、企業や研究所におけるストレージ 需要の増大に対する、コストパフォーマンスが高い回答です。 Apple Gb Fibre Channel PCI Expressカード デュアルポートのApple 4Gb Fibre Channel PCI Expressカードは、チャネルあたり400MB/s のスループットと高い専用バンド幅を提供します。ファイバーチャネルでの相互接続テクノロジーは、 ポイント間、ループ、ファブリックトポロジーを使用した、複数アプリケーション環境をサポートして います。Apple 4Gb Fibre Channel PCI Expressカードには長さ2.9mのメタルケーブルが2本 または4本付属します。 Technology Overview  Xserve Xserve RAID、業界最先端のコストパフォーマンス Apple Fibre Channel PCI Expressカード Apple Fibre Channel PCI Expressカードを使用 すれば、XsanネットワークやXserve RAIDに接続し て、ハイパフォーマンスで可用性の高いストレージ環 境が得られます。Technology Overview  Xserve Xsan Xsanは、最高レベルのデータ可用性を実現した、小規模から大規模コンピューティング環境まで に対応する64ビットクラスタファイルシステムです。この特殊なテクノロジーでは、複数のXserve システムやMac Proワークステーションを使用して、高速ファイバーチャネルネットワーク経由で RAIDストレージボリュームを共有することが可能になります。各クライアントからは集約された ファイルシステムに対して直接読み書きが行えるため、ワークグループでの共同作業効率を向上さ せながらストレージバンド幅のスケーリングが行えます。 メタデータコントローラフェールオーバー、ファイバーチャネルマルチパス、内蔵のボリューム管理 機能など、エンタープライズクラスの各種の機能を擁するXsanはデータセンターでのストレージ統 合やNAS代替に理想的です。Xsanには、同時読み書きアクセスが行えるファイルレベルのロッキ ング、2PB(ペタバイト)までのボリュームサイズサポート、ACL(Access Control list)による詳細 なアクセス権管理などの高度な機能が用意されています。これらのパワフルな機能により、Xsanは、 大量のユーザのサポートや、フィルム制作やビデオ編集などの高バンド幅ワークフローを対象とし たファイルサービスにも最適です。また、計算クラスタシステムなどの、低価格が要求される分野に も適した、画期的なお値段も魅力です。 データセンター、ポストプロダクション施設、ハイパフォーマンスな計算環境のいずれでも、Xsan は下記に挙げる重要な機能を提供します: • ストレージの統合 複数のRAIDアレーにまたがったデータ保管を行うことで、パフォーマンス向 上と効率的なストレージリソース利用が可能になります。 • 高いスループット Ethernetベースのネットワークのボトルネックを解消できます。 • 読み書きの同時アクセス 複数のワークグループの共同作業を容易にし、同時ファイルアクセスに よって従来よりも結果を早く出せます。 • ボリュームのスケーリングが容易 ストレージ需要に応じてRAIDデバイスを追加できるため、共 有ボリュームの拡大も容易です。 • データの可用性が向上します メタデータコントローラフェールオーバーおよびファイバーチャネ ルマルチパス機能により、単一ポイント故障の影響を回避できます。 Xsanには、パフォーマンス、柔軟性、スケーラビリティのすべてが備わっています。難しい設定は必 要なく、コストパフォーマンスにも優れています。Lights-Out リモート管理ソフトウェア Xserveにはリモート監視機能が内蔵されているため、ネットワーク管理者は、ローカルネットワー ク経由またはインターネット経由でXserveシステムをリモート管理できます。電源ケーブルが接続 されている限りは、本体の電源がオフの場合や、システムがハングアップしている状態でも、内蔵 された専用ハードウェアによってリモート管理システムは常に動作します。Xserveの監視ツールは、 Intelligent Platform Management Interface(IPMI)の強化版を使用した堅固なパスワード 認証を使用して、TCP/IP経由で安全に使用できます。 いつでも、どこでも、監視と管理が可能 もう、サーバの管理を行うためにサーバラックまで移動する必要はありません。Xserveに内蔵され たLOM(Lights-Out Management)機能により、ローカルネットワーク経由またはインターネッ ト経由でXserveシステムをリモート管理できます。電源ケーブルとEthernetケーブルさえ接続さ れていれば、Xserve本体の電源を入れる必要さえありません(リモート起動できます)。リモート 管理に必要なハードウェアおよびソフトウェアはすべてXserveに含まれているため、特別なハード ウェアやソフトウェアを別途購入する必要はありません。 使い易いサーバモニタソフトウェアを使用すれば、Xserveへのリモートアクセスとリモート監視 が容易に行えます。Xserveの再起動や電源のオン・オフも自由自在です。リモートサーバ管理ツー ルを使用すれば、Mac OS X Serverのすべての主要サービスの設定や管理もリモートで行えます。 ターミナルウインドウを使用する方がお好きな場合は、サーバ管理ソフトウェアに用意されている コマンドラインツールを使用して、各種サービスの設定・管理・監視をSSH(Secure SHell)経由で リモートに行えます。 業界標準仕様に準拠して開発された、Xserveのリモート管理機能はIPMIバージョン2.0仕様に準 拠しています。IPMIは、システム管理者の時間節約、ITリソースの効率化、場合によってはマルチベ ンダ環境での管理方法統一化などによって、サーバ管理機能を向上させつつ、サーバ管理の総コス ト削減に寄与します。また、不正アクセスから管理データとサーバリソースを保護し、高度に安全な 環境を提供します。 専用のシステム監視ハードウェア Xserveのメインロジック上に実装されたI/Oコントローラには、専用のシステム監視用マイクロコン トローラが内蔵されています。メインシステムとは別電源で駆動され、別回路として動作するこの LOMプロセッサは、ホストシステムと直接、あるいはI/Oコントローラ内のEthernetチャネルを経 由して通信を行います。この専用ハードウェアにより、Xserveの電源がオフの場合や、システムが クラッシュしている場合でも、Xserveの操作が可能になります。電源ケーブルとEthernetケーブル さえ接続されていればOKです。 シリアルターミナルサーバが基本のデータセンターなどでは、Xserveの内蔵シリアルポート (DB-9)や Ethernetポートを経由したコンソールアクセスも可能です。ネットワークサービスがダ ウンしている場合でも、UNIXに詳しいシステム管理者なら、シリアルコンソールセッション経由で システムにアクセスできます。 Technology Overview  Xserve リモート管理 Xserveに内蔵されたリモート管理機能により、シス テム管理者はローカルネットまたはインターネット接 続されたMac OS Xシステムから、Xserveシステム の各種機能のリモート管理およびリモート監視が行 えます。Xserveの筐体には100個以上のハードウェアセンサが内蔵され、使い易いアップルのサーバモニ タソフトウェアを使用して、メモリ、冷却ファン、電源ユニット、Ethernetリンクなどの重要なサブ システムの動作状況をチェックできます。ハードディスクドライブ、プロセッサ、メモリ、PCI、電源ユ ニットの各温度と周辺環境温度(吸入口温度)は、ロジック上に用意された専用のマイクロコント ローラと専用の通信バスを介して処理されます。 サーバモニタソフトウェア サーバのアップタイムを最大限に保つため、サーバモニタソフトウェアはシステム異常の早期判断と システム診断を助けます。このパワフルなアプリケーションは、Xserveに内蔵された各種のハード ウェアセンサとLOMプロセッサからの情報を利用して、Xserveのすべてのサブシステムの状態を 絶えずレポートします。何らかの部品の動作状態が設定値を超えると、問題解決や修理に迅速に対 応できるように、サーバモニタはネットワーク管理者にemailで(またはemail機能を持ったポケッ トベルに)通知を行います。 サーバモニタでは、単一の、直感的なユーザインターフェイスを使用して、数百台のサーバを監視で きます。各サーバはサーバ名およびIPアドレス(またはDNSホスト名)で表示され、インジケータ表 示(緑色は正常、黄色は警告、赤は異常)を使用して、各部品の状態一覧表示が可能です。アイコン をクリックすれば、詳細な状態とパフォーマンス情報が表示されます。 サーバモニタを使用すれば、各サーバの属性、サブシステム、システム変数などの、サーバの各種動 作状態とパフォーマンス詳細の閲覧も容易に行えます。 • 情報 サーバ名、IPアドレス、デバイス種別、オペレーティングシステムのバージョン、プロセッサ種 別、メモり容量、ファームウェアバージョン、アップタイム、最終監視時刻、ハードウェアシリアル番 号などの、サーバの主要属性を表示します。 • メモリ 各システムにインストールされているメモリ容量、メモリ速度、メモリ種別、ECCエラーカ ウントなどを表示します。 • ドライブ サーバに搭載されている各ドライブの状態と、SMARTデータによる故障予報を表示し ます。 • 電源 電流、電圧、プロセッサ電源、各電源ユニットの負荷履歴などを表示します。無停電電源ユ ニット(UPS)を使用している場合は、その情報と状態も表示されます。 Technology Overview  Xserve システム異常を自動通知 システム管理者にシステム異常を通知するため、サー バモニタには、システムの動作状況が規定値を超 えた場合にユーザ指定の通知先に対して自動的に emailを送付する機能が用意されています。email を受信可能な携帯電話、ポケットベル、PDAなどに 対しては短いテキストメッセージを送付し、パソコン や長文メールを受信可能なPDAに対してはシステム 異常の詳細なテキストメッセージを送付することも 可能です。 Apple Xserve Diagnostics X s e r v eには、高度なハードウェア診断が行え る、サーバクラスの診断ツール「Apple Xser ve Diagnostics」が含まれています。付属のAdmin Tools DVDから起動できるほか、USBメモリや NetBoot経由でも使用できます。このパワフルな診 断ツールには、ローカルまたはリモートで操作できる 使い易いGUIが備えられています。• ネットワーク アクティブなネットワークリンクの状態、ネットワークスタック、リンク設定を表示し ます。各リンクの動作状態履歴も表示できます。 • 温度 筐体内とプロセッサの温度を10個の温度センサを使用して表示します。各センサで測定さ れた温度の履歴もグラフ表示されます。 • ブロワ 筐体内に用意された7つの2枚羽根冷却ファンの回転速度(毎分あたりの回転数)を表示 します。各冷却ファンの回転速度の履歴もグラフ表示できます。ひとつの冷却ファンが故障した場 合は、サーバの動作に支障がないように、他の冷却ファンの回転数を上げて温度補償を行い、同時 にシステム管理者への故障通知を行います。 • セキュリティ Xserve筐体のセキュリティ状態を表示します。ハードディスクドライブの引き抜き や盗難を防ぐため、Xserveには機械的な筐体ロックが用意されています。また、光ディスクのマウ ント、ハードディスクドライブの取り出し、USBおよびFireWireデバイスの使用を制限する、ソフト ウェアによるI/Oポートセキュリティ機能も用意されています。 さらに、サーバモニタは、監視中の各Xserveのアクティビティとメッセージもログに記録します。ロ グには、Server Monitorがサーバに接続した時刻と、接続が成功したかどうかも記録されます。 また、サーバ状態の変更も記録されます。在庫管理やログサポートのため、選択されたサーバや複 数のサーバのSystem Profilerによるレポートも保存できます。 Apple Remote Desktop Apple Remote Desktopは、各種のIT作業を容易にし、パワーと柔軟さを犠牲にすることなし に管理プロセスを簡易化できる、統合デスクトップとリモート管理のためのツール群です。Apple Remote Desktopでは、Xserveのソフトウェアおよびハードウェア機能を補完し、ソフトウェアの リモート配布、ハードウェア構成やソフトウェアバージョンを含んだ在庫レポ-ト作成、グラフィカ ルなリモート操作、定期管理タスクの自動化などが行えます。一台のXserveシステムはもちろん、 数百台ものXserveシステムでも容易に管理が行えます。 また、Apple Remote Desktopは、IT管理者がMac OS Xベースの大量のクライアントコン ピュータのサポートに必要とするリモート管理能力を強化して、Mac OS X Serverのデスクトップ およびワークグループ管理機能も補完します。ローカルネットワーク(LAN)上のクライアントや、 複数サイトに及ぶネットワーク(WAN)越しに接続されたクライアントの詳細なハードウェアおよ びソフトウェア構成も容易にレポート出力できます。大量のクライアントに対してのソフトウェア アップデートやリモートアシスタンスも同様に行えます。 アップルは、これらの基本的なIT管理能力を使い易い単一のインターフェイスに統合して、ネット上 のコンピュータの検索や管理を容易にし、複数の管理命令を順に実行できる機能を加えました。複 数のMacコンピュータを管理するシステム管理者にとってApple Remote Desktopは、サポート コストを抑えつつシステム管理とセキュリティを向上させ、ワークフローを合理化できる画期的なア プリケーションと言えます。 さらに便利なことに、Apple Remote DesktopエージェントはMac OS X Serverインストー ルDVDから起動した場合でも使えます。これにより、Xserveのインストールを行う場合でも、 Apple Remote Desktopの洗練されたGUIを使用したリモート操作がすぐに行えます。 そして、アップル製以外のコンピュータからでもXserveをリモート操作できます。VNC(Virtual Network Computing)機能をオンにすれば、VNC仕様に準拠したオープンソースアプリケー ションを使用して、WindowsパソコンやLinuxコンピュータからでもXserveをリモート操作する ことが可能です。 Technology Overview  Xserve Apple Remote Desktop  Apple Remote Desktopを使用すれば、ネットワー ク経由でXserveシステムやMacコンピュータをリ モート操作できます。仮想プライベートネットワーク を利用して、自宅からリモート操作することも可能で す。サーバマシンは離れた場所でヘッドレスで運用 されることも多いため、Mac OS X Serverのセット アップアシスタントには、Apple Remote Desktop クライアントのインストールと設定をワンクリックで 行える機能が用意されています。また、サーバ上のソ フトウェアの設定をリモートに行えるコマンドライン ユーティリティも付属しています。 Apple Remote Desktopは、Intelプ ロ セッ サ を 搭 載 した 新 型 XserveのLOM(Lights-Out Management)機 能 もサ ポ ートして い ま す。 Xserveの再起動や電源のオン・オフもをリモート 操作で行えるほか、LOM機能の設定状態も表示で きます。Mac OS X Server v10.4.8 XserveにはMac OS X Server v10.4.8が付属します。各種の賞に輝くアップル製サーバオペレー ティングシステムの、第5世代のメジャーリリースです。Intelプロセッサ用に最適化され、64ビット 処理、そしてすべてのサービスがIntelプロセッサ上で100%ネイティブに動作します。Mac OS X Serverには、標準仕様に準拠してオープンソース開発された、各種のワークグループサービスとイ ンターネットサービスが用意されています。Linuxやその他のUNIXベースのソリューションのよう な複雑さもありません。クライアント数無制限ライセンスにより、ユーザ数が増えた場合でも追加 料金は必要ありません。ハードウェアとソフトウェアがアップル独自の使い易さで協調動作するた め、Mac/Windows/Linuxワークグループをサポートし、パワフルなインターネットサービスを 提供でき、エンタープライズアプリケーションのホスティングも可能な、パワフルでスケーラブルな ソリューションに仕上がっています。 64ビット処理 デュアルコアIntel Xeonプロセッサに内蔵された、64ビット処理が可能なハードウェアを活用する ため、Mac OS X Serverでは64ビット処理のパワーとメインストリームサーバに最適化されたファ イルサービスが行われます。64ビットアドレッシングにXserveの32GBメモリサポートを組み合わ せることにより、64ビットアプリケーションは膨大な量のメモリにアクセスできます。同時に、64 ビット処理に最適化された数値演算ライブラリによる、ハイパフォーマンスで超高精度な数値演算 が可能です。 内蔵の各種ネットワークサービス Mac OS X Serverには、ファイル共有、プリンタ共有、インターネットおよびWebサービス、ネット ワーキング、ワークグループ管理、ディレクトリサービスなどの堅固なソリューションが内蔵されて います。アップルは、OpenLDAP、Postfix、Apache、JBossなどの、最新のオープンソース技術 をMac OS X Serverに統合して動作検証を行っているため、各種のサービスをすぐに使い始める ことが可能です。 オープンスタンダードに基づいて開発されたMac OS X Serverは、既存のネットワークやコン ピューティングインフラとも互換性があります。Samba 3(オープンソースのSMB/CIFSサーバの最 新バージョン)を使用すれば、Windowsクライアント向けの高信頼なファイルおよびプリンタ共有 と、NT Domainサービスが可能です。内蔵のディレクトリサービスアーキテクチャにはLDAPv3を 採用し、Mac OS Xを使用したサーバシステムでLDAPディレクトリサービスのホスティングが行え ます。また、LDAPディレクトリサービスを使用した任意のネットワークとの統合も可能です。さらに、 Mac OS X Serverは、NISなどの旧型ディレクトリサービスや、独自のディレクトリサービスであ るActive Directoryなどとの互換性も有しています。また、UNIXベースのオープンソースファウン デーションにより、既存の各種ツールをMac OS X Serverに移植して運用することも容易です。 Technology Overview  Xserve Mac OS X Server v10..の主な特徴 ・Intel Xeonプロセッサ用に最適化されカーネル、各 種サービス、数値演算ライブラリ ・64ビットMySQL ・複数のサーバの設定を行う自動設定 ・プラットフォーム混在環境でのファイル共有の柔軟性 を高めるACL ・サーバの可用性を高め、システム以上や故障からの 復帰を助けるジャーナリング対応HFS ・サービスの設定と監視が容易に行えるサーバ管理ア プリケーション ・エンタープライズディレクトリサービスと認証サービ スを提供するOpen Directory ・Kerberosを使用したシングルサインオン ・WindowsユーザをサポートするSamba 3 ・MacとWindowsの両方で使えるPostfixメール サーバ ・MacとWindowsの両方で使えるVPNサーバ ・VNC機能をサポートしたをAp p l e R emo t e DesktopエージェントをインストールDVDに用意 ・J2EEbbベースのアプリケーションをサポートする JBossアプリケーションサーバ ・対応アプリケーションでは64ビットアドレッシングが 使用可能 ・Xgrid分散処理アーキテクチャを内蔵 ・Xcode 2.4開発環境を付属 独自のNo-CALモデル Mac OS X Serverでは、追加クライアントに対する ライセンス料金(CAL)は必要ありません。emailや ストリーミングメディアなどのその他の各種サービス ではクライアントライセンスは必要ありません。革新的なリモート管理 Mac OS X Serverには、Mac OS X Serverに内蔵された各種サービスの設定と管理を一貫した 単一インターフェイスを使用して行える、革新的なリモート管理ツールが付属しています。サーバ 管理アプリケーションを使用すれば、ネットワーク管理者は複数のサーバ上の各種サービスを安 全かつ同時に管理できます。すべての操作は使い易い単一アプリケーション内で行えます。サーバ 管理を使用すれば、システム管理者は、ソフトウェアアップデート(システムソフトウェアを含む) のインストールや初期設定の変更、ワークグループ設定、Samba 3、Apache、DHCP、Postfix、 QuickTime Streaming Serverを含む各種インターネットサービスの設定などを、ネットワーク 接続された任意のMac OS Xコンピュータからリモートで行えます。 Mac OS X Serverでは、各種サービスのリモート監視も容易です。サーバ管理には、Xserveシス テム上で動作中の各種サービスの状態が表示されます。システム管理者は、アクセスログやエラー ログを閲覧したり、トラフィックパターンをグラフ表示で確認することができます。また、個々のネッ トワークサービスのパフォーマンスやファイルスループットをグラフ表示することも可能です。ネット ワーク構築の計画や、ネットワークリソースの配備に役立つ情報も容易に得られます。 ターミナルを使用したいシステム管理者のために、Mac OS X Serverには、暗号化と認証ログイ ンを行うSecure Shell(SSH2)テクノロジーが内蔵されています。Xserveには9ピン(DB-9)の シリアルポートが装備されていますので、ネットワークサービスがダウンしている場合でも、UNIX に詳しいシステム管理者ならシリアルコンソールセッション経由でシステムにアクセスすることも可 能です。コマンドラインツールを使用して、ソフトウェアのリモートインストール、ソフトウェアアップ デートの起動、システムやネットワークの初期設定変更などの操作も行えます。さらに、Mac OS X Serverは 業界標準のSNMP(Simple Network Management Protocol)もサポートしている ため、HP OpenViewなどのサードパーティ製品との統合も容易です。 パワフルなワークグループ管理サービス Mac OS X Serverには、他のサーバプラットには真似できない、Mac OS Xクライアント向けの各 種サービスが内蔵されています。ワークグループ管理、システムイメージング、セキュリティ機能、デ スクトップユーザ環境とシームレスに統合した共同作業環境など、ワークグループのサイズに関わら ずに便利に使えます。 Mac OS X Serverには、ディレクトリベースのユーザ管理を行えるパワフルなツール「ワークグルー プマネージャ」が付属します。ワークグループマネージャはシステム管理者向けの使い易いデスク トップ管理ツールで、Macシステムをネットワーク経由で管理できます。標準化されたデスクトップ 環境の作成、システム初期設定のセット、パスワードポリシーの確立、ホームディレクトリとグルー プフォルダの自動マウント、ハードウェア/ソフトウェア/ネットワークリソースへのアクセス制御な どをリモートで行うことが可能です。 Xserveを使用してMac OS Xワークグループを強化した場合、システムイメージングツールを使用 することで、Macintoshクライアントサポートの合理化と、システム管理コストの削減が行えます。 NetBootを利用して、すべてのデスクトップシステム用に標準のオペレーティングシステムとアプリ ケーション構成をホストすることが可能です。NetBootでは、Macコンピュータをローカルディス クの読み書きなしにディスクレスで起動できるため、セキュリティにうるさい組織においても完璧で す。また、NetInstallは、ローカルネットワークに接続されているMac OS Xベースのデスクトップ およびポータブルシステムにソフトウェアをインストールする場合に最適です。 ソフトウェアアップデートサーバを使用すれば、ソフトウェアアップデートの管理を非常に柔軟に 行えます。この合理化された処理では、アップルのソフトウェアアップデートをローカルに保存し、 ユーザにソフトウェアアップデートをダウンロードさせるタイミングを自由に設定できます。イン ターネット経由で同一ファイルを何回もダウンロードすることが防げ、無駄なバンド幅の消費を軽 減することができます。 Technology Overview  Xserve 可用性の高い各種サービス ダウンタイムを最小限に抑え、最大限にデータを保 護するため、Mac OS X Serverには、ソフトウェア RAID、ディレクトリ複製、ファイルシステムジャーナ リング、2ノードIPフェールオーバーサービス、サーバ 自体や個々のサービスを再起動させるウォッチドッ グ機能などの、高い可用性を維持するための数々の 機能が内蔵されています。 ワークグループ運用も容易 Mac OS X Serverオペレーティングシステムに内 蔵されたパワフルなデスクトップ管理機能により、 Xserveではワークグループの管理、保安、イメージン グ等も容易に行えます。さらに、共同作業のための データアクセス集約も可能です。ネットワークベースのホームディレクトリにより、あなたのワークグループのメンバーはネットワー クに接続されたどのコンピュータからでも、メンバー毎に独自にパーソナライズされたデスクトッ プ、アプリケーション、ファイルにアクセスできます。クォータ制限やアクセス制御リストなどの機能 を備えたパワフルなファイルおよびプリントサービスは、優れたネットワークパフォーマンスと同時 に詳細な管理機能を提供します。集約されたストレージにより、ワークグループのメンバーは単一 の場所に作業内容をバックアップすることができるほか、モバイルユーザは複数バージョンのホーム ディレクトリフォルダを、ローカルまたはネットワーク上でシンクすることが可能になります。高速で 使い易く、あなたのデータを保護できる信頼性が高い方法です。 Xcodeを使用した64ビットソフトウェア開発 アップルのXcode開発ツールセットを使用すれば、デュアルコアIntel Xeonプロセッサ用に最適化 されたアプリケーションの開発も容易です。GCC(GNU Compiler Collection)開発ツールチェ インのバージョン4を使用したXcodeは、最新のIntelプロセッサ用に最適化されています。SSE3 拡張機能や、EM64T 64ビットモードにおける追加レジスタも含め、Coreマイクロアーキテクチャ の機能をフルに活用できます。 XcodeとGCC自体もマルチコア対応であるため、マルチコアシステムにおいては並列処理を行っ てコンパイル時間を大幅に短縮できます。XcodeとGCC 4を使用して再コンパイルすることで、 プロセッサの整数演算ユニットと浮動小数点演算ユニットを効率的に利用するコードを生成で きます。 XcodeはUniversalバイナリの開発をサポートしているため、PowerPCプロセッサを搭載した Macと、Intelプロセッサを搭載したMacのいずれにおいてもネイティブに動作する単一アプリ ケーションを開発できます。また、GCC 4には自動ベクトル演算化機能も用意されています。従来 の開発環境では、デベロッパはベクトル演算のために特別なコードを作成する必要がありましたが、 GCC 4ではベクトル演算を行う最適化コードを自動生成することが可能です。これにより、少ない 作業で優れたアプリケーションパフォーマンスが得られます。 優れたパフォーマンス最適化を行うため、Xcodeには、CHUD(Computer Hardware Understanding Development)ツールの主要コンポーネントのひとつである「Shark」が含ま れています。これらのパワフルなツールはアプリケーションのパフォーマンスを測定・評価して、ア プリケーションにおいてデュアルコアIntel Xeonプロセッサの恩恵に預かることが可能な特定部分 を示します。Sharkでは、あなたのアプリケーション内でパフォーマンス低減を起こしている部分を 迅速に突き止めることが可能です。最適化が必要な特定の関数までを明確に示してくれるため、全 体のパフォーマンスを大きく落としている部分の最適化に注力できます。 Sharkは同一システムにおけるパフォーマンス解析をローカルにサポートしますが、他のシステム からネットワーク経由でリモートにパフォーマンス解析を行うことも可能です。コマンドラインイン ターフェイスもサポートされているため、単一マシン上やクラスタシステム上でのローカルパフォー マンスチューニングにも理想的です。Sharkには、システム処理の実行を記録して、過去数秒間内 に発生したパフォーマンスイベントの解析が行えるWindowed Time機能が新たに追加されてい ます。SharkとgdbデバッガはDWARFフォーマットでのシンボルファイルを扱えるため、特定のデ バッグバージョンの再コンパイルを行わずにデバッグ用のバイナリコードを最適化することが可能 です。 デュアルコアIntel Xeonプロセッサ向けのソフトウェア開発リソースの詳細はdeveloper.apple. comをご覧ください。 Technology Overview 0 Xserve Mac OS XおよびMac OS X Server向けの統合 開発環境 アップルのXcodeツールを使用すれば、デュアルコ アIntel Xeonプロセッサ用のハイパフォーマンスな アプリケーションの開発が容易に行えます。 Mac OS X版のIntel製コンパイラ Intel社では、C/C++およびFortr anコンパイ ラ(i cc、ifort)、数値演算カーネルライブラリ (MKL)、Integrated Performance Primitives (IPP)、Intel Threading Building Blocksライブ ラリのMac OS X版を提供しています。Intelマルチ コアプロセッサ向けに卓越したパフォーマンスを実 現するこれらのコンパイラとツール類は、コマンドラ インから実行できるほか、Xcodeのプラグインツー ルとしても使用できます。詳細はwww.intel.com/ softwareをご覧ください。サービス&サポートおよび トレーニングオプション Xserveにはご購入後1年間の製品保証と、ご購入後90日間の電話サポートが付属します。また、 Xserveのスムーズな運用には、AppleCareのサポートWebサイトで提供しているサポート情報も ご活用ください。この便利なWebサイトでは製品の詳細情報、ハードウェアの設置やソフトウェア の設定に関する情報がご覧いただけるほか、AppleCare Knowledge Base、ディスカッション ボード、アップルソフトウェアのダウンロードなどの技術リソースもご利用いただけます。 重要データを扱うストレージならびにサーバシステムを確実に運用していくために、アップルでは XserveハードウェアとMac OS X Serverソフトウェアを対象とする包括的なサービス&サポート 製品をご用意しています。各AppleCare製品の詳細は、www.apple.com/jp/server/support をご覧ください。 AppleCare Premium Service and Support Plan サーバクラスの製品に向けたこのサポートプランでは、技術エキスパートによる電話やメールによ る優先サポート、ハードウェアの出張修理サービスを最長3年間にわたってご提供します。トラブル の内容がハードウェアの故障、Mac OS X Serverソフトウェアの設定のどちらに関するものでも、 アップルの技術サポート担当者が24時間サポートに当たり、早期のシステム運用再開をお手伝いし ます。 AppleCare Premium Service and Support Planでは、電話やメールによるお問い合わせ を毎日24時間受け付け、技術エキスパートが30分以内に連絡を差し上げます。本プランで保証 されるハードウェア修理は、出張修理の営業時間内であれば原則4時間以内の出張対応、営業時 間外であれば翌日の出張対応で実施します(契約条件に基づきます)5。もちろん、AppleCare Premium Service and Support Planでは、アップル認定の技術スタッフがアップル純正パーツ を使用して修理に当たりますのでご安心ください。 AppleCare Premium Service and Support Planは、新規にご購入いただいたXserveに付属 する1年間の製品保証期間内であれば、いつでもご加入いただけます。ただし、この延長サポート契 約は製品購入時から3年後に満了となります。最大限にご利用いただくためには、製品購入と同時 のご加入をお奨めします。 AppleCare Service Parts Kit Xserveは重要パーツをすばやく簡単に交換できるように設計されており、作業に当たって特殊な 工具や訓練、ならびに特別な資格は不要です。AppleCare Service Parts Kitをご利用いただけ ば、お客様の手元に主要モジュールを置いて一般的なハードウェアの故障にご対応いただけます。 このパーツキットは、ロジックボード、電源ユニット、冷却ファンアレーで構成されています。なお、 AppleCare Premium Service and Support Planに加入され、AppleCare Service Parts Kitをご用意いただいた場合には、昼夜を問わず、アップルの技術エキスパートがシステムの修理に 関するアドバイスをお電話で提供しますので、出張修理をお待ちいただく必要がありません。 Technology Overview 1 Xserve 便利な交換モジュール Xserve用のAppleCare Service Parts Ki(t 別売) を購入すれば、短時間で問題を解決できます。AppleCare Help Desk Support AppleCare Help Desk Supportでは、ソフトウェアのインストール・起動・使用、ハードウェア およびソフトウェアの診断と問題解決、アップル製品を使用したソリューションに発生した問題の切 り分けを、問い合わせ件数の制限なしでサポートします。サポート対象の製品は、ほぼすべてのアッ プル製ハードウェア*1、Mac OS、アップル製ソフトウェアツールならびにアプリケーション*2です。 このプランには、Mac OS X ServerのGUIベースのネットワーク設定とサーバ管理も含まれていま す。また、AppleCare Help Desk Supportは、Final Cut Pro、DVD Studio Pro、LiveType、 Soundtrack、Compressorの各ソフトウェアもサポート対象に含みますので、映像制作に携わる プロフェッショナルの方にも最適なサポートプランです。このプランでは、アップルが指定するFinal Cut Proを用いたFireWireベースの映像ソリューション、映像の取り込み・再生に用いるストレー ジソリューション、キャプチャカードに関する問題の切り分けも行います*3。 AppleCare Help Desk Supportの製品パッケージには、Mac OSのインストールやハードウェ ア診断に用いるAppleCare Help Desk Toolsが含まれ*4、これらは四半期ごとにアップデート されます。この包括的なサポートツールはアップルの技術サポートスタッフが使っているのと同じも ので、オペレーティングシステムの再インストールやハードウェア関連の問題解決に大いに役立ちま す。さらに、AppleCare Help Desk Toolsでは、会員専用のディスカッションボード、広範な情報 が満載のTech Info Library、最新のツールやソフトウェアパッチが手に入る専用Webサイトといっ たオンラインのサポートリソースにもアクセスできます。 ビジネスまたは教育機関におけるMac OS XデスクトップシステムおよびMac OS X Serverシ ステム、ネットワークを活用したプロフェッショナルな映像ソリューションのいずれにおいても、 AppleCare Help Desk Supportはお客様にとって理想的な技術サポートソリューションになり ます。 *1 製品保証の対象とならないハードウェア修理には、別途、AppleCare Premium Service and Support Planなどのサポート契約が必要です。 *2 サポート範囲、サポート対象のアップルテクノロジーについて詳しくは、AppleCare Help Desk Support Service Planに記載されています。 *3 アップルが動作確認したデジタルビデオカメラおよびその他の周辺機器については、www.apple.com/jp/finalcutpro/qualification.htmlをご 覧ください。 *4 AppleCare Help Desk Support Toolsには、AppleCare Help Desk Support規約以外の規約が適用されます。AppleCare Premium Service and Support Planでのサポート範囲を超える問題解決に対しては、Mac OS X Server向けの有料サポートプログラムがご用意されてい ます。Mac OS X Serverの設定や既存プラットフォーム環境への統合、コマンドラインツールを必要とする技術的要件のサポートなど、アップル認定 のテクニカルサポート担当者がお電話とemailでコンサルティングおよび技術サポートを多ないます。 トレーニングと認定制度 アップルは、Mac OS XおよびMac OS X Serverのクライアント管理、システムのトラブルシュー ティング、クロスプラットフォームネットワーク構成などに関する包括的なトレーニングを実施して います。実経験とプレゼンテーション能力に富んだアップル認定トレーナーによって講義、デモ、実 習を組み合わせた授業が行われます。アップル公認トレーニングセンターで開催されるクラスのほ か、認定トレーナーが訪問してのオンサイトトレーニングも可能です。 必要なスキルを習得したITプロフェッショナルには、アップル認定制度によってアップル技術者認定 資格が与えられます。アップルトレーニングとアップル認定制度について詳しくは、www.apple. com/jp/trainingをご覧ください。 Technology Overview  Xserve Mac OS X Serverソフトウェア 自動送付プログラム このプログラムにご加入いただくと、最新のテクノロ ジーや改良の恩恵を受けつつ、ソフトウェアに対す る出費を簡単に管理できます。1回限りの支払いで、 主要なMac OS X Serverソフトウェアのバージョン アップを3年間入手することができます。Technology Overview  Xserve 製品情報 豊富なシステム構成が実現できる新型Xserveは、幅広いアプリケーション環境に対応可能です。 標準システム構成では、デュアルコアXeonプロセッサ(2.0GHz)×2基、1GB FB-DIMMメモリ、 80GB SATAドライブモジュール×1基が搭載されております。用途とご予算に応じて、各種の構成 オプションを追加したカスタム構成のシステムもご注文いただけます。 Xserveの標準システム構成 製品番号 MA0J/A プロセッサ デュアルコアIntel Xeon 5100プロセッサ(2.0GHz)×2基 フロントサイドバス プロセッサ毎に独立した1.33GHzフロントサイドバスを装備 L2キャッシュ 4MB共有L2キャッシュをプロセッサに内蔵 メモリ 1GB、667MHz DDR2 ECC FB-DIMMメモリ(512MBメモリモジュール×2) ホットプラグストレージ ドライブベイ×3、ひとつのドライブベイに80GB SATAドライブモジュール(7,200rpm)を実 装済み 光学式ドライブ 24倍速コンボドライブ(DVD-ROM/CD-RW) I/O接続 背面パネルに内蔵ギガビットEthernet(10/100/1000BASE-T)インターフェイス×2基、 FireWire 800ポート×2基、USB 2.0ポート×2基、DB-9シリアルポート×1基を装備。前面 パネルにFireWire 400×1基を装備。 ビデオインターフェイス ATI Radeon X1300 PCI Expressグラフィックス(64MB GDDR3 SDRAMビデオメモリ、 背面パネルにmini-DVI出力ポートを装備)を内蔵。mini-DVI-VGAアダプタを標準付属。 PCI Express拡張スロット PCI Express拡張スロット(空きスロット)×2基を装備。スロット1(9インチサイズのカード まで実装可能)は8レーンのPCI Express拡張スロット、または133MHz PCI-X拡張スロット のいずれにかに設定可能。スロット2(6.6インチサイズのカードまで実装可能)は8レーンの PCI Express拡張スロット専用。 電源ユニット 650W電源ユニット×1基 付属ソフトウェア Mac OS X Server v10.4.8(クライアント数無制限版) サービス&サポート 購入後90日間の無料電話サポート、購入後1年間の製品保証、AppleCareの延長 サービス&サポートプランに別途加入可Technology Overview  Xserve 構成オプション 用途に応じて、カスタム構成のXserveシステムもご注文いただけます。ご注文はApple Store、オ ンラインのApple Store、またはアップル製品取扱販売店へどうぞ。カスタマイズ可能な構成オプ ションは以下の通りです: プロセッサ デュアルコアIntel Xeon 5100プロセッサ(2.66GHzまたは3.0GHz)×2基 メモリ 512MB、1GB、2GB、4GBのFB-DIMMモジュールを使用して、最大32GBまでのDDR2 ECC メモリを実装可能 ホットプラグストレージ SATAまたはSAS Apple Drive Moduleを任意の組み合わせで搭載可能。750GB SATAド ライブモジュール×3台を使用した場合は2.25TB、300GB SASドライブモジュール×3台を使 用した場合は900GBまでのストレージ拡張が可能。下記のドライブモジュールを合計3台まで 使用できます: • 80GB SATA Apple Drive Module(7,200rpm、8MBキャッシュ) • 750GB SATA Apple Drive Module(7,200rpm、16MBキャッシュ) • 73GB SAS Apple Drive Module(15,000rpm、16MBキャッシュ) • 300GB SAS Apple Drive Module(15,000rpm、16MBキャッシュ) 光学式ドライブ SuperDrive(DVD+R DL/DVD±RW/CD-RW) 拡張カード • Apple Fibre Channel PCI Expressカード • Apple Dual-Channel Gigabit Ethernet PCI Expressカード • Apple Dual-Channel Ultra320 SCSI PCI-Xカード • ATI Radeon X1300 PCI Expressグラフィックカード(256MB DDR2ビデオメモリ、デュ アルリンクDVIポート) 電源ユニット 冗長&負荷分散型650W電源ユニット(追加) サービス&サポート 各種の拡張サービスプランとサポート製品が有料で用意されています 関連製品 • Xserve RAID(1TB、3.5TB、7TB、10.5TB構成)1 • Xsan • Apple Remote Desktop 3 • AppleCare Premium Service and Support Plan • AppleCare Service Parts Kit • Mac OS X ソフトウェア自動送付サービス • サードパーティ製品各種(ラック、スイッチ、無停電電源装置ほか) Xserveの運用を強化する上記製品ならびに各社製品に関する最新情報は、www.apple.com/ japanstoreをご覧になるか、0120-APPLE-1(0120-27753-1)(月~金9:00~21:00、土日祝祭 日9:00~17: 00)まで電話でお問い合わせください。Technology Overview  Xserve 技術仕様 ハードウェア プロセッサ • デュアルコアIntel Xeon 5100(2.0GHz、2.66GHzまたは3.0GHz)×2基。以下の機能が含まれ ます: – ワイド・ダイナミック・エグゼキューション – インテリジェント・パワー機能 – 4MBアドバンスト・スマート・キャッシュ(プロセッサあたり) – スマート・メモリー・アクセス – アドバンスト・デジタル・メディア・ブースト • プロセッサ毎に独立した1.33GHzフロントサイドバス メモリ • Full Buffered DIMM(FB-DIMM)×4チャネルを持った、最新の256ビット幅メモリアーキテ クチャ。以下の機能が含まれます: – オンデマンドエラー訂正機能付きのECC(Error Correction Code)エラー訂正ロジック – コマンドとデータのCRC(cyclic redundancy check)データ保護機能 – SDDC(Single Device Data Correction)アルゴリズム • DIMMスロット×8基で最大32GBの667MHz DDR2 ECCメモリをサポート。以下の容量のメモリ モジュールから選択(2個1組での使用が必要です、最高のパフォーマンスを得るためには4個また は8個を1組として使用することをお奨めします): – 512MB FB-DIMM – 1GB FB-DIMM – 2GB FB-DIMM – 4GB FB-DIMM I/O接続 • PCI Express拡張スロット(空きスロット)×2基を装備。スロット1(9インチサイズのカードまで実 装可能)は8レーンのPCI Express拡張スロット、または133MHz PCI-X拡張スロットのいずれに かに設定可能。スロット2(6.6インチサイズのカードまで実装可能)は8レーンのPCI Express拡張 スロット専用。 • アップル製のPCI ExpressおよびPCI-Xカード – Apple Fibre Channel PCI Expressカード – Apple Dual-Channel Gigabit Ethernet PCI Expressカード – Apple Dual-Channel Ultra320 SCSI PCI-Xカード – ATI Radeon X1300 PCI Expressグラフィックカード(256MB DDR2ビデオメモリ、デュアル リンクDVIポート) • メインロジックボードにギガビットEthernet(10/100/1000BASE-T)インターフェイス×2基を搭 載、背面パネルにRJ-45コネクタ×2基を装備。 • ATI Radeon X1300 PCI Expressグラフィックス(64MB GDDR3 SDRAMビデオメモリ、背面 パネルにmini-DVI出力ポートを装備)を内蔵。mini-DVI -VGAアダプタ付属。 • 背面パネルにFireWire 800ポート×2基を、前面パネルにFireWire 400ポート×1基を装備。合計 15Wまでのバスパワーを供給可能。 • 背面パネルにUSB 2.0ポート(各480Mbps)×2基装備。 • 背面パネルにDB-9シリアルポート(RS-232準拠)×1基を装備。Technology Overview  Xserve ストレージ • 最高3Gbpsの独立したドライブチャネル(SATAおよびSASドライブをサポート)を装備した、3つ の内蔵ドライブベイ • 750GB SATA Apple Drive Module×3台を使用した場合は2.25TB、300GB SAS Apple Drive Module×3台を使用した場合は900GBまでのストレージ拡張が可能1。24時間運用が可能 なサーバクラス認定のハードディスクドライブを採用したApple Drive Moduleには、以下の容量 が用意されています: – 80GB SATA Apple Drive Module(7,200rpm、8MBキャッシュ) – 750GB SATA Apple Drive Module(7,200rpm、16MBキャッシュ) – 73GB SAS Apple Drive Module(15,000rpm、16MBキャッシュ) – 300GB SAS Apple Drive Module(15,000rpm、16MBキャッシュ) • Apple Drive ModuleからSMARTデータを読み込んで故障予報を通知可能 • スロットローディング方式の24倍速コンボドライブ(DVD-ROM/CD-RW)、またはオプションの SuperDrive(DVD+R DL/DVD±RW/CD-RW) ラックサポート • EIA-310-D規格に準拠する19インチ幅の標準4ポストラックとキャビネット(奥行き24~36イン チ)に適合。 • 前面から背面へ冷却する冷却モジュール 電力条件 • 電源ユニット出力: 650W • 冗長構成の負荷分散型ホットスワップ対応電源ユニット(650W、オプション) • 電源電圧: ユニバーサル入力(100V~240V AC)、力率補正付き • 最大入力電流: 8.0A(100V~120V)、4.0A(200V~240V)。冗長型電源構成の場合は入力電流 も分散されます。 • 電源周波数: 50Hz~60Hz、単相 動作環境 • 動作時温度: 10℃~35℃ • 保管時温度: -40℃~47℃ • 相対湿度: 5%~95%(結露しないこと) • 最大高度: 3,048m • FCC Class A認定 サイズと重量 • 高さ: 4.4cm(1Uサイズ) • 幅: 44.7 cm(標準の19インチラックに適合) • 奥行き: 76.2cm • 重量: 14.4kg(基本システム構成)、17.4kg(FB-DIMM×8、300GB SAS Apple Drive Module×3、電源ユニット×2のカスタム構成時)7 付属ソフトウェア Mac OS X Server v10.. • クライアント数無制限版 内蔵サービス • ファイルおよびプリンタ共有: Mac(AFP、AppleTalk PAP)、Windows(SMB/CIFS)、UNIXお よびLinux(NFS、LPR/LPD)、インターネット(FTP、WebDAV) • ディレクトリサービス: Open Directory 2(OpenLDAP、Kerberos、SASL)、NT Domain Controller(Samba 3)、Backup Domain Controller(BDC) • ネットワーキングおよびセキュリティ: DNSサーバ(BIND 9)、DHCPサーバ、NTPサーバ、ファイ アウォール(IPFW)、WINS、VPNサーバ(L2TP、PPTP) • メールサービス: SMTP(Postfix)、POPおよびIMAP(Cyrus)、Berkeley DB for indexing、 SSL/TLS暗号化(OpenSSL)、メーリングリスト(Mailman)、webmai(l SquirrelMail)、スパ ムメールフィルタ(SpamAssassin)、ウイルス検出・退治(ClamAV)Technology Overview  Xserve • Webホスティング: Apache webサーバ、SSL/TLS(OpenSSL)、WebDAV、server-side includes(SSIs)、PHP、Perl、Ruby、Python、MySQL 4 • アプリケーションサービス: JBossアプリケーションサーバ(E JB)、Apache Tomcat (JavaServer Pages、Java Servlets)、Java仮想マシン(J2SE)、Apache Axis(SOAP、 WSDL Web Services)、WebObjects 5.2 Deployment • メディアストリーミング: QuickTime Streaming Server(H.264、3GPP、MPEG-4、MP3、 AAC、RTP/RTSP)、QuickTime Broadcaster、QuickTime Streaming Server Publisher、 ユニキャストおよびマルチキャスト • コラボレーションサービス: iChat Server、Weblog Server • ワークグループ管理: ワークグループマネージャ、NetBoot、NetInstall、ソフトウェアアップ デートサーバ • リモート管理: サーバモニタ、サーバ管理、SNMPv3、Secure Shell(SSH2)、コマンドライン ツール • 分散コンピューティング: Xgrid さらに詳しい情報 Xserve、Xserve RAID、Mac OS X Server、 Xsanとその他のアップルのサーバソリューションに 関する詳細は、www.apple.com/jp/serverをご 覧ください。 各AppleCare製品の詳細は、www.apple.com/ jp/server/supportをご覧ください。 本資料におけるパフォーマンステストには特定のコンピュータシステムを使用しましたが、Xserveのおおよそのパフォーマンスを示しています。 1ハードディスク容量を示す単位は1GB=10億バイトおよび1TB=1兆バイトですが、フォーマット後の容量はドライブ構成とRAIDレベルに依存し ます。最大容量の2.25TBは3基の750GB Apple Drive Moduleを使用した場合のものです。実際に使用可能な容量はドライブ構成とRAIDレベ ルにより異なります。 2テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを 搭載した新型Xserveの試作品と、市販品のXserve G5を使用しました。SPECint_rate_base2000スコア(推定値): 112.0(デュアル3.0GHz Xeonシステム)。SPECfp_rate_base2000スコア(推定値): 76.2(デュアル3.0GHz Xeonシステム)。詳細はwww.spec.orgをご覧くだ さい。 3テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載した新型 Xserveの試作品を使用しました。テストにはIometer 2004.07.03を使用し、ランプアップ時間を30秒、テスト時間を2分、リクエストサイズを 512KBに設定しました。テストに使用した各システムには起動用ドライブとテスト用ドライブを接続し、オペレーティングシステムが格納されている 起動用ドライブの影響を受けない状態で、テスト用ドライブ上のパフォーマンスを測定しました。各ドライブの平均シーク時間は各ドライブメーカー の公表値です。 4テスト結果は、2006年10月に実施されたアップルの社内テストに基づきます。テストには、3.0GHzのXeonプロセッサを搭載し た新型Xserveの試作品と、市販品のXserve G5を使用しました。SPECint_rate_base2000スコア(推定値): 112.0(デュアル3.0GHz Xeon システム)、21.1(デュアル2.3GHz G5システム)。2.6GHz AMD Opteronと3.6GHz Intel Xeonプロセッサの比較は、各プロセッサの2006年 11月9日時点でのSPECint_rate_base2000公表値と、TDP(Thermal Design Power)値の公開情報を使用して行いました。 5 AppleCare Premium Service and Support Planは、製品ご購入後1年間の保証期間内にXserveシステム1台毎にご加入いただく必要があります。サポー ト契約期間は対象製品のご購入日より3年間となります。出張サービスの対応時間や実施状況は地域によって異なります。詳しくは、www.apple. com/jp/support/products/premiumをご覧ください。サポート電話番号への電話料金はご負担ください。専用サポート電話番号とサポート 対応時間は変更される場合があります。 6サポート対応時間は保証値ではありません。 7実際の重量はシステム構成および製作工程により異なり ます。 © 2006 Apple Computer, Inc. All rights reserved. Apple、Appleロゴ、Apple Cinema Display、AppleTalk、Final Cut Studio、 FireWire、Mac、Macロゴ、Macintosh、Mac OS、QuickTime、Velocity Engine、WebObjects、Xcode、Xgrid、Xsan、Xserveは、米国 およびその他の国で登録されているApple Computer, Inc.の商標です。Apple Remote Desktop、QuickTime Broadcaster、SuperDrive は、Apple Computer, Inc.の商標です。AppleCare、Apple Storeは、米国およびその他の国で登録されているApple Computer, Inc.の サービスマークです。 Intel、Intel Core、Intel Xeonは、米国およびその他の国におけるIntel Corp.の商標です。Java、Javaを冠したすべての 商標は、米国およびその他の国におけるSun Microsystems, Inc.の商標または登録商標です。PowerPCは、IBM Corp.からのライセンスに基 づき使用されるIBM Corp.の商標です。SPEC®は、Standard Performance Evaluation Corporation(SPEC)の登録商標です。詳細はsee www.spec.orgをご覧ください。この資料に記載のその他の製品名および会社名は、各社の商標または登録商標です。本製品には、University of California、Berkeley、FreeBSD, Inc.、The NetBSD Foundation, Inc.、およびそれらへの寄稿者によって開発されたソフトウェアが含ま れています。各ソフトウェアの使用条件は使用許諾契約の条項に応じます。この資料に記載された製品仕様は予告なく変更される場合があります。 この資料は製品説明のために用意されたものであり、アップルはその使用により生じた責任について何ら責を負うものではありません。この資料の 記載内容は2006年12月現在のものです。 I N S I D E M A C O S X System Overview February 2001Apple Computer, Inc. © 2000-2001 Apple Computer, Inc. All rights reserved. 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., with the following exceptions: Any person is hereby authorized to store documentation on a single computer for personal use only and to print copies of documentation for personal use provided that the documentation contains Apple’s copyright notice. 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 document is accurate. Apple is not responsible for typographical errors. Apple Computer, Inc. 1 Infinite Loop Cupertino, CA 95014 408-996-1010 Apple, the Apple logo, AppleScript, AppleShare, AppleTalk, ColorSync,Finder, FireWire, Mac, Macintosh, QuickDraw, QuickTime, PowerBook, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries. AirPort, Carbon, Cocoa, iBook, iMac, Power Mac, Quartz, and Velocity Engine are trademarks of Apple Computer, Inc. Enterprise Objects, Enterprise Objects Framework, NeXT, Objective-C, and OpenStep are registered trademarks of NeXT Software, Inc., registered in the United States and other countries. Java and all Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States and other countries. Netscape Navigator is a trademark of Netscape Communications Corporation. OpenGL is a registered trademark of Silicon Graphics, Inc. PostScript is a trademark of Adobe Systems Incorporated. PowerPC is a trademark of International Business Machines Corporation, used under license therefrom. Simultaneously published in the United States and Canada Even though Apple has reviewed this manual, APPLE MAKES NO WARRANTY OR REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS MANUAL IS SOLD “AS IS,” AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE RISK AS TO ITS QUALITY AND ACCURACY. IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT OR INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages. THE WARRANTY AND REMEDIES SET FORTH ABOVE ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, EXPRESS OR IMPLIED. No Apple dealer, agent, or employee is authorized to make any modification, extension, or addition to this warranty. Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or consequential damages, so the above limitation or exclusion may not apply to you. This warranty gives you specific legal rights, and you may also have other rights which vary from state to state.3  Apple Computer, Inc. February 2001 目次 図、リスト、表目次 11 Chapter 1 本書について 15 本書の目的 15 その他の参考文献 17 インストールされているデベロッパ向けマニュアル 17 その他の出版物 18 BSDに関する情報 19 Webから入手できるその他の情報 19 Chapter 2 システムテクノロジー 21 ユーザ操作性 22 Aqua 23 Finder 24 アプリケーションのサポート 26 マルチユーザ 27 国際化 28 アプリケーションの拡張性 29 エクスポートされたアプリケーションサービス 30 ユーザ操作性を支えるそのほかの部分 30 Darwin 31 Mach 31 BSD 33 デバイスドライバのサポート 33 ネットワーキング機能拡張 33 ファイルシステム 34 Darwinとオープンソース開発 36 グラフィックスとイメージング 37 Quartz 37 QuickDraw 394  Apple Computer, Inc. February 2001 目 次 OpenGL 39 QuickTime 40 印刷 41 ATS(Apple Type Solution) 42 ネットワーキングとインターネット 42 メディアタイプ 43 標準プロトコル 44 レガシーネットワークサービスおよびレガシープロトコル 45 ルーティングとマルチホーミング 45 パーソナルファイルおよびWebサービス 46 先進的なハードウェア機能 46 USB 46 FireWire 47 Velocity Engine 47 AirMac 48 Chapter 3 システムアーキテクチャ 49 レイヤの視点から 50 アプリケーション環境 55 Carbon 56 Cocoa 58 Java 60 グラフィックスおよびウインドウ表示環境 62 Core Graphics Services 64 Core Graphics Rendering 65 印刷システム 67 印刷システムのユーザインタフェース 68 印刷アーキテクチャの概要 69 プリンタの発見 71 印刷プロセス 71 その他のアプリケーションサービス 72 Process Manager 72 Carbon Event Manager 73 アップルイベント 73 クリップボード 74 コアサービス 74目 次 5  Apple Computer, Inc. February 2001 Carbonマネージャ 75 Core Foundation 77 Open Transport 79 ユーザイベントの追跡 80 Chapter 4 起動とログイン 83 起動処理 83 BootROM 84 BootX 84 カーネルの初期化 85 システムの初期化 85 rc.bootおよびrcスクリプト 86 起動項目 86 ログイン手順 89 ユーザを認証する 90 ユーザ環境をセットアップする 90 FinderとDockを起動する 91 システムデーモン 92 ログアウトおよびシステム終了 95 カスタマイズのテクニック 97 起動動作のカスタマイズ 97 ログイン手順のカスタマイズ 99 Chapter 5 バンドル 103 バンドルを使用する利点 104 バンドルの解剖 105 Finderとバンドル 110 バンドルのタイプ 111 アプリケーションのメインバンドル 112 フレームワークバンドル 113 ロード可能バンドルとダイナミックリンク 113 ローカライズされたリソース 114 ローカライズされた文字セット 115 検索アルゴリズム 115 バンドルとResource Manager 1186  Apple Computer, Inc. February 2001 目 次 Chapter 6 アプリケーションのパッケージング 119 バンドルとしてのアプリケーション 120 アプリケーションのフレームワーク、ライブラリ、およびヘルパー 121 プライベートフレームワーク 122 共有フレームワークと中央ディレクトリ 123 その他の共有アプリケーションコード 124 アプリケーションとロード可能バンドル 125 アプリケーションに含まれるユーザリソース 127 アプリケーションのヘルプ 127 アプリケーションの環境設定 128 書類のリソース 129 Chapter 7 フレームワーク 131 ライブラリパッケージとしてのフレームワーク 132 フレームワークの内部構造 133 フレームワークの標準位置 135 ダイナミック共有ライブラリ 136 フレームワークのバージョン 139 メジャーバージョン 139 マイナーバージョン 141 バージョンの要約とガイドライン 142 Chapter 8 アンブレラフレームワーク 145 フレームワークの種類 146 アンブレラフレームワークの目的 147 リンクとインクルードのガイドライン 149 アンブレラフレームワークの構造 151 サブフレームワークリンクの制限 153目 次 7  Apple Computer, Inc. February 2001 Chapter 9 ファイルシステム 155 ファイルシステムの構成 155 ファイルシステムの各ドメイン 157 システムドメインとローカルドメイン 158 Classic環境のディレクトリ 160 ユーザドメイン 161 ネットワークドメイン 165 Libraryディレクトリ 166 Developerディレクトリ 168 ファイルシステムドメイン内での検索 170 HFS+とUFSの相違点 171 エイリアスとシンボリックリンク 172 リソースフォーク 173 ファイルエンコーディングとフォント 176 Chapter 10 Finder 179 Finderの役割 179 Finderとアプリケーションのインタフェース 181 情報プロパティリスト 181 Finderによって格納される情報 182 アプリケーション情報の収集 182 Desktop Folder 183 Finder属性 183 アプリケーションと書類の取り扱い 184 Finderとファイル操作 186 コピーおよび移動操作 186 エイリアスとシンボリックリンクの管理 1878  Apple Computer, Inc. February 2001 目 次 Chapter 11 ソフトウェアの設定 189 プロパティリスト 189 情報プロパティリスト 190 書類の設定 192 情報プロパティリストの例 192 標準キー 195 Finderキー 197 アプリケーションパッケージキー 199 起動サービスキー 201 環境設定 202 環境設定値の格納方法 203 環境設定ドメイン 204 defaultsユーティリティ 205 Chapter 12 国際化 207 アプリケーションを国際化する 208 言語環境設定とバンドルリソース 209 言語およびロケールの指定 211 国際化とローカリゼーションに使用するツール 213 ユーザインタフェースをローカライズする 215 文字列をローカライズする 216 stringsファイルを作成する 216 stringsファイルを生成する 219 マルチスクリプトサポートを追加する 220 Chapter 13 インストールと統合 223 ソフトウェアをMac OS X用に準備する 224 アプリケーションと書類に関するFAQ 224 アプリケーションにはどのようなメタデータを指定する必要がありますか? 224 CFM実行可能ファイルをバンドルにパッケージングする必要がありますか? 225 アプリケーションリソースはどのように格納したらよいでしょうか? 225 Mac OS Xではどのようにして書類のタイプを指定するのですか? 227 自作のプラグインを書類として扱うことは可能ですか? 228 Finderは書類をどのように取り扱うのですか? 228目 次 9  Apple Computer, Inc. February 2001 なぜ、いまさら拡張子が必要なのですか? 229 アプリケーションでは書類をどのように保存したらよいでしょうか? 229 CFM実行可能ファイル 230 ユーザインタフェースの問題点 233 アイコン 233 カスタムコントロールとシステムアピアランス 234 Carbon Nibファイル 234 オーナーシップとアクセス権 235 BSDアクセス権の概要 235 Mac OS Xでのファイルのアクセス権 238 アプリケーションや書類のアクセス権 239 Classic環境とアプリケーション 240 Classic環境の概要 240 ネイティブのMac OS 9との互換性 241 デバイスのサポート 242 Mac OS Xとの統合 243 ユーザインタフェース 243 Classic環境とファイルシステム 244 機能拡張と環境設定 245 Finderとデスクトップ 245 ネットワーキングと印刷 246 その他のClassic統合に関する問題点 247 アプリケーションをインストールする 247 インストール位置 247 手動インストール 248 インストーラ 249 インストールパッケージ 251 インストールパッケージを作成する 252 システム全体のリソース 25510  Apple Computer, Inc. February 2001 目 次 Chapter 14 マルチ環境の問題点とオプション 257 タスクとプロセス 257 スレッディングパッケージ 258 レイヤの詳細 260 使用方法のガイドライン 260 プロセス間通信 261 アップルイベントによる通信 262 単純な通知のブロードキャスト 263 CFMessagePortによる生データの転送 263 BSDソケットによる通信 264 BSDのパイプによる通信 264 BSDシグナルによる例外処理 265 共有メモリによる大規模リソースの共有 265 他のアプリケーションへのサービスの提供 266 分散オブジェクトによる他のプロセスの呼び出し 266 Machポートオブジェクトを使用したメッセージング 266 Library Managerと実行可能フォーマット 267 ランタイム環境の比較 268 CFMとdyld 268 PEFとMach-O 268 コード生成モデル 269 ベクタライブラリ 269 CFM実行可能ファイルと非Carbon API 270 CFMまたはdyldの使用 271 用語集 273 索引 28711  Apple Computer, Inc. February 2001 図、リスト、表目次 Chapter 2 システムテクノロジー 21 図2-1 Mac OS Xの機能の概要 22 図2-2 Aquaユーザインタフェース 23 表2-1 サポートされているローカルボリュームフォーマット 35 表2-2 サポートされているネットワークファイルプロトコル 36 表2-3 Quartzのグラフィックス―機能と仕様 37 表2-4 Mac OS X印刷システムの機能 41 表2-5 ネットワークメディアタイプ 43 表2-6 ネットワークプロトコル 44 Chapter 3 システムアーキテクチャ 49 図3-1 複数のレイヤから構成されるシステムソフトウェアとしてのMac OS X 51 図3-2 Java環境のアーキテクチャ 61 図3-3 Quartzと、グラフィックスおよびウインドウ表示環境 63 図3-4 Core Graphicsフレームワーク 64 図3-5 Core Graphics Renderingの入出力 66 図3-6 Mac OS Xの印刷システム 69 図3-7 Mac OS Xでのイベントの処理 81 表3-1 新しいCarbon版マネージャ 57 表3-2 コアサービスレイヤにあるCarbonマネージャ 75 表3-3 Core Foundationのサービス 78 Chapter 4 起動とログイン 83 図4-1 Process Viewerで表示されるプロセス 92 図4-2 「ログイン」システム環境設定の「ログインウインドウ」ペイン 100 表4-1 システムの起動項目 87 表4-2 一般的なシステムデーモンとサーバ 93 表4-3 StartupParameters.plistのキーと値のペア 98 表4-4 loginwindowパラメータ 10112  Apple Computer, Inc. February 2001 図 、 リ ス ト 、 表 目 次 Chapter 5 バンドル 103 図5-1 Finderのバンドルビット 111 図5-2 バンドルに含まれるリソースの検出 116 リスト5-1 最小のバンドル 106 リスト5-2 複雑なアプリケーションのバンドルレイアウト 108 Chapter 6 アプリケーションのパッケージング 119 リスト6-1 アプリケーションのプライベートフレームワークの位置 123 リスト6-2 アプリケーションの共有フレームワークの位置 124 リスト6-3 アプリケーションの共有コード(フレームワークでない)の位置 125 Chapter 7 フレームワーク 131 図7-1 フレームワークのディレクトリ構造 134 図7-2 ダイナミック共有ライブラリモジュールの「レイジーリンク」 138 表7-1 フレームワークバージョンの要約 143 Chapter 8 アンブレラフレームワーク 145 図8-1 アンブレラフレームワークとそのサブフレームワークの関係 148 リスト8-1 アンブレラフレームワークの構造 152図 、 リ ス ト 、 表 目 次 13  Apple Computer, Inc. February 2001 Chapter 9 ファイルシステム 155 図9-1 シンボリックリンクの脆弱性 172 図9-2 データフォーク中のリソース 175 リスト9-1 Mac OS Xファイルシステムの最上位レベル 156 リスト9-2 システムドメインとローカルドメインのディレクトリレイアウト 158 リスト9-3 単一パーティションへのインストール後のディレクトリレイアウト 161 リスト9-4 コンピュータのローカルユーザドメインのディレクトリレイアウト 162 リスト9-5 ローカルエリアネットワーク上のユーザホームディレクトリのディレクトリレイ アウト 164 リスト9-6 ネットワークドメインのディレクトリレイアウト 165 リスト9-7 Libraryディレクトリに表示される可能性のあるサブディレクトリ 166 リスト9-8 Developerディレクトリの内容 168 表9-1 システムドメインとローカルドメインのディレクトリ 159 表9-2 ティルデを使用したホームディレクトリ位置の指定 162 表9-3 ファイルシステムの各ドメインのProject Builderのmakefile変数 169 Chapter 11 ソフトウェアの設定 189 リスト11-1 SketchデモアプリケーションのInfo.plistファイル 193 リスト11-2 SketchデモアプリケーションのInfoPlist.stringsファイル 195 表11-1 Finderアプリケーションパッケージキー 200 表11-2 APFiles辞書のキー 200 表11-3 起動サービスキー 201 表11-4 環境設定ドメインの検索順序 204 Chapter 12 国際化 207 図12-1 システム環境設定の「地域情報」モジュールの「言語」ペイン 210 図12-2 Project BuilderのFile Reference Inspector 21414  Apple Computer, Inc. February 2001 図 、 リ ス ト 、 表 目 次 Chapter 13 インストールと統合 223 図13-1 Mac OS Xでサポートされているアプリケーションのタイプ 231 図13-2 Installerアプリケーション 250 図13-3 Package Makerのユーザインタフェース 254 Chapter 14 マルチ環境の問題点とオプション 257 図14-1 Mac OS Xのスレッディングパッケージ 259 図14-2 CarbonアプリケーションによるBSDシステムルーチンの呼び出し 270本書の目的 15  Apple Computer, Inc. February 2001 C H A P T E R 1 1 本書について Mac OS Xは、アップルコンピュータ社の最新のオペレーティングシステムであると同時に、何年 にもわたって経験したことのない衝撃をコンピュータシーンにもたらす革命的なオペレーティン グシステムです。Mac OS Xは、単にオペレーティングシステムの分野でのアップル社のリーダー シップを示すだけでなく、洗練された技術と巧みな設計においてもアップル社が業界をリードする 立場に戻ってきたことを示すものです。これまで定評のあったMac OSの使いやすさと雰囲気はそ のままに、Mac OS Xはこの上なく強力なモダンオペレーティングシステムとして、信頼性、安定 性、スケーラビリティ、そして驚異的なパフォーマンスを実現します。Mac OS Xは次世代の新た なイノベーションのための基盤です。 本書では、ソフトウェアデベロッパにMac OS Xの概要を示し、このオペレーティングシステムの 機能とアーキテクチャについて説明します。また、このプラットフォームに対応したソフトウェア を開発するデベロッパにとって興味深い、Mac OS Xの基本概念や取り決めについても説明します。 本書の目的 本書『Inside Mac OS X: System Overview』は、Mac OS X対応のソフトウェアを開発するすべての デベロッパ向けに書かれていますが、開発および運用のプラットフォームとしてのMac OS Xにつ いて知りたいとお考えの方にも貴重な情報源となります。読者のこれまでのソフトウェア開発経験 がMac OS、UNIX、Windows、あるいはその他のプラットフォームのいずれを対象にしていたかに 関係なく、本書は誰にとっても価値のある内容を含んでいます。 本書では、機能とアーキテクチャの両面からMac OS Xオペレーティングシステムについて説明 します。また、Carbon、Cocoa、Javaの、3つの主要な開発環境に共通する基本概念、サービス、 および取り決めについても説明します。本書は、特定のプログラミングインタフェースやアプリ ケーション環境に固有な詳細情報をできるだけさけ、「APIに立ちいらない」ようにします。16 本書の目的  Apple Computer, Inc. February 2001 C H A P T E R 1 本書について 本書は次の章から構成されています。 ■ システムテクノロジー:ユーザ操作性について説明し、さらに、Darwin と呼ばれるコアオペ レーティングシステム、グラフィックスおよびウインドウ表示システム、サポートされている ネットワーキングサービスとプロトコルなど、このオペレーティングシステムの機能の概要を 示します。 ■ システムアーキテクチャ:システムソフトウェアのさまざまなレイヤについて説明するほか、 Mac OS Xの設計に関する高度な解説を行います。また、イベントの取り扱いやプログラミング の一般的な問題にも言及します。 ■ 起動とログイン:Mac OS Xシステムが起動してユーザがシステムにログインするときに起こ る一連の動作について説明します。起動およびログインの手順をカスタマイズする方法も説 明します。 ■ バンドル:Mac OS Xのソフトウェアの基本パッケージングモデルであるバンドルについて説 明します。 ■ アプリケーションのパッケージング:アプリケーションバンドルの詳細と、バンドルによりさ まざまなリソースがどのようにパッケージされるかについて説明します。 ■ フレームワーク:バンドルのもう1つのタイプであるフレームワークについて説明します。 フレームワークは、ダイナミック共有ライブラリとそれらがサポートするリソースをパッ ケージングするために使用されます。 ■ アンブレラフレームワーク:アップル社から提供されるフレームワークをパッケージングす るための主要なモデルであるアンブレラフレームワークについて説明します。 ■ ファイルシステム:標準的なディレクトリ配置、リソースフォーク、主要な各ボリュームフォー マットの違いといった、ファイルシステムに関連するトピックを説明します。 ■ Finder:Finderとアプリケーションの間のインタフェースについて解説し、さらに、書類に対 するアプリケーションのオーナーシップの決定や、フォーマットが異なるボリューム間での ファイルのコピーなど、さまざまなタスクをどのように処理するかについても説明します。 ■ ソフトウェアの設定:アプリケーションやその他のバンドルを設定したり、ユーザ設定を処理 したりする基本的なメカニズムについて説明します。 ■ 国際化:アプリケーションのローカライズに対処する場合に必要となる準備、およびアプリ ケーションでマルチスクリプトのテキストを表示する方法について説明します。 ■ インストールと統合:書類とアプリケーションに関する主要なガイドラインを要約し、統合 について解説します。また、インストールのオプションとテクニックに関する概要も示します。 ■ マルチ環境の問題点とオプション:Mac OS Xのマルチアプリケーション環境とレイヤアーキ テクチャから発生するプログラミング上の問題点のいくつかを解説します。C H A P T E R 1 本書について その他の参考文献 17  Apple Computer, Inc. February 2001 その他の参考文献 本書はあくまでも出発点にすぎません。本書はMac OS Xの広野を概念的に定義しているだけの、 言わば地図のようなものです。本書が簡単に触れるか示唆することしかできなかった問題を詳し く調べるには、ほかの情報源に当たる必要があります。たとえば、バンドルの作成についての情 報を得るには、アップル社のデベロッパ向けツールのマニュアルを参照する必要があります。 このセクションでは、ソフトウェアデベロッパ向けにMac OS X情報の参照先を挙げています。 ただし、ここに挙げたものだけがすべてではありません。このリストは今後もアップル社によっ て拡充されていく予定です。 インストールされているデベロッパ向けマニュアル Mac OS XのDeveloperパッケージをインストールすると、デベロッパ向けのマニュアルが4つの 場所にインストールされます。 ■ フレームワーク:フレームワークに密接に関連する情報は、通常、フレームワークのローカラ イズされたサブディレクトリ内にインストールされます。このようにパッケージングされてい るため、フレームワークを別の場所に移動またはコピーすると、フレームワークとともにマ ニュアルも移動します。また、マニュアルのローカライズバージョンを作成する作業も容易に なります(ただし、現在サポートされているローカライズバージョンは英語版のみです)。 ■ 開発用アプリケーション:Project BuilderやInterface Builderなどのアプリケーションに関する ヘルプ情報は、それぞれのアプリケーションとともにインストールされます。「ヘルプ」メ ニューからヘルプ情報を選択すると、ヘルプビューアが自動的に起動して、ヘルプ情報が表示 されます。 ■ サンプルコード:Carbon、Cocoa、およびJavaといったMac OS Xの主要なアプリケーショ ン環境でよく使われるタスクを実行する方法を示すため、さまざまなサンプルプログラムが /Developer/Examplesディレクトリにインストールされています。 ■ フレームワークまたは開発アプリケーションに固有でない情報はすべて/Developer/ Documentationディレクトリにインストールされます。また、ここにはフレームワークのマ ニュアルへのシンボリックリンクも作成されます。18 その他の参考文献  Apple Computer, Inc. February 2001 C H A P T E R 1 本書について アップル社のデベロッパ向けマニュアルでは、ヘルプの表示とヘルプへのアクセスを提供するメカ ニズムとして、Appleヘルプ、特にヘルプビューアを使用しています。デベロッパ向けマニュアル の表示と検索を行うには、「Developer Help Center」というタイトルを持つ、ヘルプビューアの特 別なユーザインタフェースを使用します。Developer Help Centerにアクセスするには、以下の手 順に従ってください。 1. Finderの「Help」メニューから「Mac Help」を選択します。 ヘルプセンターという名の先頭のページが表示されます。このページから、ユーザマニュアル にアクセスできます。 2. ヘルプセンターの先頭(ホーム)ページにあるリンク、「Developer Center」をクリックします。 3. ヘルプセンターに戻るには、Developer Centerのホームページにある「Help Center」リンクを クリックします。 Developer Centerのホームページには、現在インストールされているブックへのリンクが一覧表 示されます。ヘルプビューアの動作は通常のブラウザに非常によく似ています。ただし、外部 URLへのリンクをクリックすると、通常使用しているWebブラウザが自動的に起動して、その URLを持つリソースがオープンします。 Developer Help Centerを使った検索の範囲は、ブックのセット内での現在の位置によって決まりま す。たとえば、「Core Foundation Reference」などの特定のブックを参照していて、「API symbol」 という用語を検索すると、まずそのブックのAppleヘルプの索引が検索対象となります。検索条件 に一致する用語またはシンボルが見つからない場合に、Developer Help Center内のすべてのブッ クが検索されます。一方、Developer Help Centerのホームページから検索を実行すると、Developer Help Centerに用意されているすべてのブックの索引が検索されます。 Developer Help Centerには、メインの開発アプリケーション、Project Builderとのリンク機能も あります。プロジェクトの索引の作成が済んでいれば、Project Builderの関数、定数、およびそ の他のAPIシンボルを検索することができます。検索結果一覧にある項目の横のブックアイコンを クリックすると、Project Builderにより、そのシンボルのAPIマニュアルがDeveloper Help Center に表示されます。また、Developer Help Centerのサンプルコードはクリップボードにコピーでき るので、後でソースコードにペーストすることができます。 その他の出版物 本書『Inside Mac OS X: System Overview』は、アップル社が出版を予定している『Inside Mac OS X』シリーズの最初の巻です。本書刊行時点で、アップル 社はパブリッシュオンデマン ドを Fatbrain.comに手配済みです。『Inside Mac OS X』シリーズ各巻は、刊行され次第、パブリッシュ オンデマンドを利用して入手できます。C H A P T E R 1 本書について その他の参考文献 19  Apple Computer, Inc. February 2001 書籍の『Inside Mac OS X』各巻を入手するには、Webブラウザを使って、www1.fatbrain.com/ documentation/appleにアクセスしてください。その後の操作は、画面の指示に従ってください。 BSDに関する情報 新しくMac OS Xに触れるデベロッパの多くは、Mac OS Xのカーネル環境の基本的な部分である BSDにも新しく接することになります。BSD(Berkeley Software Distributionの略)はUNIXの一 種です。BSDやUNIXについては、技術系の書店(または技術系のセクションがある書店)に行 けば、優れた参考書が何種類か見つかります。 WWW(World Wide Web)でBSDに関する情報を探してみるのも有効です。独自に無償版のBSDを リリースしているいくつかの組織のWebサイトには、マニュアル、FAQなどの情報があります。 ■ FreeBSDプロジェクト―http://www.FreeBSD.org ■ NetBSDプロジェクト―http://www.NetBSD.org ■ OpenBSDプロジェクト―http://www.OpenBSD.org 『Inside Mac OS X: The Kernel Environment』の参考文献表を参照してください。 Webから入手できるその他の情報 アップル社では、デベロッパがMac OS Xに関する一般情報および技術情報を参照するためのWeb サイトをいくつか公開しています。 ■ アップル製品情報(www.apple.co.jp/macosx):Mac OS Xに関する一般情報があります。 ■ Apple Developer Connection:デベロッパ向けマニュアル(developer.apple.com/ja/techpubs) の内容は、Mac OS Xと同時にインストールされるマニュアルと同じです。ただし、このサイト には常にマニュアルの最新版があります。また、Mac OS X以前の旧版のマニュアルも用意され ています。 ■ Apple Knowledge Base(kbase.info.apple.com):技術資料、チュートリアル、FAQ、テクニカ ルノート、およびその他の情報が用意されています。 ■ Apple Developer Connection―Mac OS X(developer.apple.com/ja/macosx):Mac OS Xに関す るSDK、リリースノート、製品情報、ニュースなどの情報があります。20 その他の参考文献  Apple Computer, Inc. February 2001 C H A P T E R 1 本書について21  Apple Computer, Inc. February 2001 C H A P T E R 2 2 システムテクノロジー Mac OS Xは、これまでのMacintoshオペレーティングシステムからの根本的な飛躍であると同時 に、その延長線上で自然と進化したものでもあります。Mac OS XはMacintoshの伝統である「使 いやすさ」を維持していますが、「使う楽しさ」にもこれまで以上に配慮して設計されています。 この次世代オペレーティングシステムはさまざまなテクノロジーが統合されたものです。その中 には斬新なテクノロジーが含まれると同時に、コンピュータ業界標準のテクノロジーも含まれて います。Mac OS Xは、モダンなコアオペレーティングシステムの堅牢な基盤の上に構築され、 メモリ保護やプリ エンプティブマルチタスクなどのさ まざまな利点をMacintoshコンピュー ティングにもたらします。Mac OS Xでは、半透明やドロップシャドウなどの視覚効果を使った 斬新なユーザインタフェースが実現されています。パーソナルコンピュータの世界にはかつてな かった、これらの斬新な視覚効果と鮮明なグラフィックスは、Mac OS Xのために特に開発され たグラフィックステクノロジーによって実現されています。 しかし、Mac OS Xの特徴は先進のコアと洗練された見た目だけではありません。複数のアプリ ケーション環境を持ち、ほとんどすべてのMacintoshアプリケーションをMac OS X上で実行する ことができます。また、さまざまなネットワークプロトコルとサービスをサポートしていること から、インターネットを有益に楽しく利用するための究極のプラットフォームともいえます。 さらに、複数のボリュームフォーマットをサポートし、すでに確立した規格や発展過程の規格に 準拠しているので、他のオペレーティングシステムとの間に高度な相互運用性を持ちます。 機能面から見て、Mac OS Xの最も重要なコンポーネントは次の4つです。 ■ Aqua:快適なユーザ操作性を支えるヒューマンインタフェースデザイン ■ Classic、Carbon、およびCocoaの各アプリケーション環境 ■ Quartzによって実装されているウインドウ表示システムとグラフィックスシステム (QuickTimeとOpenGLもサポート) ■ Darwin:オペレーティングシステムの先進的なコア22 ユーザ操作性  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー 図2-1に、これらのコンポーネントの大まかな依存関係を示します。この章では、これらを含む Mac OS Xのテクノロジーによって実現されるものについて説明します。 図2-1 Mac OS Xの機能の概要 ユーザ操作性 Mac OS Xのユーザ環境は、Macintoshユーザがこれまで慣れ親しんできたものに類似しています。 しかし、重要な違いや、大きな相違点もあります。Mac OS Xのユーザ環境は、ユーザインタフェー スの斬新な設計、インタフェースをローカライズするための新しいインフラストラクチャ、アプ リケーションの機能をダイナミックに追加する新しい方法、そして、他のアプリケーションのサー ビスにアクセスするための斬新かつ親しみやすいメカニズムによって特徴づけられます。 もちろん、このような新しいユーザ操作性は、オペレーティングシステムのコアを通して得られ る利点から引き出されます(「Darwin」(31ページ)を参照)。アプリケーションがクラッシュし ても安定した動作が継続します。今後は、1つのアプリケーションやタスクがプロセッシングリ ソースを独占することもなくなり、複数のアプリケーションを並行して実行できるようになり ます。 このセクションでは、Mac OS Xがもたらす操作性、およびユーザの作業を生産的で快適なもの にする機能とアプリケーションについて説明します。 Aqua アプリケーション環境� OpenGL Darwin Quartz QuickTimeC H A P T E R 2 システムテクノロジー ユーザ操作性 23  Apple Computer, Inc. February 2001 Aqua Mac OS Xの新しいグラフィカルユーザインタフェースであるAquaの設計に当たって、アップル社 はある目標を設定しました。使いやすいだけではなく、ユーザがこれまで見たことのあるどの Macintoshよりも魅力的なモダンオペレーティングシステムを作成しようというものです(図2-2参 照)。「aqua(ラテン語で水)」という名前が示しているように、Mac OS Xの透明感は水を思わせま す。Aquaの色、奥行き、明るさ、透明感、そして動作は、コンピュータに生命を与えます。ボタ ンは磨かれた青い宝石のような外観を備えており、アクティブボタンは浮き出して見えます。ウイ ンドウにはドロップシャドウにより奥行きが与えられ、最小化されると、まるでランプに吸い込ま れる魔人のようにDockアイコンに収まります。 図2-2 Aquaユーザインタフェース24 ユーザ操作性  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー Aquaの印象的な特性の1つはそのアイコンです。これまでのオペレーティングシステムでは、アイ コンのサイズには画面解像度の制約がありました。今日の画面サイズと解像度レベルの劇的な向上 に伴い、Aquaではこの制約が撤廃されました。最大で128×128ピクセルまで調整可能な、色鮮や かで写真画質に迫るアイコンを使うことができます。アイコンはこれまで以上に可読性が高いの で、書類のプレビューとして利用することも可能です。 また、画面領域の管理が改良されたことも、ユーザ操作性を向上させます。多くのオペレーティン グシステムでは、ウインドウが次々に表示されるので、ファイルシステムの階層が深いときや複数 のコントロールパネルを表示するときなど、画面全体に不要なウインドウがいくつも表示される、 という問題が生じます。Mac OS Xでは、アプリケーションの動作を単一のウインドウに集中する ことで、この問題を解決します。 Mac OS Xが書類のオープンや印刷などの一般的なアプリケーション操作をどのように取り扱う かを見れば、この新しいアプローチの特徴がよくわかります。これまで、オペレーティングシス テムが書類の印刷や保存を行うダイアログを表示する場合は、同時に開いている書類が複数ある 場合、そのダイアログがどの書類に対して処理を行うかはユーザが知っていなければなりません でした。これに対してMac OS Xで導入された新しいダイアログは書類に関連付けられているの で、関係が明確です。この新しいダイアログはウインドウタイトルの裏から滑り出すように表示 されます。半透明な表示により、あたかも書類の上に浮いているように見えます。また、これら のダイアログはモーダルではなくなったので、コンピュータを占有してユーザに即時の応答を強 要しません。このため、ダイアログを表示したまま他のタスクを続けることができます。従来は 同じアプリケーション内でさえ、実行中の操作を中断しなければなりませんでしたが、今後はそ のようなことはありません。 Aquaインタフェースは多くの点で、Macintoshのこれまでのユーザインタフェースを彷彿とさせま す。Mac OSは長年にわたり、その使いやすさによ って高い評価を得てきました。Aquaには、 Macintoshに期待される特徴と品質を備えたインタフェースが組み込まれています。システム内の ほとんどすべての機能で、「使いやすさ」は重要な特性として織り込まれています。 Aquaの視覚効果の多くは、アップル社が開発した2Dグラフィックスおよびウインドウ表示テクノ ロジー、Quartzによって実現されています。このテクノロジーの詳細については、「Quartz」(37 ページ)を参照してください。 Finder Aquaの操作性は、デスクトップと、ファイルシステム操作の主要なインタフェースであるFinderの 設計によるところが大きいといえます。Mac OS Xを使ったユーザは、この分野の2つの大きな革新、 つまりDockと、Finderによるファイルシステム構成要素の新しい表示方式に気付くでしょう。C H A P T E R 2 システムテクノロジー ユーザ操作性 25  Apple Computer, Inc. February 2001 Dockはデスクトップに不要なものが雑然と表示されるのを防ぎます。Dockとはスクリーン下部 にある領域で、ここには、フォルダ、アプリケーション、書類、記憶デバイス、最小化されたウ インドウ、QuickTimeムービー、Webサイトへのリンクなど、すぐにアクセスしたいほとんどす べてのものをコンパクトにまとめておくことができます。Dockに格納されているそれぞれの項 目はアイコンで示されます。これらのアイコンは、それが表現する項目に関する通知を行うこと があります。たとえば、メールのアイコンが、新しい未読のメッセージが届いていることをユー ザに知らせる場合です。画像を格納すると、Dockにはプレビューモードで表示されるので、 その度に画像を開かなくても内容が一目でわかります。また、動作中のアプリケーションを最小 化してDockに格納できるので、画面の下部を一目見るだけで、現在どんなアプリケーションが 動作しているかすぐにわかります。タスクを切り替えるには、使用したいアプリケーションまた は書類のアイコンをクリックするだけです。クリックしたものが新しいアクティブタスクになり ます。アイコンが何を表現しているかわからない場合は、マウスポインタをそのアイコンに重ね ると、アイコンに対応する書類、フォルダ、またはアプリケーションのタイトルが表示されます。 Dockには、置いておきたい項目をいくつでも入れられます。項目を追加するにつれ、Dockは画 面の端まで広がっていきます。Dockの長さが画面の幅いっぱいになると、追加された項目をすべ て表示できるように、Dock内のアイコンは縦横比を保持したまま縮小されます。ただし、縮小し たアイコンを読みやすくするため、Mac OS Xには拡大機能が用意されており、カーソルをアイコ ンの上に移動すると、ユーザがあらかじめ設定した大きさにアイコンが拡大表示されます。 Mac OS Xの新しいFinderは、1つのウインドウに収まる簡単なナビゲーションインタフェースで す。設定を変更できるツールバー上で、機能が一目でわかるコントロールをクリックすると、ホー ムディレクトリ、アプリケーション、書類、メール交換の相手など、コンピュータ上で最も頻繁 にアクセスする領域に即座に移動できます。Finderが表示する項目は、フォルダ、アプリケーショ ン、書類だけではありません。マウントされているネットワークボリューム、外部記憶デバイス、 CD-ROM、デジタルカメラなど、アクセスする頻度の高いその他の項目も表示されます。 それぞれのFinderウインドウには、Macintoshユーザが慣れ親しんでいるアイコン表示やリスト表 示に加えて、カラム表示と呼ばれる新しい表示モードを設定できます。このモードは階層の深い ファイルシステムを表示するときに便利です。フォルダをクリックすると、そのフォルダの内容が 右側のカラムに表示されます。また、カラム表示ではユーザのナビゲーションの履歴が保持される ので、その履歴をたどることによって、容易に元の場所に戻ることができます。 アイコン表示またはリスト表示でFinderの項目をダブルクリックしても、デフォルトではFinderは 新しいウインドウを表示しなくなりました。Finderは、単一のウインドウの中で、フォルダ表示を 切り替えていきます(ただし、以前の動作をデフォルトとして設定し直すこともできます)。ファ イルシステムを単一のウインドウでの表示に集中することで、不要なウインドウの増殖を防ぐとい う主要な設計目標の1つを達成しています。これがデフォルトの動作ですが、必要に応じて、ユー ザはいくつでもFinderウインドウを開くことができます。26 ユーザ操作性  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー アプリケーションのサポート ユーザ操作性の一部は、Mac OS Xのさまざまな構成要素間で行われる、ほぼ完全にシームレス な相互作用から生み出されます。どのオペレーティングシステムもそのように動作するべきなの ですが、この点でMac OS Xは特に優れています。Mac OS Xは、BSDからQuickTimeまで、さま ざまな歴史を持ち、またさまざまな規格や規約にもとづいた複数のテクノロジーから構成されて います。単一のMac OS Xシステムが、異なるフォーマットのボリュームのホストとなり、さま ざまなネットワークファイル共有プロトコルをサポートして、根本的に異なるAPIにもとづいた さまざまなアプリケーションを動作させることができます。このように多様で多彩なさまざまな テクノロジーを統一したことは、Mac OS Xが達成した他に類のない業績の1つです。 ユーザやデベロッパにまったく新しいオペレーティングシステムへの突然の切り替えを強いるの ではなく、Mac OS Xはそれ自体、段階的な移行のための足がかりとして設計されました。このこ とは特に、アプリケーションのライブラリとランタイムの領域に当てはまります。Mac OS Xでサ ポートされている3つのアプリケーション環境は、それぞれ特定のタイプのアプリケーションを実 行するために用意されています。 ■ Classic環境では、大部分のMac OS 9アプリケーションを実行できます。Classicは互換性を提 供する環境であるため、Darwinが提供するAquaや拡張コアアーキテクチャなど、Mac OS Xの 新機能はサポートされません。 ■ Carbon環境では、Mac OS X用にコードを最適化したすべてのMac OS 9アプリケーションを実 行することができます。コードを変換して新しいCarbon APIを使用することで、開発したア プリケーションは、メモリ保護やプリエンプティブマルチタスクなどのDarwinの機能を確実 に利用できます。 ■ Cocoa環境は、すぐれた次世代アプリケーションの開発に使用できる先進的なオブジェクト指 向プログラミング環境を提供します。 Mac OS Xでは、ほとんどのタイプのデータで、その一部をコピー(またはカット)して、別の環 境で実行されているアプリケーションにペーストすることができます。また、Finderオブジェク ト(およびそれが表現するデータ)をほとんどの環境間でドラッグできます。たとえば、Mac OS 拡張(HFS+)ボリュームに格納されているファイルをUFSボリュームにコピーするとき、必要 な変換操作はMac OS Xがすべて行います。C H A P T E R 2 システムテクノロジー ユーザ操作性 27  Apple Computer, Inc. February 2001 アプリケーションのパッケージングという新しい方法により、アプリケーションの複数の実行可 能ファイルを1つのディレクトリ内に共存させることが可能になります。ユーザからすると、この ディレクトリはダブルクリック可能な単一のファイルのように見え、実際、単一のファイルのよ うに動作します。このディレクトリには、実行可能ファイルが必要とする、画像、サウンド、ロー カライズされた文字列、プラグイン、プライベートライブラリ、共有ライブラリなどのリソース が含まれます。この方式を使用すると、Mac OS XとMac OS 9システムに同一のアプリケーション パッケージをインストールしても、ユーザはそのアプリケーションを起動して使用できます。 アプリケーションパッケージには、アプリケーションが複数のシステムで実行されるために必要 なものがすべて含まれるので、サーバ上でのアプリケーションのリモート実行、インターネット 経由でのアプリケーションの配布、簡略化されたインストールとアンインストールといった、 さまざまな先進的機能の実現がより容易になります。詳細については、「アプリケーションのパッ ケージング」(119ページ)を参照してください。 マルチユーザ Mac OS Xシステムでは、複数のユーザが1つのシステムを共有しつつ、それぞれ個人的にカスタマ イズされた環境で作業を行うことができます。それぞれのユーザは好みに応じて、デスクトップパ ターン、通常使用する言語、ブート時に自動的に起動するアプリケーション、およびそのほかさま ざまな設定を選択することができます。それぞれのユーザが自分のアカウントでログインする度 に、あらかじめ選択しておいた設定がすべて復元されます。 1人のユーザの環境は、多数のユーザ環境の1つにすぎません。別のユーザが同じコンピュータ にログインすると、自分のコンピューティング環境として定義したまったく異なる設定を使うこ とができます。Mac OS Xでは、1人のユーザのデータおよびアプリケーションと別のユーザの データおよびアプリケーションの間にセキュリティ境界が設けられます。それぞれのアカウント はパスワードで保護され、オーナーの許可がなければ、別のユーザのフォルダでは、アプリケー ションの実行や書類の編集はもちろん、書類を読むことすらできません。システムには、ユーザ のフォルダ(およびその内容)に対してデフォルトのパーミッションのセットが用意されていま す。それぞれのユーザはこの設定を変更して、他のユーザのアクセスを制限したり、幅広いアク セスを許可したりできます。28 ユーザ操作性  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー このようなシングル(ローカル)マシン/マルチユーザモデルよりもさらに強力なのは、マルチ マシン/マルチユーザモデル、つまりネットワークアカウントです。Mac OS Xは、NetInfoネッ トワーク管理システムを使って、これを実現しています。ユーザは、自宅のコンピュータ、ポー タブルコンピュータ、あるいは友人の家にあるコンピュータのMac OS XシステムがNetInfoネッ トワーク管理システムに接続されていれば、それを使って自分のアカウントでリモートサーバに ログインすることができます。ログインした後は、前回のログインに使用したマシンに関係なく、 前回ログアウトしたときとまったく同じ環境で作業を再開することができます。また、サイトが 適切に管理されていれば、そのサーバ上の情報はローカルに保持されているデータとまったく同 様に安全に保護されます。サーバ上のファイルが定期的にバックアップされていれば、データの セキュリティはさらに向上します。 Mac OS Xの環境設定システムは非常に柔軟なので、リモートアクセスに使用する環境設定とロー カルアクセスに使用する環境設定を自由に組み合わせることができます。これにより、ユーザと管 理者は、ユーザごと、マシンごと、そしてまたアプリケーションごとに環境設定のセットを指定で きるようになります。 国際化 Mac OS Xでは、ソフトウェアの国際化は容易です。しかも、複数の言語やそのバリエーションに 対応したローカリゼーションを単一のバイナリでサポートすることができます。また、ソフトウェ アデベロッパは、新しい言語やそのバリエーションに対応してローカライズされたリソースをダイ ナミックに追加できるようになります。 Mac OS Xには、世界中で使われているテキストシステムを取り扱える包括的なテクノロジーが 組み込まれています。このテキストシステムには、Unicode、インプットメソッド、および一般 的なテキスト処理サービスが用意されています。Mac OS Xでは、大部分のソフトウェアはバン ドルという形式で提供されます。アプリケーションも、バンドルの1つのタイプに過ぎません (「アプリケーションのサポート」(26ページ)を参照)。バンドルは、ファイルシステム内にあ る不透明なディレクトリで、1つまたは複数の実行可能ファイルと、それらとともに動作するリ ソースを含んでいます。バンドルの主要な利点の1つは、ソフトウェアをローカライズするため のインフラストラクチャを提供することです。ユーザから見ると、バンドルはダブルクリック可 能な単一のファイルオブジェクトとして表示され、フォルダからフォルダにドラッグすることが できます。C H A P T E R 2 システムテクノロジー ユーザ操作性 29  Apple Computer, Inc. February 2001 画像ファイルや文字列ファイルなどのローカライズされたリソース、およびMac OS 9形式のリソー ス(.rsrc)は、特定の言語やそのバリエーション(Canadian Frenchなど)に対応する名前を持っ たバンドルのサブディレクトリに格納することができます。適切に作成されたMac OS Xアプリ ケーション(またはプラグインや共有ライブラリ)では、それらのディレクトリにあるリソースを 直接参照しません。そのかわり、リソースが必要な時にアプリケーションは特殊なシステムルーチ ンを使い、言語環境に最適なローカリゼーションを取得します。 詳細については、「国際化」(207ページ)と「アプリケーションのパッケージング」(119ペー ジ)を参照してください。 アプリケーションの拡張性 プラグインは、デベロッパやユーザがアプリケーションにダイナミックに追加して機能を拡張す るためのコードとリソースを含んだモジュールです。Mac OS Xでは、まったく新しい一般化され たシステムアーキテクチャを使って、プラグインがサポートされています。ホストアプリケーショ ンのコードは構造化されているので、機能のうち明確に定義された部分は、外部プラグインを使っ て提供することができます。ホスト側では、プラグインの実装の詳細を意識する必要はありませ ん。起動されたアプリケーションは、プラグインアーキテクチャによって提供されるメカニズム を使って適切なプラグインを検出し、ロードすることができます。ユーザは、アプリケーション の実行中であっても、必要な場合にはいつでもプラグインを追加できます。また、アプリケーショ ンでは、ユーザがプラグインを削除するための手段も提供できます。 プラグインはユーザとデベロッパの両方に幅広い利点をもたらします。ユーザは必要に応じて、 アプリケーションの機能をカスタマイズできます。また、新しい機能やアップグレードされた機 能が(新しいプラグインまたは更新されたプラグインによってカプセル化されて)使用できるよ うになると、ユーザはそれらの機能をアプリケーションの中に文字通り「差し込む」ことができ るようになります。 アプリケーションデベロッパにとっても、プラグインはいくつかの利点を生み出します。単一の 標準的なプラグインアーキテクチャが提供されているので、デベロッパが独自のアーキテクチャ を設計して実装する必要がなくなりました。プラグインにより、機能の補強的かつ効率的な実装 が容易になるので、オリジナルコードに変更を加えることなく、アプリケーションのカスタム バージョンを作成することが可能になります。プラグインはそれぞれ独立したモジュールなの で、ソフトウェアに含まれるバグを特定して修正することも容易になります。また、サードパー ティのデベロッパがアプリケーションに付加価値を追加する際に、元のアプリケーションのデベ ロッパの協力は必ずしも必要ありません。 詳細については、Core Foundationのバンドルサービスおよびプラグインサービスに関する解説マ ニュアルやリファレンスマニュアルを参照してください。30 ユーザ操作性  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー エクスポートされたアプリケーションサービス Mac OS Xシステムで並行して実行されるアプリケーションは、それぞれ孤立している必要はあり ません。アプリケーションは他のアプリケーションにサービスを提供することができます。また 他のすべてのアプリケーションは必要な時に、いつでもそのサービスを利用することができます。 コピー&ペースト操作とドラッグ操作に加えて、Mac OS Xは、リソースと機能の共有を可能にす るため、スクリプティングと「サービス」メニューという2つのメカニズムをアプリケーション に提供します。 Mac OS 8やMac OS 9と同様に、Mac OS Xのスクリプティングでは、主要なスクリプティング言語 としてAppleScriptを採用し、またコミュニケーションモデルとしてアップルイベントを採用してい ます。AppleScriptコマンドを受信したときに適切に動作するように、アプリケーションの動作を プログラムすることができます。AppleScriptは、Classic互換環境だけでなく、すべてのアプリケー ション環境でサポートされます。したがって、ユーザは、異なる環境で実行される複数のアプリ ケーションのサービスを相互にリンクするスクリプトを書くことができます。 「サービス」メニューは、アプリケーションが自分の機能を他のアプリケーションに提供するもう 1つの手段を提供します。「クライアント」アプリケーションは提供されるものをあらかじめ知っ ている必要はありません。「サービス」メニューのしくみは単純です。ユーザは、アプリケーショ ン内でテキスト文字列、画像、またはフォルダやファイルを表すアイコンなどのデータを選択し ます。その後で、アプリケーション内で「サービス」メニューの一覧から適切なコマンドを選択 すると、選択したものを対象にコマンドが実行され、第2のアプリケーションが呼び出されます。 「サービス」機能はしばしば、一方のアプリケーションからコピーしたデータをもう一方のアプリ ケーションにペーストし、そこで編集を加えた後、再度コピーして元のアプリケーションに書き 戻すかのような動作をします。たとえば、ユーザがFinder内でフォルダを選択し、フォルダを圧 縮してアーカイブ形式で保存するサービスオプションを選択することが考えられます。この操作 の結果は、元のフォルダと同じ場所に書き戻すことができます。しかし、もちろん一方通行の動 作もあります。たとえば、ワードプロセッサ書類の中で名前を選択してサービスコマンドを選択 することにより、LDAPサーバを使ってその名前を検索し、電子メールアプリケーションを起動し て、検出した電子メールアドレスを宛先行に含んだ新規メールのウインドウを開くなどの場合が 考えられます。 ユーザ操作性を支えるそのほかの部分 Mac OSの以前のバージョンと同様、Mac OS Xの快適な操作性は、CD-ROMの入っている箱を開け るところから始まります。インストールは簡単です。セットアップアシスタントにより、ユーザは 短時間で、システムをローカルに、またはインターネットに接続した状態で動作させることがで きます。疑問があれば、Appleヘルプを使ってその答えを見つけることができます。C H A P T E R 2 システムテクノロジー Darwin 31  Apple Computer, Inc. February 2001 Mac OS Xでは、日常的なコンピュータの使用にインターネットが統合されます。インターネッ トへのアクセスは容易で、気に入ったWebサイトの場所を保存して、後でまたアクセスできるよ うにしておくことも簡単にできます。Sherlock 2では、ローカルファイルシステムだけでなく、 インターネットまたはイントラネットも検索範囲になります(索引を作成したコンテンツによる 検索を含む)。また、Mac OS Xには、代表的なインターネット標準にもとづく、強力で、しかも 驚くほど使いやすい電子メールアプリケーションが付属しています。 Darwin Mac OS Xの魅力的で使いやすいインタフェースの下層には、安定性、信頼性、およびパフォーマ ンスに優れた、堅牢な土台があります。それが、一般に「Darwin」と呼ばれるコアオペレーティ ングシステムです。Darwinは、www.apple.com/darwinから入手できるオープンソースです。 Darwinはいくつかのテクノロジーを統合したもので、特に重要なのは、Mach3.0、4.4BSD(Berkeley Software Distribution)にもとづいたオペレーティングシステムサービス、パフォーマンスに優れ たネットワーキング機能、および統合化された複数ファイルシステムのサポートです。Darwinの 設計は高度にモジュール化されているので、デバイスドライバ、ネットワーキング機能拡張、新し いファイルシステムなどのモジュールをダイナミックに追加することができます。 Darwinの詳細については、『Inside Mac OS X: Kernel Environment』を参照してください。 Mach MachはDarwinの心臓部に位置し、オペレーティングシステムにとって最も重要な機能のいくつ かを実行します。Machが提供する機能の多くは、言わば縁の下の力持ちで、アプリケーションは 特に意識せずにその利点を利用することができます。Machは、CPU使用率やメモリなどのプロ セッサリソースを管理し、スケジューリングを処理し、確実なメモリ保護を実現します。また、 ローカルおよびリモートでタイプなしプロセス間通信を実現するためのメッセージングによるイ ンフラストラクチャを実装しています。Machは、以下のような多くの重要なメリットをMacintosh コンピューティングにもたらします。32 Darwin  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー ■ メモリ保護:オペレーティングシステムの安定性を確保するには、実行中のすべてのアプリ ケーションが互いの(またはシステムの)アドレス空間にデータを書き込まないという性善 説を信じることはできません。このような前提を取ると、情報が失われたり、情報が壊れた りする可能性があるばかりか、システムが突然クラッシュしてしまうこともあります。Mach では、アプリケーションが別のアプリケーションのメモリやオペレーティングシステムのメ モリに書き込みを行うことはありません。アプリケーション同士またはアプリケーションと システムプロセスの間を互いに壁で仕切ることで、Machは、たった1つの不正な動作をする アプリケーションがシステムのほかの部分に悪影響を及ぼすことを事実上不可能にします。 また、とりわけ、アプリケーションがクラッシュしても、システムのほかの部分に影響しな いので、コンピュータを再起動する必要がありません。 ■ プリエンプティブマルチタスキング:モダンオペレーティングシステムでは、複数のプロセス がCPUを効率的に共有します。Machはコンピュータのプロセッサを監視してタスクの優先順 位を決定し、CPUの稼働レベルを最大にして、すべてのタスクが必要なリソースを確実に取得 できるようにします。Machはいくつかの条件を使用してタスクの重要度を判断し、別のタス クに切り替えるまでにどれだけの時間を目的のタスクに割り当てるかを決定します。別のプロ セスが処理時間を明け渡してくれるのを待つ必要はなくなります。 ■ 先進的な仮想メモリ:ほかの仮想メモリシステムと同様、Machも、タスクの仮想アドレスの 物理メモリへの変換を制御するアドレスマップを維持しています。通常、どの時点でも、 タスクの仮想アドレス空間に含まれているデータまたはコードの一部だけが物理メモリ内に あります。ページが必要になると、それらは記憶域から物理メモリにロードされます。さら にMachでは、メモリオブジェクトという抽象化により機能を強化しています。名前付きのメ モリオブジェクトにより、1つのタスクがメモリの範囲を(十分にローレベルで)マップした りアンマップしたりすること、またメモリの範囲を別のタスクに送ることが可能になります。 この機能は、同一のシステム上に複数の独立した実行環境を実装する上で非常に重要です。 Mac OS Xでは、仮想メモリが常時「オン」になります。 ■ リアルタイムのサポート:タイミングが重要な要因になるメディアアプリケーションがほと んど待ち時間なしにプロセッサリソースにアクセスできることを保証します。 また、Darwinでは、協調的マルチタスキングや、プリエンプティブおよび協調的スレッディング も可能です。C H A P T E R 2 システムテクノロジー Darwin 33  Apple Computer, Inc. February 2001 BSD Machには、BSDオペレーティングシステム(現在は4.4BSD)のカスタムバージョンが統合され ています。DarwinのBSD実装は、多くのPOSIX APIを含み、それをシステムのアプリケーション レイヤにエクスポートします。BSDはMac OS Xのファイルシステムおよびネットワーキング機 能の基盤として動作します。また、次のような、いくつかのプログラミングインタフェースと サービスも提供します。 ■ プロセスモデル(プロセスID、シグナルなど) ■ ユーザIDやパーミッションなどの基本的なセキュリティポリシー ■ スレッディングのサポート(POSIXスレッド) ■ BSDソケット デバイスドライバのサポート デバイスドライバのデベロッパに対して、DarwinはI/O Kitと呼ばれるオブジェクト指向のフレー ムワークを提供します。I/O KitはMac OS Xに対応したドライバの開発を促進するだけではなく、 それらのドライバが必要とする大部分のインフラストラクチャを提供します。I/O KitはC++の制 限されたサブセットで書かれています。一定の範囲のデバイスファミリをサポートするために設 計されたこのフレームワークは、モジュラー化されていると同時に拡張可能です。 I/O Kitを使って開発したデバイスドライバは、いくつかの重要な機能を容易に獲得します。 ■ 真のプラグ&プレイ ■ ダイナミックなデバイス管理(「ホットプラグ」) ■ 電力管理(デスクトップとポータブルの両方で) アップル社が開発したデバイスドライバの解説については、「先進的なハードウェア機能」(46 ページ)を参照してください。 ネットワーキング機能拡張 Darwinでは、カーネルデベロッパは、NKE(Network Kernel Extensions)と呼ばれる、オペレー ティングシステムにネットワーク機能を追加するための新しいテクノロジーを利用できます。NKE を使用すると、カーネルへのダイナミックなロードとカーネルからのダイナミックなアンロードが 可能なネットワーキングモジュールはもちろん、プロトコルスタックを丸ごと作成することもでき ます。また、NKEにより、プロトコルスタックの自動的な設定も可能になります。34 Darwin  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー NKEモジュールは、ネットワークトラフィックを監視して修正するための組み込み機能を持って います。OSI参照モデルのデータリンクレイヤとネットワークレイヤでは、これらのモジュール はネットワークインタフェースのステータスが変更されたときなどに発生する非同期イベントの 通知をデバイスドライバから受け取ることもできます。 NKEを使ったネットワーキング機能拡張の開発については、『Inside Mac OS X: Network Kernel Extensions』を参照してください。また、Darwinにネイティブで実装されているネットワーキング サービスとプロトコルの詳細については、「ネットワーキングとインターネット」(42ページ)を 参照してください。 ファイルシステム DarwinのファイルシステムコンポーネントはBSDへの拡張であり、拡張VFS(Virtual File System) 設計にもとづいています。VFSにより、複数のファイルシステムをスタックできる複数のレイヤ から構成されるアーキテクチャの構築が可能になります。ファイルシステムコンポーネントによ り、いくつかの新しい機能がもたらされます。 ■ リムーバブルメディアに対するパーミッション:この機能は、接続されている各リムーバブ ルデバイ ス(USBやFireWireデバイスを含 む)についてシス テムに登録され ているGUID (Globally Unique ID)にもとづいています。 ■ URLベースのボリュームマウント:AppleShareサーバやWebサーバなどを(Finderコマンドを 通して)マウントできるようにします。 ■ 統一バッファキャッシュ:バッファキャッシュは仮想メモリキャッシュに統合されました。 ■ ロングファイルネーム(255文字または755バイトでUTF-8にもとづく)。C H A P T E R 2 システムテクノロジー Darwin 35  Apple Computer, Inc. February 2001 複数のアプリケーション環境とさまざまなタイプのデバイスがサポートされているので、Mac OS Xでは、多数の標準ボリュームフォーマット上でファイルのデータを処理する必要がありま す。表2-1に、サポートされているフォーマットの一覧を示します。 HFSおよびHFS+ボリュームではエイリアスがサポートされ、UFSボリュームではシンボリック リンクがサポートされています(HFSおよびHFS+ボリュームではハードリンクをサポート)。 エイリアスとシンボリックリンクはともにファイルシステム内にあるファイルまたはディレク トリの簡易参照ですが、これらの意味はまったく異なります。両者の違いについては、「ファイ ルシステム」(155ページ)を参照してください。 表2-1 サポートされているローカルボリュームフォーマット Mac OS拡張 フォーマット HFS+(Hierarchical File System Plus)とも呼ばれます。これは、Mac OS Xの デフォルトのルートおよびブーティングフォーマットです。これはHFSの拡張 バージョンで、1つのファイルの最小サイズを小さくすることで、大容量ハー ドディスクの記憶容量を最適化します。またこれは、大部分のMac OS 8システ ムとMac OS 9システムの標準ボリュームフォーマットでもあります。 Mac OS標準 フォーマット HFS(Hierarchical File System)とも呼ばれます。これは、Mac OS 8.1よりも前の Mac OSシステムの標準フォーマットです。HFS(HFS+も同様)は、リソースと データをそれぞれ独立したファイルの「フォーク」に格納し、タイプやクリエー タコードなどのさまざまなファイル属性を使用します。 UFS 4.4BSD FFS(Fast File System)にもとづいた「フラット」な(つまりシングル フォークの)ディスクボリュームフォーマット。大部分のUNIXオペレーティン グシステムの標準ボリュームフォーマットと同様に、多くのサーバアプリケー ションが必要とするPOSIXファイルシステムセマンティックスをサポートし ます。 UDF DVDボリュームの汎用ディスクフォーマット。 ISO 9660 CD-ROMボリュームの標準フォーマット。36 Darwin  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー Mac OS Xでは、複数の異種システムを相互にリンクするネットワークで使用されることを想定し ているので、複数のネットワークファイルサーバプロトコルがサポートされています。表2-2に、 これらのプロトコルの一覧を示します。 いくつかのファイルシステム機能は、Mac OS X上のすべての書き込み可能ボリュームフォーマッ トで使用できます。 Darwinとオープンソース開発 アップル社は、進行中のソフトウェア戦略のキーとなる部分にオープンソース開発を初めて採用 した主要コンピュータ企業です。Open SourceテクノロジーであるDarwinはその戦略の中核を 担っています。Appleは、Darwinのほとんどすべてのコンポーネントのソースコードをデベロッ パコミュニティに公開しました。 Mac OS Xのカーネル環境はDarwinのサブセットです。このカーネル環境には、Darwinを構成する すべてのものが含まれていますが、BSDライブラリとコマンドのうちBSDコマンド環境に固有なも のは除かれます。カーネル環境の詳細については、『Inside Mac OS X: Kernel Environment』を参照 してください。 表2-2 サポートされているネットワークファイルプロトコル AFP クライアント AFP(Apple File Protocol)は、Mac OS 9システムで使用されている主要なファ イル共有プロトコルです(使用できるトランスポートはTCP/IPのみ)。 NFS クライアント Network File Systemと呼ばれる、UNIXの世界では主流になっているファイル共有 プロトコルです。C H A P T E R 2 システムテクノロジー グラフィックスとイメージング 37  Apple Computer, Inc. February 2001 グラフィックスとイメージング Mac OS Xは、現在使用できる最も強力なグラフィックステクノロジーであるQuartz、QuickTime、 およびOpenGLを組み合わせ、Macintoshのグラフィックス機能をデスクトップオペレーティング システムではかつて実現されたことのないレベルにまで引き上げます。Mac OS Xの2Dグラフィッ クスおよびイメージング機能はアップル社の新しいテクノロジー、Quartzにもとづいています。 このテクノロジーは、ウインドウサーバと基本的なローレベルサービス、および内部モデルとし てPDF(Portable Document Format)を使用するグラフィックスレンダリングライブラリを提供 します。この基盤の中には、新しい印刷アーキテクチャや、QuickDraw、QuickTimeなど、ほか のグラフィックスライブラリが統合されています。 Quartz Quartzは、鮮やかなイメージングモデル、オンザフライレンダリング、アンチエイリアシング、 およびPostScriptグラフィックスの合成を実現する強力な新グラフィックスシステムです。また、 QuartzはMac OS Xのウインドウ表示システムを実装しており、イベント処理やカーソル管理など のローレベルサービスを提供します。さらに、グラフィックスを再現するための内部モデルとし てPDFを使用するレンダリングおよび印刷の機能も用意されています。 表2-3に、Quartzのレンダリング機能およびそのほかの機能の概要を示します。 表2-3 Quartzのグラフィックス―機能と仕様 ビット深度 一般ユーザ向けの最小のビット深度は16ビットです。ただし、ゲームやそ のほかのマルチメディアアプリケーションでは、フルスクリーンモードで 8ビットカラーを使用することができます。 最小解像度 一般ユーザ向けの画面サイズの最小は1024×768ピクセルです。ただし、 ゲームやそのほかのマルチメディアアプリケーションでは、640×480およ び800×600の解像度も使用できます。 アンチエイリアシ ング すべてのグラフィックスとテキストにアンチエイリアシングが適用され ます。38 グラフィックスとイメージング  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー Quartzには、Core Graphics ServicesとCore Graphics Renderingという2つのコンポーネントが含 まれています。Core Graphics Servicesは、本質的に、システムのウインドウサーバで、すべての アプリケーション環境に対して、基本的なウインドウ表示サービスとイベントルーティングサー ビスを提供します。このサーバはパフォーマンスに優れており、レンダリングそのものを実行す るわけではなく、そのクライアントであるすべてのグラフィックスレンダリングライブラリ (Core Graphics RenderingやQuickDrawなど)に必須のサービスを提供します。Core Graphics Servicesには、デバイスに依存しない色深度とピクセル深度、リモートディスプレイ、レイヤによ る合成、および壊れたウインドウの自動修復を可能にするバッファウインドウなどの先進的な機 能があります。 QuartzのCore Graphics Renderingコンポーネントは、2次元図形用のグラフィックスレンダリン グライブラリです。このコンポーネントは、画面のレンダリング、PDFの生成、印刷プレビュー などのサービスに使用されます。Core Graphics Renderingでは、ベクタグラフィックスを表現す るための内部モデルとしてPDFを使用します。PDFを使用することには、良好なカラー管理や内 部的な圧縮、フォントに依存しないことなどの利点があります。Core Graphics Renderingでは、 柔軟であると同時に厳密な座標系(浮動小数点座標)を使っているので、ある程度デバイスへの 依存度を下げることが可能になります。 Core Graphics Renderingにより、以下のようないくつかの重要な機能が利用できます。 フレームバッファ へのアクセス グラフィックスアプリケーション(ゲームなど)がビデオフレームバッ ファへ直接アクセスすることを可能にするメカニズムが用意されてい ます。 Velocity Engine QuartzとQuickDrawは、Velocity Engineを利用して、パフォーマンスを飛 躍的に向上させます。 2Dグラフィックス アクセラレーション 現在QuickDrawで使用可能な2次元のグラフィックスアクセラレーショ ン改良版がサポートされています(現在のところ、アクセラレーション はシステムソフトウェアとClassicアプリケーションに限定されていま す。ほかのアプリケーションではDRAM内のBacking Storeに描画する必要 があります)。 ColorSyncカラー マネージメント Quartzでは、画面にデータを描画する際、ColorSyncを使ってピクセルデー タを管理します。このとき、ICCプロファイルに従うか、システムのモニ タプロファイルをカラースペースのソースとして適用します。ColorSync は、印刷の際にも呼び出されることがあります。 表2-3 Quartzのグラフィックス―機能と仕様C H A P T E R 2 システムテクノロジー グラフィックスとイメージング 39  Apple Computer, Inc. February 2001 ■ PDF自動生成とPDF形式での自動保存 ■ すべてのプリンタに適用できる一貫性のある機能セット ■ グラフィックスの自動的なオンスクリーンプレビュー ■ PDFデータのプリンタラスタデータまたはPostScriptへの変換 ■ 高品質な画面レンダリング ■ ColorSyncによるカラーマネージメント Quartzの詳細については、「システムアーキテクチャ」の章の「グラフィックスおよびウインド ウ表示環境」(62ページ)を参照してください。 QuickDraw CarbonデベロッパにとってQuickDrawは、2次元のグラフィカル図形、画像、およびテキストの構 築、処理、および表示を行うための主要なライブラリです。 QuickDrawには、コード がイ ンタフ ェー スを 通してCore Graphics Renderingラ イブ ラリに QuickDrawのイメージング命令を送信するためのしくみが用意されています。このインタフェー スにより、QuickDrawのコードがPDF生成、PostScript生成などのQuartzのグラフィックスおよ びイメージング機能を利用することができます。 OpenGL Mac OS Xには、3次元(3D)グラフィックスに対応したシステムAPIおよびライブラリとして、 アップル社により高度に最適化されたOpenGLの実装が組み込まれています。OpenGLは、ポータ ビリティの高い3Dグラフィックスアプリケーションを開発するための業界標準です。OpenGLは 今日最も広く採用されているグラフィックスAPI標準の1つです。このため、OpenGLに準拠して 書かれたコードはポータビリティが高く、一貫性の高い視覚効果が生成されます。OpenGLは、 特に、ゲーム、アニメーション、CAD/CAM、医用イメージングなど、2次元および3次元の図形 を視覚化する、機能豊富で堅牢なフレームワークを必要とするアプリケーションのために設計さ れています。Mac OS Xに採用されているOpenGLのバージョンは、常に高品質なグラフィカルイ メージを常に高度なパフォーマンスで生成します。40 グラフィックスとイメージング  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー OpenGLは、テクスチャマッピング、隠面消去処理、アルファブレンディング(透明度)、アンチ エイリアシング、ピクセル操作、変形の表示とモデリング、大気効果(霧、煙、もや)、およびそ のほかの特殊効果といった広範で強力なイメージング機能のセットを提供します。それぞれの OpenGLコマンドは描画動作を命令し、特殊効果を発生させます。また、デベロッパは効果を反 復させるため、これらのコマンドのリストを作成することができます。OpenGLは各オペレーティ ングシステムのウインドウ表示特性にはほとんど依存しませんが、OpenGLがオペレーティング システムのウインドウ表示環境で動作できるように、特殊な「グルー」ルーチンが実装されてい ます。 QuickTime Mac OS Xには最新版のQuickTimeが付属しています。QuickTimeは、ビデオ、サウンド、アニメー ション、グラフィックス、テキスト、音楽、それに360度のバーチャルリアリティの処理、拡張、 および格納を行う、強力なマルチメディアテクノロジーです。また、QuickTimeを使うと、データ ストリームがライブまたはファイルのどちらであっても、デジタルビデオのストリーミングが可能 になります。QuickTimeはクロスプラットフォームテクノロジーです。QuickTimeは、Mac OS Xだ けでなく、Mac OS 8、Mac OS 9、Windows 95、Windows 98、Windows NT、Windows 2000でも使 用できます。 QuickTimeは、PICT、BMP、GIF、JPEG、TIFF、PNGなど、あらゆる主要な画像ファイルフォー マットをサポートしています。また、AVI、AVR、DV、M-JPEG、MPEG-1、OpenDMLといった、 重要なビデオファイルフォーマットもすべてサポートしています。Webストリーミングについて は、HTTP、RTP、およびRTSPに対するサポートが用意されています。 QuickTimeのストリーミング機能で、ユーザは業界 標準のプロトコルであるRTP(Real-Time Transport Protocol)およびRTSP(Real-Time Streaming Protocol)を使って、ライブおよびビデ オオンデマンドのムービーを見ることができます。また、ストリーミングライブブロードキャス ト、あらかじめ録画されたムービー、およびその両方を混合したものも見られます。ブロード キャストは、ユニキャスト(1対1)またはマルチキャスト(1対多)のどちらでもかまいません。 QuickTimeプラグインにより、QuickTimeのデジタルビデオストリーミング 機能は、Internet Explorer、Netscape Navigator、America Onlineブラウザなど、一般に使用されているすべてのWeb ブラウザに拡張されます。プラグインでは、30を超えるメディアタイプがサポートされており、 インターネットメディアの80%以上を表示することができます。QuickTimeのWebストリーミン グ機能にはファストスタート機能も含まれます。これは、ムービーの先頭フレームをすぐに表示 し、ダウンロードの進行とともにムービーの再生を自動的に開始する機能です。さらに、ムービー の「ホットスポット」や自動的なWebページ表示といった、その他の先進的な機能も用意されて います。C H A P T E R 2 システムテクノロジー グラフィックスとイメージング 41  Apple Computer, Inc. February 2001 印刷 Mac OS Xの印刷システムはまったく新しいアーキテクチャにもとづいています。印刷サービス は、すべてのアプリケーション環境で使用可能です。印刷システムではQuartzの機能を利用して 一貫したヒューマンインタフェースを提供し、プリンタベンダの開発サイクルの短縮を可能にし ます。またこのシステムでは、アプリケーションは「仮想ページ」に描画して、これを印刷時に 物理ページにマップすることが可能になるので、描画ページと印刷ページとの関係を断ち切るこ とができます。アプリケーション側で「プリント」ダイアログのユーザインタフェースエレメン トを細かく制御することも可能です。表2-4に、その他のいくつかの機能を示します。 表2-4 Mac OS X印刷システムの機能 Print Center プリンタの検出、ジョブの送信、およびキューの管理を行う単一のイン タフェースを提供します。 ネイティブPDF PDFをネイティブのデータ型としてサポートします。必要に応じて、 アプリケーション(ただし、Classicアプリケーションを除く)はテキス トデータおよびグラフィカルデータを、デバイスに依存しないPDF形式 で簡単に保存できます。この機能は、標準の「プリント」ダイアログか ら提供されます。 PostScript印刷 PostScriptレベル1、2、および3互換のプリンタに印刷できます(Classic環 境を除く)。 ラスタプリンタ Classic以外のすべての環境でラスタプリンタに印刷できます。 印刷プレビュー Classic以外のすべての環境で印刷プレビュー機能を提供します。印刷シ ステムでは、PDF表示アプリケーションを起動することでこの機能を実 装しています。プレビューはColorSyncによるカラーマネージメントを受 けています。 印刷スプーリング 印刷ジョブのスピーディなスプーリングを可能にします。42 ネットワーキングとインターネット  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー ATS(Apple Type Solution) ATS(Apple Type Solution)は、システム全体にわたってフォントの管理、レイアウト、および レンダリングを行うエンジンです。ATSにより、ユーザはファイルシステム(あるいはネットワー ク上)のさまざまな部分に分散しているフォントから構成される単一のフォントセットを持つこ とができます。ATSでは、同一のフォントセットをすべてのクライアントで使用できます。フォ ントのレンダリングとレイアウトを一元管理することで、フォントの合成やグリフのレンダリン グといった不経済な操作の整理統合が可能になり、システムの全般的なパフォーマンスが向上し ます。ATSでは、TrueType、PostScript Type 1、PostScript OpenTypeなどの、バラエティに富ん だフォントフォーマットがサポートされています。 ネットワーキングとインターネット Mac OS Xは、相互に接続された世界でのコンピューティングに最適なプラットフォームの1つで す。Mac OS Xでは、業界標準の主要なメディアタイプ、プロトコル、およびサービスと、アップ ル社が提供する独自の革新的なサービスがサポートされています。 Mac OS XのネットワークプロトコルスタックはBSDにもとづいています。「ネットワーキング機能 拡張」(33ページ)で概説したNKE(Network Kernel Extension)によって提供される拡張可能な アーキテクチャにより、このスタックに追加可能な新規または既存のプロトコルを実装するモ ジュールの開発を容易に行うことができます。C H A P T E R 2 システムテクノロジー ネットワーキングとインターネット 43  Apple Computer, Inc. February 2001 メディアタイプ Mac OS Xでは、表2-5に示すネットワークメディアタイプがサポートされています。 表2-5 ネットワークメディアタイプ Ethernet 10/100Base-T すべての新型Macintoshに組み込まれているEthernetポートで使用されます。 Ethernet 1000Base-T ギガバイトEthernetとも呼ばれます。光ファイバケーブルおよび標準的な銅配 線を介したデータ転送に使用されます。 Jumbo Frame このEthernetフォーマットは、サーバ間のリンクに標準の1.5KBフレームでは なく、9KBフレームを使用するテクノロジーです。Jumbo Frameはネットワー クオーバーヘッドを低減し、サーバからサーバおよびサーバからアプリケー ションへのデータフローを増大させます。 シリアル モデム、DSL、およびISDN機能がサポートされています。 ワイヤレス 「AirMac」(48ページ)を参照してください。44 ネットワーキングとインターネット  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー 標準プロトコル Mac OS Xは、コンピュータ業界で標準になっているいくつかのプロトコルをサポートしています。 表2-6に、サポートしているプロトコルをまとめます。 表2-6 ネットワークプロトコル TCP/IPとUDP/IP Mac OS Xでは、ネットワーク層のIP(Internet Protocol)とともに動作するト ランスポート層プロトコルには、TCP(Transmission Control Protocol)とUDP (User Datagram Protocol)の2つを用意しています。 PPP ダイヤルアップ(モデム)アクセス用には、Mac OS XではPPP(Point-to-Point Protocol)が用意されています。PPPサポートには、TCP/IP、PAP、およびCHAP 認証の各プロトコルが含まれています。 PAP PAP(Printer Access Protocol)は、印刷ジョブのスプーリングとネットワーク プリンタへの印刷に使用されます。 HTTP HTTP(Hypertext Transport Protocol)は、Webサーバとブラウザ 間でのWeb ページの転送に使用される標準プロトコルです。 FTP FTP(File Transfer Protocol)はBSDの一部で、TCP/IPネットワーク上にあるコ ンピュータ間でのファイル移動に使用される標準的な手段です。 DNS DNS(Domain Name Services)は、ホスト名をIPアドレスにマップする標準的 なインターネットサービスです。 SLP SLP(Service Location Protocol)は、IPネットワーク上でリソース(プリンタ、 サーバ、ファックスマシンなど)を自動的に発見するために設計されたプロト コルです。 DHCPとBOOTP DHCP(Dynamic Host Configuration Protocol)とBOOTP(Bootstrap Protocol) は、特定のネットワーク内でのIPアドレス割り当てを自動化します。 LDAP LDAP(Lightweight Directory Access Protocol)は、ネットワーク内で企業、 個人、またはファイルやデバイスなどのリソースを検出できるようにするも のです。対象となるネットワークは、インターネットまたは企業内のイント ラネットのどちらでもかまいません。 NTP NTP(Network Time Protocol)はクライアントのクロックを同期させるために 使用されます。C H A P T E R 2 システムテクノロジー ネットワーキングとインターネット 45  Apple Computer, Inc. February 2001 また、いくつかのファイル共有プロトコルも実装されています。これらのプロトコルの概要につい ては、表2-2(36ページ)を参照してください。 レガシーネットワークサービスおよびレガシープロトコル Mac OS Xには、いくつかのレガシーネットワーク製品を組み込んでいます。これにより、現在こ れらの製品を使用しているMac OSユーザが、新しいオペレーティングシステムに移行しやすくな ります。 ■ AppleTalkは、Macintoshの標準ネットワークプロトコルスイートで、インターネットなどの 他のネットワークシステムと統合することができます。Mac OS Xには、従来のAppleTalk環境 およびAppleTalkソリューションとの互換性を維持するために必要な最小限のサポートが用 意されています。 ■ Open Transportは、I/Oシステムの一部として、業界標準の通信およびネットワーキングプロ トコルを実装しています。このため、デベロッパは、特定のネットワークに固有の通信方法 の詳細を考慮することなく、開発中のアプリケーションにネットワーキングサービスを組み 込むことができます。 ルーティングとマルチホーミング Mac OS Xは強力で使いやすいデスクトップオペレーティングシステムですが、強力なサーバソ リューションの基盤としても使用できます。小規模な社内ネットワークでは、ルータサービスが有 効な場合もあります。Mac OS Xには、こうした場合のためにIPルーティングサポートが用意され ています。IPルーティングを使用すると、Mac OS Xマシンをルータあるいはインターネットへの ゲートウェイとして動作させることができます。この機能の実装には、RIP(Routing Information Protocol)が使用されています。 また、Mac OS Xでは、マルチホーミングとIPエイリアシングが可能です。マルチホーミングを利 用する場合、ホストコンピュータはネットワーク上の複数のデータリンクに物理的に接続されま す。このときデータリンクは同一のネットワーク上にあっても異なるネットワーク上にあってもか まいません。IPエイリアシングにより、ネットワーク管理者は複数のIPアドレスを1つのネットワー クインタフェースに割り当てることができます。したがって、Mac OS Xを実行する1台のコン ピュータが、あたかも複数のサーバであるかのように動作して、複数のWebサイトを提供できるよ うになります。46 先進的なハードウェア機能  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー パーソナルファイルおよびWebサービス Mac OS 8およびMac OS 9にもあったパーソナルWeb共有機能を使うと、相手が使っているコン ピュータやブラウザのタイプに関係なく、イントラネット上で他のユーザと情報を共有すること が可能になります。この機能は、基本的に、ユーザが独自のイントラネットサイトをセットアッ プできるようにするものです。システムのHTTPサービスとしては、インターネット上で最もポ ピュラーなWebサーバであるApacheが統合されています。パーソナルWeb共有サーバが動作して いるホストコンピュータは、TCP/IPネットワークに接続されていなければなりません。 先進的なハードウェア機能 Mac OS Xには、標準に準拠したハードディスクと今日一般的に使用されているアドオンデバイス の大部分に対応したドライバが、工場出荷状態で付属しています。たとえば、IDEおよびSCSIディ スクドライブのサポートと、これらに対応したドライバが用意されています。また、幅広い機種 のAppleモニタもサポートされています。また、Mac OS Xには、デスクトップおよびポータブル システムの両方に対応した電力管理機能なども含まれています。 このセクションでは、Mac OS Xの先進的なハードウェア機能のいくつかについて説明します。 本書で紹介されているハードウェア関連の情報については、「メディアタイプ」(43ページ)、 「ファイルシステム」(34ページ)、および「ネットワーキング機能拡張」(33ページ)を参照し てください。また、ハードウェアサポートの詳細については、Mac OS Xに付属のインストール ガイドを参照してください。 USB USB(Universal Serial Bus)は、コンピュータと、オーディオプレーヤ、ジョイスティック、キー ボード、電話、スキャナ、プリンタなどのアドオンデバイスとの間の高速なプラグ&プレイイン タフェースです。USBでは、12メガビット/秒のデータ転送速度がサポートされています。USB の場合、コンピュータに新しいデバイスを追加するときに、アダプタカードを追加したりコン ピュータの電源をオフにしたりする必要がありません。Mac OS Xには、次のようなデバイスのク ラスに対応したUSBドライバが含まれています。 ■ 入力デバイス(HIDクラス) ■ プリンタC H A P T E R 2 システムテクノロジー 先進的なハードウェア機能 47  Apple Computer, Inc. February 2001 ■ モデムとその他の通信デバイス ■ 大容量ストレージ( Zipおよび Jazドライブや外部ハードディスクなど) ■ イメージング ■ ディスプレイ ■ オーディオ FireWire FireWireは、周辺機器用のIEEE 1394規格(高速シリアルバス)を実装したものです。FireWireを 使用すると、差し込むだけで使える1つのシリアル接続で最大63台までのデバイスを追加するこ とができます。最大で400メガビット/秒というデータ転送レートがサポートされているので、 FireWireは、デジタルカメラ、DVD、デジタルビデオテープ、デジタルビデオカメラ、ミュージッ クシンセサイザなどのデバイスに最適です。FireWireにより、ユーザはターミネータや複雑なセッ トアップ操作を必要とすることなく、複数のデバイスを簡単にチェーン接続することができます。 また、それぞれのデバイスは、コネクタを差し込むだけで、システムを再起動することなくすぐ に使用することができます。IEEE 1394はピアツーピアのインタフェースなので、2台のFireWire デバイスを、コンピュータに接続せずに直接接続することもできます。たとえば、2台のデジタ ルビデオカメラを使って、ビデオのダビングを行うことができます。 Velocity Engine Velocity Engineのサポートは、Mac OS Xのもう1つの重要な機能です。Velocity Engineは、3Dグ ラフィックイメージング、画像処理、ビデオ処理、オーディオ圧縮、ソフトウェアベースのセル テレフォニーなどの、データの並行処理を利用するアプリケーションのパフォーマンスを飛躍的 に向上させます。Quartz、QuickTime、およびQuickDrawはVelocity Engineに対応しました。 したがって、これらのAPIを使用するアプリケーションは、コードに変更を加えなくてもVelocity Engineを利用できるようになります。Mac OS X SDKにはVelocity EngineをサポートするC/C++ コンパイラが含まれているので、Velocity Engineのメリットをフルに活用する新しいアプリケー ションを作成することができます。48 先進的なハードウェア機能  Apple Computer, Inc. February 2001 C H A P T E R 2 システムテクノロジー AirMac AirMacは、アップル社のワイヤレスネットワークテクノロジーで、LAN上のコンピュータ同士や、 LANとインターネットの間での、高速で信頼性の高い通信を実現します。AirMacを使うと、たった 1つのインターネットサービスアカウントを利用して、同時に複数のユーザがネットワークに接続 し、Webサーフィン、電子メールへのアクセス、対戦ゲームのプレイ、ファイル交換などを行えま す。また、最大約45mまでの距離にあるAirMac対応の他のiBook、iMac、PowerBook、Power Mac G4との間で、ケーブルなしでファイル転送を行うことができます。 AirMacのワイヤレス通信データレートは、ベースステーション1台当たりに最大10ユーザが同時 接続する場合で、11メガビット/秒です。AirMacは世界共通のIEEE 802.11 DSSS(Direct Sequence Spread Spectrum)業界標準にもとづいているので、他の802.11対応機器と相互運用可能です。 また、AirMacは無線信号を使うので、障害物を透過して通信できます。49  Apple Computer, Inc. February 2001 C H A P T E R 3 3 システムアーキテクチャ Mac OS Xの設計段階でも最も重要な検討事項だったのは、まったく異なる歴史的背景を持ったさ まざまなテクノロジーをどのように統合し、1つに統合されたテクノロジーのセットをどのように して先進的なカーネル環境の上に配置するかという問題でした。この章では、このことを可能にし たアーキテクチャの一般的なアウトラインについて説明します。 Mac OS Xアーキテクチャの中心的特徴は、システムソフトウェアが複数のレイヤから構成されて いるということです。各レイヤは、直下のレイヤに依存しており、同時に直下のレイヤとの間にイ ンタフェースを持ちます(図3-1(51ページ)を参照)。Mac OS Xのシステムソフトウェアには、 明確に分かれた4つのレイヤがあります(依存関係順)。 ■ アプリケーション環境:Carbon、Cocoa、Java、Classic、およびBSDコマンドの、5つのアプ リケーション環境(実行環境)を内包します。デベロッパにとって最も重要なのは、これら の5つのうち最初の3つの環境です。Mac OS Xには、これらの環境に対応した開発ツールとラ ンタイムライブラリが用意されています。 詳細については、「アプリケーション環境」(55ページ)を参照してください。 ■ アプリケーションサービス:すべてのアプリケーション環境で使用できる、グラフィカル ユーザインタフェースに関係するシステムサービスが組み込まれています。必須のシステム マネージャのほかに、Quartz、QuickDraw、およびOpenGLが含まれます。 詳細については、「グラフィックスおよびウインドウ表示環境」(62ページ)と「その他のア プリケーションサービス」(72ページ)を参照してください。 ■ コアサービス:グラフィカルユーザインタフェースに影響を及ぼさないシステムサービスが 組み込まれています。Core Foundation、Open Transport、およびCarbonのコア部分が含ま れます。 詳細については、「コアサービス」(74ページ)を参照してください。50 レイヤの視点から  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ ■ カーネル環境:Mac OS Xの基盤となるレイヤです。このレイヤの主要なコンポーネントは MachとBSDですが、ネットワーキングプロトコルスタックとネットワーキングサービス、 ファイルシステム、およびデバイスドライバも含まれます。カーネル環境には、デバイスド ライバを開発するためのツール(I/O Kit)と、NKE(Network Kernel Extension)などのロー ド可能なカーネル機能拡張を開発するためのツールが用意されています。 詳細については、「レイヤの視点から」(50ページ)と『Inside Mac OS X: Kernel Environment』 を参照してください。 コアサービスおよびアプリケーションサービスの各レイヤと、CarbonおよびCocoaアプリケー ション環境は、アンブレラフレームワークにパッケージングされています(「アンブレラフレーム ワーク」(145ページ)を参照)。カーネル環境に含まれる多くのパブリックAPIは、/usr/include にあるヘッダを介してエクスポートされます。 この章の前半では、ここまでに概要を示したように、複数のレイヤから構成されるシステムソフ トウェアとしてMac OS Xのアーキテクチャを示します。スタティックな面から見たMac OS Xの解 説に続いて、ユーザイベントがシステムの中をどのような経路で処理されていくかという、動的 な側面について説明します。Mac OS Xの典型的なイベントは、ユーザがマウスやキーボードなど の入力デバイスを操作したときに発生します。そのデバイスに関連付けられているデバイスドラ イバは、I/O Kitを介してローレベルイベントを生成し、それをウインドウサーバのイベントキュー に格納して、そのことをウインドウサーバに通知します。ウインドウサーバは、このイベントを、 ターゲットプロセスの適切な実行ループポートに送り出します。そこでイベントはCarbon Event Managerにピックアップされ、そのアプリケーション環境に対応するイベント処理メカニズムに 転送されます。なお、イベントは、設定変更を含むネットワークパケットのように、非同期的な ものであってもかまいません。 レイヤの視点から 複雑なソフトウェアの全体像を見て取るのによく使われる方法は、ソフトウェアの各部分を複数 の「レイヤ」に分割することです。視覚的には、あるレイヤが別のレイヤの上に置かれ、最下層 には最も基礎になるレイヤが位置します。この種の図では、ソフトウェアの各レイヤ間の一般的 なインタフェースと依存関係が示されます。上位のレイヤは実際のアプリケーションコードに近 く、直下のレイヤに依存しています。中位のレイヤは、さらにその下にあるレイヤに依存してい ます。C H A P T E R 3 システムアーキテクチャ レイヤの視点から 51  Apple Computer, Inc. February 2001 Mac OS Xもこのような見方で捉えられます。図3-1に、ライブラリ、フレームワーク、およびサー ビスの各レイヤが相互に依存する形態を取っている、Mac OS Xシステムソフトウェアの一般的な 構造を示します。 図3-1 複数のレイヤから構成されるシステムソフトウェアとしてのMac OS X この図は、アーキテクチャ全体を明確にするためには役立ちますが、どうしても単純化しすぎてし まう危険があります。タイプの似た2つのアプリケーションを見ても、一方が使用するMac OS Xの サービスとサブシステム(およびその使用形態)は、もう一方のアプリケーションが使用するサー ビスおよびサブシステムとは大きく異なっていることがあります。各レベルでの依存関係とインタ フェースは、個別の要件と現実的条件に応じて、プログラムごとに異なる可能性があります。 では、このような注意事項を踏まえて、図示されている各レイヤを順に見ていきましょう。 図3-1の一番上の列に並んでいるボックスに、Mac OS Xのさまざまなアプリケーション環境(実 行環境)を示します。Mac OS Xには5つのアプリケーション環境があります。Classic環境とBSD 環境は、システムの基盤にある各レイヤとやり取りを行うという点で特徴的です。 ■ Classic「互換」環境は、ユーザがMac OS 8またはMac OS 9のアプリケーションを実行できる アプリケーション環境です。この図では、Classic環境はアプリケーションサービスの上に置 かれてはおらず、各レイヤと線で結ばれています。これは、Classic環境がMac OS Xに密に組 み込まれていることを示しています。デベロッパがMac OS X上でClassic環境用のコードをコ ンパイルすることはできません。別の言い方をすると、Mac OS Xシステムには、コンパイル 可能でCarbon対応でないMac OS 8またはMac OS 9のパブリックAPIは存在しません。Classic 環境の詳細については、「インストールと統合」の章の「Classic環境とアプリケーション」(240 ページ)を参照してください。 Carbon Cocoa BSD Java (JDK) Classic コアサービス� カーネル環境� アプリケーションサービス� QuickTime アプリケーション環境�52 レイヤの視点から  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ ■ BSDコマンド環境は、コマンドラインでBSDプログラムを実行するためのシェルを提供しま す。この環境では、標準的なBSDツール、ユーティリティ、およびスクリプトだけでなく、 自作やサードパーティ製のカスタムプログラムも使用することができます。図では、BSDコ マンド環境がカーネル環境レイヤに直接的に接続されています。なお、CocoaのFoundation フレームワークにもとづいたプログラムなど、非BSD環境にビルトインされているプログラ ムをコマンドラインで実行することもできます。 カーネル環境は/usr/libにあるSystemライブラリを介して、システムの上位レイヤにBSD サービスをエクスポートします(ヘッダは/usr/includeにあります)。デベロッパ用にはBSD コマンドも用意されていますが、インストールされたMac OS Xに常にBSDコマンドが含まれ ているとは限りません。BSD環境は特殊なオプション環境なので、本書ではこれ以上詳細な 説明は行いません。 Carbon、Cocoa、および Javaの3つが、Mac OS Xデベロッパの主要なアプリケーション環境です。 ■ Carbonは、Mac OS 9のAPIとライブラリをMac OS Xに適合させたものです。Carbonには、従来 のAPIの大部分(関数の70%)がそのまま引き継がれていますが、同時にMac OS X専用に開発 されたいくつかのAPIとサービスも含まれています。Carbonの詳細については、「Carbon」(56 ページ)を参照してください。 ■ Cocoaは、JavaおよびObjective-Cで書かれたアプリケーションを開発するための先進的なオブ ジェクト指向APIのコレクションです。Cocoaの詳細については、「Cocoa」(58ページ)を参 照してください。 ■ Java環境は、100% Pure Javaおよび混合APIのJavaアプリケーションやJavaアプレットを開発お よび運用するための環境です。このアプリケーション環境の概要については、「Java」(60ペー ジ)を参照してください。 Carbon、Cocoa、および Java環境を直接的に支えているのは、すべてのアプリケーション環境に サービスを提供するシステムソフトウェアの各レイヤです。これらのレイヤは上下に積み重ねら れ、上に行くほど幅が小さくなっていますが、これは、アプリケーションコードが下のレイヤに、 直接的に、つまり介在するレイヤなしにアクセスできることを示しています(ただし、アンブレラ フレームワークの外部とのリンクに関する注意事項については、「アンブレラフレームワーク」の 章の「サブフレームワークリンクの制限」(153ページ)を参照してください)。 最初のレイヤはアプリケ ーションサービスレイヤです。このレイヤには、主としてQuartzと QuickDrawによって実装されている、Mac OS Xのグラフィックスおよびウインドウ表示環境が含 まれています。この環境は、画面のレンダリング、印刷、イベント処理、およびウインドウやカー ソルのローレベル管理を担当します。また、このレイヤには、グラフィカルユーザインタフェース の実装に役立つライブラリ、フレームワーク、およびバックグラウンドサービスが含まれていま す。詳細については、「グラフィックスおよびウインドウ表示環境」(62ページ)と「その他の アプリケーションサービス」(72ページ)を参照してください。C H A P T E R 3 システムアーキテクチャ レイヤの視点から 53  Apple Computer, Inc. February 2001 QuickTimeは、アーキテクチャの立場から見ると、システムソフトウェアの複数のレイヤに及 ぶ、オペレーティングシステムの機能拡張です。QuickTimeは、グラフィックス環境とアプリ ケーション環境の両方に共通の機能を提供するインタラクティブマルチメディア環境です。 図3-1(51ページ)で、QuickTimeは、アプリケーションサービスとアプリケーション環境との 間の境界線をまたぐように示されています。QuickTimeは、動作するためにはホストアプリケー ション環境(またはブラウザ)を必要としますが、QuickTimeのマルチメディアコンポーネント は独自の洗練された機能を提供し、通常そのような機能はアプリケーション環境の中だけに見い 出されます。 アプリケーションサービスレイヤはコアサービスの上位に位置しています。コアサービスレイヤ には、直接的にはグラフィカルユーザインタフェースには属さない一般的なサービスが存在しま す。このレイヤでは、文字列、実行ループ、コレクションといったプログラムの基本的なアブス トラクションが特定の環境に依存しない形で実装されています。また、コアサービスには、プロ セス、スレッド、リソース、および仮想メモリの管理や、ファイルシステムとのやり取りに使用 するAPIが用意されています。コアサービスレイヤの詳細については、「コアサービス」(74ペー ジ)を参照してください。 カーネル環境はシステムソフトウェアの最下層で、コアサービスの直下に位置します。カーネル 環境は、以下に示すような、上位にある各レイヤに必須のオペレーティングシステム機能を提供 します。 ■ プリエンプティブマルチタスキング ■ メモリの保護およびダイナミックな割り当て機能を備えた先進的な仮想メモリ ■ 対称マルチプロセッシング ■ マルチユーザアクセス ■ VFS(Virtual File System)ベースのファイルシステム ■ デバイスドライバ ■ ネットワーキング ■ 基本スレッディングパッケージ Mac OS Xのカーネルは、ハイパフォーマンスを提供する、高度にモジュール化されたカーネルで、 デバイスドライバ、ネットワーキング機能拡張、およびファイルシステムのダイナミックローディ ングをサポートします。 カーネル環境は次に示す5つの主要コンポーネントから構成されています。54 レイヤの視点から  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ ■ Mach:タスク、スレッド、ポート、仮想アドレッシング、メモリ管理、およびタスク間通信 といった、基礎的なアブストラクションと実装を提供します。またMachは、オペレーティン グシステム内で、プロセッサの使用状況を管理し、スケジューリングの処理、およびメモリ保 護を実施する部分でもあります。さらにMachでは、オペレーティングシステムのその他の部 分に対して、タイミングサービス、同期プリミティブ、およびメッセージング指向のインフラ ストラクチャを提供します。 ■ BSD:Machのプリエンプティブマルチタスキング、メモリ保護、ダイナミックなメモリ割り 当て、および対称マルチプロセッシングをサポートするために、4.4BSDのバージョンが使用 されています。BSDはMac OS Xのネットワーキングシステムおよびファイルシステムの基盤 を形成します。また、プロセスの作成と管理、シグナル、システムの起動とシャットダウン、 ジェネリックなI/O操作、基本的なファイル操作、およびターミナルとその他のデバイスの処 理といった機能をサポートします。さらに、ユーザIDおよびグループIDと、それに関連して、 ファイルやその他のリソースに適用される、リソース制限やアクセスポリシーの機能を実装 します。BSDには多数のPOSIX APIが用意されています。 ■ デバイスドライバとI/O Kit:Mac OS XのデバイスドライバはI/O Kitで作成されます。I/O Kit は、オブジェクト指向のプログラミングモデル(C++の縮小版にもとづく)を提供して、 デバイスドライバの開発を効率化するフレームワークです。I/O Kitは、仮想メモリ、メモリ 保護、プリエンプティブマルチタスキングなどのオペレーティングシステムの基礎的な機能 を考慮に入れているので、自分でデバイスドライバを書くときに、コード内でこれらの機能 への対応を考慮する必要はありません。I/O Kitは、モジュール化され、再利用や拡張が可能 であるように設計されています。カーネル環境には、アップル社が開発したレディメイドの デバイスドライバが用意されています(「システムテクノロジー」(21ページ)を参照)。 ■ ネットワーキング:カーネル環境には、多数のネイティブなネットワーキングプロトコルお よび機能が実装されています。「システムテクノロジー」の章の「ネットワーキングとイン ターネット」(42ページ)を参照してください。Mac OS Xのネットワーキング機能とプロト コルスタックの一部は、NKE(Network Kernel Extension)として実装されています。これら は、ダイナミックに、つまりカーネルの再コンパイルと再リンクを必要とせずに、カーネル のネットワーキングインフラストラクチャを拡張します。C H A P T E R 3 システムアーキテクチャ アプリケーション環境 55  Apple Computer, Inc. February 2001 ■ ファイルシステム:カーネル環境では、Mac OS拡張(HFS+)、Mac OS標準(HFS)、UFS、 NFS、およびCD-ROMのISO 9660といった、多数の異なるファイルシステムとボリューム フォーマットがサポートされています。Mac OS拡張はデフォルトのファイルシステムで、 Mac OS Xは通常このファイルシステムから起動し、ルートをこのファイルシステム上に持ち ます。これは、カーネルがHFS+ボリューム上のファイルシステムを最初にマウントすると いうことです。デベロッパは、VFS(Virtual File System)インフラストラクチャを使うこと により、他のファイルシステムに対するサポートを追加したり、ファイルシステムの機能を 拡張したりする(たとえば、ファイルレベルでの圧縮機能の追加など)カーネル機能拡張を 書くことができます。VFSは、標準的な内部ファイルシステムインタフェースと、上のよう な機能拡張を構築するためのユーティリティをまとめたものです。サポートされている フォーマットの概要については、「システムテクノロジー」の章の「ファイルシステム」(34 ページ)を参照してください。 「システムテクノロジー」の章の「Darwinとオープンソース開発」(36ページ)で説明したよう に、カーネル環境は、アップル社のオープンソーステクノロジーであるDarwinのサブセットです。 Darwinは、Mac OS Xカーネル環境とBSDコマンド環境に必須のBSDコマンドおよびライブラリを 結合したものです。Mac OS Xカーネル環境と、そのDarwinとの関係については、『Inside Mac OS X: Kernel Environment』を参照してください。 Mac OS Xのカーネル環境、コアサービス、およびアプリケーションサービスレイヤは、アンブレ ラフレームワークとしてパッケージングされています。主要なMac OS Xアプリケーション環境で あるCarbonとCocoaもアンブレラフレームワークとしてパッケージングされています。このトピッ クの詳細については、「アンブレラフレームワーク」(145ページ)の章を参照してください。 アプリケーション環境 アプリケーション環境は、関連するAPIを使って開発したプログラムの実行時に必要となるフレー ムワーク、ライブラリ、およびサービス(関連するAPIを含む)から構成されます。アプリケーショ ン環境は、下位にあるすべてのシステムソフトウェアのレイヤに依存しています。 Mac OS Xには現在、Classic、BSDコマンド、Carbon、Cocoaおよび Javaという5つのアプリケー ション環境があります。このセクションでは、Carbon、Cocoa、および Javaアプリケーション環 境の概要について説明します。56 アプリケーション環境  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Carbon Carbonは、以前のMac OS APIに由来するプログラミングインタフェースのセットで、Mac OS X、 特にそのカーネル環境で正常に動作するように修正が加えられています。Carbonは既存のMac OSマネージャとAPIの大部分を引き継いでいます。特に、全関数のほぼ70%、通常のアプリケー ションで使用される関数のほぼ95%がCarbonに引き継がれています。 Carbon APIは非常に大規模かつ複雑なので、うまく要点を押さえた概要を示すことすら困難で す。ここでは、Carbonと以前のMac OSとの間の注目すべき大きな違いのいくつかを見てみま しょう。 メモリ:先進的な仮想メモリやメモリ保護などのカーネル環境の機能に適合させるため、多くの API、特にMemory Managerには、ゾーン、システムメモリ、および一時メモリの使用を制限または 廃止する変更が加えられました。たとえば、Mac OS Xでは、一時メモリはアプリケーションのア ドレス空間内に割り当てられます。システムヒープにアクセスする関数はなくなりましたが、共有 メモリと永続メモリを割り当てるための新しいルーチンが追加されています。また、Mac OS Xの 仮想メモリシステムでは、アドレッシングモデルにいくつかの変更が加えられています(このト ピックの詳細については『Inside Mac OS X: Kernel Environment』を参照してください)。 ハードウェアインタフェース:ADB Manager、Device Manager、Ethernetドライバなど、ハード ウェアへのローレベルアクセスに使用するMac OS 9のマネージャは、Mac OS Xには実装されてい ません。ハードウェアデバイスへのローレベルアクセスはすべて、I/O Kitによって提供される新し いデバイスドライバアーキテクチャを経由します。 リソース:Mac OS XにはROMが存在しないので、ROM内のリソースへのアクセスに関連する関数 はCarbonではサポートされません。また、Resource Managerでは、リソースマップへのアクセス に大幅な制限が加えられました。 新しいマネージャ:アップル社では、Mac OS Xに対応した新しいCarbonバージョンのPrinting ManagerとEvent Managerを開発しました。古いPrinting Managerはサポートされなくなるので、 デベロッパはCarbonのPrinting Managerを使用する必要があります。古いEvent Managerは今後 もサポートされますが、ぜひCarbon版のイベントモデルを採用してください。新しいイベント モデルはマルチタスキングが改善されており、アイドルイベントに使う時間をなくすことによっ て応答性も向上しています。C H A P T E R 3 システムアーキテクチャ アプリケーション環境 57  Apple Computer, Inc. February 2001 後継マネージャ:今後は、さまざまなCarbonテクノロジーが以前のライブラリに代わって使用さ れます(表3-1を参照)。 デベロッパは、上に示した変更点に従う必要があります。 一般的な変更:さまざまなマネージャに含まれる多くの関数が、Carbonでは変更または削除され ました(詳細については『Carbon Specification』を参照してください)。 ■ データ構造体:システムデータの整合性を保証し、プリエンプティブスレッドを介したすべ てのシステムサービスへのアクセスをサポートするために、Carbonはデータ構造体への直 接アクセスを制限しています。デレファレンス(dereference)される可能性のある構造体 へのポインタまたはハンドルを返す関数に代わり、Carbonではフィールドデータの取得と 設定を行うアクセッサ関数を提供しています。また、Carbonには、データ構造体の作成と 破棄を行う関数も用意されています。 ■ 定義プロシージャ:CarbonのWindow Manager、Menu Manager、Control Manager、および List Managerでは、標準およびカスタムの定義プロシージャ(WDEF、MDEF、CDEF、およ び LDEF)の作成と使用が現在も許可されていますが、それらは必ずPowerPCコードとして コンパイルする必要があります。また、これらのマネージャには、定義プロシージャの作成 とパッケージングを行うための新しいルーチンが用意されています。 ■ 68Kコード:Mac OS Xでは68Kコードはサポートされません(ただし、Classic環境は除く)。 このため、Trap Manager(およびトラップテーブル)、Mixed Mode Manager、および Patch Managerは、Carbonではまったく使用できないか、またはスコープに大幅な制限が加えられ ています。同じ理由から、ほかにも多くの関数がCarbonから削除されました。 表3-1 新しいCarbon版マネージャ 以前使用されていたもの 今後使用するもの AppleTalk Manager Open Transport PPC Toolbox アップルイベント 標準ファイルパッケージ ナビゲーションサービス QuickDraw 3D OpenGL Help Manager ヘルプビューア58 アプリケーション環境  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Mac OS Xの頻繁に使用される部分の多くは、Carbonマネージャか、またはCarbon APIで作成さ れたデーモン、アプリケーション、またはフレームワークです。たとえば、Mac OS Xでイベン トの処理やアプリケーションプロセスの管理を行うシステムプロセスはCarbonマネージャで、 コアサービスレイヤにあるマネージャの多くはCarbonベースです(「コアサービス」(74ページ) 参照)。また、FinderはCarbonアプリケーションです。 Carbonの詳細については、Carbon関係のドキュメントを集めたWebサイト (http://developer.apple.com/techpubs/carbon/carbon.html)にアクセスし、特に、Mac OS Xア プリケーションモデルへのコードの変換に関する情報を取り扱った『Carbon Porting Guide』と、 Carbonでサポートされているマネージャと関数の詳細を示した『Carbon Specification』を参照 してください。 Cocoa Cocoaアプリケーション環境は、Foundation(Foundation.framework)とApplication Kit (AppKit.framework)という2つのオブジェクト指向のフレームワークにもとづいています。 これらのフレームワークは、JavaおよびObjective-CのAPIを提供します(大部分のJavaクラスは、 自身に対応するObjective-C実装への「橋渡し」を行うだけです)。 FoundationとApplication Kitはいくつかの点で、それぞれコアサービスレイヤとアプリケーション サービスレイヤに似ています。Foundationフレームワークのクラスはユーザインタフェースに影 響を及ぼさないオブジェクトと機能を提供します。Foundationは直接的にCore Foundationにもと づいています。一方、Application Kitのクラスは、ウインドウやボタンなど、ユーザインタフェー スに表示される構成要素や、マウスクリックやキー入力に対する応答に関係するすべてのオブジェ クトと動作を備えています。Application KitはFoundationに直接依存しています。 Foundationフレームワークのクラスはいくつかのカテゴリーに分類されます。 ■ プログラム関係の基本的な型と操作に対するオブジェクトラッパー(または「ヘルパー」): 文字列、配列、ディクショナリ、数値、バイトスワッピング、パーシング、例外処理など ■ カーネル環境のエンティティとサービスに対するオブジェクトラッパー:タスク、ポート、 実行ループ、タイマ、スレッド、ロックなど ■ オブジェクト関連の機能:特に、メモリ管理(オートリリースプール)、リモート呼び出し、 アーカイブ、およびシリアライズ ■ ファイルシステムおよびI/O機能:URLの処理、ファイル検索、コードやローカライズされた リソースのダイナミックなロードなどC H A P T E R 3 システムアーキテクチャ アプリケーション環境 59  Apple Computer, Inc. February 2001 ■ その他のサービス:分散化された通知、アンドゥ(およびリドゥ)、データのフォーマット、 日付と時刻など 予想される通り、Application Kitのクラスの多くは、グラフィカルユーザインタフェースに表示さ れるオブジェクトの作成と管理を行うために設計されています。これらの中には、ウインドウ、 ダイアログ、ボタン、テーブル、テキストフィールド、スライダ、ポップアップメニュー、スク ロール表示、プルダウンメニュー、マウス、さらにQuickTimeストリーミングのムービー表示に 対応するクラスが存在します。 ただし、Application Kitには、ユーザインタフェースオブジェクトのクラスの単なるコレクション とは異なり、はるかに便利な機能が含まれています。 ■ イベント処理とアプリケーションおよびドキュメントの管理を行う洗練されたメカニズムが 用意されています。 ■ アプリケーションで、色、フォント、および印刷を統合して管理することができます。これら の機能に対応するダイアログも提供されます。 ■ 複数のグラフィックフォーマットの画像を合成でき、描画のためのフレームワークを提供し ます(ベクタ変形の適用を含む)。 ■ スペルチェック、ドラッグ操作、およびコピー&ペースト操作を容易にするしくみがあります。 このほかにも、スクリプティング、ネットワーク管理などの用途に使えるCocoaフレームワークが 用意されています。 Cocoaアンブレラフレームワーク(Cocoa.framework)はFoundationとApplication Kitの両方をイ ンポートします。アプリケーションを書いている場合は、Cocoaフレームワークにリンクします。 グラフィカルユーザインタフェースを持たないCocoaプログラム(バックグラウンドサーバなど) を書いている場合も、少なくともFoundationフレームワークにはリンクした方がよいでしょう。60 アプリケーション環境  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Java Javaアプリケーション環境では、Javaプログラム(100% Pure Javaのアプリケーションおよびア プレットを含む)をMac OS X上で開発して実行することができます。この環境は、業界標準、 つまりJava仮想マシン(VM)を含むJDK( Java Development Kit)の最近のバージョンに準拠し て実装されています。このため、この環境で作成したJavaアプリケーションは非常に高いポータ ビリティを持ちます。まったく異なるハードウェアとオペレーティングシステムを使用している コンピュータに単純にコピーするだけで、コピー先のシステムに互換性のあるバージョンの Java VMが含まれているかぎり、アプリケーションは正常に動作するはずです。 Javaアプレットは、 どんなインターネットブラウザでも正しく機能します。 Mac OS XのJavaアプリケーション環境は3つの主要なコンポーネントから構成されています。 ■ Javaコンパイラ(javac)、デバッガ(jdb)、およびjavap、javadoc、appletviewerなどのその 他のツールを含む開発環境。 この「コマンドライン」環境には、アップル社のTerminalアプリケーションなどのBSDシェ ルが必要です。アップル社では、この環境のフロントエンドとしてProject Builderアプリケー ションを提供しています。また、サードパーティから独自のフロントエンドが提供される可 能性もあります。いくつかのコマンドラインツールがJavaVM.framework/Commandsサブ ディレクトリに収められています(このディレクトリへのシンボリックリンクは/usr/binにあ ります)。 ■ Sun社のハイパフォーマンスJava仮想マシンHotspot、JIT(Just-in-time)バイトコードコン パイラ、および基本的なJavaパッケージから構成されるランタイム環境。 Java仮想 マシンは/System/Library/Frameworks/JavaVM.framework/Librariesにあります。 基本的なパッケージには、java.lang、java.util、java.io、およびjava.netが含まれています。 これらは、同じフレームワークのClassesフォルダ内にclasses.jarアーカイブとして保存され ています。 注意:Cocoaアプリケーション環境には、Application KitおよびFoundationフレームワークに 対応するJavaパッケージが含まれています。これらのパッケージにより、Javaを開発言語に使 用してCocoaアプリケーションを開発することができます。言うまでもなく、これらのパッ ケージのAPIとネイティブのJava APIは混在させることができます(AWTまたはSwing APIは除 く)。Cocoaアプリケーション環境の詳細については、「Cocoa」(58ページ)を参照してくだ さい。また、アップル社のJDirectやSun社のJNI(Java Native Interface)プログラミングイン タフェースを使用すると、Javaプログラムから、Carbonなど、ほかのフレームワークを呼び 出せるようになります。さらに、QuickTime for Javaを使って、Mac OSとWindowsプラット フォームに対応したマルチメディアJavaアプリケーションを書くこともできます。C H A P T E R 3 システムアーキテクチャ アプリケーション環境 61  Apple Computer, Inc. February 2001 ■ Javaアプリケーションの構築に必要なクラスを含んだアプリケーションフレームワーク。 これらのパッケージの中でも特に重要なのは、一般にAWT(Abstract Windowing Toolkit) およびSwingと呼ばれているjava.awtとjavax.swingです。AWTパッケージは、標準ユーザ インタフェースコンポーネント(ボタン、テキストフィールドなど)、基本的な描画機能、 レイアウトマネージャ、およびイベント処理メカニズムを実装しています。Swingパッケー ジは、ユーザインタフェースコンポーネントの大幅に拡張されたセットを提供します。これ らのコンポーネントは、ホストプラットフォームのルック&フィールを自動的に取り込みま す。Swingには、複数のバージョンの既存のAWTコンポーネントセットに加えて、ツリー ビュー、リストボックス、タブ付きペインといった、より上位のレベルのコンポーネント セットが含まれます。AWTおよびSwingパッケージは、JavaVM.framework/Classes/ classes.jarにjarアーカイブとして格納されています。 Javaアプリケーション環境のアーキテクチャは、図3-1(51ページ)に示した簡略化された図と はまったく異なり、はるかに複雑です。そこで、図3-2に、より現実に即したJava環境の概要を 示します。 図3-2 Java環境のアーキテクチャ Java コマンド環境� Swing AWT Carbon アプリケーションサービス� 基本的なJDKパッケージ (java.lang、 java.util、 java.io、 java.net)� Java仮想マシン(VM)� カーネル環境�62 グラフィックスおよびウインドウ表示環境  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Java仮想マシンと基本的なJava パッケージ(java.lang、java.util、およびjava.io)は、Carbonおよ びCocoa環境での、システムソフトウェアのコアサービスレイヤに相当します。これらは、カーネ ル環境のリソースを利用して、プロセス管理、スレッディング、および入出力などのローレベル サービスを実装しています。これらは、システムソフトウェアのコアサービスレイヤに含まれるコ ンポーネント(Open Transport、Core Foundationなど)にアクセスする必要はありません。 Mac OS X上のJavaのその他の部分はVMと基本的パッケージより上位のレイヤとして存在します。 Javaプログラムがユーザインタフェース(ツールやアプリケーションサーバなど)を持たない場合 も、プログラムの実行に必要なのはこの基盤だけです。しかし、100% Pure Javaのアプリケーショ ンまたはアプレット(定義から明らかなように、グラフィカルユーザインタフェースを持つ)で は、AWTまたはSwingを使用する必要があります。これらのパッケージは、両方ともシステムソフ トウェアのアプリケーションサービスレイヤに含まれる多くのフレームワークとライブラリをバ インドします。Swingそのものは、AWTパッケージのプリミティブな部分の上に存在します。AWT とSwingはともに、アーキテクチャ上、Carbonのヒューマンインタフェースツールボックスや Application KitのようなGUI指向のツールボックスまたはフレームワークに相当します。 Javaアプリケーションは、CarbonアプリケーションやCocoaアプリケーションと同様、ダブルク リック可能なバンドルとなることができます( Javaアプリケーションをバンドルするには MRJAppBuilderを使います)。また、コマンドラインから実行する必要のある実行可能ファイル や、システムのexecコールやJavaのRuntime.execメソッドから実行される実行可能ファイルに することもできます。後者の場合、実行可能ファイルを起動するのに使うJavaツール( java、 アプレットの場合はappletviewer)が、プロセス名として(Process Viewerなどの中で)表示さ れます。 グラフィックスおよびウインドウ表示環境 Mac OS Xの卓越したアプリケーションサービスは、グラフィックスおよびウインドウ表示環境の 作成も行います。アプリケーションは、その性質上、ウインドウをグラフィカルユーザインタフェー スに表示して、ユーザによるアプリケーションの操作を可能にする必要があります。グラフィック スおよびウインドウ表示環境が、これらの基本的な機能をいわば「無償」でアプリケーションに与 えるので、アプリケーション側でこれらの基本的な機能を実装する負担がなくなりました。画面上 のウインドウにテキストや画像をレンダリングする(およびそれらを印刷する)ほか、この環境 は、発生したイベントのルーティングやカーソル管理などの、アプリケーションに必須なローレベ ル機能を提供します。C H A P T E R 3 システムアーキテクチャ グラフィックスおよびウインドウ表示環境 63  Apple Computer, Inc. February 2001 Mac OS Xのグラフィックスおよびウインドウ表示環境の中核部分はQuartzと呼ばれます。図3-3に 示されているように、Quartzには、Core Graphics ServicesとCore Graphics Renderingの2つの部 分があります。 図3-3 Quartzと、グラフィックスおよびウインドウ表示環境 QuartzのCore Graphics Rendering部分は、グラフィックスレンダリングサービスを提供するグラ フィックスライブラリの1つで、2次元のテキストおよびグラフィックスを表示するために設計さ れています。同等のグラフィックスおよびマルチメディアライブラリには次のものがあります。 ■ 2次元画像のレンダリングに使用するQuickDraw ■ 2次元および3次元画像のレンダリングに使用するOpenGL ■ ストリーミングデジタルビデオおよびその他のマルチメディアのレンダリングに使用する QuickTime QuickTimeは、グラフィックス環境とアプリケーション環境の両方にまたがる機能を含んだ インタラクティブなマルチメディア環境です。QuickTimeはMac OS Xのアーキテクチャ内で はハイブリッドな立場にありますが、話を簡単にするために、このセクションではCore Graphics Rendering、QuickDraw、およびOpenGLと同等のグラフィックスライブラリとし て取り扱います。 レンダリングライブラリはすべて、Quartzのもう1つの部分であるCore Graphics Servicesレイヤと の間に直接依存関係を持ちます。ただし、QuickTimeとOpenGLは、独自のバージョンのウインド ウ表示機能を実装しているので、依存関係はかなり希薄です。 Core Graphics Servicesは、Mac OS Xウインドウサーバと、それが実装する(現在は未公開の) SPI(System Programming Interface)から構成されています。ウインドウサーバは、ウインドウ の構成、配置、および基本的な管理を含めたウインドウの表示を全般的に担当します。また、 ローレベルのカーソル管理やイベントルーティングも実行します。 Core Graphics Services (ウインドウサーバ)� Core Graphics Rendering (2D) QuickDraw (2D) OpenGL (3D) QuickTime (ストリーミング、� マルチメディア)� グラフィックスレンダリングライブラリ�64 グラフィックスおよびウインドウ表示環境  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Quartzは、Core Graphicsフレームワーク(CoreGraphics.framework)の大部分に実装されて います。図3-4に示すように、このフレームワークのダイナミック共有ライブラリには、クライ アントAPIが含まれています。サーバSPIは、ウインドウサーバ自身により実装されています。 アプリケーションまたはアプリケーション環境は、ライブラリ(Core Graphics Rendering)の クライアントサイドとリンクして、画面のレンダリング、PDF生成、およびその他のサービスを 実行します。サーバSPIへのアクセスはすべて、クライアントAPIにより仲介されます。 Cocoa環境とJava環境には、Core Graphics Renderingに対するそれぞれのプログラミングインタ フェースが用意されていて、それに加えてある程度他のレンダリングライブラリを提供していま す。Cocoaの インタフ ェースを 使ってもJavaのイ ンタフェー スを使っ てもかまい ませんし、 Application Servicesレイヤのプログラミングインタフェースを使うこともできます。 これ以降のセクションでは、グラフィックスおよびウインドウ表示環境内でのQuartzの役割につ いて説明します。QuickDraw、QuickTime、およびOpenGLのコンセプトについては、関連する アップル社のデベロッパ向けドキュメント(developer.apple.com)を参照してください。 図3-4 Core Graphicsフレームワーク Core Graphics Services Mac OS XのCore Graphics Servicesレイヤは、ウインドウサーバと、ウインドウサーバが依存す る(未公開の)システムプログラミングインタフェース(SPI)から構成されています。このレ イヤでは、基本的な画面表示、ウインドウの構成と管理、イベントルーティング、およびカーソ ル管理を担当します。 ウインドウサーバはシステム全体を対象とする単一のプロセスで、ローレベルのウインドウ表示動 作を調和させ、画面に表示されるものの基礎的な統一性を維持します。これは、レンダリングを行 うわけではなく、上位レイヤにあるクライアントのグラフィックスライブラリと通信するサーバで す。ウインドウサーバは描画モデルに関しては関知しません。 Core Graphics フレームワーク� クライアントAPI (レンダリング)� アプリケーションと� アプリケーション環境� ウインドウサーバ (サーバSPI)�C H A P T E R 3 システムアーキテクチャ グラフィックスおよびウインドウ表示環境 65  Apple Computer, Inc. February 2001 ウインドウサーバは、その他のシステムサービスおよびライブラリとの依存関係をほとんど持っ ていません。ウインドウサーバは、フレームバッファ、入力インフラストラクチャ、および入出 力デバイスとの通信を、カーネル環境のI/O Kit(特に、I/O Kitを使って構築されたデバイスドラ イバ)に依存します。また、ウインドウサーバは、基本的なプロセスのアクティブ化などのプロ セス管理サービスを得るために、コアサービスに含まれるいくつかのフレームワークとリンクし ます。 ウインドウサーバの主要な仕事の1つはウインドウの構成です。ウインドウサーバは、ウインドウ の描画や再描画が行われたり、ウインドウが他のウインドウによっておおい隠されたり、再表示さ れたりする度に、アプリケーションウインドウの各ピクセルの構成と再構成を繰り返します。ウイ ンドウは透明度(アルファチャネル)とアンチエイリアシングの両方の情報を含むビットマップと して表示されます。このビットマップはバッファに格納されるので、ウインドウサーバがアプリ ケーションのウインドウ内容を「記憶」して、アプリケーションの関与なしにそれを再構成するこ とが可能になります。ただし、Quartzでは、グラフィックスライブラリ(Quartz独自のCore Graphics Renderingなど)がウインドウやその他の画像の作成に使用したベクタ情報は保持されません。 Core Graphics Servicesコンポーネントでは、Quartzはウインドウ表示システムを複数のレイヤから 構成されるエンジンとしてモデル化します。従来のウインドウ表示システムは、画面上のあらゆる ピクセルが全体として1つのウインドウ(つまり、デスクトップ)に属する「スイッチ」モデルを 採用していました。このモデルを使用すると、画面の移行は不自然なものにならざるをえません。 たとえば、ウインドウをクローズすると、ウインドウは画面から突然消えます。一方、複数のレイ ヤから構成されるウインドウシステムは「ビデオミキサー」モデルにもとづいています。このモデ ルでは、画面上のあらゆるピクセル、特に、半透明とアンチエイリアシングの属性に関連するピク セルは、複数のウインドウの間でリアルタイムに共有されます。このモデルにより、グラフィカル ユーザインタフェースの状態をスムーズに移行できるようになりました。これは、Aquaの際立っ た特性の1つです。 イベント処理におけるウインドウサーバの役割については、「ユーザイベントの追跡」(80ページ) を参照してください。 Core Graphics Rendering QuartzのCore Graphics Renderingの部分は、ベクタフレーバーを含むグラフィックスライブラ リです。Core Graphics RenderingのAPIを使用すると、2次元空間に直線、図形、色、影、透明 度などのグラフィカルな属性を配置する一連のコマンドと数式を指定することで、テキストや画 像を作成することができます。個別のピクセルの属性を指定する必要はありません。その結果、 図形をビットマップとしてではなく、一連のパスおよび属性として効率的に定義できるようにな ります。66 グラフィックスおよびウインドウ表示環境  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ また、ベクタの使用により、Core Graphics Renderingはピクセルグリッドではなく、インチやセ ンチメートルなどの単位にもとづいて描画を行う座標系を使用することができます。この座標系 は柔軟で、さまざまな計測単位を使用することができます。また、この座標系は画面解像度に依 存しないので、画面表示に関してある程度の独立性を確保することができます。この座標系では 浮動小数点座標を使用します。Core Graphics Servicesによるウインドウの構成に先立って、Core Graphics Renderingは、この座標系を基準にして記述されている画像のベクタ情報をピクセル値 に変換します。 Core Graphics Renderingがベクタグラフィックスの表示に使用する内部モデルはPDF(Portable Document Format)です。PDFはAdobe PostScriptのスーパーセットで、カラー管理が厳密であ る、内部的に圧縮する、フォントに依存しない、および対話性といった点でPostScriptより優れ ています。ただし、PDFはPostScriptのように完全に独立した言語ではありません。PDFはプロ グラムとしてではなく、宣言として指定されます。その結果、PostScriptとは異なり、高度で不 経済な言語ランタイムを必要としません。 Core Graphics Renderingは、入力をPDFに変換し、さらにPDFをさまざまな出力フォーマットに変 換する一種の「ブラックボックス」と見なすことができます。図3-5にこれを示します。 図3-5 Core Graphics Renderingの入出力 Core Graphics Renderingの主要な入力は、QuickDrawとネイティブなCのAPIによって作成され る描画コマンドとステートメントです(将来は、フロントエンドのAPIがサポートされる可能性 もあります)。QuickDrawを使うアプリケーションはCGContextRefインタフェース経由でCore Graphics Renderingを呼び 出して、その機能を利 用するこ とができ ます。CGContextRefは、 QuickDrawのGrafPortインタフェースから取得することができます。 C API(ネイティブ)� QuickDraw PDF PostScript Core Graphics Rendering PDF スクリーン� レンダリング� ラスタデータ� 入力�C H A P T E R 3 システムアーキテクチャ 印刷システム 67  Apple Computer, Inc. February 2001 QuickDrawまたはネイティブのAPIからのコマンドとステートメントは、要求された出力フォー マットに即座に変換されます。そのフォーマットは、画面のレンダリングに使用するビットマップ データ、PostScript(PostScriptプリンタに使用する)、あるいはその他のタイプのプリンタに使用 するラスタデータのいずれでもかまいません。PDFは実際の見た目通りに表示することができるの で、この機能はそのまま印刷プレビューに利用できます。将来は、プロッタなどに対応したバック エンドコンバータがサポートされる可能性もあります。 これまでに指摘したように、Core Graphics Renderingは、Mac OS Xの印刷システムの基礎にあ るエンジンです。印刷は多くの場合、2パスの行程で実行されます。Core Graphics Rendering は、ネイティブのCまたはQuickDrawのAPIによって組み立てられたテキストや画像を解釈して、 これらをPDF形式(プライマリスプーリングフォーマット)で格納します。さらに、このPDFは 再度Core Graphics Renderingに供給され、適切な出力フォーマットに変換されます。 印刷システム Mac OS Xの印刷システムは、Macintoshユーザに柔軟かつ強力な新しい印刷環境を提供します。 新しい印刷システムは、平均的なユーザが簡単かつ直感的にプリンタを設定できるよう洗練され たユーザインタフェースを備えていますが、同時に、上級ユーザや管理者の要求を満たすために 必要な機能も備えています。印刷システムのモジュール化されたアーキテクチャには次のような 特徴があります。 ■ プリンタベンダが容易にMacintosh用ドライバを開発したり、印刷関連のダイアログを拡張し たりできる ■ PDFベースのレンダリングを使用し、安価なラスタプリンタを含めたすべてのプリンタにPDF の利点を提供する ■ アプリケーションが、「仮想ページ」に描画して印刷時にそれを「物理ページ」にマップする ことを可能にし、描画ページと印刷ページの間の関係を断ち切る ■ 非同期印刷をサポートしてジョブの完了を早める ■ システムの印刷関連のダイアログ内に表示されるユーザインタフェースエレメントを、アプ リケーションやプリンタドライバが個別に制御することを可能にし、標準の「プリント」ダ イアログまたは「ページ設定」ダイアログ全体をカスタムバージョンに置き換える必要性を なくす68 印刷システム  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ 新しい印刷システムの設計上、重要となるポイントは、Carbonアプリケーションの幅広いサポー トです。Carbon Printing ManagerはMac OS Xだけではなく、Mac OS 8および 9でもサポートさ れるので、Carbonアプリケーションにより両方の環境で思い通りに印刷を行うことができます。 たとえば、Mac OS 8および9で動作する場合、アプリケーションは従来のユーザインタフェース とドライバを利用します。一方、Mac OS X上では、一貫性が向上した新しい印刷システムの印 刷関連ダイアログのセットと柔軟な印刷アーキテクチャを自動的に利用します。 印刷システムのユーザインタフェース Mac OS Xの印刷システムのユーザインタフェースは一貫性があり使いやすい環境を提供し、ロー カルおよびネットワークプリンタの検出、新しいプリンタの設定、プリンタの選択、印刷ジョブ の管理といった印刷関連のタスクを容易にします。新しい印刷システムのヒューマンインタ フェースでは、ユーザは単純で日常的な印刷タスクも、複雑な、マルチドキュメント、マルチプ リンタの印刷タスクも行うことができます。 印刷システムのユーザインタフェースは次のコンポーネントから構成されています。 ■ Print Center:使用可能なプリンタの検出、選択、および設定を行って、それぞれのプリン タに関連付けられている印刷ジョブのステータスを判断できるようにします。 ■ 「ページ設定」ダイアログ:印刷する書類のフォーマットを指定できるようにします。 ■ 「プリント」ダイアログ:ユーザが印刷ジョブのパラメータを指定して、指定したプリンタで 書類を印刷できるようにします。 新しい印刷システムのインタフェースでは、Mac OS 8および9の印刷モデルに比べ、使いやすさ と安定性の両面でいくつかの重要な改良が加えられています。プリンタを取り扱うときにユーザ の混乱を招く最大の原因であったセレクタはPrint Centerに置き換えられました。Print Centerで は、従来のセレクタとデスクトップ印刷の機能の多くが単一の統合されたインタフェースにまと められています。セレクタとは異なり、Print CenterはFinderから独立した単体のアプリケーショ ンなので、Finderが印刷のインタフェースをサポートする必要がなくなりました。その結果、 コードが簡略化され、システムの安定性が向上しました。「ページ設定」および「プリント」ダ イアログはすべてのプリンタ用に標準化され、また同時に、サードパーティによるカスタマイズ を容易にするため拡張性も向上しました。C H A P T E R 3 システムアーキテクチャ 印刷システム 69  Apple Computer, Inc. February 2001 印刷アーキテクチャの概要 Mac OS Xの印刷アーキテクチャは9つのモジュールのセットから構成されています。概念的に、 これらのモジュールはクライアントのグループとサーバのグループに分けることができます。 これらのモジュールの4つ、つまりPrint Center(オプションでプリンタブラウザモジュールを含 む)とPrint Job Creator(オプションで印刷関連ダイアログの機能拡張を含む)がクライアント サイドのグループを構成します。これらのモジュールは、すべてのユーザインタフェースエレメ ントの表示、アプリケーションから受け取った生の描画コマンドの処理、プリントサーバへの印 刷データの送信を担当します。残り5つのモジュール、つまりQueue Manager、Job Manager(オ プションでコンバータを含む)、プリンタモジュール、およびI/Oモジュールが、印刷システム のサーババックエンドを構成します。これらのモジュールはローカルクライアントから印刷ジョ ブを受け取り、それらを出力先のプリンタに送信します。図3-6に、これらのモジュールの相互 関係を示します。 図3-6 Mac OS Xの印刷システム ユーザ� プリンタ� アプリケーション� ブラウザ� モジュール� Print Center Print Job Creator 印刷� ダイアログ� 機能拡張� Queue Manager Job Manager コンバータ� プリンタ� モジュール� I/O モジュール� プリンタ� ラスタ/� PostScript PDF = ジョブチケット� = 問い合わせとステータス� = 非同期ステータス�70 印刷システム  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ 次に、図3-6に示した各モジュールを簡単に説明します。 ■ Print Job Creator(PJC):アプリケーションが使用するCarbon Printing Manager APIを実装し ます。「プリント」および「ページ設定」ダイアログを表示し、アプリケーションから描画情 報を取得します。また、データをQueue Managerに渡して印刷を行います。 ■ 印刷関連ダイアログ機能拡張(PDE):「プリント」および「ページ設定」ダイアログを拡張 して、サードパーティが特定のプリンタをサポートするためのユーザインタフェース要素を 追加することを可能にします。PDEは、PDEによって提供されるカスタム設定を解釈して適 用するプリンタモジュールまたはアプリケーションとペアになって動作します。 ■ Print Center:ユーザがプリンタを検出して選択すること、また印刷ジョブのステータスを制 御したり取得したりすることを可能にします。 ■ プリンタブラウザモジュール(PBM):SCSIやFireWireなどのプリンタ接続方法をサポートす るUIを追加して、Print Centerを拡張します。PBMは、トランスポートのタイプのサポートを 実装するI/Oモジュールとペアになって動作します。 ■ Queue Manager:Print Job Creatorから受け取った印刷ジョブのキューイングを処理します。 Print Centerからの要求に応答して、キューに格納されている印刷ジョブのステータス情報を処 理してPrint Centerに送ります。また、エラーをPrint Centerにレポートします。 ■ Job Manager:1つの印刷ジョブを最終的な印刷出力に変換するために必要なさまざまなプロ セスを管理します。プリンタモジュールとI/Oモジュールのホストとして動作します。 ■ コンバータ:印刷ジョブのデータフォーマットを変換することでJob Managerを支援します。 たとえば、PDFをラスタに変換します。 ■ プリンタモジュール:プリンタに合わせてデータをフォーマットし(PostScript、PCLなど)、 プリンタのステータスやエラー状況を処理します。プリンタモジュールは、通常、特定のプ リンタまたはプリンタファミリーをサポートするためにプリンタのベンダによって作成さ れます。 ■ I/O モジュール:トランスポートのタイプに対する標準インタフェースを実装します。アッ プル社では、NetInfo、USB、TCP/IP、およびAppleTalkに対応するモジュールを提供してい ます。また、サードパーティでも、その他のトランスポートタイプをサポートするモジュー ルを作成することができます。 ■ ジョブチケット:ジョブの印刷を制御するために必要なユーザ設定をすべて含みます。ジョ ブチケットはPrint Job Creatorによって作成され、印刷プロセスの各段階でそれぞれのコン ポーネントによって更新されます。C H A P T E R 3 システムアーキテクチャ 印刷システム 71  Apple Computer, Inc. February 2001 プリンタの発見 Print Centerは、ユーザがプリンタを選択する前に、使用可能なプリンタの一覧を作成しておく必 要があります。印刷システムが使用可能なプリンタを検出するプロセスは「プリンタの発見」と呼 ばれます。 プリンタを発見する過程で、印刷システムは、/System/Library/Printersと/Library/Printersにイン ストールされているI/Oモジュールとプリンタブラウザモジュールをすべて列挙します。Queue Managerが、さまざまな接続タイプの文字列表現をプリンタブラウザモジュールから取得し、Print Centerに渡します。Print Centerはそれらの文字列を使って、接続を選択するポップアップメニュー を作成します。 ユーザが接続タイプを選択すると、Print Centerは/System/Library/Printersと/Library/Printersにイ ンストールされているすべてのプリンタモジュールを列挙し、各モジュールに、選択された接続タ イプをサポートしているかどうか問い合わせます。サポートしている場合は、Print Centerはモ ジュールのアイコンを取得し、また、モジュールの情報を参照します。プリンタブラウザモジュー ルはこの情報を、接続タイプをサポートしているプリンタを検索するときの検索条件として使用す ると同時に、ユーザインタフェースエレメントとして表示します。 ユーザが目的のプリンタをクリックして、それをプリンタの一覧に追加すると、Print Centerは選 択されたプリンタのアドレス、アイコン、およびプリンタモデル情報をプリンタブラウザモジュー ルから取得します。Print Centerは、この情報を使って、新しい印刷キューを作成し、プリンタを 一覧に追加します。 印刷プロセス 書類を印刷する前に、ユーザは「ページ設定」ダイアログを表示して、書類のフォーマットを定義 することができます。アプリケーションは、PJC(Print Job Creator)を呼び出して、このタスクを 実行します。PJCがホスティングしているオプションの印刷関連ダイアログ機能拡張(PDE)を使 用すると、「ページ設定」ダイアログを拡張して、カスタムページレイアウトなど、アプリケーショ ンの描画環境に固有のオプションを組み込むことができます。ページ設定が完了すると、ユーザは アプリケーションに印刷ジョブのパラメータを定義する「プリント」ダイアログの表示(ここでも PJCを使用する)を要求します。「ページ設定」ダイアログの場合と同様に、PDEの追加により、「プ リント」ダイアログにもアプリケーションまたはプリンタ固有のオプションを組み込むことができ ます。72 その他のアプリケーションサービス  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ ユーザが「プリント」ダイアログを閉じると、Print Job Creatorはアプリケーション(QuickDraw、 Core Graphics、またはPDFファイル)から描画コマンドを受け取り、そのデータを印刷パラメー タを記述したジョブチケットとともにQueue Managerに渡します。Queue Managerは、このデー タとジョブチケットをさらにJob Managerに渡し、Job Managerが、残りの印刷プロセスの管理を 担当します。ジョブがQueue Managerに送られると、そのジョブに関連するすべてのエラーが非 同期的にPrint Centerにレポートされます。 Job Managerでは、まずジョブチケットを参照して出力先のプリンタを判断し、そのプリンタに対 応するプリンタモジュールに問い合わせを行って、必要とされるデータフォーマットを特定しま す。Job Managerは必要に応じてコンバータを使用し、受信データを、出力先のプリンタモジュー ルが受け付けるフォーマットに変換します。Job Managerが変換したデータをプリンタモジュー ルに渡すと、プリンタモジュールは、受信したデータを、プリンタがデータのレンダリングに使 用する生のコマンドに変換します。最後にJob Managerがプリンタモジュールからプリンタ固有 のデータを受け取り、プリンタの接続タイプに対応したI/Oモジュールを使って、そのデータを プリンタに送信します。 その他のアプリケーションサービス アプリケーションサービスレイヤに含まれるその他のシステムサービスは、グラフィカルユーザ インタフェースに関係するオブジェクトや動作を供給することにより、すべてのアプリケーショ ン環境をサポートします。このセクションでは、それらのサービスの中で比較的重要なものを取 り上げます。Mac OS Xの進化に伴い、アプリケーションサービスレイヤの構成は変化する可能 性があります。アプリケーションサービスアンブレラフレームワーク (ApplicationServices.framework)のサブフレームワークをチェックして、その時点で何が含 まれているかを確認してください。 Process Manager Process ManagerはMac OS Xのすべてのプロセスを管理します。Process Managerは共有リソー スへのアクセスを制御し、アプリケーションのスケジューリングと実行を管理することで、複数 のアプリケーションがCPU時間やその他のリソースを共有することを可能にします。ユーザがア プリケーションまたは書類のアイコンをダブルクリックすると、FinderはProcess Managerを 使ってアプリケーションを起動します。また、Process Managerには、プロセスの実行、プロセ スの起動、およびプロセスに関する情報の取得を可能にするいくつかのルーチンが用意されてい ます。C H A P T E R 3 システムアーキテクチャ その他のアプリケーションサービス 73  Apple Computer, Inc. February 2001 Process Managerの関連情報については、「マルチ環境の問題点とオプション」の章の「タスクと プロセス」(257ページ)を参照してください。 Carbon Event Manager Carbon Event Managerは、イベントのタイプと送信先のアプリケーション環境にもとづいて、 そのイベントに最適なイベントハンドラにイベントを送信します。ウインドウサーバは、受信し たイベントをターゲットアプリケーションプロセスの実行ループポートに置きます。Carbon Event Managerでは、ポートからイベントを取得し、それを適切な形式にパッケージングして、 アプリケーションに固有のイベント処理構造(つまり、Carbon、Cocoa、またはJava)内のでき るかぎり下位にある「コンテナ」に渡します。このような処理を行うために、Carbon Event Managerは、どのウインドウが現在アクティブウインドウであるか、そのウインドウ内にキー ボードフォーカスがあるかどうかなどを頻繁に判断する必要があります。 Mac OS Xでのイベント処理の詳細については、「ユーザイベントの追跡」(80ページ)を参照して ください。 アップルイベント アップルイベントは、アプリケーションがそれ自身や、ローカルまたはリモートのコンピュータ 上で実行されている他のアプリケーションに送信できるハイレベルイベントです。アップルイベ ントはMac OS Xでのアプリケーション間通信の主要なメカニズムです。通常、アプリケーショ ンはアップルイベントを使って、サービスと情報を他のアプリケーションに対して要求したり、 他のアプリケーションの要求に応答してサービスと情報を提供したりします。 システムレベルのスクリプティング言語であるAppleScriptはアップルイベントに関連するテクノ ロジーで、これもMac OS Xの一部です。ユーザはAppleScriptを使って、アプリケーションにアッ プルイベントを送ることができます。 アップルイベントの詳細については、「マルチ環境の問題点とオプション」の章の「プロセス間 通信」(261ページ)を参照してください。74 コアサービス  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ クリップボード Mac OS Xのクリップボード(「ペーストボード」とも呼ばれます)は、アプリケーション間での データ転送を可能にするバックグラウンドサーバです。Mac OS 9のクリップボードに似ている点 もありますが、異なる点もあります。Mac OS Xのクリップボードは、同一のデータのさまざまな 表現を保持できます。また、実行中のすべてのアプリケーションによって共有され、ユーザがカッ トまたはコピーしたデータだけでなく、アプリケーションが別のアプリケーションに転送しようと しているその他のデータも保持します。さらに、コピー(カット)&ペースト操作で使用されるほ か、ドラッグ&ドロップ操作によるデータ転送メカニズムとしても使用されます。 コアサービス コアサービスレイヤには、アプリケーションのグラフィカルユーザインタフェースに影響を及ぼさ ないシステムサービスが含まれています。このレベルには、ローレベルサービスを提供するCarbon マネージャ、Core Foundation、およびOpen Transportが含まれています。コアサービスはコアサー ビスアンブレラフレームワーク(CoreServices.framework)に関連づけられています。このセク ションでは、このフレームワークのテクノロジーのうち、比較的重要なものについて説明し、それ 以外のもの(コアセキュリティサービスなど)は扱いません。C H A P T E R 3 システムアーキテクチャ コアサービス 75  Apple Computer, Inc. February 2001 Carbonマネージャ コアサービスには、すべてのアプリケーション環境にローレベルサービスを提供する、いくつか のCarbonマネージャが含まれています。これらのローレベルサービスには、協調的スレッディ ング、プリエンプティブスレッディング、リソース管理、メモリ管理、ファイルシステムの操作 などが含まれます。表3-2に、それらのマネージャを示します。 表3-2 コアサービスレイヤにあるCarbonマネージャ マネージャ 説明 Alias Manager エイリアスの使用により、指定されたファイル、ディレクトリ、またはボ リュームを見つけやすくします。ファイルシステムのエイリアスレコード の作成と解決に使うルーチンが用意されています。 Collection Manager 情報のコレクションの格納に使用する抽象データ型を提供します。 Component Manager アプリケーションがさまざまなソフトウェアオブジェクト(コンポーネ ント)を実行時に検出して使用できるようにします。また、アプリケー ションがコンポーネントを作成して管理できるようにします。 日付、時刻、単位関連 のユーティリティ アプリケーションが日付、時刻、地域、タイムゾーン、および計測単位に 関する情報を取得して処理できるようにします。 File Manager ハードディスク、CD-ROM、Zipディスクなどの物理ボリュームに格納さ れているファイルにアクセスする機能をプログラムに与えます。Mac OS 拡張(HFS+)、Mac OS標準(HFS)、UFS、NFS、およびその他のサポー トされているファイルフォーマットを扱います。File Managerのルーチン は、ファイルの作成、オープン、更新、保存、およびクローズを行います。 また、特定のファイルやディレクトリの検索、ファイルまたはディレクト リに関する情報の取得も行います。さらに、その他のファイル関連の操作 も実行します。File ManagerはUnicodeをサポートしており、File Manager のAPIはスレッドセーフです。 Folder Manager フォルダの検索、新しいフォルダの作成、およびフォルダ間でのファイ ルのルーティング方法の制御を、プログラムが行えるようにします。 ドメインに対する新しいサポートも用意されています。 メモリ管理関連の ユーティリティ メモリ環境のいくつかの側面を検査したり制御したりするときに役立つ 特別のルーチンを提供します。76 コアサービス  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Memory Manager アプリケーションの保護されたアドレス空間内における、メモリのダイナ ミックな割り当てを制御します。共有および永続メモリの割り当てを行う 新しいルーチンやMac OS Xの仮想メモリシステム関連の関数が用意され ています。 マルチプロセッシン グサービス プリエンプティブにスケジュールされた複数の独立したスレッドを、 プログラムが作成して管理することを可能にします。また、同期サービ スとアトミックな命令も用意されています。 Resource Manager リソースファイルの作成、削除、オープン、読み出し、変更、書き込み、 およびリソースファイルに関する情報の取得を行うルーチンを提供しま す。データフォークベースのリソースに対するサポートが用意されてい ます。 Text Encoding Conversion Manager アプリケーションがテキスト変換の実行に使用できる2つの機構、Text Encoding ConverterおよびUnicode Converterを提供します。 テキスト ユーティリティ 文字列のソートから単語の境界の検出まで、テキストを対象とするさまざ まな操作を実行するための統合化されたルーチンのセットを提供します。 Thread Manager 協調的にスケジュールされたスレッドをプログラムが作成して管理する ことを可能にします。 Time Manager 指定された時刻に1回だけまたは反復してルーチンを実行するようにスケ ジューリングを行う方法をプログラムに提供します。この時刻に関連する タスクを実行するメカニズムはハードウェアに依存しません。 Unicode ユーティリティ Unicodeテキストを対象に、Unicodeキーの変換を含めたさまざまな操作 を実行します。 表3-2 コアサービスレイヤにあるCarbonマネージャ マネージャ 説明C H A P T E R 3 システムアーキテクチャ コアサービス 77  Apple Computer, Inc. February 2001 Core Foundation Core Foundationは、アプリケーションサービス、アプリケーション環境、およびアプリケー ションそのものに役立つ基礎的なソフトウェアサービスを提供するフレームワーク (CoreFoundation.framework)です。Core Foundationを使用することで、異なる環境やレイヤ にあるフレームワーク、ライブラリ、およびアプリケーションの間でコードやデータを、より多 く共有できるようになるという利点があります。また、Core Foundationは、Unicode文字列を 介した国際化を容易にし、オペレーティングシステムに依存しないさまざまなアブストラクショ ンを提供します。 Core Foundationではopaque型のパラダイムを使用します。このデータ型を使用すると、それぞれ が独自のアイデンティティと値(または値のセット)を持つ「オブジェクト」を作成することがで きます。Core Foundationは、これらのオブジェクトが作成されるときにメモリを割り当てるため のメカニズムを提供します。また、ジェネリックなbase型と、データ型間の操作を容易にする複数 のデータ型に適用可能な関数も用意されています。 Core Foundationには、文字列、配列、ディクショナリ、日付、数値、ツリーなどのプログラム エンティティに対応したopaque型が含まれています。また、プラグインに適用されるアーキテ クチャ(および対応するAPI)や、コードとロケールに依存するリソースのダイナミックな検出 とロードに適用されるメカニズム(および対応するAPI)も備わっています。さらに、URL経由 でローカルおよびリモートのリソースにアクセスするサービス、分散化された通知センターを セットアップするサービス、XMLのプロパティリストを読み書きするサービス、XMLのパーシ ングを行うサービス、およびユーザまたはマシンごとに環境設定の書き込みと取得を行うサービ スも用意されています。78 コアサービス  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ 表3-3に、Core Foundationの各サービスと、それぞれに関連づけられているopaque型の一覧を示し ます。 表3-3 Core Foundationのサービス サービス データ型 説明 ベース サービス CFAllocator、base型 Core Foundation API全体で使用されるbase型と、複数 のデータ型に適用可能な関数を定義します。 文字列 サービス CFString、CFCharacter-Set 高速かつ効率的な文字列処理および文字列変換する すべての機能を提供します。文字列サービスはシーム レスなUnicodeサポートを提供するので、国際化が大 幅に簡略化されます。また、Carbonアプリケーショ ンとCocoaアプリケーションの間での文字列データ の共有を容易にします。 バンドル サービス CFBundle 画像、サウンド、ローカライズされた文字列、実行可 能コードなどの、さまざまなタイプのプログラムリ ソースを組織化したり検索したりするための適切な 手段を提供します。 プラグイン サービス CFPlugIn Mac OS Xアプリケーション(およびMac OS 9アプリ ケーション)に対応した標準的なプラグインアーキテ クチャを提供します。 コレクション サービス CFArray、 CFDictionary、 CFTree、CFSet、 CFBag 配列、辞書(結合した配列またはベクタ)、ツリーな どの一般的なデータ構造体のハイレベルアブスト ラクションを、それに関連する機能とともに提供し ます。 URLサービス CFURLCF、URLAccess ローカルまたはリモートで格納されているリソース にURL経由でアクセスする方法をプログラムに提供し ます。 プロパティ リスト サービス データを意味ある構造で転送、格納、アクセスする ことができ、なおかつ可能なかぎり効率的な方法で まとめる方法を提供します。プロパティリストAPIを 使用すると、基本的なデータ型の階層的に構造化さ れた組み合わせと標準XMLとの間で双方向の変換を 行うことができます。C H A P T E R 3 システムアーキテクチャ コアサービス 79  Apple Computer, Inc. February 2001 Open Transport Open Transportは、Mac OS Xに対応したユーザレベルのネットワーキングおよび通信ソフト ウェアです。Open Transportでは、アプリケーションは同時に複数のネットワーキングシステ ムを使用できるようになります(たとえば、ネットワークプリンタとの通信にはAppleTalkを使 用し、インターネットとの接続にはTCP/IPを使用する、など)。Open Transportを使用すると、 複数の異なるネットワーキング設定を保存および変更し、必要に応じて、それらを簡単に切り替 えることができます。 Mac OS Xに付属するOpen Transportのバージョンでは、Mac OS 8およびMac OS 9で最も一般的 に使用されていたインタフェースがサポートされています。たとえば、IPプロトコルに対する Open Transportエンドポイントルーチンがサポートされています。ただし、コネクション指向 でトランザクションベースのエンドポイント機能は用意されていません(これは、ASPなどの AppleTalkプロトコルのユーザにのみ影響を与えます)。また、ネイティブXTI(X/Open Transport Interface)インタフェースやBSDのストリームインタフェースもサポートされていません。 環境設定 サービス CFPreference プログラムがユーザ設定を格納および検索できるよ うにします。詳細については、「ソフトウェアの設定」 の章の「環境設定」(202ページ)を参照してください。 XMLパーサ CFXMLParser XML書類からデータの読み取りと抽出を行う、非検 証XMLパーサを提供します。 通知サービス CFNotificationCenter 分散化された通知、つまり、あるプロセスが同じマ シン上にある他のプロセスにメッセージ(通知)を 送信できるようにするメカニズムを実装します。 実行ループ サービス CFSocket、CFRunLoop (および同類のデータ型) ローレベルのイベント処理および送信サービスを提 供します。 ユーティリ ティサービス CFDate、CFTimeZone、 CFNumber、CFUUID、 CFByteOrder 日付と時刻の計算と表示、数値の「オブジェクト」 ラッピング、バイトスワッピング、UUID生成などの さまざまなサービスを提供します。 表3-3 Core Foundationのサービス サービス データ型 説明80 ユーザイベントの追跡  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ Open Transportの以前のバージョンとの重要な違いは、いくつかの関数にクライアントコンテキス トパラメータが追加されたことです。これにより、Open Transportの各クライアントは独自のコン テキストを持てるようになり、その結果、Open Transportは、割り当てたリソースをクライアント に代わって追跡できるようになります。この場合のクライアントとは、アプリケーションまたは共 有ライブラリのことで、リソースとは、エンドポイント、タイマータスク、メモリのブロックなど のオブジェクトのことです。 ユーザイベントの追跡 図3-1(51ページ)に示されている、システムソフトウェアのレイヤの視点から見たMac OS Xの 図は、システムの各部分相互の間の一般的なインタフェースと依存関係を視覚化する上では十分 なものです。しかしこの図は、オペレーティングシステムのダイナミズム、言い換えれば、Mac OS Xが通常どのように動作しているかを十分には伝えていません。こうしたMac OS Xのスタ ティックな見方を補足する意味で、このセクションでは、架空のユーザイベントを、マウスクリッ クによるイベントの発生から、適切なアプリケーション環境内の適切な関数またはメソッドによ るイベントの処理まで、システム全体にわたって追跡します。さらに、関数の呼び出しによって 開始され、この例では最終的に画面上での新しいオブジェクト(たとえばダイアログ)の描画に 至る、架空のイベントの連鎖をシステムの各レイヤにわたってトレースします。 図3-7に、イベントの生成、再パッケージング、およびデスティネーションへの転送を行う環境と サブシステムを示します。C H A P T E R 3 システムアーキテクチャ ユーザイベントの追跡 81  Apple Computer, Inc. February 2001 図3-7 Mac OS Xでのイベントの処理 マウスやキーボードなどの入力デバイスを制御するデバイスドライバがユーザアクションを検 出すると、ローレベルイベントが1つ発生します。Mac OS X上のすべてのデバイスドライバの基 盤を形成するI/O Kitは、イベントを作成し、 ウインドウサーバのイベントキューに格納します (ウインドウサーバの詳細については、「Core Graphics Services」(64ページ)を参照)。このキュー は、I/O Kitとウインドウサーバによって共有されるメモリのブロック内にあります。イベント をキューに格納すると、I/O KitはMachプロセス間通信メカニズム (IPC)経由でウインドウサー バに通知を行います。 通知を受け取ったウインドウサーバはイベントをキューから取り出して、その時点でオープンし ているウインドウのデータベースを参照します。ウインドウサーバは、イベントが発生したウイ ンドウを所有するプロセスに属する実行ループのイベントポートにイベントを送信します。 Carbon Event Managerは実行ループのポートからイベントを取得し、それを適切な形式でパッ ケージングして、プロセスのアプリケーション環境に固有のイベント処理メカニズムに渡しま す。このメカニズムにより、イベントは、クリックしたコントロール(または押されたキー)に 関連する関数またはメソッドを使って確実に処理されます。 コアサービスと� アプリケーション� サービス� アプリケーションプロセス� Carbon DefProc EventRef ハンドラ� コールバック� Cocoa ターゲット/アクション、� NSEvent、NSAppなど� Darwin Event Manager 実行ループ� I/O Kitの通知(IPC)� ウインドウサーバ� ドライバ� ドライバ� プロセス単位�82 ユーザイベントの追跡  Apple Computer, Inc. February 2001 C H A P T E R 3 システムアーキテクチャ イベント処理のメカニズムはそれぞれのアプリケーション環境によって異なります。 ■ Carbon:Carbonには、アプリケーションがイベントの処理に使用できるいくつかのメカニズ ムが用意されています。プライマリメカニズムはopaque型のローレベルイベント構造体であ るEventRefsを使用し ます。EventRefsの ハンド ラはユー ザイン タフェー スオブ ジェク ト (Human Interface Toolboxによるデフォルトのオブジェクトを含む)上にインストールされて いて、それらのオブジェクトを宛先とするすべて、または一部のイベントを自動的に受け取 ります。ハンドラはイベントを処理することもできますが、無視することもできます。また、 コンテナ内にある次のハンドラに渡すこともできます。DefProcメッセージや関数コールバッ クを使ってイベントを処理することも可能です。 ■ Cocoa:Cocoaでは、イベントはNSEventオブジェクトとしてパッケージングされます。この オブジェクトはアプリケーションプロセスの全般的な管理を担当するアプリケーションオブ ジェクトに送信されます。アプリケーションオブジェクトでは、イベントが発生したウイン ドウ内の「ファーストレスポンダ」ビューにNSEventオブジェクトを転送します。そこで処理 されない場合、オブジェクトはネクストレスポンダメカニズムを通じて、送信元のアプリケー ションオブジェクトそのものに達するまで、ウインドウのビューの階層を上に向かって移動 していきます。イベントがユーザインタフェースのコントロールと関連づけられている場合 は、通常、「ターゲットアクション」と呼ばれるメカニズムを介して処理されます。 ■ Java:Javaのイベント処理は、java.awt.Eventおよびjava.awt.Componentクラスによって実装 されています。起動処理 83  Apple Computer, Inc. February 2001 C H A P T E R 4 4 起動とログイン この章では、Mac OS Xシステムの起動とシステムへのユーザのログインのしくみを、概括的に 説明します。「起動」とは、コンピュータが自身を使用できる状態にするために実行する一連の 処理を示します。起動処理には、ハードウェアの初期化からシステムデーモンの開始まで、多く の異なるタスクがあります。起動処理が終了すると、ログインウインドウが表示されます。ユー ザがログインし、システムに認証されると、システムはそのユーザ用のコンピューティング環境 をセットアップする処理を行います。この章では、起動とログインの手順の説明に加え、この手 順をカスタマイズするのに使用できるさまざまな方法も説明します。 起動処理 ユーザがMac OS Xシステムの電源を入れてからログインできるようになるまでの間、Mac OS Xは システムを使用する準備として起動処理を実行します。このセクションでは、起動処理に含まれる 動作を要約して説明します。 注意:この章に出てくるほとんどのデーモンとユーティリティに関し、オンラインマニュアル の一種であるmanページを利用できます。manページには詳細な情報が記載されています。 manページを表示するには、コマンドライン上で、「man」に続けて、情報を得る対象の名前 を入力します。たとえば、「> man getty」と入力します(プロンプトが「>」の場合)。84 起動処理  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン BootROM Macintoshコン ピュータ の電源 を入れ たときに 最初に アクテ ィブにな るコー ドはBootROM ファームウェアです。BootROMはコンピュータのハードウェアの一部で、システムハードウェ アの初期化と、起動オペレーティングシステムの選択という2つの重要な役割を持っています。 BootROMは、これらの機能の実行を助けるコンポーネントを2つ持っています。 ■ POST(Power-On Self Test)はいくつかのハードウェアインタフェースを初期化し、使用可 能なRAMメモリが十分にあり、良好な状態にあることを確認します。 ■ Open Firmwareはそのほかのハードウェアを初期化し、最初のデバイスツリー(コンピュータ に関連するデバイスを階層的に表現したもの)を作成し、使用するオペレーティングシステム を選択します。 BootROMは、Mac OS 9システムでもMac OS Xシステムでも同一です。 BootX BootROM(またはユーザ)が起動オペレーティングシステムにMac OS Xを選択すると、制御は BootX booter(/System/Library/CoreServices)に移ります。BootXの主な役割はカーネル環境を ロードすることです。カーネル環境のロード中に、BootXは画面に起動画像を表示します。 カーネル環境をロードするときに、ブートプロセスに含まれるハードウェア用の一連のデバイスド ライバ(mkextキャッシュと呼ばれる)が以前にキャッシュされている場合は、BootXはまずそれ をロードしようとします。このキャッシュがないか、または破損している場合、BootXは/System/ Library/Extensions下のドライバおよびその他のカーネル機能拡張でOSBundleRequiredプロパ ティがブートのタイプ(たとえば、ローカルブートあるいはネットワークブート)に相応している ものを探します。OSBundleRequiredキーおよび起動時のデバイスドライバのロードの詳細につ いては、カーネル開発者用のマニュアルを参照してください。 起動に必要なカーネルとすべてのドライバがロードされると、BootXはカーネルの初期化手順を開 始します。この時点でロードされているドライバだけで、カーネルはルートデバイスを見つけるこ とができます。また、この時点からOpen Firmwareにアクセスできなくなります。 ルートファイルシステムがマウントされてから、システムの初期化中にkextdデーモンが起動し ます(「システムの初期化」(85ページ)参照)。このデーモンはシステムのドライバがすべて使 用可能か調査し、不要なドライバをアンロードしてメモリを解放します。この時点以降、kextd は、カーネル機能拡張をロードするためにすべての要求に応えようとします。C H A P T E R 4 起動とログイン 起動処理 85  Apple Computer, Inc. February 2001 カーネルの初期化 この段階で、カーネルはMachおよびBSDデータ構造を初期化し、続いてI/O Kitを初期化します。 I/O Kitは、ロードされたドライバをカーネルにリンクします。このとき、デバイスツリーを使用 して、どのドライバをリンクするか決定します。カーネルがルートデバイスを見つけると、そこ をBSDのルートにします。 最後に、カーネルはmach_initプロセスを開始します。ユーザスペース内の最初のプロセスです。 mach_initプロセスは、Machメッセージングを可能にするMachブートストラップポートサーバ です。 システムの初期化 mach_initプロセスはBSDの initプロセスを開始します。BSDの initプロセスはプロセスID(PID) が1で、システムのほかのすべてのプロセスを「所有」します。initプロセスはすべての中心です が、複雑ではありません。実行する重要なタスクは4つあります。 1. ユーザがシングルユーザモードを希望しているかどうか、またはCD-ROMから起動している かどうかを判断します。いずれかの条件が適合する場合、注意事項を出力し、制御をユーザ に渡します。 2. システム初期化シェルスクリプト(/etc/rc.bootおよび/etc/rc)を実行します。このスクリプ トは基本的な初期化タスクを完了します。詳細については、「rc.bootおよびrcスクリプト」(86 ページ)を参照してください。 /etc/rcスクリプトはSystemStarterプログラムを実行します。このプログラムは、「起動項 目」として指定された、より特化した初期化タスクを処理します。詳細については「起動項 目」(86ページ)を参照してください。 3. initは、gettyコマンドを使って、loginwindowアプリケーションを起動します。このアプリケー ションはログインウインドウを表示し、入力されたユーザ名とパスワードの正当性を確認し、 ログイン手順を完了します。詳細については、「ログイン手順」(89ページ)を参照してくだ さい。 4. プロセスが終了するとき、initはすべてのプロセスの親として、プロセスの必要なクリーンアッ プをすべて処理します。86 起動処理  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン rc.bootおよびrcスクリプト /etc内のrc.bootおよびrc(Bourneシェルスクリプト)は、基本的な初期化タスクを実行します。 最初に、rc.bootスクリプトがファイルシステム整合性チェック(fsck)を実行し、メモリをファ イルシステムと同期させます(sync)。rcスクリプトは、以下の作業を実行します。 ■ さまざまな/etc/fstab設定ファイルでの定義に従って、必須ローカルファイルシステムをマウ ントします。 ■ デバイスドライバローダ(kextd)を開始します。 ■ ウインドウサーバを開始します。 ■ updateバックグラウンドプロセスを実行します。このプロセスは、定期的にファイルシステム キャッシュをフラッシュします。 ■ 仮想メモリシステムのスワップファイルを作成し、ダイナミックページャを開始します。 ■ 最後に、rcスクリプトがSystemStarterプログラムを開始し、ローカルとシステムの起動項 目を処理します(「起動項目」(86ページ)参照)。 rcスクリプトは単純なBourneシェルスクリプトなので、ソースを読むと、実行することを正確に 理解できます。システム初期化時に開始されたデーモンの詳細については、「システムデーモン」 (92ページ)を参照してください。 起動項目 起動項目は、起動の最終段階で実行される手順で、Mac OS Xシステムに、通常の動作の準備を させます。起動項目はプログラム(シェルスクリプトを含む)で構成され、テンポラリファイル の消去やシステムデーモンの開始などのタスクを実行するために実行されます。 システム起動項目(アップル社が提供したもの)は/System/Library/StartupItemsにあります。 このディレクトリにある項目は変更しないでください。ただし、ユーザ独自の起動項目を定義す ることはできます。その場合に使用するカスタムの起動項目は、/Library/StartupItemsに格納 されています。ユーザ独自の起動項目を作成する方法については、「起動動作のカスタマイズ」 (97ページ)を参照してください。 重要 起動項目に関するテクノロジーと、起動項目によって開始されるサー ビスは流動的で、変更される可能性があります。 SystemStarterプログラムは、rcスクリプトが実行する最後のプログラムで、すべての起動項目 の実行を調整します。SystemStarterの動作を理解するには、起動項目とは何かを理解すると有 効です。起動項目は、最低でも次の2つのファイルを含むフォルダです。C H A P T E R 4 起動とログイン 起動処理 87  Apple Computer, Inc. February 2001 ■ フォルダと同一の名前を持つプログラム(通常はシェルスクリプト) ■ 設定プロパティリスト 各起動項目のプロパティリストファイルにはStartupParameters.plistという名前が付いていま す。プロパティリストは起動項目の名前を指定します。また、より重要なのは、起動項目の依存 関係を複数の粒度(granularity)レベルで指定することです。これらの値は、起動項目がどの サービスを提供するか、起動項目の前にどのサービスが実行されなければならないか、起動項目 がどのサービスを使用するか(使用できる場合)を示します。SystemStarterは、すべてのプロ パティリストの依存関係情報を読み取って処理し、フォルダ内にあるスクリプトまたはプログラ ムの実行順序を決定します。 StartupParameters.plistにあるキーと値のペアについては、「起動動作のカスタマイズ」(97ペー ジ)を参照してください。プロパティリストの一般的な情報については、「プロパティリスト」 (189ページ)を参照してください。 表4-1に、システム起動項目の実行内容を要約します。表の中での順番は、項目が実行される一 般的な順番で、場合により多少異なることがあります。 表4-1 システムの起動項目 起動項目 説明 SystemTuning 使用可能なメモリなどの要因にもとづいてシステムのパフォーマンス値を セットアップします。 Cleanup 前回のシステム起動時に残された不要なファイルとデータベースを取り 除きます。 Network /etc/iftabのデータにもとづいてローカルネットワークインタフェースを 設定します。マシンのホスト名を設定し、ネットワークルーティングを設 定し(指定されている場合)、IPルーティングをオンまたはオフにし(指 定されている場合)、カーネルでのマシンのホストIDを設定し、さらに Shared IPカーネル機能拡張をロードすることによりすべてのアプリケー ション環境(Classicを含む)で1つのIPアドレスを共有可能にします。 Accounting アカウンティングシステム(accton)を開始します。アカウンティングシ ステムは起動された各プロセスのアカウンティング情報を/var/account/ acctへ書き込みます。 Portmap portmapデーモンを開始します。88 起動処理  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン この表に挙げたデーモンとサービスのいくつかは、セクション「システムデーモン」(92ページ) で簡単に説明しています。 Disks autodiskmountデーモンを実行し、ローカルディスクをチェックしてマウ ントします。 AppleTalk ルータモード、マルチホーミングモード(非ルータモード)、または単一 ポート(/etc/hostconfigで定義)でAppleTalk起動プログラムを実行します。 SystemLog システムログデーモン(syslogd)を開始します。 DirectoryServices NetInfoマスタサーバ(nibindd)、Network Information Service、および名前 解決デーモン(lookupd)を開始します。 NFS Network File Systemサービスを開始します。Network File Systemサービ スは、非同期ブロックI/O(nfsiod)を実行し、リモートファイルシステ ムをマウントし、オートマウンタを開始し、コンピュータがNFSを使用し てファイルシステムをエクスポートする必要があることをNetInfoデータ ベースが示している場合には、NFSサーバを開始します。 Apache Apache HTTPサーバを実行します(指定されている場合)。 AppleShare ネットワーク接続が検出された場合、AppleShareサービスを開始します。 AppServices デスクトップデータベースデーモン(DesktopDB)を起動し、フォント キャッシュを更新し、入力関係のサービスを開始し、出力関係のサービス を設定します。 IPServices TCP/IPサービス(inetd)、ホスト設定サービス(BOOTP)、およびnetboot クライアント管理サーバを開始します。 NetworkTime ネットワークタイムサービスを開始します。ネットワークタイムサービス はNTP(Network Time Protocol)を使用します。 QTServer QuickTime Streaming Serverを開始します。 SendMail 送信用のメールサービス(sendmail)を実行します。 AuthServer 認証サーバを開始します。 Cron cronデーモンを実行します。 表4-1 システムの起動項目 起動項目 説明C H A P T E R 4 起動とログイン ログイン手順 89  Apple Computer, Inc. February 2001 いくつかのシステムサービスは、/System/Library/StartupItemsディレクトリにスクリプトが存 在していても実行されない可能性があることに注意してください。システム初期化手順では、 /etc/hostconfigにある設定情報がキャッシュされます。この情報はSystemStarterプログラムが 実行するさまざまなスクリプトに対して有効で、スクリプトに、ユーザがあるサービスの実行を 要求したかどうか、および、場合により、そのサービスの実行時に使うパラメータを伝えます。 これらのサービスには、AppleTalk、AFP、QuickTime Streaming、メール送信、オートマウン ティング、IPルーティング、netbootingサーバ、Webサーバ(Apache HTTP)が含まれます。 ログイン手順 ログイン手順はloginwindowアプリケーションによって管理されます。loginwindowアプリケー ションはinitがgettyを介して間接的に起動します。loginwindowアプリケーションでは、グラフィ カルユーザインタフェースからコンソールターミナルにログインし、カスタマイズしたコンピュー ティング環境をセットアップすることができます。loginwindowアプリケーションの主要な仕事は 次の通りです。 ■ ログイン用のユーザインタフェースを表示します ■ ユーザがログインを試みたときに認証します ■ ユーザのコンピューティング環境をセットアップします(環境設定、環境変数、デバイスと ファイルのアクセス権、キーチェーンアクセスなど) ■ インストール中の場合、セットアップアシスタントを起動します ■ FinderとDockを起動します ■ ログアウト、再起動、およびシステム終了の手順を管理します これらの主要な仕事に加えて、以下に示すように、loginwindowはほかにも多くの機能を実行し ます。 ■ 「アプリケーションの強制終了」ウインドウ(コマンド+option+escキーで開く)を管理し ます。「アプリケーションの強制終了」ウインドウには、現在アクティブなアプリケーショ ンを監視する機能と、ユーザのアプリケーション強制終了リクエストおよびFinder再起動リ クエストに応答する機能があります。 ■ 非表示のアプリケーション(表示されるユーザインタフェースがないアプリケーション)から 通知を受けたときに警告ダイアログを表示します90 ログイン手順  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン ■ 「ログイン」システム環境設定の「ログイン項目」ペインで指定されたアプリケーションを自 動的に起動します ■ 標準エラー(stderr)出力をログファイル(/var/tmp/console.log)に書き込みます。この出 力はコンソールアプリケーションへの入力として使用されます。 このセクションではこれ以降、ユーザ認証の詳細と、正常なログインから最初のマウスクリックま たはキー入力までの間に発生する重要な動作について説明します。loginwindowアプリケーション の詳細については、loginwindow (8) manページを参照してください。 ユーザを認証する 認証手順の一部として、システムがネットワーク上にある場合、まずloginwindowアプリケーショ ンが、入力されたユーザ名とパスワードをネットワーク上のNetInfoデータベースと比較し、認証 を試みます(lookupdを利用)。システムがネットワーク上にない場合は、loginwindowはユーザ 名とパスワードをローカルのNetInfoデータベースと比較して認証しようとするときに、やはり lookupdを利用します。loginwindowアプリケーションは、次の2つの場合には自動的にユーザを ログインさせます。 ■ 「ログイン」システム環境設定の「ログインウインドウ」ペインで「自動的にログイン」オプ ションが選択され、「名前」フィールドと「パスワード」フィールドに有効な値がある場合 (図4-2(100ページ)参照)。 ■ システムがネットワークに接続されていない状態で、ローカルのNetInfoデータベースにある ユーザが1人だけで、パスワードが割り当てられていない場合。 ユーザ環境をセットアップする ユーザがログインを行うと(または自動的にログインすると)、loginwindowは以下の作業を実行 します。 1. 権限のないリモートアクセスからログインセッションを保護します。リモートから起動され たアプリケーションは、ペーストボードサーバ(つまりクリップボード)のポートに登録さ れません。この結果、コピー、カット、ペースト、アップルイベント、ウインドウの最小化 など、いくつかの標準機能が、これらのプロセスに対してブロックされます。 2. システムのutmpデータベースへのログインを記録します。 3. コンソールターミナルのオーナーとアクセス権を設定します。C H A P T E R 4 起動とログイン ログイン手順 91  Apple Computer, Inc. February 2001 4. ユーザの環境設定をリセットしてグローバルシステムデフォルト(NSRegistrationDomain) を含めます。 5. ペーストボードサーバ(pbs)をブートストラップポートに登録し、pbsを開始します。 6. マウス、キーボード、システムサウンド、ユーザ環境設定を使用したパワーマネージャを設 定します。 7. 必要に応じて、タイムゾーンと環境設定キャッシュをリビルドします。 8. ユーザのグループアクセス権を設定します。 9. ユーザの環境変数(HOME、PATHなど)を、ユーザの.loginファイルにある通りに設定します。 10. ユーザ環境設定からファイル作成アクセス権マスク(umask)を取得し、設定します。 FinderとDockを起動する loginwindowアプリケーションは、ログインしたユーザのコンピューティング環境をセットアップ した後、アップルイベントサブシステムを初期化し、FinderアプリケーションとDockアプリケー ションをこの順番に起動します。FinderとDockのプロセスが開始すると、「ログイン」システム環 境設定の「ログイン項目」ペインで指定されたアプリケーションか書類が起動されます。これらの 項目が起動するか開くと、ログイン手順は完了です。 何らかの理由でFinderまたはDockプロセスが停止した場合、loginwindowは自動的にそのプロセ スを再起動します。同じように、loginwindowアプリケーションが停止した場合、initプロセスが 自動的にloginwindowを再起動します。92 システムデーモン  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン システムデーモン Mac OS Xシステムにログインした直後にProcess Viewerアプリケーション(/Applications/Utilities にあります)を実行すると、システム上ですでに動作しているプロセスのリストを確認できます (図4-1(92ページ)参照)。通常、約20のプロセスが表示されますが、ユーザが起動したアプリ ケーションはProcess Viewerだけです(自動的に起動されたアプリケーションを除く)。ほかのプ ロセスの大部分は、バックグラウンドで重要な機能を実行するシステムデーモンかサーバです。 図4-1 Process Viewerで表示されるプロセスC H A P T E R 4 起動とログイン システムデーモン 93  Apple Computer, Inc. February 2001 表4-2で、これらのデーモンとサーバのうちのいくつかについて説明します。ユーザのコンピュー タがスタンドアロン(ネットワークに接続されていない)の場合、または(環境設定アプリケー ションを使用して)いくつかのサービスを要求しなかった場合、ここに示すデーモンのいくつかは 開始されない可能性があります。 表4-2 一般的なシステムデーモンとサーバ デーモン 説明 mach_init Machブートストラップポートサーバ。Machメッセージングを可能にしま す。また、initプロセスを開始します。 kextd デバイスドライバローダ。まずこのデーモンは、BootXがカーネルを開始す るのに必要なドライバをロードした後に残っているすべてのデバイスドラ イバをロードします。その後、kextdが、デバイスドライバのダイナミック なロードおよびアンロードを担当します。 Window Manager ウインドウサーバ。詳細については、「Core Graphics Services」(64ページ) を参照してください。 update 定期的にファイルシステムキャッシュをフラッシュして、クラッシュした 場合のデータ損失が発生しないようにします。 dynamic_pager カーネルのデフォルトページャと通信して、スワップファイル(/private/ var/vm)を作成または削除します。これらのファイルは仮想メモリのため のバッキングストアとして使用されます。 ATSServer Apple Type Solutionサーバ。システム全体のフォント管理を可能にします。 autodiskmount リムーバブルメディアを自動マウントします。 ipconfigd ネットワークを自動的に設定します。 syslogd システムエラーおよびステータスメッセージを記録します。 portmap RPCプログラム番号をInternet(DARPAプロトコル)ポート番号に変換しま す。RPCコールができるようになる前に、実行している必要があります。 nibindd NetInfoサーバを検出、作成、および破棄します(「netinfod」参照)。 netinfod NetInfoサーバ。サービスを受ける各ドメインごとに1つ。 lookupd 名前解決。NetInfoおよびDNSなどのネットワークインフォメーションサー ビスの参照リクエストを迅速に処理します。94 システムデーモン  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン これらのデーモンの詳細については、manページを参照してください。 DesktopDB FinderおよびDockが使用するデータベースのサーバ。その時点で既知のア プリケーションおよび書類の情報をキャッシュします。 inetd インターネット「スーパーサーバ」。ソケットで接続をリスンします。接続 が発生すると、そのソケットがどのサービスに対応しているかを判断し、 該当するプログラムを呼び出して、リクエストに対してサービスを提供し ます。 nfsiod 非同期リクエストをNFSサーバにサービスします。 automount NFSファイルシステムへのアクセスが最初に発生したときに、NFSファイル システムを自動的にマウントします。アイドル状態になると、アンマウン トします。仮想ファイルシステムのマウントポイントは、最初、ローカル ファイルシステム上のシンボリックリンクとして表示されます。このシン ボリックリンクの読み取りが発生すると、それがトリガーとなって、リン クに関連づけられているリモートファイルシステムをautomountがマウン トします。 cron スケジュールされたコマンドまたはスクリプトを実行します。 pbs ペーストボードサーバ(Mac OS 9のクリップボードに類似したもの)はア プリケーション間のデータ交換を可能にします。また、ドラッグ操作で使 用されるデータ転送メカニズムでもあります。詳細については、「クリップ ボード」(74ページ)を参照してください。 表4-2 一般的なシステムデーモンとサーバ デーモン 説明C H A P T E R 4 起動とログイン ログアウトおよびシステム終了 95  Apple Computer, Inc. February 2001 ログアウトおよびシステム終了 ログアウト、システムの再起動、およびシステム終了の手順は、同様のセマンティックスを持ち ます。これらの手順を実行するのはloginwindowアプリケーションですが、これらの手順を開始 するのはほかのプロセス(通常はFinder)です。リクエストを行うプロセスから見ると、次の3つ の手順があります。 1. プロセスが「Quit All」アップルイベント(kAEQuitAll)をloginwindowに送ります。 2. Loginwindow が「noErr」を返すと、プロセスは、ログアウト、再起動、またはシステム終了 を要求するアップルイベントを送ります。 3. リクエストを行ったプロセスが終了します。 loginwindowは、「Quit All」アップルイベントを受信すると、すべてのフォアグランドアプリケー ションに終了を要求します。ログアウト、再起動、システム終了のいずれかのイベントを受信する と、loginwindowはCarbon、Cocoa、またはJavaアプリケーション環境とリンクしているすべての バックグラウンドプロセス(ユーザインタフェースのないプロセス)に終了を要求します。このよ うなバックグラウンドプロセスは、終了を拒否することができます(下記参照)。ほかのプロセス、 特にルートとして実行されているプロセスは終了せず、それにより、サーバが提供する機能 (ApacheやAppleTalkなど)を複数のログインにわたって保持します。 重要 「Quit All」イベントがClassic環境のアプリケーションから開始された場 合、Classic環境のアプリケーションのみが終了し、ログアウト、再起 動、またはシステム終了のリクエストもClassic環境のみに適用される ことに注意してください。 loginwindowが終了を要求する場合、ある処理を行うと、プロセスは終了しないままになります。 また、システムを破壊しないためにプロセスが実行しなければならない処理もあります。96 ログアウトおよびシステム終了  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン loginwindowが「Quit All」イベントを受信すると、実行中のフォアグラウンドアプリケーション のリストを調べ、「Quit Application」アップルイベント(kAEQuitApplication)を送信すること で、各アプリケーションに順番に終了を要求します。このイベントを受信した場合、アプリケー ションは適切に動作しなくてはなりません。すぐに終了するか、先にユーザの判断が必要な場合 (保存されてない書類がある場合など)には警告ダイアログを表示する必要があります。問題が解 決されたときには、アプリケーションは終了する必要があります。終了しない場合、アプリケー ションはログアウトプロセス全体を破壊する可能性があります。loginwindowは「Quit Application」イベントをアプリケーションへ定期的に再送信し、アプリケーションがハングして いると思われる場合はユーザに警告を表示して、アプリケーションを終了するよう依頼します (シート、ダイアログ、または同様のオブジェクトを表示しているアプリケーションはハングして いるとは見なされません)。 Carbon、Cocoa、またはJavaとリンクしているバックグラウンドプロセスに対しては、手順が多 少異なります。loginwindowは、ログアウト、再起動、またはシステム終了のリクエストを、 終了を開始したプロセスから受信すると、各バックグラウンドプロセスに「Quit Application」 アップルイベントを送信します。これらのプロセスは、イベントを受け入れ「noErr」を返すこ とによって、終了を拒否することができます。しかし、これらのプロセスがアップルイベントを 処理しない場合(つまり「errAEEventNotHandled」が返される場合)、loginwindowはプロセス を強制終了します。バックグラウンドプロセスが終了しない場合も、loginwindowアプリケー ションはログアウト手順を中止しません。 重要 バックグラウンドのCarbon、Cocoa、またはJavaプロセスが終了しな いことを許すメカニズムは、プロセスが終了前に何かを完了させる必 要がある場合を想定したものです(コンテンツの索引作成など)。永続 的メカニズムとして想定されているのではありません。永続的なプロ セスはユーザごとではなく、ルートとして実行する必要があります。 loginwindowはルートプロセスを終了しません。C H A P T E R 4 起動とログイン カスタマイズのテクニック 97  Apple Computer, Inc. February 2001 すべてのアプリケーションと、協調しているバックグラウンドプロセスが終了すると、 loginwindowはそれぞれの場合に適切な処理を開始します。 カスタマイズのテクニック Mac OS Xシステムが起動してユーザがログインするときに実行される動作をカスタマイズする方 法がいくつかあります。 起動動作のカスタマイズ 起動項目を使用することにより、起動処理に特殊な動作を追加できます。このテクニックを使用す ると、最初のログインセッションの前に、デーモンの実行、データベースサーバの起動、古いファ イルの削除など、さまざまなことを実行できます。起動項目(「起動項目」(86ページ)参照)と は、依存関係の順に実行されるシェルスクリプトまたはコマンドラインプログラムです。依存関係 は、付属のプロパティリストに定義されている値で決定されます。 起動項目は、起動処理の最終段階として(SystemStarter プログラムにより)実行されます。 最初に、SystemStarterは、/System/Library/StartupItemsにあるシステム起動項目を実行しま す。次に、/Library/StartupItemsにある、ローカルドメイン用に定義された起動項目をすべて 実行します。作成した起動項目は、必ずこれらの場所のいずれか1つに置く必要があります。 起動項目を作成する方法は、以下の通りです: ログアウト loginwindowは、表示されるログインウインドウに制御を返す(次のログインを待 つ)前に、イベントキューにあるすべてのイベントをキューから削除し、ログアウ ト時実行プログラムを開始し(定義されている場合)、ログアウトを記録し、デバ イスのアクセス権とユーザ環境設定をデフォルトにリセットします(ログアウト時 実行プログラムの詳細については、「ログイン手順のカスタマイズ」(99ページ) を参照してください)。 システム終了 システムの電源をオフにします。 再起動 システムの電源をオフにしてからオンにし、起動処理を開始します。 loginwindowは、再起動すると、ルートデバイスのアクセス権およびユーザ環境 設定をデフォルトに設定します。98 カスタマイズのテクニック  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン 1. 実行する動作を表す名前を付けたディレクトリを作成します。 例:MyDBServer 2. このディレクトリに、ディレクトリと同一の名前を持つ実行可能ファイル(シェルスクリプト またはコマンドライン実行可能ファイル)を追加します。 例:MyDBServer/MyDBServer 3. プロパティリストを含むファイルに、StartupParameters.plistという名前を付けて、同一の ディレクトリに追加します。 例:MyDBServer/StartupParameters.plist この手順で重要なのは、プロパティリストの作成です。StartupParameters.plistには、起動項目 が提供するサービスと、他のサービスへの依存関係とを定義するキーと値のペアが含まれる必要 があります。起動項目の名前(フォルダと実行可能ファイルの名前)は、供給されるサービスの 名前と同一である必要はありません。表4-3に、プロパティリストのキーと値のペアの説明を示し ます。 表4-3 StartupParameters.plistのキーと値のペア キー 型 値 Description 文字列 起動項目の簡単な説明。管理ツールが使用します。 Provides 配列 起動項目によって提供されるサービス。起動項目は複数のサービス を提供することもできますが、通常は1つだけ提供します。複数の 起動項目が同一のサービスを提供する場合、SystemStarterは最初 に検出した起動項目だけを実行します。この動作は、1つの起動項 目に複数のサービスを割り当てるべきではないことを示していま す。1つの重複したサービスがオーバーライドされると、その起動 項目のすべてのサービスがオーバーライドされる可能性があるか らです。起動項目に複数のサービスを割り当てる必要があるのは、 そのサービスが共依存の場合だけです。C H A P T E R 4 起動とログイン カスタマイズのテクニック 99  Apple Computer, Inc. February 2001 Requires値およびUses値で指定されたルール以外に、起動項目の実際の実行順序について保証は ありません。 SystemStarterが起動項目を処理する場合、システムの起動時に、上位フォルダと同一の名前を 持つ実行ファイルを探し、そのファイルを引数startで実行します。実行可能ファイルに、複数 のシステム動作にわたって異なるタスクを実行させる場合は、実行可能ファイルはこのパラメー タを読み取り、その通りに動作する必要があります。現在、起動項目が実行されるのはシステム 起動時のみなので、常に引数startが付加されます。アップル社は、システム起動時以外にはほ かの引数で起動項目を呼び出せるようにSystemStarterを変更する権利を留保しています。たと えば、引数がstopの場合に、その起動項目をシステム終了時に実行する、などのような場合です。 /Developer/ApplicationsにあるProperty List Editorアプリケーションを使用して、 StartupParameters.plist用のXML形式のプロパティリストを作成できます。 ログイン手順のカスタマイズ loginwindowアプリケーションの動作をカスタマイズする一般的な方法は3つあります。 ■ 「ログイン」システム環境設定の「ログインウインドウ」ペインで、設定を変更する方法 ■ アプリケーションのパラメータ、特にログイン時とログアウト時にスクリプトやツールを実行 するパラメータを指定する方法 Requires 配列 この起動項目より前に実行する必要のある、ほかの起動項目が提供 するサービスを処理することができます。サービスが有効でない場 合は、この起動項目は実行されません。 Uses 配列 この起動項目の前に開始される必要のある、ほかの起動項目が提供 するサービス。これらのサービスが有効でなくても、起動項目は実 行されます。 OrderPreference 文字列 同一の実行順序(Requires値およびUses値で決定される)の起動項 目に対し、それらが開始される相対的な順序。First、Early、None、 Late、Lastの5つの優先順位値があります。デフォルトはNoneです。 優先順位は推奨値で、無視されることがあります。 表4-3 StartupParameters.plistのキーと値のペア キー 型 値100 カスタマイズのテクニック  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン ■ loginwindowの環境設定値として、Finderアプリケーション以外のものを指定する方法 管理者はloginwindowのいくつかの機能を「ログインウインドウ」ペインで設定できます。この ペインにアクセスするには、アップルメニューから「システム環境設定」を選択します。「シス テム環境設定」ウインドウで設定のリストから「ログイン」ボタンをクリックし、続いて「ログ インウインドウ」タブをクリックします。図4-2に、「ログインウインドウ」ペインが表示された 状態を示します。 図4-2 「ログイン」システム環境設定の「ログインウインドウ」ペイン 管理者として認証されると(ロックをクリックしてパスワードを入力)、以下の変更を行うこと ができます。 ■ 最初の起動時に、loginwindowがユーザをシステムにログインさせるために使用するユーザ名 とパスワードを提供します。 ■ ログインウインドウの「システム終了」ボタンと「再起動」ボタンを無効にします。これによ り、共有サービス(プリントサーバ、ファイルサーバなど)を提供しているシステムの電源を ユーザが不用意にオフにするのを防止できます。C H A P T E R 4 起動とログイン カスタマイズのテクニック 101  Apple Computer, Inc. February 2001 ■ ユーザがログインを3回試みた後で、loginwindowがパスワードのヒントを表示するように要 求します。ヒントは、管理者がユーザアカウントを作成したときに設定することができます。 また、「パスワード」環境設定ペインで、ユーザが自分でヒントを設定することもできます。 ■ カスタム認証を選択します。 管理者は、loginwindowの動作を変更する、より強力な手段をほかにも持っています。loginwindow アプリケーションは/etc/ttysにあるコンソールターミナルの定義によって起動されます。ttysファ イルの最初の文(コメント文を除く)には、以下の定義が含まれています。 console "/System/Library/CoreServices/loginwindow.app/loginwindow" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/ libexec/getty std.9600" この行は、initプログラムに対し、コンソールターミナル上でloginwindowを起動し、WindowServer (Window Managerプロセスへのシンボリックリンク)をウインドウ表示システムプロセスとして 使用するように指示します。ほかのアプリケーションと同様に、定義されたパラメータを実行可能 ファイル名の直後に指定することができます。loginwindowには、表4-4に示す4つのパラメータが 定義されています。 表4-4 loginwindowパラメータ パラメータ 値の説明 -LoginHook ユーザが正常にログインしたときに実行されるスクリプトまたはツール へのフルパス。 -LogoutHook ユーザが正常にログアウトしたときに実行されるスクリプトまたはツー ルへのフルパス。 -HostName ログインウインドウに表示される代替名(「localhost」またはNetInfoのホ スト名以外)。空文字列を設定することもできます。 -PowerOffDisabled 「YES」の場合、ログインウインドウの「システム終了」ボタンと「再起 動」ボタンが無効になります。コンピュータの電源ボタンを押した場合 も、FinderアプリケーションとDockアプリケーションは終了しますが、 システムは終了しません。これにより、共有サービス(プリントサーバ、 ファイルサーバなど)を提供しているシステムの電源をユーザが不用意 にオフにするのを防止できます。このパラメータは、「ログイン」環境 設定でログインウインドウの「再起動」ボタンと「システム終了」ボタ ンを無効にした場合と同一の動作を実現します(このセクションの前半 を参照)。102 カスタマイズのテクニック  Apple Computer, Inc. February 2001 C H A P T E R 4 起動とログイン -LoginHookおよび-LogoutHookパラメータは特に有効です。カスタム管理プログラム、アカウン ティングプログラム、セキュリティプログラムを、ログインおよびログアウト手順の一部として実 行させることができます。/etc/ttysに置く、変更済みのコンソール定義の例を以下に示します。 console "/System/Library/CoreServices/loginwindow.app/loginwindow -PowerOffDisabled YES -LoginHook /Users/Administrator/Scripts/ mailLoginToAdmin" vt100 on secure window=/System/Library/CoreServices/ WindowServer onoption="/usr/libexec/getty std.9600" loginwindowに、Finderシステムアプリケーション以外のものを起動するように要求することもで きます。たとえば、作業でBSDシェルだけを使用したいときなど、Finderの代わりにTerminalアプ リケーションを使用したい場合があります。defaultsユーティリティを使用すると、Finderの代替 になるものをloginwindowの環境設定値として指定できます。コマンドの構文は以下の通りです。 defaults write loginwindow Finder 指定するパスは、アプリケーションパッケージへのフルパスである必要があります(たとえば、 /Applications/Utility/Terminal.app)。コマンドは、ルート(loginwindowのオーナー)として投 入する必要があります。defaultsユーティリティの詳細については、「ソフトウェアの設定」の 章の「defaultsユーティリティ」(205ページ)、およびdefaultsのmanページを参照してください。103  Apple Computer, Inc. February 2001 C H A P T E R 5 5 バンドル バンドルとは、実行可能コードとそのコードに関連するソフトウェアリソースを格納したファイ ルシステム内のディレクトリのことです(バンドルの中に実行可能コードのみ、またはソフトウェ アリソースのみが含まれることもありますが、そのようなことはまれです)。要するに、バンドル ディレクトリは、1つのパッケージに含まれているリソースのセットを「束ねる」(バンドルする) ものです。リソースに含まれるものには、画像、サウンド、ソフトウェアの一部で使用されるロー カライズされた文字列などがあります。コードとそれに関連するリソースをファイルシステム内 の1箇所にまとめることができるため、インストールやアンインストールの管理、およびその他 の形態でのソフトウェア管理が容易になります。 バンドルには、アプリケーション、フレームワーク、およびロード可能バンドル(プラグインを 含む)などのタイプがあります。内部的に見ると、これらのバンドルタイプの構造は非常によく 似ています。アプリケーション、フレームワーク、およびロード可能バンドルの違いは、それら に含まれる実行可能コードの特性と目的から生まれます。これらのタイプはそれぞれ、.app、 .framework、および.bundleという独自の拡張子を必要とします(ロード可能バンドルの場合は アプリケーション定義の拡張子も使用できます)。 プログラム内でバンドルは、クラスのインスタンスや手続き型言語のopaque型のオブジェクト などのプログラムエンティティによって表されます。これらのエンティティのルーチンにより、 プログラムコードは必要なバンドルリソースを使用できるようになります。その他に、実行中の アプリケーションへの実行可能コードのロードおよびリンクを可能にするルーチンがあります。 アプリケーションは、ロード可能バンドルに含まれるコードが必要になる度にそのコードをロー ドすることができます。フレームワークは自動的かつダイナミックに共有ライブラリのコードを ロードしてリンクします。104 バンドルを使用する利点  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル バンドルの中に複数のリソースのセットが含まれ、それぞれのセットが言語、ロケール、または プラットフォームによってリソースをグループ化している場合があります。これらのリソースの セットと実行可能イメージを単一のパッケージにまとめることで、アプリケーション、フレーム ワーク、またはプラグインのバージョンを1つ作成しただけで、サポートしている任意のプラッ トフォームで正しく動作させることができます。このモデルを使用すると、ユーザの言語環境設 定に従って、アプリケーションのヒューマンインタフェースを自動的にローカライズすることも できます。 通常、Finderはバンドルディレクトリを1つのファイルとしてユーザに表示し、バンドルの内容が 不当に変更されるのを防ぎます。しかし、フレームワークのように一部のバンドルのディレクトリ 構造は表示されることがあります。Finderがバンドルをファイルとして表示するか、フォルダとし て表示するかは、Finderの属性の1つであるバンドルビットがバンドルディレクトリでセットされ ているかどうかなどの、いくつかの要因によって決まります。また、Finderは、すべてのアプリ ケーションバンドルの名前に含まれている拡張子を非表示にします。 バンドルを使用する利点 Mac OS 8の従来のソフトウェアパッケージング方式に比べて、バンドルにはさまざまな利点があ ります。 ■ 同一のバンドルの実行可能コードを、Mac OS 8、Mac OS 9、Mac OS Xのいずれのオペレーティ ングシステム上でもそのまま実行できます。 ■ 単一のバンドルで、マルチプロセッシングアーキテクチャ(PowerPC、x86)、ライブラリ アーキテクチャ(CFM、Mach-O)、およびその他の特殊な実行可能コード(Velocity Engine に最適化されたライブラリなど)をサポートすることができます。 ■ 単一のバンドルで、国際化アーキテクチャにより複数の言語をサポートすることができます。 新しいローカライズリソースの追加や不要なローカライズリソースの削除を容易に行えます。 注意:Mac OS Xの現在のリリースに含まれているフレームワークは「バージョン付き」のバ ンドルです。つまり、ダイナミック共有ライブラリにバージョンを割り当てる方法が異なるた め、内部構造が異なります。この構造には、新しいタイプのバンドルで提供されている機能の 多くが欠けています。このタイプのバンドルの詳細については、「フレームワーク」(131ペー ジ)を参照してください。C H A P T E R 5 バンドル バンドルの解剖 105  Apple Computer, Inc. February 2001 ■ バンドルはさまざまなフォーマットのボリューム上に置くことができます。HFS、HFS+、AFP などのマルチフォークフォーマットにも、UFS、SMB、NFSなどのシングルフォークフォーマッ トにも置くことができます。 ■ Sherlockを使用して、ヘルプファイルやその他のバンドルに関する情報リソースにアクセスし たり、その索引を作成したりすることができます。 ■ ドラッグするだけで、バンドルのインストール、移動、および削除を行うことができます。 次のセクション「バンドルの解剖」で説明するバージョン付きのバンドルは、上に挙げた特徴の 最初の2つを持ちません。つまりマルチプロセッシングアーキテクチャと、異なるMac OSシステム 上で動作する実行可能ファイルをサポートしていません。 バンドルの解剖 バンドルには実行可能コードが含まれており、さらに次のようなさまざまなリソースが含まれてい る場合があります。 ■ 画像 ■ サウンド ■ ローカライズされた文字列 ■ Resource Managerスタイルのリソースファイル ■ ライブラリとフレームワーク ■ プラグインおよびその他のロード可能バンドル ■ アーカイブされたユーザインタフェースの定義 Mac OS Xがサポートしているバンドルディレクトリのレイアウトには、「ニュースタイル」とバー ジョン付きの2種類があります。バージョン付きバンドルのディレクトリレイアウトは、Mac OS Xより前のオペレーティングシステムから引き継いだものです。次に、このレイアウトの例を示 します。106 バンドルの解剖  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル MyBundle.bundle/ MyBundle (executable code) Resources/ Pretty.tiff (nonlocalized resource) English.lproj/ (localized resources) Stop.eps MyBundle.nib MyBundle.strings French.lproj/ (localized resources) Stop.eps MyBundle.nib MyBundle.strings Mac OS Xで動作する最新の開発ツールはニュースタイルのバンドルのみを作成しますが(フレー ムワークを除く)、システムバンドルルーチンでは、両方のスタイルのバンドルの読み込みと処理 を行うことができます。 このセクションでは、ニュースタイルバンドルのレイアウトについて説明し、実行可能コードとリ ソースがバンドル内のどこに配置されているかを明らかにします。ディスク上では、バンドルは ディレクトリ階層として存在します。リスト5-1に、バンドルが最低限持つ構造を示します。 リスト5-1 最小のバンドル - MyBundle/ Contents/ PkgInfo Info.plist つまり、バンドル内には、Contentsディレクトリと、その内部にPkgInfoおよびInfo.plistファイル が必ず存在する必要があります。これらのファイルは、Finderやオペレーティングシステムのその 他の部分がバンドルを取り扱う方法を決定する上で重要です。これらのファイルはバンドルのさま ざまな属性を記述しています。 情報プロパティの一覧であるInfo.plistファイルには、キーと値のペアがXMLフォーマットで格 納されています。このペアには、バンドルの主要な実行可能コードの名前、バージョン情報、 タイプとクリエータコード、アプリケーションと書類のアイコン、その他のメタデータなどの属 性が指定されています。システムルーチンは、バンドルの実行可能コードが実行時にこれらの属 性を読む込むことができるようにします。デフォルトのバンドル属性に加えて、サブシステム が、実行時のアクセスを容易にするために独自の属性情報をInfo.plistファイルに書き込む場合 があります。同様に、情報プロパティリストにはアプリケーション定義の任意のデータを格納す ることもできます。情報プロパティリストの詳細と例については、「ソフトウェアの設定」の章 の「情報プロパティリスト」(190ページ)を参照してください。C H A P T E R 5 バンドル バンドルの解剖 107  Apple Computer, Inc. February 2001 もう1つの特殊なバンドルファイルはPkgInfoと呼ばれます。このファイルには、バンドルのタイプ とクリエータコードだけが含まれます。これは情報プロパティリストにも保持されているため冗長 な情報ですが、PkgInfoファイルは、ファイルのタイプとクリエータコードにすばやくアクセスす る必要があるFinderのようなアプリケーションのパフォーマンスを向上させるキャッシュとして 機能します。FinderがPkgInfoファイルおよびInfo.plistファイルに含まれる情報を処理する方法に ついては、「Finder」(179ページ)を参照してください。 Info.plistファイルには、InfoPlist.stringsという名前の、特殊なローカライズされたリソースファイ ルが付属します。InfoPlist.stringsファイルには、CFBundleNameキーのように、ローカライズが必 要な情報プロパティリスト内のキーが含まれます。 以上のような最小のバンドルレイアウトから始めて、バンドルディレクトリは複雑なアプリケー ションに見られるような大規模なバンドルにまで拡張することができます。リスト5-2に、大規模 なバンドルに含まれるものを示します。108 バンドルの解剖  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル リスト5-2 複雑なアプリケーションのバンドルレイアウト - MyBundle/ MyApp /* alias to Contents/MacOSClassic/MyApp */ Contents/ MacOSClassic/ MyApp Helper Tool MacOS/ MyApp Helper Tool Info.plist PkgInfo Resources/ MyBundle.icns Hand.tiff Horse.jpg WaterSounds/ en_US.lproj/ MyApp.nib bird.tiff Bye.txt house.jpg house-macos.jpg house-macosclassic.jpg InfoPlist.strings Localizable.strings CitySounds/ en_GB.lproj MyApp.nib bird.tiff Bye.txt house.jpg house-macos.jpg house-macosclassic.jpg InfoPlist.strings Localizable.strings CitySounds/ Japanese.lproj/ MyApp.nib bird.tiff Bye.txt house.jpg house-macos.jpg house-macosclassic.jpg InfoPlist.strings Localizable.strings CitySounds/ Frameworks/ Plug-ins/ SharedFrameworks/ SharedSupport/C H A P T E R 5 バンドル バンドルの解剖 109  Apple Computer, Inc. February 2001 さまざまなタイプのバンドルが存在しますが、どのタイプのバンドルにも共通の特徴がありま す。バンドルの最上位レベルには、常にContentsディレクトリが存在します。Resources、 Frameworks、SharedFrameworks、SharedSupport、およびPlug-insディレクトリはオプショ ンで、必要なときだけ表示されます。 重要 バンドルの構造は変更されることがあるため、バンドル内の項目への パスをコードに直接書き込むのは避けてください。パスを指定するに は、アップル社が提供するバンドルAPIを使います。 いくつかのディレクトリには、その名前が示すように、特定のプラットフォームに対応した実行 可能コードが含まれています。バンドルのコードが要求されると、システムは基礎にあるオペ レーティングシステムに適したフォーマットのコードを検索します。プラットフォームごとの実 行可能ディレクトリの名前はMacOSClassicとMacOSです。これらのディレクトリ内にある実行 可能ファイルの名前は、通常、バンドル名と同じです(ただし、拡張子を除いた名前)。 リソースはローカライズすることもできますが、ローカライズせずにすべての国や地域に対応さ せることもできます。ローカライズされたリソースの各セットはバンドル内の独自のディレクト リに配置されます。Resourcesディレクトリには、言語あるいはその言語のバリエーションが話 されている地域に従ってグループ化されたリソースファイルが含まれています。これらのディレ クトリは.lprojという拡張子を持ちます(「l」は「language(言語)」を意味します)。このような ディレクトリにはそれぞれ、特定の言語(またはそのバリエーション)に対応した、ローカライ ズ可能なすべてのリソースが含まれています。ローカライズされないリソースは.lprojディレクト リのすぐ上のレベルに配置されます。この場合、ただ1つのバージョンのファイルしか必要あり ません。ローカライズされないリソースの一例は、バンドルのアイコンファイルです(アプリケー ションバンドルであればアプリケーションアイコン)。慣例から、このファイルにはバンドルの名 前に拡張子.icnsを付加した名前が付けられます。画像のフォーマットは、サポートされているタ イプであればかまいません。拡張子が指定されていない場合、システムは.icnsを仮定します。バ ンドルリソースの詳細については、「ローカライズされたリソース」(114ページ)を参照してく ださい。 Resource Managerではそれぞれのリソースを単一のファイルにまとめますが、バンドルではほ とんどの場合、それぞれのリソースは個別のファイルに格納されます。ただし、ローカライズ可 能な文字列は「strings」ファイル(.stringsという拡張子を持つファイル)の中にまとめて格納 されます。ローカライズ可能な文字列を1つのファイルに格納する理由は、容易にその内容を キャッシュでき、パフォーマンスを向上させることができるためです。 バンドルリソースとローカライズされた文字列の詳細については、「国際化」(207ページ)の章 を参照してください。110 Finderとバンドル  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル 重要 バンドルの実行可能ファイルのリソースフォークにあるリソースは パッケージングしないことをお勧めします。 Frameworksディレクトリには、アプリケーションに密接にバインドされたフレームワークが含ま れます。これらのフレームワークのダイナミック共有ライブラリは対象のリビジョンが固定されて おり、対象となるオペレーティングシステムで使用可能な他のバージョンや新しいライブラリに置 き換えられることはありません。 SharedFrameworksディレクトリには、アプリケーションパッケージが使用するフレームワーク が含まれますが、利用可能なより新しいバージョンのフレームワークがないかどうかシステムレ ジストリを検索します。より新しいバージョンがシステム内に検出されると、 SharedFrameworksディレクトリにあるバージョンは無視されます。アプリケーションパッケー ジの中にバージョン付きのフレームワークを組み込むと、アプリケーションを完全に自己完結的 にすることができます。アプリケーションは単純なドラッグ操作によって、インストール、移動、 または削除することができます。 Frameworks、SharedFrameworks、Plug-ins、およびSharedSupportディレクトリは、多くの場 合アプリケーションバンドルにあります。これらのディレクトリの詳細については、「アプリケー ションのパッケージング」(119ページ)を参照してください。 Finderとバンドル バンドルを作成するとき、ビルドシステムが、バンドルフォルダの「バンドルビット」と呼ばれる Finder属性をセットすることがあります。Mac OS XのFinderは、ウインドウの1つにバンドルを表 示する前に、この属性を読み込みます。バンドルビットがオンになっていると、バンドルはファイ ルパッケージとして表示されます。ファイルパッケージとは、Finderがあたかも1つのファイルで あるかのようにユーザに表示するフォルダのことです(図5-1を参照)。つまりFinderは、ユーザに フォルダの内容が見えないようにします。このようにフォルダの内容を見えにくくすることで、 ユーザが誤って(あるいは意図的に)バンドルの内容を変更できないようにします。C H A P T E R 5 バンドル バンドルのタイプ 111  Apple Computer, Inc. February 2001 図5-1 Finderのバンドルビット 一部のバンドルでは、バンドルビットがセットされていないことがあります。アップル社が提供 するバンドルなどが該当します。しかし、Finderはそれでもバンドルを適切に取り扱います。 次のセクションで説明するように(「バンドルのタイプ」(111ページ))、バンドルフォルダはそ のタイプを示す拡張子(.app、.framework、.bundleなど)を持っていなければなりません。 Finderがこれらのフォルダ拡張子のいずれかに遭遇し、そのフォルダが実際にバンドルであると 判断すると、Finderは次のように適切な動作を行います。 ■ フレームワーク以外のバンドルをファイルパッケージとして表示します。 フレームワークはフォルダとして表示されるため、ヘッダファイルをブラウズすることができ ます。 ■ バンドルがアプリケーションの場合(アプリケーションパッケージとも呼ばれます)、Finder は.app拡張子を非表示にします。 ■ Finderは必要な実行時情報(タイプやクリエータコードなど)をバンドルから抽出または算出 し、その情報を使って、自分のデータベースを更新します。 FinderとFinderによるバンドルや書類の取り扱い方法の詳細については、「Finder」(179ページ) を参照してください。 バンドルのタイプ Mac OS Xは、少なくとも3つのバンドルのタイプを認識します。 ■ アプリケーション:Mac OS Xアプリケーションの場合、アプリケーションパッケージとは、 アプリケーションの実行可能ファイルなど、アプリケーションの起動に必要なリソースを含 むバンドルです。 バンドルビットON バンドルビットOFF112 バンドルのタイプ  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル ■ フレームワーク:フレームワークとは、ダイナミック共有ライブラリと、ライブラリに付属す るすべてのリソース(ヘッダファイル、画像、マニュアルなど)を含んだバンドルです。 ■ ロード可能バンドル:アプリケーション同様、ロード可能バンドルも、通常は実行可能コー ドとそれに関連するリソースを含みます。ロード可能バンドルは、実行中のアプリケーショ ンに明示的にロードされる必要があるという点でアプリケーションやフレームワークと異 なります。ロード可能バンドルにはいくつかの特殊なタイプがありますが、次の2つには特 に注意が必要です。 ■ パレット:パレットは、ロード可能バンドルの1つのタイプで、Interface Builder特有の ものです。パレットには、Interface Builderのパレットにロードされるカスタムユーザイ ンタフェースオブジェクトとコンパイル済みコードが含まれます。 ■ プラグイン:プラグインは特殊なロード可能バンドルで、一般のバンドルのプログラミ ングインタフェースを超えたアーキテクチャのインプリメンテーションで使用されるこ とが想定されています。 さらに、カーネル機能拡張(KEXT)もロード可能バンドルの1つのタイプで、ローレベルの システムバンドルルーチンが認識してカーネル環境にロードします。ほかのロード可能バン ドルによく似ていますが、アプリケーションやその他の非カーネルソフトウェアがロードす ることはできません。KEXTバンドルは.kextという拡張子を持ちます。KEXTの詳細につい ては『Inside Mac OS X: Kernel Environment』を参照してください。 バンドルはそれぞれのタイプに対応した拡張子を持たなければなりません。アプリケーションの 拡張子は.appです。開発中バージョンの場合は、.debugおよび.profileという拡張子を使用しま す。フレームワークの拡張子は.frameworkです。プラグインおよびその他のロード可能バンド ルは任意の拡張子を持つことができますが、そのバンドルをロードする方法を認識しているアプ リケーションが要求する拡張子を使用する必要があります。ロード可能バンドルのジェネリック な拡張子は.bundleです。拡張子.appはFinderにより非表示にされるため、ユーザインタフェー スでは表示されません。 アプリケーションのメインバンドル 一部のコマンドラインツールを除いて、あらゆるアプリケーションは少なくとも1つのバンドル (メインバンドル)を持っています。これは、そのアプリケーションのリソースと実行可能ファイ ルが格納されているフォルダです。アプリケーションバンドルは、.app(リリース版のアプリケー ション)、.debug(デバッグシンボルを含むアプリケーション)、または.profile(プロファイリン グデータを含むアプリケーション)のいずれかの拡張子を持たなければなりません。Finderは.app 拡張子をユーザに表示しません。C H A P T E R 5 バンドル バンドルのタイプ 113  Apple Computer, Inc. February 2001 フレームワークバンドル フレームワークは、ダイナミック共有ライブラリ、インタフェース定義ファイル、画像、およびそ の他の実行可能コードをサポートするリソースを、関連するプログラミングインタフェースを記述 したヘッダファイルやマニュアルとともにパッケージングしているバンドルです。アプリケーショ ンがフレームワークにダイナミックにリンクされているかぎり、それ以降、それらのフレームワー クに対して明示的に何らかの処理を行う必要はほとんどありません。実行中のアプリケーション内 で、フレームワークのコードは必要に応じて自動的にロードおよびリンクされます。フレームワー クは.frameworkという拡張子を持たなければなりません。 ロード可能バンドルとダイナミックリンク メインバンドルとリンクされたフレームワークのバンドルに加えて、アプリケーションには任意 の数のその他のバンドルを組み込むことができます。これらのロード可能バンドルは通常アプリ ケーションファイルパッケージ内にありますが、ファイルシステム内のどこにあってもかまいま せん(しかし通常は、ファイルシステムドメインの/Library/Extensionsディレクトリに置かれま す)。アプリケーションはバンドルに含まれるコードとリソースを必要に応じてダイナミックに ロードすることができます。たとえば、PostScriptプリンタを管理するアプリケーションは、プリ ンタにダウンロードされるPostScriptコードを含むバンドルを持つことができます。 ロード可能バンドルに含まれる実行可能コードは、アプリケーションの実行時にダイナミックにア プリケーションにリンクされます。さまざまなコードローディングプログラミングインタフェース を使用することで、名前によりロード可能バンドルに含まれる関数をルックアップし、関数ポイン タを介してそれらの関数を呼び出すことができます。このようにして新しくリンクされたコード は、バンドル識別子を使って、そのバンドルのインスタンスを取得できます。このバンドルのイン スタンスを介して、コードはそのバンドルにパッケージングされているその他のリソースを検出し てロードできます。 ロード可能バンドルは拡張子を持たなければなりません。一般に使用されるロード可能バンドルの 拡張子は.bundleで、Interface Builderのパレットバンドルの拡張子は.paletteです。拡張子はどんな ものでもかまいませんが、そのバンドルをロードできる1つまたは複数のアプリケーションが要求 する拡張子であることが理想的です。拡張子を持つバンドルはFinderによってアプリケーションに 関連づけられ、ユーザがこれらのバンドルをダブルクリックすると、アプリケーションが起動し (起動していなかった場合)、バンドルをロードします。114 ローカライズされたリソース  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル ローカライズされたリソース 1つのバンドルを世界の複数の国や地域で使用する場合は、言語、国、または文化的な地域区分 に対応して、そのリソースをカスタマイズあるいはローカライズしなければならないことがあり ます。たとえば、アプリケーションによっては、メニューコマンドの名前を示す文字列の日本語、 英語、フランス語、およびスウェーデン語バージョンを個別に持たなければならないことがあり ます。また、イギリス英語とアメリカ英語のように、地域による言語のバリエーションに対応し なければならないこともあります。 バンドルでは、リソースを対象となる地域および言語に従ってグループ化し、地域および言語の 名前に拡張子.lprojを付加した名前を持つディレクトリにまとめることで、この問題を解決しま す。地域固有のリソースディレクトリには、ISO 3166規格に定められた国別コード、およびISO 639規格に定められた言語コードにもとづく名前を使用する必要があります(http://www.iso.ch を参照)。たとえば、フランス本国で話されているフランス語に固有のリソースはfr_FR.lprojと いう名前のディレクトリに収め、カナディアンフレンチに固有のリソースはfr_CA.lprojという名 前のディレクトリに収めます。ローカライズされたリソースのうち地域区分を必要としないもの は、English.lprojまたはJapanese.lprojのように、言語名だけを示すディレクトリに配置します。 これらのローカライズされたリソースのディレクトリは、バンドルのContentsディレクトリ内 にあるResourcesという名前のディレクトリに配置します。ローカライズされない(グローバル な)リソースはResourcesディレクトリの最上位レベルに保持されます。複雑なバンドルのファ イルシステムレイアウトの例については、「バンドルの解剖」(105ページ)を参照してください。 実行時にバンドルが、どのローカライズされたリソースのセットを実際に使用するかを決定する のはユーザです。バンドル関連のシステムルーチンは、環境設定アプリケーションでユーザが設 定した言語環境設定に従います。ユーザは、環境設定アプリケーションを使って、使用したい地 域設定の優先順位リストを作成します。リストの先頭の項目が最も優先される地域になり、2番 目の項目が次に優先される地域になります。バンドルは、リソースファイルを要求されると、 ユーザの地域情報環境設定に最もよく一致するリソースのファイルシステム内の位置を返しま す。バンドルリソースの位置を知るためにMac OS Xが使用するプロセスの詳細については、「検 索アルゴリズム」(115ページ)を参照してください。.lprojディレクトリの命名方式の詳細につ いては、「国際化」(207ページ)の章を参照してください。C H A P T E R 5 バンドル ローカライズされた文字セット 115  Apple Computer, Inc. February 2001 ローカライズされた文字セット 非常によく使用されるリソースタイプの1つにstringsファイル(習慣的に、.stringsという拡張子 を付けます)があります。stringsファイルは、ローカライズする必要のある文字列のために使用 します。このファイルは、基本的に、開発言語の文字列を、ローカライズされたバージョンの文 字列にマップする辞書です。必ずそうである必要はありませんが、通常は開発時の言語をキーに 使用します。 システムルーチンはstringsファイルを検出してロードする方法を知っており(他のリソースと同 様)、1ステップで必要な文字列をすべて参照します。また、キャッシングメカニズムが用意され ているため、同一のテーブルを参照する度にstringsファイルを繰り返し検出してロードする必要は ありません。 stringsファイルは頻繁に使用されるため、Mac OS Xの開発環境には、このファイルを使った作業 に使用できる特殊なマクロやツールがいくつか用意されています。詳細については、「文字列を ローカライズする」(216ページ)を参照してください。 検索アルゴリズム バンドル固有のプログラミングインタフェースを使ってリソースを検出すると、適切なバージョ ンのリソースが確実に返されるように検索が実行されます。リソースの中には、グローバルなも の、ローカライズされたもの、あるいはプラットフォームに固有のものが存在するため、リソー スの検索は複雑になることがあります。このため、さまざまなリソース検索APIが用意されていま す。これらのAPIを使用すると、バンドルのパッケージング方式の変更による影響を意識する必要 もなく、多数のやっかいな検索の問題も自動的に処理することができます。自分自身でバンドル の内部を探し回ることは避け、常にこれらのAPIを使用するようにしてください。 図5-2に、リソースを検出するためにシステムルーチンが使用する詳細な手順を示します。116 検索アルゴリズム  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル 図5-2 バンドルに含まれるリソースの検出 Search for a � Global Resource グローバル� リソースを検索する� Search for a � Platform Specific � Resource プラットフォーム� 固有のリソースを� 検索する� Return the � Platform-Generic� Resource プラットフォームに� ジェネリックな� リソースを返す� Return the � Platform-Specific� Resource プラットフォームに� 固有の� リソースを返す� Yes No ローカライズされたリソースを検索する� Resource� Found リソースが� 検出された� Resource� Found リソースが� 検出された� ユーザの地域初期設定を使って� 地域固有のリソースを検索する� Yes No Yes No Yes No Yes No Resource� Found リソースが� 検出された� バンドルの開発言語に� 含まれるリソースを検索する� Resource� Found リソースが� 検出された� バンドルの開発地域に� 含まれるリソースを検索する� Resource� Found リソースが� 検出された� 優先される地域の言語に� 一致するリソースを検索する� Search Failed� Return NULL 検索は失敗、� NULLを返す� Resource� Found リソースが� Yes 検出された� NoC H A P T E R 5 バンドル 検索アルゴリズム 117  Apple Computer, Inc. February 2001 グローバルなリソースがローカライズされたリソースよりも優先される点に注意してください。 実際は、あるリソースのグローバルなバージョンとローカライズされたバージョンの両方が存在 することは決してありません。あるリソースのグローバルバージョンが存在する場合、同じリソー スのローカライズされたバージョンは決して検出されません。このような優先順位を設ける理由 はパフォーマンスの向上です。ローカライズ可能なリソースの検索を先に行ってしまうと、バン ドルルーチンはグローバルリソースを発見する前に、必要もないのに、複数のローカライズされ たリソースのフォルダを検索せざるをえなくなります。また、プラットフォーム固有のリソース を検索するには、プラットフォームにジェネリックなバージョンが存在しなければならない点に も注意してください。この理由はやはりパフォーマンスの向上にあります。一般に、あるプラッ トフォーム用のリソースのバージョンをジェネリックにし、そのほかのあらゆるプラットフォー ムに対してはプラットフォーム固有のバージョンを提供するようにしてください。 目的のリソースを見つけたとき、リソース検出ルーチンはプラットフォーム固有のバージョンが 存在するかどうかをチェックします。プラットフォーム固有のリソースには標準の識別子を使っ た名前が付けられています。プラットフォーム固有のリソースを作成するときに使用できる名前 はmacosclassic(Mac OS 8およびMac OS 9)またはmacos(Mac OS X)です。プラットフォー ム固有のリソースの名前を得るには、プラットフォームにジェネリックな名前とプラットフォー ムの識別子文字列を組み合わせます。たとえば、Fish.jpgという名前のリソースがある場合、Mac OS 8固有の名前はFish-macosclassic.jpgになります。Mac OS 8で実行されているアプリケー ションがFish.jpgというリソースを要求するとき、バンドルルーチンは同じフォルダ内に Fish-macosclassic.jpgが存在するかどうかをチェックします。存在する場合は、ルーチンはプ ラットフォーム固有のリソースへのパスを返します。存在しない場合は、Fish.jpgへのパスが返 されます。すでに説明したように、Fish-macosclassic.jpgが検出されるためには、Fish.jpgと いう名前のファイルが同じフォルダ(言語に固有のリソースディレクトリを含む)に存在してい なければなりません。118 バンドルとResource Manager  Apple Computer, Inc. February 2001 C H A P T E R 5 バンドル バンドルとResource Manager バンドルはResource Managerスタイルのリソースをデータフォークに含む任意の数のファイル を含めることができます。これらのリソースファイルには、習慣的に拡張子.rsrcが付けられ、 Resourcesディレクトリにあるほかのあらゆる種類のファイルと同様に、バンドルリソースとし て扱われます。Core Foundationバンドルサービスを使って、そのようなファイルのCFURLタイ プを取得し、それをFSRefに変換してResource Managerでオープンすることができます。ただし、 バンドルサービスが管理する2つの特殊なリソースファイルが存在します。1つは、ローカライ ズされないリソースのファイルで、その名前はexecutable name.rsrcです。ここで、executable nameはメインの実行可能ファイルの名前です。このファイルは、他のローカライズされないリ ソースとともにResourcesディレクトリに格納されます。もう1つはローカライズされたリソー スのファイルで、名前はLocalized.rsrcです。このファイルは該当する.lprojディレクトリ(各言 語または地域ごとに1バージョン)に格納されます。なお、リソースはファイルのリソースフォー クではなく、データフォークに格納されることに注意してください。 アプリケーションが起動されると、バンドルサービスは、アプリケーションのリソースが常に使用 可能になるように、これらのファイルを自動的に開こうとします。その他のバンドル(フレーム ワークとロード可能バンドル)については、特にこの目的のために用意されているバンドルサービ ス関数を使って、デベロッパ自身がこの処理を行う必要があります。 作成したCarbonアプリケーションをバンドル形式に変換できない事情がある場合、タイプが 'plst'でIDがゼロのリソースとして、情報プロパティリスト(Info.plist)をアプリケーションの 単一のファイルに含めることができます。詳細については、「CFM実行可能ファイル」(230ペー ジ)を参照してください。119  Apple Computer, Inc. February 2001 C H A P T E R 6 6 アプリケーションのパッケージング 普通のMac OS Xアプリケーションは、単一の実行可能ファイルではなく、1つまたは複数の実行 可能バイナリを含むファイルのパッケージです。アプリケーションはバンドルの1つのタイプで す。バンドルとは、アプリケーションの実行可能コードとそのコードをサポートするリソースを 含んだ、階層構造を持つシステム内のディレクトリのことです。また同時に、アプリケーション はファイルパッケージ、つまりFinderが1つのファイルとしてユーザに表示するディレクトリでも あります。 アプリケーションパッケージの設計は、実行中のアプリケーションは、単なる起動される実行可 能コードではないという認識から出発しています。アプリケーションがパッケージという内部構 造をとることには、インストールとアンインストールが容易、複数のローカリゼーションを内包 可能、複数のアーキテクチャとボリュームフォーマットをサポート可能、1種類のアプリケーショ ンを修正を加えずにMac OS 8、Mac OS 9、およびMac OS X上で実行可能、といったいくつかの 利点があります。 構造的にはアプリケーションはバンドルの1つにすぎませんが、バンドルコンポーネントの中には 主にアプリケーションに、場合によってはアプリケーション中にのみ、存在するものがあります。 ユーザは、ヘルプ情報、環境設定、ウィザード、およびプラグインなどをアプリケーションリソー スと考える傾向があります。技術的には、これらのリソースは、(たとえば)ロード可能バンドル として取り扱うことができますが、通常はアプリケーションに直接関連するものと考えられます。 この章では、これらのリソースがどのようにアプリケーションバンドル内にパッケージングされて いるかについて説明します。バンドルの一般的な説明は、「バンドル」(103ページ)を参照して ください。120 バンドルとしてのアプリケーション  Apple Computer, Inc. February 2001 C H A P T E R 6 アプリケーションのパッケージング バンドルとしてのアプリケーション Mac OS Xのアプリケーションは、バンドルの1つのタイプとしてパッケージングされています。 「バンドル」(103ページ)の章での定義を繰り返すなら、バンドルとは、実行可能コードとその コードをサポートするリソースを含んだディレクトリです。アプリケーションバンドルおよび ロード可能バンドル(プラグインなど)は、ファイルパッケージ、つまりFinderが単一ファイル としてユーザに表示するディレクトリです。バンドルのタイプ(アプリケーション、フレーム ワーク、プラグイン、およびその他のコードとリソースのダイナミックロード可能なパッケー ジ)を区分する特性は、実行可能コードの性質です。アプリケーションの実行可能コードは一般 に、ダブルクリックすることでFinderから起動する自己完結的なバイナリです。アプリケーショ ンにはプラグインなどの副次的なバンドルが含まれることもありますが、少なくともメインバン ドルは常に含まれています。 バンドルには、アプリケーションの場合だけ、または主としてアプリケーションの場合に見られる 利点があります。 ■ 同一の(Carbon)アプリケーションパッケージを、修正することなく、Mac OS 8、Mac OS 9、 およびMac OS X上で実行することができます。 ■ アプリケーションに複数のローカリゼーションを組み込むことができます。アプリケーション に、ユーザの言語環境設定に一致するローカライズされたリソースのセットを自動的に表示さ せることができます。さらに、新しいローカリゼーションをアプリケーションパッケージに追 加することもできます。これらのリソースはユーザがアプリケーションを再起動した後に表示 されます(それらのリソースが優先される言語に対応している場合)。 ■ クライアントコンピュータがサーバ上でアプリケーションを実行することができます。 ■ ユーザがアプリケーションを、Webサイトから簡単にダウンロードしたり、電子メールで受け 取ったりすることができます。 ■ アプリケーションを容易にインストールまたはアンインストールできます。ユーザの作業は、 アプリケーションパッケージをボリューム上にドラッグすることだけで、アンインストールの 場合はゴミ箱にドラッグします(この機能は複雑なインストールにも使用できます)。 ■ アプリケーションはファイルパッケージであるため、ユーザが必須部分を削除または変更する ことによってアプリケーションを「壊す」ことはできません。ただし、アプリケーションの内 部に影響を与えることなく、アプリケーションの名前を変更することは可能です。C H A P T E R 6 アプリケーションのパッケージング アプリケーションのフレームワーク、ライブラリ、およびヘルパー 121  Apple Computer, Inc. February 2001 ■ アプリケーションは、複数のアーキテクチャおよび複数のボリュームフォーマットをサポート することができます。 これらを実現できるのは、バンドルが階層化された内部構造を持っているためです。アプリケー ションを構成するそれぞれの部分は、アプリケーションパッケージ内で特定の名前の付いた位置 に格納されます。アプリケーションの構成要素がこのように標準化して内部的に組織されている ことにより、オペレーティングシステムの関連部分(Finder、リソース検索メカニズム、コード ローディングメカニズムなど)がそれぞれの機能を実行できます。たとえば、複数のプラット フォーム(Mac OS 9とMac OS X)に対応した実行可能ファイルは、標準的な名前を持つ個別のサ ブディレクトリに格納されます。このことは、ローカライズされたリソース、プラグイン、およ びプライベートフレームワークとバージョン付きフレームワークについても同様です。 Finder、Sherlock、ナビゲーションサービス、およびファイルシステムのブラウズと検査を行う アップル社純正のその他のアプリケーションとサービスは、アプリケーションパッケージの内部を 検索することはありません。Finderは、アプリケーションパッケージがダブルクリックされると、 それに応えてアプリケーションを起動します。 アップル社の開発ツールは、他のバンドルと同様に、アプリケーションパッケージの作成もサ ポートしています。 バンドルの一般的な説明は、「バンドル」(103ページ)の章を参照してください。Finder、およ びアプリケーションとの関係でのFinderの役割については、「Finder」(179ページ)を参照してく ださい。 アプリケーションのフレームワーク、ライブラリ、 およびヘルパー アプリケーションには、補足的なコードモジュール、つまりアプリケーションの実行可能ファイル の中に組み込まれていないコードが含まれることがあります。こうした補足的なコードは、フレー ムワーク、共有ライブラリ(CFMまたはその他)、プラグイン、ヘルパーアプリケーション、ある いはその他のタイプのソフトウェアの形式をとります。122 アプリケーションのフレームワーク、ライブラリ、およびヘルパー  Apple Computer, Inc. February 2001 C H A P T E R 6 アプリケーションのパッケージング このようなアプリケーションコードをいくつかの区分に分けるさまざまな理由があります。まず 1つは開発の効率です。たとえば、一連のアプリケーションを、同一のフレームワークやカスタ ムのドキュメントビューアのような同一のヘルパーアプリケーションを使用するように開発する ことができます。もう1つの理由はパフォーマンスです。たとえば、アプリケーションは、ユー ザが要求するまでプラグインなどのモジュールのロードを遅らせることができます。また、はじ めから拡張可能であることを前提にアプリケーションを設計することもできます。 アプリケーションパッケージに含まれるフレームワークと共有ライブラリは、アプリケーション の実行、あるいは少なくともアプリケーションを完成させるために必要です。ただし、アプリケー ションパッケージには、アプリケーションにリンクされるアップル社純正のフレームワークは含 まれません。これらは、/System/Library/Frameworksという標準のシステム位置にインストー ルされます。インストーラは、アプリケーションパッケージに含まれるフレームワークを削除し たり、別の場所に移動してはいけません。アプリケーションパッケージには共有されているフレー ムワークが含まれているためです(共有フレームワークの取り扱いについては、「共有フレーム ワークと中央ディレクトリ」(123ページ)を参照してください)。 アプリケーションバンドルには、補足的なコードの各タイプに対応する4つのディレクトリが含ま れています。 Frameworks/ SharedFrameworks/ SharedSupport/ Plug-ins/ このセクションでは、以上のうち最初の3つのディレクトリについて、その目的と問題点を説明し ます。Plug-insディレクトリの詳細については、「アプリケーションとロード可能バンドル」(125 ページ)を参照してください。 プライベートフレームワーク Frameworksディレクトリには、そのアプリケーションに密接にバインドされているフレーム ワーク(または共有ライブラリ)が含まれます。これらはこのアプリケーションに特有なフレー ムワークです。このディレクトリ内のフレームワークを使用できるのはそのアプリケーションだ けで、同じ「スイート」を構成するものや同じデベロッパが開発したものであっても、他のアプ リケーションはこれらのフレームワークを使用しません。これらのプライベートフレームワーク のダイナミック共有ライブラリはリビジョンが固定されており、新しいバージョンがあっても対 象となるオペレーティングシステムで使用可能なそのバージョンに置き換えられることはありま せん。C H A P T E R 6 アプリケーションのパッケージング アプリケーションのフレームワーク、ライブラリ、およびヘルパー 123  Apple Computer, Inc. February 2001 アプリケーションは、Frameworksに含まれているコードは必ず使用しますが、 SharedFrameworksに含まれているコードは使用することも、使用しないこともあります。 Frameworksディレクトリにフレームワークまたは共有ライブラリがないと、アプリケーション は起動できません。 リスト6-1に、典型的なプライベートフレームワークがアプリケーションバンドルにどのように格 納されるかを示します。 リスト6-1 アプリケーションのプライベートフレームワークの位置 FantasticApp.app/ Contents/ PkgInfo Info-macos.plist MacOS/ Resources/ Frameworks/ GoodStuff.framework/ SharedFrameworks/ SharedSupport/ Plug-ins/ 共有フレームワークと中央ディレクトリ SharedFrameworksディレクトリにも、アプリケーションパッケージの一部であるフレームワー クが含まれますが、これらのフレームワークは他のアプリケーションと共有される点が異なりま す。アプリケーションの共有フレームワークは上位互換であることが保証されています。これに 対してアプリケーションのプライベートフレームワークのバージョンは固定されています。 SharedFrameworksに含まれているコードの最新バージョンを共有できるようにするため、Mac OS Xでは中央ディレクトリ(レジストリ)を使用します。中央ディレクトリは、インストールさ れているすべてのアプリケーションパッケージに含まれる共有フレームワークおよびその他の共 有ソフトウェアのバージョンを記録しています。アプリケーションがフレームワークのコードを ダイナミックにロードする前に、システムはSharedFrameworksに含まれている目的のフレーム ワークのバージョンを中央ディレクトリと比較して、同じフレームワークの最新バージョンが使 用可能かどうかチェックします。より新しいバージョンが存在する場合は、SharedFrameworks ディレクトリに含まれているフレームワークは無視され、中央ディレクトリによって指定された ものが使用されます。対応するフレームワークが中央ディレクトリで検出されない場合、または 中央ディレクトリで検出されたフレームワークのバージョンが古い場合は、アプリケーションの SharedFrameworksディレクトリに含まれているフレームワークが使用されます。124 アプリケーションのフレームワーク、ライブラリ、およびヘルパー  Apple Computer, Inc. February 2001 C H A P T E R 6 アプリケーションのパッケージング 共有フレームワークやその他の共有可能なソフトウェアをアプリケーションパッケージに組み込 むと、アプリケーションの自己完結性が高まります。ユーザがアプリケーションのインストール、 移動、または削除を行う場合、必要な操作は、アプリケーションのアイコンをドラッグして目的 の場所でドロップするだけです。このようにしてインストールしたアプリケーションは、共有フ レームワークの最新バージョンを使用するとは限りませんが、少なくとも内部にパッケージング されているフレームワークを使えば実行できます。中央ディレクトリがすべてのアプリケーショ ンパッケージ内にあるバージョン付きフレームワークを記録するという手法には、アプリケー ションを「読み込み専用」に保つことができ、またアプリケーションの一部分がシステム内の多 くの箇所に複製されることがない、という利点があります。また同時に、中央ディレクトリによ り、関連する複数のアプリケーションがシステムにインストールされている最新の共有フレーム ワークを使用することができます。 リスト6-2に、共有フレームワークがアプリケーションパッケージ内で格納される位置を示します。 リスト6-2 アプリケーションの共有フレームワークの位置 FantasticApp.app/ Contents/ PkgInfo Info-macos.plist MacOS/ Resources/ Frameworks/ SharedFrameworks/ GreatStuff.framework/ SharedSupport/ Plug-ins/ その他の共有アプリケーションコード フレームワーク、共有ライブラリ、またはロード可能バンドル(プラグインを含む)以外の補足 的な共有可能アプリケーションコードは、アプリケーションパッケージのSharedSupportディレ クトリに格納されます。このクラスのコードの例には、ヘルパーアプリケーション、アシスタン ト、およびツールがあります。共有フレームワークと同様、このディレクトリ内にあるソフトウェ アの最新バージョンは、中央ディレクトリのメカニズムを使って、関連する複数のアプリケーショ ンの間で共有されます。C H A P T E R 6 アプリケーションのパッケージング アプリケーションとロード可能バンドル 125  Apple Computer, Inc. February 2001 リスト6-3の例で、オフィス用アプリケーションスイートの一部であるFantasticSpreadsheetは、 SharedSupportディレクトリに小さなグラフ作成アプリケーションFantasticGrapherを含んでいま す。FantasticSpreadsheetアプリケーションとその兄弟アプリケーションであるFantasticDatabase は、ともにFantasticGrapherを使用します。 FantasticSpreadsheetをインストールすると、FantasticGrapherのバージョンが中央ディレクトリ に記録されます。ユーザがFantasticGrapherを実行しようとすると、システムは、SharedSupport に含まれているFantasticGrapherのバージョンを中央ディレクトリに記録されている FantasticGrapherのバージョンの最新のものと比較します。その結果、どちらか新しい方のバー ジョンのFantasticGrapherが実行されます。 リスト6-3 アプリケーションの共有コード(フレームワークでない)の位置 FantasticSpreadsheet.app/ Contents/ PkgInfo Info-macos.plist MacOS/ Resources/ Frameworks/ SharedFrameworks/ SharedSupport/ FantasticGrapher Plug-ins/ アプリケーションとロード可能バンドル ロード可能バンドルには、アプリケーションが実行時にダイナミックにロードできるコードとプロ グラミングリソースが含まれます。ロード可能バンドルの最も一般的なタイプはプラグインです が、Interface Builderのパレットのように、それ以外のタイプのロード可能バンドルもあります。 ロード可能バンドルはフレームワークとは異なり、アプリケーションとの関係が多少異なることが あります。126 アプリケーションとロード可能バンドル  Apple Computer, Inc. February 2001 C H A P T E R 6 アプリケーションのパッケージング ロード可能バンドルはアプリケーションパッケージによく似たバンドルです。したがって、ロー ド可能バンドルは、プライベートフレームワーク、共有フレームワーク、その他の補足的なコー ド(他のプラグインや他のロード可能バンドルを含む)など、アプリケーションが含むものをす べて含むことができます(一方、フレームワークは異なる内部構造を持った「バージョン付き」 のバンドルです。フレームワークの詳細については、「フレームワーク」(131ページ)を参照し てください)。 プラグインをはじめとするロード可能モジュールは、アプリケーションにとっての重要度にもとづ いて、3つのグループに分類されます。 ■ アプリケーションの実行に必須なもの ■ アプリケーションの実行に必須ではないが、ユーザが頻繁に使用するという意味でアプリケー ションの一部と見なせるもの(ツールパレットなど) ■ 上の2つの条件のどちらも満たさないが、アプリケーションに何らかの追加機能を提供するも の(しばしばサードパーティのデベロッパによって提供されます) 最初の2つの条件を満たすプラグインおよびその他のロード可能バンドルは、アプリケーション バンドルのPlug-insディレクトリ内にパッケージングする必要があります。これらのバンドルは、 ユーザがアプリケーションを別の位置に移動した場合にそれに合わせて移動するよう、必ずアプ リケーションとともにパッケージングする必要があります。ロード可能バンドルが上の3番目の 分類に属している場合は、バンドルを、ログインしているユーザのホームディレクトリ(ローカ ルまたはリモート)のLibrary/Application Supportフォルダにインストールすることになってい ます。システム管理者や上級ユーザの場合は、このようなロード可能バンドルを、システムのロー カルドメインまたはネットワークドメインのLibrary/Application Supportフォルダにインストー ルすることにより、より広い範囲で使用することもできます。 プラグインまたはその他のロード可能バンドルがどこに格納されているかに関係なく、ユーザがそ れらを(ディレクトリではなくファイルとして)選択するためのヒューマンインタフェースメカニ ズムを提供するのは、アプリケーションの担当範囲です。たとえば、アプリケーションが、ロード 可能なすべてのプラグインをリストアップしたダイアログを表示する場合が考えられます。C H A P T E R 6 アプリケーションのパッケージング アプリケーションに含まれるユーザリソース 127  Apple Computer, Inc. February 2001 アプリケーションに含まれるユーザリソース アプリケーションにはさまざまなリソースがパッケージングされています。それらは、サウンド ファイルやローカライズされた文字列のようにアプリケーションの実行可能コードと密接な関係 を持つものから、アプリケーションのヘルプ、環境設定、クリップアートのように、より「外部 的」なリソースまで、さまざまです。リソースは通常、アプリケーションバンドルのResources ディレクトリに格納されます。 しかし、さまざまな理由からアプリケーションパッケージの内部に格納されないアプリケーション リソースもあります。考えられる理由の1つは、アプリケーションをネットワークブート環境で実 行できるようにするためです。また、ファイルシステム内のリソースにアクセスできるようにした り、アプリケーションのデベロッパによって提供されたリソースとサードパーティによって提供さ れたリソースを区別するために、このような分離を行うこともあります。以下のセクションでは、 いくつかのタイプのリソースについて、推奨されるインストール位置を示します。 アプリケーションのヘルプ Mac OS Xでは、ヘルプビューアアプリケーションが、アプリケーションのヘルプ情報と、一般的 な内容のヘルプ情報を表示します(ヘルプビューアはApple Help製品の一部です)。アプリケー ションのヘルプファイルは、アプリケーションのResourceディレクトリ内の適切な位置に格納し ます。ヘルプファイルはヘルプブック(Mac OS 9とMac OS Xでのヘルプの標準フォーマット)に 格納します。ヘルプブックを国際化するには、コンテンツ(テキストと画像)をローカライズし、 アプリケーションディレクトリのResourceディレクトリにある.lprojディレクトリに入れます。 テキストのファイルはHTML 3.2準拠、またはApple Helpのブックの仕様に準拠していなければな りません。ヘルプファイルの準備と索引作成の手順については、『Inside Carbon: Providing User Assistance With Apple Help』を参照してください。128 アプリケーションに含まれるユーザリソース  Apple Computer, Inc. February 2001 C H A P T E R 6 アプリケーションのパッケージング アプリケーションの情報プロパティリスト(Info.plist)にはCFBundleHelpBookFolderという キーが含まれていなければなりません。通常、このキーの値は、アプリケーションの Resources ディレクトリ内の、ヘルプブックがあるディレクトリの名前を示す文字列です。 CFHelpBookNameというキーも存在して、その文字列値がブックのAppleTitleタグであった場 合、ヘルプビューアは、ユーザが「ヘルプ」メニューの項目を選択すると自動的にそのブックの 表示処理を行います。注意が必要なのは、ローカライズの有無に関わらず、各ヘルプブックディ レクトリの名前はCFBundleHelpBookFolderの値と同一でなければならない、つまりディレクト リ名をローカライズしてはいけない、ということです。ヘルプの開き方や表示はアプリケーショ ンから制御できます。Apple Help APIは、ヘルプ関連のいくつかのオプションをアプリケーショ ンに提供します。タイトルを使ってヘルプブックを開く、ファイルへのフルディレクトリパスを 使ってヘルプファイルを開く、特定の用語またはアンカーを検索する、などがその例です。詳細 については、『Inside Carbon: Providing User Assistance With Apple Help』を参照してください。 アップル社ではアプリケーションのヘルプはアプリケーションバンドルに格納することを強く推 奨しますが、一般的なヘルプと一緒にアプリケーションパッケージの外部に格納することも可能 です。その場合、サードパーティ製ヘルプの標準位置(ユーザのホームディレクトリの/Library/ Documentation/Help、およびLibrary/Documentation/Helpなど)のいずれかに格納することを推 奨します。ユーザがFinderからヘルプセンターを起動すると、ヘルプビューアはこれらの位置を スキャンして、アプリケーションのヘルプへのリンクを表示します。アプリケーションのヘルプ がヘルプの標準位置のいずれかにインストールされている場合は、アプリケーションの情報プロ パティリストで特殊なキーと値のペアを指定しなくても、ヘルプビューアにより適切に処理され ます。 アプリケーションの環境設定 アプリケーションは通常、デフォルトの環境設定のセットを使ってインストールされます。イン ストール完了後、ユーザは自分の習慣に合わせて、環境設定を自由に変更することができます。 あらゆるアプリケーションには、一連の環境設定オプションを表示してユーザの選択を受け付 け、選択内容を環境設定システムに書き込むためのコードが含まれています(「ソフトウェアの 設定」の章の「環境設定」(202ページ)を参照)。C H A P T E R 6 アプリケーションのパッケージング アプリケーションに含まれるユーザリソース 129  Apple Computer, Inc. February 2001 アプリケーションで、ユーザ環境設定データをアプリケーションパッケージ内に書き込んではいけ ません。環境設定は、ログインユーザのアカウント(ローカルまたはネットワーク)のLibrary/ Preferencesディレクトリか、あるいはマシンローカルドメインまたはネットワークドメインの同 じ位置に格納されます。環境設定データをこれらの位置に直接書き込んではいけません。Core Foundationの環境設定サービス(CFPreferences)が提供するAPIを使用するか、Cocoaアプリケー ションの場合はNSUserDefaultsを使用してください。このようにユーザ環境設定をアプリケーショ ンパッケージから分離する理由の1つは、アプリケーションをネットワークブートされた環境で実 行できるようにするためです。 書類のリソース ワードプロセッサ、スプレッドシート、ドローアプリケーションなど、書類での作業が中心となる アプリケーションには、しばしばテンプレート、クリップアート、チュートリアル、アシスタント などのリソースが含まれています。これらの項目はアプリケーションバンドル内にパッケージング することもできますが、アプリケーションパッケージの外部にある位置にパッケージングすること もできます。こうしたリソースの格納場所を決定するときの規則は、プラグインおよびその他の ロード可能バンドルに適用される規則に類似しています(「アプリケーションとロード可能バンド ル」(125ページ)を参照)。 ■ リソースがアプリケーションのデベロッパから提供されている場合は、アプリケーションバン ドルのSharedSupportディレクトリに格納します。 ■ リソースがサードパーティから提供されている場合は、ユーザの Library/ApplicationSupport フォルダなど、アプリケーションリソースの標準ディレクトリ位置のいずれかに格納します。 ロード可能バンドルと同様、アプリケーションでは、アプリケーションリソース(パッケージの 内部にあるものと外部にあるものの両方)を表示して、ユーザが選択できるようにする、ある種 のリソースブラウザを提供する必要があります。ただし、このブラウザがアプリケーションパッ ケージの内部構造を公開してしまわないように注意してください。130 アプリケーションに含まれるユーザリソース  Apple Computer, Inc. February 2001 C H A P T E R 6 アプリケーションのパッケージング131  Apple Computer, Inc. February 2001 C H A P T E R 7 7 フレームワーク フレームワークはバンドルの1つのタイプで、ダイナミック共有ライブラリを、それが必要とする リソース(ヘッダファイルやリファレンスマニュアルなど)とともにパッケージングしたもので す。このようにコードとリソースを統合することには利点があります。たとえば、ライブラリはリ ソースを容易に検出でき、ユーザにとってはインストールとアンインストールが容易になります。 フレームワークバンドルは.frameworkという拡張子を持ちます。バンドルの内部には、フレーム ワークの複数のメジャーバージョンが存在する場合があります。フレームワークフォルダの最上 位レベルにあるシンボリックリンクのネットワークがライブラリコードとリソースの最新バー ジョンを指します。ダイナミックリンクエディタは、フレームワークのインストール先のディレ クトリ位置をフレームワークの実行可能ファイルの中に書き込みます。プログラムが起動すると きに、この位置でフレームワークを検出できないと、ダイナミックリンクエディタは標準ディレ クトリ位置でフレームワークを検索します。システムおよびサードパーティのフレームワークは しばしば標準ディレクトリ位置にインストールされます。また、サードパーティのフレームワー クは、それらを必要とするアプリケーションパッケージに置かれることもあります。 フレームワークに含まれる実行可能コードはダイナミック共有ライブラリです。このライブラリに 含まれるコードは、並行して実行されている複数のプログラムで共有することができます。各プロ グラムで使用するコードのコピーを作成する必要もありません。スタティックにリンクされている 共有ライブラリとは異なり、ダイナミック共有ライブラリにリンクされるプログラム内の未定義シ ンボルのバインドは、そのプログラムが実行されるまで延期されます。プログラムの実行時にプロ グラム内で未定義シンボルが参照されると、ダイナミックリンクエディタはそれらの未定義シンボ ルを解決しようとします。ライブラリモジュール内のシンボルがプログラム内で参照されていない 場合、そのモジュールはリンクされません。ダイナミック共有ライブラリへのインストールパス は、それらのライブラリとともにビルドされるすべての実行可能ファイルに書き込まれます。132 ライブラリパッケージとしてのフレームワーク  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク フレームワークは、メジャー(非互換)バージョンとマイナー(互換)バージョンを含むことが できます。メジャーバージョンの付け方で、後方互換性を識別できます。以前のバージョンのラ イブラリにリンクされているプログラムと非互換のフレームワークには、新しいメジャーバー ジョンが与えられます。これらのプログラムは、フレームワークバンドル内に保持されている以 前のバージョンにリンクしなければなりません。一方、マイナーバージョンの付け方では、前方 互換性を識別できます。フレームワークの1つのメジャーバージョンには複数のマイナーバー ジョンが存在することがあります。マイナーバージョンは、フレームワークが、そのフレーム ワークのより新しいビルドにリンクされるプログラムと互換性を持つことを示します。 ライブラリパッケージとしてのフレームワーク ライブラリがあるコンピューティング環境にインストールされる場合、それがファイルシステム のある場所に置かれ、関連するコードが別の場所に置かれる場合があります。これらの関連リ ソースには、ヘッダファイルや、画像、ローカライズされた文字列などが含まれます。このよう にコードとリソースを分離して格納することにより、いくつかの問題が発生します。 ■ ライブラリとリソースのアンインストールが複雑になります。 ■ ライブラリとヘッダファイルの不一致が発生する可能性が高くなります。 ■ ライブラリコードによるリソースの検出が困難になることがあります。 フレームワークは、ダイナミック共有ライブラリと、ライブラリが使用するリソースやその他のラ イブラリに関連するリソースを束ねることでこの問題を解決します。実際、アプリケーションやプ ラグインとまったく同様にフレームワークもバンドルであるため、「束ねる」(バンドルする)とい うのは適切な表現です。ただし、フレームワークはいくつかの重要な点で他のタイプのバンドルと は異なります。 ■ フレームワークには、ヘッダファイルという独特のタイプのリソースが含まれます。また、 場合によっては、プライベートなスタティックライブラリなど、あらゆるものをリソースと して含むことができます。 注意:Mac OS Xの現在のリリースに含まれているフレームワークは「バージョン付き」のバ ンドルです。これらのバンドルの内部ディレクトリ構造には、アプリケーションおよびロード 可能バンドルという新しいタイプのバンドルの機能の多くが欠けています。ニュースタイルバ ンドルの説明は、「バンドル」の章の「バンドルの解剖」(105ページ)を参照してください。C H A P T E R 7 フレームワーク ライブラリパッケージとしてのフレームワーク 133  Apple Computer, Inc. February 2001 ■ フレームワークが構築されるとき、バンドルビットはセットされません。その結果、Finder はフレームワークをファイルパッケージ(ファイルとして表示されるディレクトリ)として 取り扱わず、デベロッパはパッケージングされているヘッダファイルをブラウズすることが できます。 ■ 「フレームワークの内部構造」(133ページ)で説明するように、フレームワークはバージョン 付きのバンドルです。 バージョン付きのバンドルは、Mac OS X Server(またはそれ以前)のバンドルから派生した内 部構造を持ちます。アップル社では、最終的にはフレームワークを新しい内部構造に変換する予 定です。それまでの間、Mac OS Xでは両方のスタイルのバンドルをサポートします。バンドル に適用されるシステムルーチンは、バージョン付きのバンドルと新しいタイプのバンドルの両方 を処理することができます。 フレームワークの内部構造 Mac OS Xのフレームワークは、.frameworkという拡張子を持つディレクトリです。このディレク トリをオープンすると、第1レベルの内容がほぼ次のように表示されます。 GreatSoftware.framework/ GreatSoftware Headers/ PrivateHeaders/ Resources/ Versions/ この例で、項目GreatSoftwareはダイナミック共有ライブラリです。Headersおよび PrivateHeadersは、フレームワークの、パブリックおよびプライベートのヘッダファイルを格 納するサブディレクトリです。フレームワークのリソース(インタフェース定義ファイル、 画像、サウンド、ローカライズされた文字列などの項目)は Resourcesサブディレクトリに格 納されます。 Versionsサブディレクトリは、このレベルでは唯一の「本物」のディレクトリです。 GreatSoftware、Headers、PrivateHeaders、およびResourcesはすべて、フレームワークの現 在のメジャーバージョンのライブラリとディレクトリへのシンボリックリンク(エイリアスのよ うなもの)です。図7-1に、このようなリンクを示します。134 ライブラリパッケージとしてのフレームワーク  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク 図7-1 フレームワークのディレクトリ構造 フレームワークディレクトリには、複数のメジャーバージョンのダイナミック共有ライブラリ (およびそれらのリソース)が含まれることがあります。新しいメジャーバージョンのフレーム ワークが必要になる場合として一般的なのは、そのダイナミック共有ライブラリが、以前のバー ジョンのライブラリにリンクされているプログラムと非互換の場合です。こうしたアプリケー ションは、最新バージョンのライブラリを使用しても動作しませんが、古いバージョンであれば 動作します。このため、古いバージョンがフレームワークバンドルの中に入れておかれます。 フレームワークのそれぞれのバージョンは、Versionsディレクトリにある、習慣的にアルファ ベット1文字の名前を付けたサブディレクトリに格納されています。メジャーおよびマイナーな フレームワークバージョンの詳細と、バージョン更新の一般論については、「フレームワークの バージョン」(139ページ)を参照してください。 Currentの内容� へのリンク� 最新のもの� へのリンク�C H A P T E R 7 フレームワーク ライブラリパッケージとしてのフレームワーク 135  Apple Computer, Inc. February 2001 フレームワークのResourcesディレクトリの内容は、ニュースタイルバンドルのResourcesディ レクトリの内容に類似しています。ローカライズされたリソースはResourcesのサブディレクト リに格納されます。これらのサブディレクトリは、言語(必要な場合はその言語が話されている 地域)を示す名前と.lprojという拡張子を持ちます。特に、言語のバリエーションを持つ地域に 固有のリソースの場合は、ISO 3166規格に定められた国別コード、およびISO 639規格に定めら れた言語コードにもとづく名前(2つのコードをアンダーバーで区切って)を使用する必要があ ります。たとえば、カナディアンフレンチ固有のリソースは、fr_CA.lprojという名前のリソース ディレクトリに格納されます。一方、すべてのフランス語のバリエーションに使用するリソース をすべて保持する1つのディレクトリが必要な場合は、その名前はFrench.lprojになります。.lproj ディレクトリは、対象となる言語またはロケールにローカライズされた文字列、画像、サウン ド、およびインタフェース定義を保持します。フレームワークとニュースタイルバンドルの重要 な違 いの1つは、フレー ムワー クの ロー カライ ズさ れて いな いリソ ース が、Resourcesの Nonlocalized Resourcesサブディレクトリではなく、Resourcesディレクトリの最上位レベル に置かれるという点です。 フレームワークの標準位置 重要 このセクションに含まれている情報の大部分は、フレームワークが新 しいバンドル構造と新しいファイルシステムレイアウトを使用するよ うに変換された時点で不要となります。 システムフレームワークとは、Application KitやQuickTimeフレームワークなど、アップル社が 提供しているフレームワークのことです。システムフレームワーク内の共有ライブラリコード は、システム上のすべてのアプリケーションが使用するためのものです。システムフレームワー クは/System/Library/Frameworksにインストールされます。サードパーティのフレームワーク は、いくつかの要因に応じて、異なるファイルシステム位置に格納されます。 ■ シングルユーザによってのみ使用される場合は、ユーザのホームディレクトリのLibrary/ Frameworksサブディレクトリにインストールされなければなりません。 ■ 1台のMac OS Xシステムのすべてのユーザによって使用される場合は、/Local/Library/ Frameworksにインストールされなければなりません。 ■ ローカルエリアネットワーク全体で使用される場合は、/Network/Library/Frameworksにイン ストールされなければなりません。136 ダイナミック共有ライブラリ  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク アプリケーションまたはその他の実行可能ファイルをビルドするとき、コンパイラは、/System/ Library/Frameworksおよびコンパイラに対して指定されているその他の位置で、インポートされ ているフレームワークを検索します。必要なフレームワークがインストールされるはずのパスが、 バージョン情報とともに実行可能ファイルそのものの中に書き込まれます。 アプリケーションを実行するとき、ダイナミックリンクエディタはまず、実行可能ファイルにイン ストールパスが書き込まれているフレームワークにリンクしようとします。指定された位置でフ レームワークを見つけることができないと(移動または削除されたなどの理由で)、ダイナミック リンクエディタは標準の代替位置を次の順序で検索します。 ~/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks /System/Library/Frameworks それでも必要なフレームワークを検出することができない場合、リンクエディットエラーが発生 し、アプリケーションは起動しません。 ダイナミック共有ライブラリ フレームワークバンドルに含まれる実行可能コードはダイナミックにリンクされる共有ライブラ リ、あるいはダイナミック共有ライブラリです。これは、並行して実行されている複数のプログラ ムが共有できるコードを含んだライブラリです。これらのプログラムは、ライブラリコードの1つ の物理コピーを共有し、自分専用のコードのコピーを要求することはありません。ダイナミック共 有ライブラリにはいくつかの利点があります。ダイナミック共有ライブラリではメモリをより効率 的に使用でき、またデベロッパがライブラリコードに含まれるバグの修正や修正したコードのテス トを行う際に、それらのライブラリを使用するプログラムをビルドしなおす必要がありません。 注意:フレームワークの外部に置くダイナミック共有ライブラリを作成することもできます が、一般的な手法ではありません。スタンドアロンのダイナミック共有ライブラリは、習慣 的に.dylibという拡張子を持ち、通常、ライブラリに割り当てられている標準のファイルシス テム位置にインストールされます。C H A P T E R 7 フレームワーク ダイナミック共有ライブラリ 137  Apple Computer, Inc. February 2001 ダイナミック共有ライブラリは、スタティックにリンクされる共有ライブラリとは異なる特性を 持ちます。ダイナミック共有ライブラリの場合、プログラム内の未定義シンボルのバインドはそ のプログラムが実行されるまで延期されます。つまりダイナミックリンクエディタは、実行時に すべての未定義シンボルの解決を試みるというだけでなく、プログラムの実行中、かつ実際にそ れらのシンボルが参照されたときにのみ解決を試みます。未定義シンボルが参照されない場合、 実行中のプログラムはバインドを行う必要はありません。 このようなダイナミックな動作が可能なのは、ダイナミック共有ライブラリの構成に由来してい ます。複数のオブジェクトコードモジュールからダイナミック共有ライブラリがビルドされます が、それぞれの個別の境界は保持されたままです。すなわち、ソースモジュールのコードは単一 のコードベースにマージされません。ダイナミック共有ライブラリにリンクされているプログラ ムが起動するとき、ダイナミックリンクエディタはライブラリ内のモジュールを自動的にロード してリンクしますが、モジュールとのリンクを行うのは必要なときだけです。つまりモジュール は、シンボルが参照された場合、またはそのモジュール内で定義されている関数が呼び出された 場合だけリンクされるということです。モジュール内のコードが参照されないか、呼び出されな い場合モジュールはリンクされません。図7-2に、こうした「レイジーリンク」の動作を示しま す。この例で、モジュールa.oは、ライブラリ関数aが呼び出されたときに、プログラムのmain ルーチンにリンクされます。モジュールb.oは、プログラム関数doThat内のライブラリ関数bが 呼び出されたときにリンクされます。モジュールc.oは、関数が呼び出されないためリンクされ ません。138 ダイナミック共有ライブラリ  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク 図7-2 ダイナミック共有ライブラリモジュールの「レイジーリンク」 フレームワークのデベロッパは、このように個別モジュールが必要に応じてリンクされるしくみを 意識してダイナミック共有ライブラリを設計する必要があります。ダイナミックリンクエディタは 常に、他のモジュールや他のライブラリに移動する前に同じモジュール内の未解決シンボルをバイ ンドしようとするため、相互に依存するコードは必ず同一のモジュール内に配置しなければなりま せん。たとえば、割り当てと割り当ての解除を行うカスタムルーチンは必ず同じモジュール内に配 置する必要があります。このテクニックにより、不正なシンボル定義が使用されることを防ぐこと ができます。この問題は、あるシンボルの定義が複数のダイナミック共有ライブラリ内に存在し、 他のシンボル定義が正しい定義をオーバーライドするときに発生します。 フレームワークを作成するときは、それぞれのシンボルがライブラリ内で1度だけ定義されてい ることを確認しなければなりません。また、「共通」シンボルはライブラリ内では許可されませ ん。ただ1つの正しい定義だけを使用し、定義の先頭に、キーワード「extern」を置く必要があり ます。 #include ; #include "main.h"; #include "doThat.h"; int main() { a(); doThat(1); return 0; } ... main.c #include ; #include "doThat.h"; void doThat (int n) { b(); if (!n); c(); } doThat.c MyApp.app Boffo.framework a.o #include "a.h"; void a() { ... } .............. .............. b.o #include "b.h"; void b() { ... } .............. .............. c.o #include "c.h"; void c() { ... } .............. .............. リンク� リンク�C H A P T E R 7 フレームワーク フレームワークのバージョン 139  Apple Computer, Inc. February 2001 プログラムをビルドするときに、プログラムをダイナミック共有ライブラリにリンクすると、 ライブラリのインストールパスがプログラム内に記録されます。アップル社から供給されている システムフレームワークの場合、パスは絶対パスです。サードパーティのフレームワークの場合 は、そのフレームワークを含むアプリケーションパッケージを基準とする相対パスです。このよ うにしてライブラリパスを取得することで、プログラムの起動時のパフォーマンスが向上しま す。ファイルシステムを検索する必要がないため、ダイナミックリンクエディタは直接ダイナ ミック共有ライブラリにアクセスして、それをプログラムにリンクします。もちろん、プログラ ムを実行するには、記録されているパスが指定する場所に必要なライブラリがインストールされ ているか、またはフレームワークとライブラリの標準代替位置のいずれかに必要なライブラリが インストールされていなければなりません。 ダイナミック共有ライブラリは他のダイナミック共有ライブラリとの依存関係を持つことがあ り、こうした依存関係はライブラリの実行可能ファイルの中に記録されます。プログラムを最初 のダイナミック共有ライブラリにリンクするとき、ダイナミックリンクエディタはこうした依存 関係にあるライブラリのパスを取得して、それらも同様にプログラムとリンクすることができま す。したがって、ダイナミック共有ライブラリのユーザは、プログラムをリンクするときにライ ブラリ間の依存関係を意識する必要はありません。 ダイナミック共有ライブラリでも、バージョンの付け方によって、後方互換性とある程度の前方 互換性を識別できます。この問題の詳細については、「フレームワークのバージョン」(139ペー ジ)を参照してください。 フレームワークのバージョン ダイナミック共有ライブラリに加えた変更のタイプにもとづいて、異なるバージョンのフレーム ワークを作成することができます。バージョンには、メジャー(または非互換)およびマイナー (または互換)の2つのタイプがあります。 メジャーバージョン フレームワークのメジャーバージョン(非互換バージョンとも呼ばれます)は、以前のバージョン のフレームワークのダイナミック共有ライブラリにリンクされているプログラムとは非互換です。 そのようなプログラムを新しいバージョンのフレームワークに対して実行しようとすると、ほぼ確 実にランタイムエラーが発生します。140 フレームワークのバージョン  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク 通常、フレームワークのすべてのメジャーバージョンはフレームワークバンドル内に保持されて いるため、現在のバージョンと互換性のないプログラムであっても、互換性のあるバージョンを 使って実行することができます。フレームワークの各メジャーバージョンのパスにはバージョン がエンコードされます(「フレームワークの内部構造」(133ページ)を参照)。たとえば、次のパ スに含まれる「A」という文字は、例に取り上げたフレームワークのメジャーバージョンを示し ています。 /System/Library/Frameworks/Boffo.framework/Versions/A/Boffo プログラムがビルドされるとき、このパスはプログラムの実行可能ファイルそのものの中に記録さ れます。プログラムを実行するとき、ダイナミックリンクエディタはこのパスを使って、互換性の あるバージョンのフレームワークのライブラリを検索します。つまり、フレームワークがすべての メジャーバージョンを含み、それぞれの実行モジュール自身が使用可能なメジャーバージョンを記 録するという、メジャーバージョンスキーマにより、フレームワークは後方互換性を持つことがで きます。 次のような変更を加えた結果として、ダイナミック共有ライブラリが、以前のバージョンのライブ ラリにリンクされているプログラムと非互換になった場合は、フレームワークの新しいメジャー バージョンを作成しなければなりません。 ■ クラス、関数、メソッド、または構造体などのパブリックAPIを削除する ■ パブリックAPIの名前を変更する ■ 構造体のデータレイアウトを変更したり、クラスのインスタンス変数の追加、変更、または 再配列を行う ■ C++クラスにメソッドを追加する ■ パブリックAPIのプログラムインタフェースを変更する 最後の変更の例としては、関数に含まれるパラメータの順序の変更をあげることができます。 通常は、一番新しくビルドされたフレームワークのメジャーバージョンが「現在の」バージョン になります。特に指定しないかぎり、ビルドするプログラムはそれぞれ、現在のバージョンのラ イブラリにリンクされます。古いプログラムをリビルドする場合も現在のバージョンにリンクさ れます。フレームワークをビルドするとき、ビルドシステムはフレームワークの現在のメジャー バージョンを指すシンボリックリンクのネットワークを自動的に生成します。詳細については、 「フレームワークの内部構造」(133ページ)を参照してください。C H A P T E R 7 フレームワーク フレームワークのバージョン 141  Apple Computer, Inc. February 2001 フレームワークの新しいメジャーバージョンを作成するときは、統合開発環境に詳細の大部分を まかせることができます。デベロッパの作業は、メジャーバージョンの識別子を指定することだ けです。一般的な命名規則に従えば、この識別子にはアルファベットの1文字を使用し、それぞ れの新しいバージョンの識別子は前のものよりも「大きい」文字になります。ただし、状況に応 じて、「2.0」、「Two」などの任意の識別子を使用することができます。 また、スタンドアロンのダイナミック共有ライブラリ(つまり、フレームワークバンドル内に格納 されていないライブラリ)のメジャー非互換バージョンを作成することもできます。このタイプの ライブラリのメジャーバージョンは、次の例のように、ファイル名そのものの中にエンコードされ ます。 libMyLib.B.dylib このライブラリが最新のメジャーバージョンだと仮定すると、それを指すシンボリックリンクが libMyLib.dylibという名前で作成されます。これにより、ダイナミック共有ライブラリの現在のメ ジャーバージョンが作成されます。 マイナーバージョン フレームワークのメジャーバージョンの内部には、一連のマイナー(または互換)バージョンが 含まれる場合があります。フレームワークのマイナーバージョンは、同じメジャーバージョン内 で後にビルドされたプログラムと互換性を持つとします。したがって、マイナーバージョンを利 用すると、前方互換性を確保することができます。フレームワークの最新バージョンに新しいプ ログラミングインタフェースが導入された場合、このフレームワークでビルドされるプログラム は、以前のマイナーバージョンのフレームワークでは正常に動作しなくなる可能性があります。 プログラムがそれらの新しいAPIへの参照を含んでいると、プログラムを起動したときにほぼ確実 にリンクエディットエラーが発生してプログラムはクラッシュします。マイナーバージョンを利 用すると、フレームワークのデベロッパは、どれくらい古いバージョンのフレームワークまで最 新のフレームワークにリンクされている実行可能ファイルがともに使用できるかを制御できるよ うになります。 2つのバージョン番号(現在のバージョンと互換バージョン)の関係は、あるプログラムとフレー ムワークのマイナーバージョンのステータスを示します。フレームワークの現在のバージョン番 号は、互換性のある変更を加えてフレームワークを再ビルドする度に増加していきます(つまり、 新しいメジャーバージョンを必要としない変更)。142 フレームワークのバージョン  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク フレームワークに加えられた変更のタイプにより、2番目のマイナーバージョン番号(互換バー ジョン)が影響を受けます。変更が単なるバグフィックスであったり、いずれのパブリックAPIに も影響しない拡張である場合、互換バージョン番号はその現在値から変更されません。しかし、 フレームワークにクラス、メソッド、関数、構造体、またはその他のパブリックAPIを追加した場 合、互換バージョン番号は現在のバージョン番号と同じ値に設定されなければなりません。 重要 Objective-CまたはC++のクラスへのインスタンス変数の追加やC++ のメソッドの追加は、互換性のあるマイナーな変更ではなく、メジャー な非互換の変更となります。 フレームワークがビルドまたはリビルドされるとき、現在のバージョン番号と互換バージョン番 号がフレームワークのダイナミック共有ライブラリの中に記録されます。このフレームワークに リンクするプログラムをビルドすると、これらと同じ番号がフレームワークのパス(メジャーバー ジョンの識別子を含みます)とともにプログラムの実行可能ファイルの中に書き込まれます。 このプログラムを実行しようとすると、ダイナミックリンクエディタはプログラムの互換バー ジョン番号とフレームワークの互換バージョン番号を比較します。プログラムの互換バージョン 番号がフレームワークの互換バージョン番号よりも大きいと、プログラムは起動しません。 マイナーバージョンの区別は、フレームワークとまったく同様にスタンドアロンのダイナミック共 有ライブラリにも適用されます。 バージョンの要約とガイドライン Mac OS Xでは、フレームワークとダイナミック共有ライブラリに2つのタイプのバージョンが存在 します。 ■ メジャー非互換バージョン:以前のバージョンのフレームワークのダイナミック共有ライブ ラリにリンクされているプログラムと互換性のないフレームワークを指します(後方互換 性)。 ■ マイナー互換バージョン:同一のメジャーバージョンに属する、より新しいビルドのフレー ムワークにリンクされているプログラムと互換性のあるフレームワークを指します(前方互 換性)。C H A P T E R 7 フレームワーク フレームワークのバージョン 143  Apple Computer, Inc. February 2001 表7-1に、それぞれのタイプのバージョンの特徴の要約を示します。 コマンドラインプログラムotoolの出力を見ると、バージョン識別情報がプログラムの実行可能 ファイルの中にどのように記録されているかがわかります。このプログラムを使用するには、任意 のMac OS Xアプリケーションのディレクトリに移動して、Terminalのシェルに otool -L appName(appNameにはアプリケーション名を入れます)と入力します。 必要なときにフレームワークのメジャーバージョンを変更しないと、そのフレームワークにリンク されているプログラムは正常に実行されなくなります。逆に、必要がないのにメジャーバージョン 番号を変更すると、不必要なフレームワークでシステムがあふれかえってしまいます。 バージョンを正しく管理するには、第一に、バージョン番号を変更しなくてもすむようにすること です。次に、このための方法をいくつか示します。 表7-1 フレームワークバージョンの要約 バージョンのタイプ バージョンに影響する操作 結果 メジャー/非互換 (後方互換) APIの変更(関数名の変更など)、APIの 削除、インスタンス変数の追加または再 配列、C++メソッドの追加。 メジャーバージョン識別子の変更。新しい識 別子は フレーム ワークの パスに反 映されま す。ダイナミック共有ライブラリのパスが、 フレームワークを使ってビルドしたプログラ ムに記録されます。 マイナー/互換 (前方互換) 新しい関数、メソッド、クラス、構造 体などの追加。 現在の(マイナー)バージョン番号の増加。 互換バージョン番号は現在の(マイナー)バー ジョンと同じ値に設定されます。両方の値が、 このフレームワークを使ってビルドしたプロ グラムに記録されます。 なし バグ フィ ック ス、プログ ラム イン タ フェースに影響を与えない拡張 現在の(マイナー)バージョン番号の増加。 互換バージョン番号は変化しません。両方の 値が、このフレームワークを使ってビルドし たプログラムに記録されます。144 フレームワークのバージョン  Apple Computer, Inc. February 2001 C H A P T E R 7 フレームワーク ■ クラスや構造体に予約済みのフィールドを作っておきます。パブリッククラスにインスタン ス変数を追加した場合はメジャーバージョン番号を変更する必要があります。これはサブク ラスがスーパークラスのサイズに依存するためです。しかし、未使用(予約済み)のインス タンス変数やフィールドを定義しておくことにより、クラスや構造体を大きめに作っておく という方法があります。こうすれば、インスタンス変数をクラスに追加しなければならなく なった場合にも、クラスに追加せずに、必要なサイズの新しいクラス全体を定義して、予約 済みのインスタンス変数にそれをポイントさせるようにできます。 なお、頻繁にインスタンス化されるクラスのインスタンス変数や頻繁に割り当てられる構造 体のフィールドを大きめに作ると、メモリが無駄になります。 ■ ユーザが使用するものでないかぎり、APIを公開しないでおきます。プライベートAPIは、それ を使用しているプログラムがないことが確実なため、自由に変更できます。変更される可能性 のあるAPIはできるかぎりプライベートヘッダの中で宣言します ■ 何も削除しないようにします。メソッドや関数がもはや役立たなくなった場合にも、互換性 を維持するために、APIの中にそのまま削除せずに残しておきます。それが何らかの値を返 すことを確認します。メソッドや関数に引数を追加する場合でも、できるかぎり古い形式を そのまま残しておきます。 ■ APIを変更または削除する場合と異なり、APIを追加する場合には、古いAPIが残っているた めメジャーバージョン番号を変更する必要はありません。なお、この規則の例外はインスタ ンス変数です(ただし、互換バージョン番号を変更する必要があります)。 統合開発環境で「make clean」を行うと、プロジェクトディレクトリ内のフレームワークバンド ル全体が削除されます。これは、現在のバイナリに加えて古いバイナリも削除されるという意味 です。それ以降のビルドでは現在のバージョンのみが作成されます。以前のバージョンを取り戻 す方法はありません。どうしても「make clean」を実行する必要がある場合は、プロジェクトの 複数のコピー、つまり、現在のバージョンをビルドするコピーと、以前のバージョンそれぞれに 対して1つのコピーを作成する必要があります。145  Apple Computer, Inc. February 2001 C H A P T E R 8 8 アンブレラフレームワーク アンブレラフレームワークは、構成要素であるサブフレームワークや、アップル社が提供するそ の他のパブリックフレームワークのインクルードとリンクを行うパブリックシステムフレーム ワークです。サブフレームワークとは、パブリックなもので、通常は、Open TransportやQuickDraw など、特定のAppleテクノロジーをパッケージングしている、制限付きのシステムフレームワー クのことです。 「アンブレラ」という単語が示すように、アンブレラフレームワークは、アプリケーション環境 またはシステムソフトウェアのレイヤを定義するすべてのテクノロジーおよびAPIを包含しま す。アンブレラフレームワークは、外部のデベロッパのプログラムのリンク先になるものと、 アップル社内部のエンジニアが実装して提供するものとの間のアブストラクションレイヤを提 供します。サブフレームワークの内部構成は、細部が変更される可能性の高い実装です。このた め、アップル社では、デベロッパが直接的にサブフレームワークのインクルードとリンクできな いようにするメカニズムを導入しています。 アンブレラフレームワークの使用はサードパーティのデベロッパにはお勧めできません。アップル 社は、外部のデベロッパに対しては、フレームワークをアプリケーション内にパッケージングする ことを推奨しています。詳細については、「アプリケーションのパッケージング」(119ページ) を参照してください。 この章では、さまざまな種類のプライベートおよびパブリックフレームワークについて説明し、 アンブレラフレームワークとサブフレームワークを定義します。また、アンブレラフレームワー クの内部構造をわかりやすく示し、アンブレラフレームワークとのリンクに関するガイドライン を提案します。146 フレームワークの種類  Apple Computer, Inc. February 2001 C H A P T E R 8 アンブレラフレームワーク フレームワークの種類 Mac OS Xの主要なアプリケーション環境とシステムソフトウェアのレイヤ(アプリケーション サービス、コアサービス、およびカーネル環境の各レイヤ)はアンブレラフレームワークとして パッケージングされています。この用語を定義するには、いくつかの概念を段階的に説明していく 必要があります。 第一に、フレームワークとは何かという問題があります。フレームワークとは、ダイナミック共有 ライブラリと、それをサポートするリソースとともに保持する、階層的に構造化されたディレクト リです。これらのリソースには、ヘッダファイル、リファレンスマニュアル、画像ファイル、ロー カライズされた文字列などが含まれます。フレームワークの詳細については、「フレームワーク」 (131ページ)の章を参照してください。また、フレームワークはバンドルのタイプの1つですが、 アプリケーションやプラグインなど他のタイプのバンドルとは大きく異なります。バンドルの詳細 については、「バンドル」(103ページ)の章を参照してください。 第二に、フレームワークはいくつかのタイプ、あるいは「フレーバー」に分類できます。まず、 フレームワークはプライベートまたはパブリックのいずれかです。プライベートフレームワーク は社内開発のみに使用され、そのAPIはユーザおよび開発者には公開されません。習慣的に、 これらのフレームワークは、システム、ネットワーク、またはユーザのLibraryフォルダ内の PrivateFrameworksフォルダに格納されます。ただし、フレームワークがアプリケーションと 密接に結びついている場合は、通常、アプリケーションパッケージの内部に格納します(「アプ リケーションのパッケージング」(119ページ)参照)。パブリックフレームワークはユーザある いは開発者にリリースされ、そのAPIはヘッダファイルによって公開されます。習慣的に、これ らのフレームワークは適切なLibrary位置のFrameworksフォルダにインストールされます。 第三に、アップル社がMac OS Xとともに出荷しているパブリックフレームワークは、単純なパ ブリックフレームワーク、サブフレームワーク、およびアンブレラフレームワークの3つのタイ プに分けられます。これらのフレームワークは、インストール先のハードディスクの/System/ Library/Frameworksにインストールされます。このフォルダにあるパブリックフレームワーク のうち、Mac OS X Serverなど、以前のバージョンのオペレーティングシステムで幅広く使用さ れていたものは、アンブレラフレームワークでもなければ、サブフレームワークでもない単純な 種類のものです。Cocoaアプリケーション環境のFoundationフレームワークおよびApplication Kitフレームワークはこのカテゴリーに属します。C H A P T E R 8 アンブレラフレームワーク アンブレラフレームワークの目的 147  Apple Computer, Inc. February 2001 アンブレラフレームワークの目的 アンブレラフレームワークは、その構成要素であるサブフレームワークと、その他のパブリックフ レームワークのインクルードとリンクを行うだけです。1つのアンブレラフレームワークは、1つ のアプリケーション環境またはシステムソフトウェアの1つのレイヤを定義するすべてのテクノ ロジーおよびAPIを包含します。アンブレラフレームワークは、外部のデベロッパがプログラムに リンクするものとアップル社内部のエンジニアが実装として提供するものとの間にアブストラク ションレイヤを提供します。 サブフレームワークは、構造的には、アップルイベント、Quartz、Open Transportなどの特定 のアップルテクノロジーをパッケージングするパブリックフレームワークです。ただし、サブフ レームワークは制限付きのパブリックフレームワークです。サブフレームワークのAPIはパブ リックですが、アップル社では、デベロッパが直接的にサブフレームワークにリンクできないよ うにするメカニズムを導入しています(「サブフレームワークリンクの制限」(153ページ)を参 照)。サブフレームワークは、必ず/System/Library/Frameworksにインストールされているア ンブレラフレームワーク内に存在し、アンブレラフレームワーク内では、サブフレームワークの ヘッダファイルが公開されています(「アンブレラフレームワークの構造」(151ページ)を参照)。 一部のアンブレラフレームワークには別のアンブレラフレームワークが含まれています。このこと は特に、CarbonおよびCocoaアプリケーション環境のいくつかのアンブレラフレームワークに当て はまります。たとえば、CarbonとCocoaはどちらも(直接的または間接的に)、コアサービスアン ブレラフレームワーク(CoreServices.framework)のインポートとリンクを行います。一方コア サービスアンブレラフレームワークは、Core FoundationやOpen Transportなどのサブフレーム ワークのインポートとリンクを行います。図8-1にこの関係を示します。148 アンブレラフレームワークの目的  Apple Computer, Inc. February 2001 C H A P T E R 8 アンブレラフレームワーク 図8-1 アンブレラフレームワークとそのサブフレームワークの関係 アンブレラフレームワーク内のサブフレームワークの正確な構成は、細部が変更される可能性の高 い内部実装です。しかし、アンブレラフレームワークは間接的レベルを提供することにより、デベ ロッパが変更の影響を受けないようにします。アップル社では今後、アンブレラフレームワーク内 のサブフレームワークの構造を変更したり、サブフレームワーク内でヘッダファイルの追加や削 除、または名前を変更する可能性がありますが、このような変更はアンブレラフレームワークにリ ンクしているプログラムに影響を及ぼしません。 アンブレラフレームワークの価値は、このフレームワークとだけリンクすることで、特定のアプ リケーション環境またはシステムソフトウェアのレイヤでのプログラミングに必要なすべての APIへのアクセスが保証される点にあります。アンブレラフレームワークは、システムソフトウェ アのさまざまな部分の間に存在する複雑な相互依存関係を見えなくします。したがって、デベロッ パは特定のタスクを実現するためにインポートする必要があるフレームワークやライブラリの セットを知っている必要はありません。また、アンブレラヘッダファイルやフレームワークヘッ ダファイルとともにプリコンパイルドヘッダがインクルードされるため、アンブレラフレーム ワークの使用により、ビルドが速くなります。 サブフレームワーク ... サブフレームワーク ... Carbonアプリケーション #includes アンブレラフレームワーク ダイナミックにロード Core Foundation Open Transport サブフレームワーク1 サブフレームワーク2 コアサービス アンブレラフレームワーク CarbonC H A P T E R 8 アンブレラフレームワーク リンクとインクルードのガイドライン 149  Apple Computer, Inc. February 2001 リンクとインクルードのガイドライン Mac OS Xソフトウェアデベロッパにとって、ヘッダファイルのインクルードとシステムソフト ウェアへのリンクに際してのガイドラインはかなり単純で、「アンブレラヘッダファイルのみを インクルードし、作成しようとしているプログラムに対して適切なアンブレラフレームワークに のみリンクを行う」というものです。 アンブレラヘッダファイルは、そのサブフレームワークのフレームワークヘッダファイルをインク ルードします。また、フレームワークヘッダファイル(サブフレームワークなどの)は、そのフ レームワークのすべてのヘッダファイルをインクルードします。ただし、決してサブフレームワー クのヘッダファイルを直接的にインクルードしたり、そのサブフレームワークに直接的にリンクし たりしないでください(実際には、そうできないようになっています)。 Mac OS Xでフレームワークヘッダファイルのインクルードに使用するコマンドの一般的な構文は 次のとおりです。 #include ここで、Frameworkはフレームワークの名前、Headerはヘッダファイルの名前です。 アンブレラフレームワークを指定してMac OS Xのソフトウェアを開発するには、フレームワーク ヘッダファイルに対して使用されるのと同一の#include構文を使用します。つまり、たとえば Carbonアンブレラフレームワークを指定する場合は、次のコマンドを指定します。 #include 注意:Objective-Cプロジェクトの場合は、#includeディレクティブの代わりに#importディレ クティブを使用することもできます。このディレクティブは、同じファイルが何度もインク ルードされるのを防ぐという点を除いて#includeとまったく同じです。150 リンクとインクルードのガイドライン  Apple Computer, Inc. February 2001 C H A P T E R 8 アンブレラフレームワーク ただしアップル社では、CarbonデベロッパがソースコードをMac OS 9からMac OS Xに移植した り、あるいはその他の方法で、両方のオペレーティングシステムでビルドするコードを書いたり するのを容易にする暫定的なソリューションを用意しています。これは「フラットヘッダ」と呼 ばれる代替手段で、デベロッパが引き続き#includeコマンドを使用できるようにします。 /Developer/Headers/FlatCarbonに、Mac OS 9のすべてのパブリックヘッダファイルに使用でき るスタブファイルがあります。このスタブファイルは、コンパイラを適切なアンブレラヘッダ ファイルにリダイレクトし、また、Mac OS X上でAPIが使用できない場合は警告を出力します。 スタブファイルを利用するには、次に示すようにコンパイラで-Iフラグ(大文字の「I」(アイ) です。小文字の「l」(エル)ではありません)を使用して、FlatCarbonフォルダ内のファイルを インクルードする必要があります。 -I/Developer/Headers/FlatCarbon MacWindows.hとMacTypes.hの両方を確実にインクルードするよう注意してください。 Mac OS X専用のコードをコンパイルする場合は、アンブレラフレームワークをインクルードす る場合のネイティブの構文を使用してください(その副産物として、ビルド所要時間が減少しま す)。#includeコマンドに条件を付加することもできます。Mac OS Xでビルドする場合にアンブ レラフレームワークを直接インクルードする(たとえば、#include )よう にしたり、Mac OS 9でビルドする場合にフラットヘッダをインクルードする(たとえば、#include )ようにしたりできます。このように条件を付加する手法を使うと、-Iフラグを使 用する必要がなくなります。 『Inside Carbon: Carbon Porting Guide』には、フラットヘッダにおける#includeを使用するテク ニックに関する、詳細な説明が記載されています。アンブレラヘッダファイルの詳細については、 「アンブレラフレームワークの構造」(151ページ)も参照してください。 プログラムをアンブレラフレームワークとリンクし、多数のヘッダファイルをインクルードする ことによるプラグラムメモリの肥大化を心配する必要はありません。フレームワークの実行可能 コードはダイナミック共有ライブラリであるため、サブフレームワークのコードは、その関数ま たはメソッドの1つが最初に呼び出されるときにはじめてメモリにロードされます。プログラム が使用しないサブフレームワークはロードされません。この問題の詳細については、「フレーム ワーク」の章の「ダイナミック共有ライブラリ」(136ページ)を参照してください。C H A P T E R 8 アンブレラフレームワーク アンブレラフレームワークの構造 151  Apple Computer, Inc. February 2001 アンブレラフレームワークの構造 2つの要因がアンブレラフレームワークの構造を決定します。1番目の要因は、アンブレラフレー ムワークがヘッダファイルをインクルードする方法です。2番目の要因は、バンドルディレクトリ としてのアンブレラフレームワークで、サブフレームワークがどのように組織されているかです。 前のセクションで示した#includeの使用例は、アンブレラヘッダファイルとフレームワークヘッダ ファイルを使って、アンブレラフレームワークが提供するアブストラクションのレベルを実現する 方法を示しています。フレームワークヘッダファイルとアンブレラヘッダファイルをインクルード するための#includeコマンドの一般的な構文をもう一度確認しておきましょう。 #include この方式では、フレームワークとアンブレラヘッダファイルは同じ名前を持ちます。 アンブレラヘッダファイルは、そのサブフレームワークのフレームワークヘッダファイルをインク ル ード しま す。たとえ ば、コア サー ビス アン ブレ ラフ レー ムワ ーク のア ンブ レラ ヘッ ダ (CoreServices.h)は次のような内容を持ちます。 #include #include #include ... フレームワークヘッダファイルは、特定のテクノロジーのパブリックインタフェースを定義するす べてのヘッダファイルをインクルードします。たとえば、CoreFoundation.hは、Core Foundation サブフレームワーク(CoreFoundation.framework)のフレームワークヘッダです。その内容は以 下のようになります。 #include #include #include #include ... 物理的には、アンブレラフレームワークは、サブディレクトリとシンボリックリンク(エイリアス に類似したメカニズム)から構成される構造を使って、サブフレームワークを包含します。リス ト8-1に、フレームワークの例を示します(この例で、アットマーク(@)が末尾についている項 目がシンボリックリンクです。これらは参照先のパスをインクルードしています)。152 アンブレラフレームワークの構造  Apple Computer, Inc. February 2001 C H A P T E R 8 アンブレラフレームワーク リスト8-1 アンブレラフレームワークの構造 Umbrella.framework/ Headers@ -> Versions/Current/Headers/ PrivateHeaders@ - > Versions/Current/PrivateHeaders/ Resources@ -> Versions/Current/Resources/ Umbrella@ -> Versions/Current/Umbrella Versions/ Frameworks/ SubFW1.framework/ SubFW1@ -> Versions/Current/SubFW1 Headers@ -> Versions/Current/Headers/ PrivateHeaders@ -> /Versions/Current/PrivateHeaders/ Resources@ -> Versions/Current/Resources/ Versions/ SubFW2.framework/ SubFW2@ -> Versions/Current/SubFW2 Headers@ -> Versions/Current/Headers/ PrivateHeaders@ -> /Versions/Current/PrivateHeaders/ Resources@ -> Versions/Current/Resources/ Versions/ アンブレラフレームワークの各サブフレームワークはFrameworksディレクトリに格納されます。 アンブレラフレームワークのシンボリックリンクで参照されているHeadersディレクトリにはア ンブレラヘッダファイル(上の例ではUmbrella.h)が含まれます。アンブレラヘッダファイルに は、コンパイラにサブフレームワークの位置を指示する#pragmaコマンドが含まれています。 アンブレラフレームワークの構造については、一般的に、次の2つの点に注意する必要があります。 ■ PrivateHeadersディレクトリには社内開発で使用されるヘッダファイルが含まれるため、ユー ザおよび開発者向けにはリリースされません。 ■ アンブレラフレームワークのFrameworksディレクトリを除けば、フレームワークのVersions サブディレクトリは唯一の「本物」のディレクトリ、つまりこのレベルにあってシンボリッ クリンクではない唯一のディレクトリです。このサブディレクトリにはフレームワークのメ ジャーバージョンが含まれています。Currentディレクトリは、通常、最新バージョンを指す シンボリックリンクです。フレームワークの一般的な構造については、「フレームワーク」の 章の「ライブラリパッケージとしてのフレームワーク」(132ページ)を参照してください。C H A P T E R 8 アンブレラフレームワーク サブフレームワークリンクの制限 153  Apple Computer, Inc. February 2001 サブフレームワークリンクの制限 Mac OS Xには、デベロッパがアンブレラフレームワークにのみリンクすることを保証する2つのメ カニズムが含まれています。1つのメカニズムは、サブフレームワークのヘッダファイルをインク ルードしようとしたときに起動します。もう1つのメカニズムは、サブフレームワークにリンクで きないようにします。 外部のデベロッパがサブフレームワークにリンクしようとすると、リンクエラーが発生し、理由 を説明するメッセージが表示されます。たとえば、Open Transportフレームワーク (OT.framework)に直接的にリンクしようとすると、リンクエラーが発生し、「OT.framework is a subframework. Link against the umbrella framework CoreServices.framework instead.」 (OT.frameworkはサブフレームワークです。サブフレームワークではなく、アンブレラフレーム ワークCoreServices.frameworkにリンクしてください)というメッセージが表示されます。 サブフレームワーク内にあるヘッダファイルをインクルードしようとすると、コンパイル時エ ラーメッセージが表示されます。アンブレラヘッダファイルとサブフレームワークヘッダファイ ルには、サブフレームワークヘッダファイルのインクルードを防ぐため、プリプロセッサ変数と チェック機構が含まれています。不適切な#includeステートメントを使用してプロジェクトをコ ンパイルすると、コンパイラからエラーメッセージが表示されます。154 サブフレームワークリンクの制限  Apple Computer, Inc. February 2001 C H A P T E R 8 アンブレラフレームワークファイルシステムの構成 155  Apple Computer, Inc. February 2001 C H A P T E R 9 9 ファイルシステム アーキテクチャの観点から見ると、Mac OS Xは複数のファイルシステムを実装しています。最も 重要なのはMac OS拡張(HFS+)で、そのほかにMac OS標準(HFS)、UFS、ISO 9660、NFS、 AFPを実装しています。しかし、ユーザの観点から見ると、ファイルシステムは一体になってい ます。ユーザがファイルやフォルダをコピー、移動、またはドラッグするとき、ファイルシステ ムはただ1つのみです(または、そのように見えます)。 この章では両方の観点からファイルシステムを考察し、ソフトウェアデベロッパに関わりのある トピックを取り上げます。最初に、Mac OS Xの標準的なディレクトリレイアウトを示し、マルチ ユーザのネットワークコンピューティング環境で、アプリケーション、書類、フレームワーク、 リソ-スなどが格納される位置について説明します。次に、さまざまなファイルシステム間の相 違点と相互運用性の問題を説明します。重要なファイルシステムであるHFS+とUFSについては、 詳細に説明します。HFSリソースフォークの実装と、この実装に関連するポリシーも説明します。 ファイルシステムの構成 Mac OS Xでは、ファイルシステムのほとんどすべてのファイルに、適切な位置、つまり標準ディ レクトリ位置が、ファイルの種類によって定められています。これは、ユーザが推奨された場所 にアプリケーションとアプリケーションリソースを置かなければならないという意味ではありま せん。アプリケーションはインストールされる場所に関わらず完全に動作するようにパッケージ 化されています。しかし、システムソフトウェアが通常のインストール先と認識している場所に インストールしないと、多少の不便が生じることがあります。たとえば、Finderがアプリケーショ ンデータベースに入れるデータを収集するとき、アプリケーションの標準位置を最初に調査しま す(「アプリケーション情報の収集」(182ページ))。このため、標準位置にないアプリケーショ ンの書類は、ダブルクリックしてもすぐに開かないことがあります。156 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム ファイルシステム構成の背後にある基本原理を説明する前に、Finderがファイルシステムの最上位 レベルに表示するものについて考察します。リスト9-1にインストール例を示します。 リスト9-1 Mac OS Xファイルシステムの最上位レベル /Mac OS X/ /Network/ /OtherDevice/ ファイルシステムのレイアウトは、しばしば「ルート」から始まる階層的なツリー構造として示 されます。一般的なMac OS Xファイルシステムのルート(ルートは最初に付けられた/で示され ています)には、以下のものがあります。 ■ /Mac OS X/:オペレーティングシステムが起動し、システムソフトウェアとシステムリソー スがインストールされるボリューム。このボリュームは、通常、Mac OS拡張(HFS+)ボ リュームとしてフォーマットされたハードディスクです(ただし、UFSボリュームの場合も あります)。「Mac OS X」はデフォルトのボリューム名で、ユーザが変更可能です。 ■ /Network/:ユーザのシステムにマウントされているローカルエリアネットワークのルート。 /Network/ディレクトリ(地球のアイコン)は、ユーザがネットワークに接続しているかどう かに関わらず、常に表示されます。 ■ /OtherDevice/:外部的に接続されているデバイス、またはそのようなデバイスの起動ボ リュームやパーティションでない内部デバイスを表します。ハードディスク以外に、Zipド ライブ、CD-ROMドライブ、デジタルカメラなどの項目があります(「OtherDevice」は総称 です。接続されたデバイスの実際の名前は、それぞれ異なります)。 すべてのノンブートボリュームはマウントされると表示され、アンマウントされると表示が 消えます。例外はユーザのiDiskボリュームで、アンマウントされていても表示されます。 ルートレベルには、/usr、/bin、/etcなどの標準のBSDディレクトリがありますが、Finderではユー ザに表示されません。 まとめると、最上位レベルでは、Mac OS Xコンピュータのファイルシステムは、ハードディスク (起動ディスク)、ネットワーク、および外部デバイスとノンブートボリュームで構成されていま す。しかし完全な構成を知るには、下位レベルを見る必要があります。 注意:前述の説明では、ファイルシステムの最上位レベルがFinderで表示されているものと していることに注意してください。実際の構成はBSDシェルで確認できます(Terminalアプ リケーションを使用)が、多少異なります。これらの違いのいくつかについては、以下で必 要に応じて触れます。C H A P T E R 9 ファイルシステム ファイルシステムの構成 157  Apple Computer, Inc. February 2001 ファイルシステムの各ドメイン Mac OS Xファイルシステムのディレクトリは、ユーザのコンピュータのローカルリソースと、ネッ トワーク上のリソースとが区分されるように整理されています。システムリソースは、コンピュー タ上ではユーザやシステム管理者が管理するものと区分されています。アプリケーション、書類、 フォントなどのリソースは、いくつかのファイルシステムドメインの1つに置く必要があります。 ドメインとはファイルシステムの領域の1つで、ほかのドメインと同一の構造要素を持ち、ほかの ドメインから区分されています。 項目がどのドメインに置かれるかは、その項目のアクセス性をどの程度にしたいかによります。 以下の4つのドメインがあります。 ■ ユーザ:システムにログインしているユーザに固有のドメインです。このドメインは、その ユーザのホームディレクトリで定義されます。ホームディレクトリは起動ボリューム上(/Mac OS X/)かネットワーク上にあります。ユーザはこのドメインに置くものを全面的に管理でき ます。 ■ ローカル:特定のコンピュータのすべてのユーザ間で共有するアプリケーション、書類、 およびリソース用のドメインで、コンピュータの動作に必須ではありません。システム管理 者権限を持つユーザは、このドメインで項目を追加、削除、および変更できます。このドメ インはローカルの起動ボリューム(かつルートボリューム)に置かれます。 ■ ネットワーク:ローカルエリアネットワークのすべてのユーザ間で共有するアプリケーショ ン、書類、およびリソース用のドメインです。このドメインの項目は、通常、ネットワーク ファイルサーバにあり、ネットワーク管理者が管理します。 ■ システム:アップル社によってインストールされるシステムソフトウェア用のドメインで、 起動ボリューム(かつルートボリューム)に置かれます。システムドメインは、システムの 動作に必要なソフトウェアを含んでいます。ユーザはこのドメインに対して、項目の追加や 削除、および内容の変更を行うことはできません。 プログラムやリソースの適用範囲やアクセス可能性は、プログラムやリソースが配置されている ドメインにより定義されます。たとえば、ユーザが自分のホームディレクトリにあるフォントの 標準位置にカスタムフォントをインストールする場合、そのフォントはそのユーザの書類にのみ 使用できます。管理者がネットワーク上のフォント用の位置に同一のフォントをインストールす ると、そのフォントはネットワーク上のすべてのユーザから使用可能です。158 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム 各ドメイン内のディレクトリ構造とディレクトリ名は同一であり、さまざまなシステムルーチン はその規則性を利用して特定の項目をさがします。システムソフトウェアはこの規則性にもとづ いてアプリケーション、フレームワーク、フォント、ヘルプ、環境設定などのリソースを検索す るため、この規則性が損なわれるとシステムソフトウェアが使用する規則の基盤になっているた め、規則性が損われると多くのシステムサービスが動作しなくなる可能性があります。システム ソフトウェアが検索を行うとき、通常は先ほどの一覧に挙げた順序でドメインを検索します。 つまり、ユーザドメイン、ローカルドメイン、ネットワークドメイン、システムドメインの順です。 ファイルシステムドメイン内の位置をコード内で指定する場合、パスを明示的に指定しないでくだ さい。アップル社はこの目的でパブリックAPIで定義を提供しているので、それを使用してくださ い。ドメイン内での項目の検索の詳細については、「ファイルシステムドメイン内での検索」(170 ページ)を参照してください。 システムドメインとローカルドメイン システムドメインとローカルドメインのアプリケーションおよびリソースは、コンピュータシステ ムのすべてのユーザが使用できます。相違点は、システムドメインでは(若干例外がありますが) ユーザがリソースをインストールしたり、その内容を変更したりすることができないことです。 リスト9-2は、システムドメインとローカルドメインのディレクトリレイアウトを示しています。 リスト9-2 システムドメインとローカルドメインのディレクトリレイアウト /Mac OS X/ Applications/ Extras/ Utilities/ Library/ System/ Users/ Classic互換環境がインストールされるときに、インストーラが追加のディレクトリを起動ボリュー ムのルート(/Mac OS X)に配置することがあります。詳細については、「Classic環境のディレク トリ」(160ページ)を参照してください。C H A P T E R 9 ファイルシステム ファイルシステムの構成 159  Apple Computer, Inc. February 2001 システムドメインとローカルドメインのディレクトリは、ベースインストールパッケージにより インストールされます。表9-1に、これらのディレクトリのプロパティと内容を説明しています。 表9-1 システムドメインとローカルドメインのディレクトリ 位置 説明 /Mac OS X/Applications/ システムドメインとローカルドメインを結合したもので、同一 のコンピュータのすべてのユーザが使用可能なアプリケーショ ンを含みます。アップル社が出荷したアプリケーションに加え、 サードパーティのアプリケーションも含まれます。このディレ クトリの内容は、ローカルシステムの管理者(「admin」グルー プのすべてのユーザ)が変更可能です。サブディレクトリUtilities は、管理アプリケーションとユーティリティアプリケーション を含んでいます。サブディレクトリExtrasは、デモアプリケー ションと各種のアプリケーションを含んでいます。 /Mac OS X/Library/ ローカルドメインの一部でリソースを含み(アプリケーション 以外)、マシンのすべてのユーザが使用可能です。これらのリ ソースはアップル社製およびサードパーティ製で、オペレー ティングシステムの動作に必須ではありません。フォント、キー ボード、カラーピッカー、プラグイン、ユーザマニュアル(アッ プル社のものを含む)を含みます。このディレクトリの内容は、 システム管理者(「admin」グループ特権を持つユーザ)だけが 変更可能です。Libraryディレクトリの詳細については、「Library ディレクトリ」(166ページ)を参照してください。 /Mac OS X/System/ システムドメインの一部でアップル社提供のファイルを含み、 起動可能システムに必須です。システムフレームワークとフォ ントなどのリソースがあります。このディレクトリの内容は、 「ルート」ユーザのみが変更可能です。「admin」グループ特権 のユーザは変更できません。システムを起動できなくなる可能 性があるため、このディレクトリに含まれるものを変更しない でください。この理由で、ルートユーザを有効にすることは推 奨されていません。アップル社提供のアプリケーションとマ ニュアルをここに配置できないことに、注意してください。 /Mac OS X/Users/ 「ユーザドメイン」(161ページ)のセクションを参照してくだ さい。160 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム Finderに表示されるものと項目の実際の位置との主な相違点は、マウントされているボリューム (ルートボリューム自体を含む)が格納されているディレクトリです。このディレクトリは、/Mac OS X/Volumes/です。Finderは、マウントされている各ボリュームに加えて、/Networkディレクト リをファイルシステム階層構造の最上位レベルのウインドウに表示します。 Classic環境のディレクトリ Mac OS Xを最初にインストールするときは、Mac OS 9システム上にインストールする必要があり ます。システムはMac OS 9.1以降である必要があります。Mac OS 9システムへの影響は、そのコン ピュータのパーティションが単一か複数か(または複数の外付けハードディスクか)により異なり ます。 Mac OS Xをコンピュータ上の独立したパーティション(HFS+またはUFSフォーマット)にイン ストールした場合、Mac OS 9ボリュームは基本的に影響を受けません。ただしMac OS 9.1以降で ある必要があります。そうでない場合は、ユーザは要件を満たす新しいバージョンのMac OS 9を インストールする必要があります。システム環境設定アプリケーションのClassicペインで、ユー ザはClassic互換環境をMac OS 9ボリュームに関連付けるよう要求されます。最初にClassicを起動 するときに、システムはいくつかの必須ファイルをMac OS 9ボリュームのシステムフォルダに追 加します。また、システムは、Mac OS 9ディレクトリを起動ボリュームのルート(/Mac OS X) に追加します。このディレクトリは、ユーザが起動ボリュームを切り替えるための「起動ディス ク」コントロールパネルを含んでいます。この方式に従うことにより、Mac OS 9ボリュームで起 動し、このボリュームをClassic環境のホームとして使用することができます。 Mac OS 9.1(またはそれ以降のバージョン)がある単一パーティションシステムにMac OS Xをイン ストールする場合、インストーラはMac OS X内にMac OS 9 Filesという名前のディレクトリを作 成し、以下で説明する例外を除いて、クリーンインストールの場合には含まれないファイルとディ レクトリをすべてそこに移動します。また、同時に以下のことも実行します。 1. Mac OS X内に「Applications(Mac OS 9)」という名前のディレクトリを作成し、インストー ル以前からあったアプリケーションをすべてそこに移動します。 2. システムフォルダと書類フォルダ(存在する場合)をMac OS Xボリュームのルートに移動し ます。 3. Mac OS 9システムでマルチユーザ機能を有効にしている場合、Usersフォルダ内に、指定され たユーザごとにホームディレクトリを作成します。 4. /Desktop Folderのエイリアスを/Mac OS 9 Filesディレクトリに作成します。C H A P T E R 9 ファイルシステム ファイルシステムの構成 161  Apple Computer, Inc. February 2001 単一パーティションのMac OS 9システムのバージョンがMac OS 9.1より古い場合、インストー ラは、Mac OS Xをインストールする前にMac OS 9.1以降にアップグレードするようユーザに求 めます。 リスト9-3は、インストール後のMac OS Xディレクトリレイアウトを示しています。 リスト9-3 単一パーティションへのインストール後のディレクトリレイアウト /Mac OS X/ Mac OS 9 Files/ Desktop Folder alias System Folder/ Applications (Mac OS 9)/ Documents/ Applications/ Library/ System/ Users/ Volumes/ ユーザドメイン Mac OS Xコンピュータシステムのユーザは、それぞれ、そのシステムまたはシステムの接続先の ローカルエリアネットワーク上にアカウントを持っている必要があります。管理者は、ローカル システム上かネットワーク上にユーザアカウントをセットアップします。アカウントにアクセス するには、ユーザはログインウインドウでユーザ名とパスワードを入力してログインする必要が あります。 ユーザアカウントを取得すると、ファイルシステム内にプログラム、リソース、および書類を格納 するための領域が確保されます。この領域の最上位レベルのディレクトリは各ユーザのホームディ レクトリで、習慣的に、ユーザを特定できる名前が付けられます。また、ユーザにはホームディレ クトリ内のリソースが与えられ、ディレクトリ内のファイルにはデフォルトのファイルアクセス権 (ユーザが自由に変更可能)が設定されて、外部から操作できないように保護されます。ユーザド メインは、「現在の」(ログインしている)ユーザのホームディレクトリを指します。 ユーザドメインのしくみにより、各ユーザはカスタマイズされた作業環境を使用できます。ユーザ がログインすると、Finderはそのユーザの作業環境を最後にログアウトしたときの状態に復元しま す。アプリケーションソフトウェアとシステムソフトウェアは、ユーザが選択した環境設定で動作 します。ネットワーク、インターネット、および電子メールの設定が復元されます。フォントセッ トとColorSyncプロファイルも復元されます。162 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム Mac OS Xは、習慣として、~(ティルデ)文字を使用してユーザのホームディレクトリを示しま す。この文字は、単独で現在のユーザのホームディレクトリを指定したり、ほかのユーザのホー ムディレクトリを指定したりするのに使用できます。このことを、表9-2で具体的に示します。 リスト9-4では、コンピュータシステムに対してローカルな、標準的なユーザドメインのディレク トリレイアウトを示しています。 リスト9-4 コンピュータのローカルユーザドメインのディレクトリレイアウト /Mac OS X/ Mac OS 9/ Applications/ System/ Library/ Users/ Shared/ Steve/ Documents/ Library/ Public/ Desktop/ Movies/ Music/ Pictures/ Sites/ 表9-2 ティルデを使用したホームディレクトリ位置の指定 ~ 現在のユーザのホームディレクトリの最上位レベル ~/Library/Fonts 現在のユーザのホームディレクトリ内のフォントが格納される位置 ~Steve ユーザSteveのホームディレクトリの最上位レベルC H A P T E R 9 ファイルシステム ファイルシステムの構成 163  Apple Computer, Inc. February 2001 ユーザのホームディレクトリに作成される各ディレクトリには、特定の目的があります。これらの ディレクトリのいくつかの名前は、iDiskアカウントにあるものと同一です。iDiskの詳細について は、http://www.apple.co.jpでiToolsのセクションを参照してください。ユーザのホームディレク トリにあるデフォルトのディレクトリは、以下の通りです。 /Mac OS X内の位置 説明 Users/Shared ローカルコンピュータシステムのすべてのユーザが内容を共有で きるディレクトリ。このコンピュータのすべてのユーザは、この ディレクトリで書類の書き込み、取得、および読み取りを行えます。 このディレクトリは実際にはユーザドメインと関連付けられてい ませんが、ユーザが書類やその他のファイルを交換するときに使用 すると便利です。 Users/ このコンピュータシステム上の特定のユーザのホームディレクト リ()です。システムは各ホームディレクトリに Desktop、Documents、Library、およびPublicディレクトリを提 供します。Desktopディレクトリは、ログインしているユーザに対 してFinderがデスクトップに表示する項目を含んでいます。 Libraryディレ クトリの詳細 については、「Libraryデ ィレクトリ」 (166ページ)を参照してください。 ユーザディレクトリ 説明 Desktop Finderがログインしているユーザのデスクトップに表示する項目が 含まれます。 Documents そのユーザに属するすべての書類を含みます。 Library 「Libraryディレクトリ」(166ページ)を参照してください。 Public ユーザがほかのユーザと共有したい項目を含みます。ほかのユーザ はこのディレクトリにある項目を表示およびコピーすることができ ます。 Movies QuickTimeなどのフォーマットのデジタルムービーが含まれます。 Music デジタルミュージックファイル(.aiff、.mp3などのフォーマット) が含まれます。 Pictures 各種フォーマットの画像ファイルが含まれます。 Sites 頻繁に訪れるWebサイトのブックマーク(URL)が含まれます。164 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム ユーザアカウントが作成されるとき、Applicationsディレクトリは自動的にはホームディレクト リに追加されません。ただし、ユーザはApplicationsディレクトリを作成して自分のアプリケー ションをそこに配置することができます。システムは自動的にこの位置にあるアプリケーション を検索します。 リスト9-5に、ローカルエリアネットワーク上にある一般的なホームディレクトリのディレクトリ レイアウトを示します。 リスト9-5 ローカルエリアネットワーク上のユーザホームディレクトリのディレクトリレイアウト /Network/ Mac OS 9/ Applications/ System/ Library/ Users/ Shared/ Steve/ Documents/ Library/ Public/ Desktop/ Movies/ Music/ Pictures/ Sites/ ネットワーク上のホームディレクトリには、コンピュータシステム上のローカルホームディレク トリと同じ説明が当てはまります。この例のUsersディレクトリの構成は、管理者がネットワー ク上でユーザアカウントを扱う場合の方式の1つです。ほかの方式も可能です。 /Networkの下にあるUsers以外のサブディレクトリは、ネットワークドメインの一部です。詳細に ついては、「ネットワークドメイン」を参照してください。C H A P T E R 9 ファイルシステム ファイルシステムの構成 165  Apple Computer, Inc. February 2001 ネットワークドメイン ネットワークドメインは、ローカルエリアネットワーク(AppleShareとWebサーバを含む)の すべてのユーザが使用できるアプリケーション、書類、およびリソースのファイルシステム範囲 を定義しています。ネットワークドメインの正確な構成は、団体や企業の方針により異なりま す。ネットワークドメインの実装は、ネットワーク管理者の役割です。 リスト9-6に、一般的なネットワークドメインのディレクトリレイアウトを示します。 リスト9-6 ネットワークドメインのディレクトリレイアウト /Network/ Applications/ Library/ Servers/ Connected Servers/ Shared/ 位置 説明 /Network/Applications ローカルエリアネットワークのすべてのユーザが実行できるアプ リケーション。 /Network/Library ローカルエリアネットワークのすべてのユーザが使用可能なリ ソース(プラグイン、サウンドファイル、マニュアル、フレーム ワーク、カラー、フォントなど)。Libraryディレクトリの詳細につ いては、「Libraryディレクトリ」(166ページ)を参照してください。 /Network/Servers ローカルエリアネットワークを構成するNFSファイルサーバのマ ウントポイント。 /Network/Connected Servers Finderの「移動」メニューにある「サーバへ接続」コマンドで AppleShareやWebサーバ(HTTPとWebDAV)がマウントされると 表示されます。これらのボリュームやサーバは、最初、新しい Finderウインドウに表示されますが、このディレクトリ位置にも 保持されます。ただし、異なるログインセッションには存続しま せん。 /Network/Shared ローカルエリアネットワークのすべてのユーザが内容を共有でき るディレクトリ。ユーザドメインのSharedディレクトリの説明は、 「ユーザドメイン」(161ページ)を参照してください。166 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム Libraryディレクトリ Libraryディレクトリは、Mac OS Xの各ファイルシステムドメインに複製されます。Libraryディ レクトリはアプリケーションによって使用されるリソースを含みますが、アプリケーション本体 は含みません。Libraryディレクトリには、一連の共通のサブディレクトリがあります。必ずこ こに存在しなければならないサブティレクトリと、習慣的にここに置くサブディレクトリがあり ます。 一部のシステムルーチンは、Libraryの特定のサブディレクトリを必要とします。たとえば、 読み書きに関する環境設定のルーチンや、フレームワークにダイナミックにリンクしているルー チンなどです。ただし、一部のシステムソフトウェアが使用する検索アルゴリズムは、Library ディレクトリ内を検索しません。つまり、ユーザのアプリケーションがLibraryの特定のサブディ レクトリにあるものを検索する場合、通常、ディレクトリの名前をあらかじめ知っている必要が あります。 リスト9-7に、Libraryディレクトリに表示される可能性のあるディレクトリを示します。これらの サブディレクトリの多くは、ほとんどの場合、ユーザのホームディレクトリのLibraryディレクト リでなく、ローカルドメインかネットワークドメインに現われます。 リスト9-7 Libraryディレクトリに表示される可能性のあるサブディレクトリ Library/ Application Support/ Assistants/ Audio/ Documentation/ Extensions/ Favorites/ ColorPickers/ ColorSync/ Components/ Fonts/ Frameworks/ Internet Plug-Ins/ Keyboards/ Mail/ Preferences/ Printers/ QuickTime/ Scripting Additions/ Sherlock Plug-Ins Web Server/C H A P T E R 9 ファイルシステム ファイルシステムの構成 167  Apple Computer, Inc. February 2001 ディレクトリ 説明 Application Support ドメイン内の特定のアプリケーションで使用するサードパーティ 製のプラグイン、ヘルパーアプリケーション、テンプレートなど のリソース。習慣的に、これらの項目はアプリケーションと同一 の名前のサブディレクトリに置く必要があります。たとえば、 アプリケーションMyAppで使用するサードパーティ製のリソース は、Application Support/MyAppに置かれます。アプリケーショ ンのデベロッパが作成したリソースはアプリケーションパッケー ジに配置する必要があることに注意してください。詳細について は、「アプリケーションのパッケージング」(119ページ)を参照 してください。 Assistants 設定などのタスクでユーザを補助するプログラム。 Audio サウンド、アラート、およびオーディオプラグイン。 ColorPickers HLS(色相、明度、彩度)ピッカーやクレヨンピッカーなど、特定 のモデルで表現されたカラー選択用リソース。 ColorSync ColorSyncのプロファイルとスクリプト。 Components システム全体で使用するコンポーネントと機能拡張。 Documentation マニュアルファイルとApple Helpのパッケージ(Helpサブディレク トリ内)は、コンピュータのユーザおよび管理者が使用するもので す。ローカルドメインでは、アップル社から出荷されたヘルプパッ ケージが含まれています(デベロッパ向けマニュアルを除く)。 Extensions デバイスドライバとその他のカーネル機能拡張(システムドメイン のみ)。 Favorites 頻繁にアクセスするフォルダ、ファイル、およびWebサイトのエ イリアス(ユーザドメインのみ)。 Fonts 表示用および印刷用のフォントファイル。 Frameworks フレームワークと共有ライブラリ。 Internet Plug-ins インターネット用のプラグイン、ライブラリ、およびフィルタ。 Keyboards キーボード定義。 Mail ユーザのメールボックスが含まれます(ユーザドメインのみ)。 Preferences ユーザ環境設定。「ソフトウェアの設定」の章の「環境設定」(202 ページ)を参照してください。168 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム Developerディレクトリ Mac OS Xソフトウェアの開発用のアプリケーション、ツール、マニュアルなどのリソースをオ プションのパッケージとしてインストールする場合、それらの項目の大部分は、起動ボリューム (/Mac OS X)直下のDeveloperディレクトリにインストールされます。 リスト9-8に、Developerディレクトリの内容を示します。 リスト9-8 Developerディレクトリの内容 /Mac OS X/ ... Developer/ Applications/ Documentation/ Examples/ Java/ Makefiles/ Palettes/ PBBundles/ ProjectTypes/ Tools/ Printers プリンタドライバ(ベンダ提供)とPPDプラグイン。 QuickTime QuickTimeのコンポーネントと機能拡張。 Scripting Additions AppleScriptの機 能を拡張するスク リプトとスクリプテ ィングリ ソース。 Sherlock Plug-ins Sherlockの機能を拡張するプラグイン。 Web Server Webサーバが存在するデフォルト位置。ドキュメントルートを含 んでいます。 ディレクトリ 説明C H A P T E R 9 ファイルシステム ファイルシステムの構成 169  Apple Computer, Inc. February 2001 Project Builderでは、いくつかのmakefile変数が定義されているので、プロジェクトではドメイン内 の位置を指定するときにできるだけそれらを指定してください。ファイルの位置は変更されること があるため、ディレクトリパスを直接指定するのでなく、これらのmakefile変数を使用してくださ い。表9-3に、これらの変数を一覧にして示します。 /Developerディレクトリ 説明 Applications ソフトウェアプロジェクトの管理とプロジェクトのビルド(Project Builder)、ユーザインタフェースの作成(Interface Builder)、および プログラムのパフォーマンス調整に使用されるアプリケーション。 Documentation デベロッパ向けのマニュアル。 Examples 一般的な種類(Carbon、Javaなど)ごとに構成されたプロジェクト例。 Headers スタブ「フラット」Carbonヘッダなどの、特別なヘッダファイル。 Java Cocoaアプリケーション環境でJavaブリッジングに必要な ファイル。 Makefiles プロジェクトのビルドと変換のためのmakefileとjamfile。 Palettes アップル社提供のInterface Builderパレット。 PBBundles Project Builderによって使用されるロード可能バンドル。 ProjectTypes Project Builderによって使用されるプロジェクトのタイプの定義。 Tools コマンドライン開発ツール。HFSリソースフォークの作成と操作を 行うものなど。 表9-3 ファイルシステムの各ドメインのProject Builderのmakefile変数 変数 ディレクトリ位置 SYSTEM_APPS_DIR /Applications SYSTEM_ADMIN_APPS_DIR /Applications/Utilities SYSTEM_DEMOS_DIR /Applications/Extras SYSTEM_DEVELOPER_DIR /Developer SYSTEM_DEVELOPER_APPS_DIR /Developer/Applications SYSTEM_DOCUMENTATION_DIR /Library/Documentation 170 ファイルシステムの構成  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム ファイルシステムドメイン内での検索 Mac OS Xには、特定の(またはすべての)ドメインの特定のディレクトリ位置でリソース、プラ グインなどの項目を検索するのに使用できる2つのパブリックプログラムインタフェースがあり ます。これらのAPIの1つはFolder ManagerのFindFolder関数で、Carbonプログラム用です。もう 1つのAPIはシステムフレームワークのNSSystemDirectories.hで定義されている関数と定数で、 Carbonプログラム以外のあらゆるタイプのプログラムで使用できます。 どちらのAPIも、ユーザが特定の項目をすべてのファイルシステムドメイン内で検索するのに役立 ちます。検索は通常、最もユーザに近いドメインから始まり、最も共通性の高いドメインで終わり ます。ドメインの順序は以下の通りです。 1. ユーザ 2. ローカル 3. ネットワーク 4. システム システムソフトウェアの大部分は、項目をすべてのファイルシステムドメイン内で検索するとき、 この順番に従います。ただし、アプリケーションの必要性に応じて、どのような順番でもドメイン を検索できます。 LOCAL_ADMIN_APPS_DIR /Applications/Utilities LOCAL_APPS_DIR /Applications LOCAL_DEVELOPER_DIR /Library/Developer LOCAL_LIBRARY_DIR /Library USER_APPS_DIR $(HOME)/Applications USER_LIBRARY_DIR $(HOME)/Library 表9-3 ファイルシステムの各ドメインのProject Builderのmakefile変数 変数 ディレクトリ位置C H A P T E R 9 ファイルシステム HFS+とUFSの相違点 171  Apple Computer, Inc. February 2001 HFS+とUFSの相違点 Mac OS Xの2つの主要なファイルシステムであるHFS+とUFSには、多くの重要な相違点がありま す。多くの場合、これらの相違点はMac OS X用に開発されたプログラムに多少の影響をもたらし ます。以下に、この2つのファイルシステムの主な相違点を要約して説明します(説明の多くは、 HFS+だけでなくHFSにも当てはまります)。 ■ 大文字と小文字の区別:UFSでは大文字と小文字が区別されます。HFS+では大文字と小文字 は同一視されますが、その区別は保存されます。 ■ マルチフォーク:HFS+ではマルチフォーク(および追加のメタデータ)がサポートされるの に対し、UFSではシングルフォークのみがサポートされます(Carbonは、UFSなどマルチフォー クがサポートされていないファイルシステムで、マルチフォークをシミュレートします)。 ■ パスの区切り文字:HFS+ではパスの区切り文字としてコロン(:)が使用されるのに対し、 UFSではスラッシュ(/)が使用されます。区切り文字はシステムにより変換されます。 ■ 変更日:HFS+では、ファイルメタデータとして作成日と変更日の両方がサポートされます。 UFSでは変更日はサポートされますが、作成日はサポートされません。変更日は認識するが 作成日は認識しないコマンドを使用してファイルをコピーする場合、コピー先の新規ファイ ルが作成されるときに、変更日がリセットされる可能性があります。このため、変更日より 作成日の方が新しいファイルができる可能性があります。 ■ スパースファイルおよびゼロフィリング:UFS ではスパースファイルがサポートされます。 スパースファイルとは、ファイルシステムが、ファイル中のデータだけを格納し、ファイル に割り当てられている未使用スペースは格納しないというファイル管理を可能にする機能 です。HFS+ではスパースファイルがサポートされず、ファイルに割り当てられたすべての バイトをファイル末尾までゼロで埋め尽くします。 ■ ファイルシステム項目への簡便な参照:「エイリアスとシンボリックリンク」(172 ページ) を参照してください。 さらに、従来それぞれのファイルシステムに関連づけられてきたAPIは、異なる動作をすることが あります。たとえば、BSDの(またはBSD系の)APIを使用しているプログラムでは、開かれてい るファイルを削除できます。Carbonプログラムでは、閉じているファイルのみを削除できます。172 エイリアスとシンボリックリンク  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム エイリアスとシンボリックリンク エイリアスとシンボリックリンクはともに、ファイルやフォルダの簡便な参照です。エイリアスは Mac OS標準(HFS)およびMac OS拡張(HFS+)ボリュームフォーマットの機能で、シンボリッ クリンクはUFSファイルシステムの機能です。エイリアスとシンボリックリンクはどちらを使用し ても、項目の複製を多数作成することなく、ファイルやフォルダを繰り返し参照することができま す。ただし、これら2つの機能は異なる方法で実装されているため、参照先のファイルやフォルダ を移動または変更したときの両者の動作は異なります。 シンボリックリンクは、ファイルシステム内のパスへの参照として実装されます。UFSファイル システムは、パス情報のパーシングによってシンボリックリンクを解決しようとします。このた め、シンボリックリンクが参照するファイルをファイルシステム内の異なる位置に移動すると、 シンボリックリンクは壊れてしまいます(図9-1参照)。したがって、シンボリックリンクは特定 のファイルやフォルダの脆弱な参照であるといえます。 図9-1 シンボリックリンクの脆弱性 / A /A B / C /A B ?C H A P T E R 9 ファイルシステム リソースフォーク 173  Apple Computer, Inc. February 2001 この脆弱性にもかかわらず、シンボリックリンクは、常にファイルシステム内の特定のパスに存 在することがわかっているファイルを参照するには便利な機能で、ファイルがその位置にあるこ とが重要となります。このような場合、シンボリックリンクは非常にうまく動作します。指定さ れた位置にあるファイルがたとえ新しいファイルに置き換えられている場合にも、シンボリック リンクは、ファイルシステム内のその位置にあるファイルを参照し続けます。たとえば、Mac OS Xのフレームワークでは、バージョンシステムの実装にシンボリックリンクが幅広く使用されて います。 これに対して、HFS+は、参照されるファイルやフォルダのボリュームとディスク上での位置を 特定することでエイリアスを実現しています。こうした参照は、それぞれ一意に識別することが できます。その結果、対象となるファイルやフォルダが同一のボリューム上に留まっているかぎ り、それらがファイルシステム内の任意の位置に移動されても、エイリアスは常に同じファイル やフォルダを示します。したがってエイリアスは、特定のボリューム上で移動される可能性のあ るファイルやアプリケーションを参照するためには最良の方法です。 しかし、ファイルシステム内の特定の位置にあるファイルやフォルダを参照する場合は、エイリ アスは最善の方法とはいえません。特定の位置にあるファイルを新しいバージョンと交換すると、 エイリアスはファイルの古いバージョンを参照し続けます。また、参照先のファイルを別のボ リュームにコピーすると、エイリアスは機能しなくなります。さらに、参照先のファイルの編集 に使用するアプリケーションが、古いファイルを更新するのでなく、ファイルの新しいコピーを 書き出した場合、オリジナルファイルを参照するエイリアスはすべて機能しなくなります。 リソースフォーク Mac OS XとCarbon以前には、アプリケーションリソースは、アプリケーションの実行可能ファイ ルのリソースフォークに格納されていました。しかし、このポリシーは変更されました。Mac OS XおよびCarbonアプリケーションでは一般に、リソースは、実行可能ファイルのリソースフォーク ではなく、独立したリソースファイルのデータフォークの中に格納されなければなりません。 現在CarbonのAPIは、リソースファイルのデータフォークにあるリソースを、リソースフォーク 内に存在する場合とまったく同様に読み取って処理します(実際は、今ではリソースを読み取る システムルーチン―主にResource Manager関数―がほとんどの作業を代行します)。アプリケー ションリソースがリソースフォークに格納されている場合も、これらのAPIを使ってアクセスす ることはできますが、その場合にはリソースフォークを明示的に指定する必要があります。174 リソースフォーク  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム アプリケーションリソースをリソースフォークの外部に移動した最大の理由は、アプリケーショ ンがリソースを失うことなく異なるファイルシステム間をシームレスに移動できるようにする ためです。アプリケーションを移動する方法には、BSDコマンド、FTP、電子メール、Windows とDOSのコピーコマンドなどがあります。Webを含む他の大部分のコンピューティング環境は、 シングルフォークファイルのみを認識し、HFSおよびHFS+ファイルのリソースフォークは切り 捨てられる傾向があります。さらに、リソースをデータフォークに移動すると、リソース情報を 保持するためにアプリケーションを(Stuffitアーカイブ、BinHex、あるいは類似の手段で)圧縮 する必要がなくなります。 現在、アップル社ではリソースをリソースファイルのデータフォークに格納することを推奨して いますが、それだけではソリューションとして不完全です。たとえば、アプリケーションリソー スが単一のファイルに格納されていると、ローカライズが非常に困難になります。アプリケーショ ンリソースのリソースフォーク外への移動に加えて、アプリケーションパッケージング方式を 使って(「アプリケーションのパッケージング」(119ページ)参照)、以下のうちいずれかを実 行する必要があります。 ■ アプリケーションバンドル内のローカライズされる領域にはそのロケールに使用するアプリ ケーションリソースを含むファイルを置き、ローカライズされない領域には、すべてのロケー ル用のリソースを含むファイルを置きます。習慣的に、このファイルには.rsrcという拡張子を 付けます。ただし、任意の拡張子を使用したり、拡張子を一切使用しないことも可能です。 ■ ローカライズされたリソースをすべて単一の.rsrcファイルに格納するのではなく、それぞれの リソース(または関連するリソースのグループ)をそれぞれ個別のファイルに格納します。 図9-2に、Mac OS Xでのリソース格納方法をMac OS X以前のシステムでの格納方法と比較して示 します。C H A P T E R 9 ファイルシステム リソースフォーク 175  Apple Computer, Inc. February 2001 図9-2 データフォーク中のリソース 1000110100010111011000101101 0001010011010001011100101110 1010001010010010001010100010 MyApp データフォーク� リソースフォーク� MyApp.app/ Contents/ Info.plist PkgInfo MacOS/ MyApp Resources/ MyApp.rsrc AnImage.pict AnIcon.icns English.lproj/ Localized.rsrc MyApp.strings ASound.snd Mac OS 9(single-file executable)� Mac OS X(application package)� MyApp.rsrc データ� empty リソース� AnImage.pict データ� empty リソース� AnIcon.icns データ� empty リソース� MyApp.strings データ� empty リソース� ASound.snd データ� empty リソース� または�176 ファイルエンコーディングとフォント  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム アップル社では、すべてのリソースを1つのファイルに格納するモデルもサポートしますが、 リソースを個別のファイルに分割して格納することを強く推奨します。その背後にある理由の1 つに、XMLを使用してリソースを指定する手法の普及があります。CarbonにはXMLベースのラ ンタイムが用意されており、Interface Builderなどのツールはそれを利用して、ユーザインタ フェースをXML形式でエクスポートします。 アプリケーションと同様、Mac OS Xでは書類もリソースをデータフォークに格納する必要があ ります。その理由は、アプリケーションリソースをデータフォーク内に格納する理由と同じで す。これに より、リソース データを失う ことなく、これらの書類をMacintoshシステムと非 Macintoshシステム(大部分のWebサーバを含む)の間で交換できるようになります。 HFSおよびHFS+ファイルシステム上のファイルは、そのFinder属性をリソースフォークおよび データフォークとは異なるプライベートフォークに格納しています。これらの属性の中には、 タイプコードとクリエータコードも含まれます。Finderはこれらの属性を使用してユーザの利便 性を高めているため、これらの属性はMac OS Xでも維持されます。ただし同時に、アップル社 では、書類のタイプを特定するための代替手段として、ファイル拡張子を使用することを強く推 奨しています。Mac OS Xは、書類の拡張子を正しく認識して適切に処理することができます。 また、「Finder」の章の「コピーおよび移動操作」(186ページ)で明確に説明されている通り、 HFSまたはHFS+の書類を異なるプラットフォーム(Webサーバを含む)にコピーする場合、ファ イルの拡張子は書類のタイプ情報が確実に保存されることを支援します。 ファイルエンコーディングとフォント UnicodeがMac OS Xのネイティブエンコーディングと見なされていますが、すべての状況における デフォルトのファイルエンコーディングは存在しません。使用される(または使用されるべき) ファイルエンコーディングは、作業内容、使用するAPI、および基礎にあるファイルシステムによっ て決定されます。 たとえば、ファイル名に使用されるエンコーディングは、ファイルシステムによって異なります。 Mac OS拡張(HFS+)では、Unicodeのある特定の形式、つまり、UTF-16形式(16ビットコード のシーケンス)の、正規分解された(canonical decomposition)Unicode 2.1をファイル名に使用 します。UFSファイルシステムは、ファイル名に異なる形式のUnicodeを使用します。Unicode 2.1以降のすべての文字を扱えますが、UTF-8形式(8ビットコードのシーケンス)を使用します。 Mac OS標準(HFS)は、MacRomanなどの従来のMacエンコーディングを使用します。実装の違 いにより、HFS+ボリュームのファイル名で誤ったUnicodeを使用すると、Mac OS 9システムで は正確に表示されますが、Mac OS Xでは常に文字化けして表示されることに注意してください。C H A P T E R 9 ファイルシステム ファイルエンコーディングとフォント 177  Apple Computer, Inc. February 2001 さらに、BSDシステムルーチンを呼び出すコードはすべて、これらのルーチンのconst *charパ ラメータがUTF-8エンコーディングになっていることを確認する必要があります。すべてのBSD システム関数は、文字列パラメータが必ずUTF-8エンコーディングであると想定します。さらに 注意すべき点として、ファイル、パス、およびその他のファイルシステムエンティティの文字列 パラメータは、正規形の UTF-8である必要があります。正規形のUTF-8 Unicode文字列では、 すべての分解 可能な文字が分解されま す。たとえば、「é(0x00E9)は「e」(0x0065)+「´」 (0x0301)と表現されます。正規形のUTF-8エンコーディングに変換するには、CocoaとCarbon で定義されている「ファイルシステム表示」API(Core Foundationなど)を使用します。たと えば、Cocoaで正規形のUTF-8文字列を取得するためには、NSStringのfileSystemRepresentation メソッドを使用します。正規形でないUTF-8文字列には、NSStringのUTF8Stringメソッドを使用 します。 通常のQuickDrawを使用してテキストを描画する場合、いくつかの隠れた問題点に気を付ける必要 があります。Carbon File Managerには、Macエンコーディングを返すファイルシステムコールと、 Unicodeを返すファイルシステムコールがあります。Unicodeテキストが返された場合、QuickDraw Text APIがUnicodeを直接サポートしていないため、QuickDraw Textを使用して描画する場合に問 題が発生します。一方、Macエンコーディングが返された場合、CocoaまたはCarbonのATSUI API を使用するには、最初にそれをUnicodeに変換する必要があります。 一般に、使用されるエンコーディングは、フォントではなく使用されるAPIで決定されます。フォ ントは特定のエンコーディングに限定されているとは限りません。たとえば、TrueTypeフォント は実装しているグリフを宣言し、同時にそれらのグリフを特定のエンコーディングの文字値にマッ プするエンコーディングテーブルを提供します。PostScriptフォントにも同様のエンコーディング テーブルがあります。オペレーティングシステムはさまざまな部分で、あるエンコーディングから 別のエンコーディングに文字をマップする方法を認識しています。CocoaとATSUIは、Unicodeを フォントの「デスティネーション」マッピングとして使用します。CarbonのQuickDraw Textは、 フォントの「FOND」リソースに対応するスクリプトに従って選択されるMacエンコーディングを 使用します。 Mac OS Xでインストールされるフォントは、広範囲のエンコーディングとスクリプトをサポート する大規模な文字セットを持っています。たとえば、システムフォントのLucidaは、ラテン拡張、 ギリシャ、キリル、アラビア、ヘブライ、およびタイの各文字をサポートしています。しかし、 QuickDraw Textでテキストを作成する場合、MacRomanのレパートリにのみアクセスできます。 それ以外にアクセスするには、CocoaまたはATSUIを使用する必要があります。同様に、ヒラギ ノフォントもMacJapaneseがサポートする範囲を超える大規模な文字レパートリを持ち、Cocoaま たはATSUIでのみアクセス可能です。また、CocoaとATSUIは、要求されたグリフが使用できない 場合、ほかのフォントのグリフで代用します。ただし、フォント代用アルゴリズムは、Cocoaと ATSUIで異なります。178 ファイルエンコーディングとフォント  Apple Computer, Inc. February 2001 C H A P T E R 9 ファイルシステム マルチスクリプトサポートのコンテキストでのファイルエンコーディングの詳細については、「国 際化」の章の「マルチスクリプトサポートを追加する」(220ページ)を参照してください。Finderの役割 179  Apple Computer, Inc. February 2001 C H A P T E R 1 0 10 Finder FinderはMac OS Xの主要なアプリケーションです。ユーザがログインした瞬間から実行され、シス テムソフトウェアとともに動作して、Dock、ファイルシステム(マウントされているネットワー クボリュームを含めて)、および接続されているデバイスの追跡と管理を行います。ユーザは、 Finderのウインドウを介して、フォルダ、アプリケーション、書類など、ファイルシステム内の項 目の表示や操作を行うことができます。 この章では、Finderに関連するヒューマンインタフェースエレメントの詳細については触れませ ん。Mac OS Xのソフトウェアデベロッパに関わりのあるデスクトップの側面に焦点を絞り、次の 情報について説明します。 ■ Finderとアプリケーションのインタフェース ■ Finderが管理する情報の格納 ■ Finderがアプリケーションと書類と取り扱う方法 ■ Finderが異なるフォーマットのボリューム間でのファイル操作を処理する方法 Finderの役割 一般論として、Mac OS XのFinderの性格と役割は、Mac OS 9の場合とほぼ同じです。Mac OS X のFinderは、ユーザのデスクトップを管理し、ユーザのアクセスをアプリケーションや書類など のファイルシステム内の項目に仲介するアプリケーション(Carbonアプリケーション)です。ユー ザはFinderを介してアプリケーションを起動したり書類を開いたりします。ある意味で、Finder はユーザがシステムにログインしている間、常に実行されている最も重要なアプリケーションと いえます。 ただし、Mac OS Xでの大幅な変化のいくつかは、Finderの性格と役割にも影響しています。180 Finderの役割  Apple Computer, Inc. February 2001 C H A P T E R 1 0 Finder ■ Aquaヒューマンインタフェース:このインタフェースはデスクトップエレメントの表示だけ でなく、その使用の背後にあるロジックとメカニズムにも変化をもたらします。たとえば、 Dockや、Finderウインドウの各種コントロールは、Mac OS 9には存在しなかったパラダイム の導入です。 ■ マルチユーザ:Mac OS 9でもマルチユーザはサポートされていましたが、オプションでした。 Mac OS Xではマルチユーザが標準です。ユーザはMac OS Xシステムにログインしなければな りません(ただし、ログインが自動的に行われるよう設定されていることもあります)。ログ インしたユーザは、必要に応じてカスタマイズされた環境で作業を行うことができます。 ■ 複数のアプリケーション環境:この点に関する違いも決定的なものではありません。Javaを 考慮に入れると、Mac OS 9も複数のアプリケーション環境を持っていました(あるいは持つ ことができました)。ただし、その度合いに大きな違いがあります。Mac OS Xは、Carbon、 Cocoa、Java、Classic、および(場合により)BSDコマンドの各アプリケーション環境を取 り扱います。 ■ 複数のボリュームフォーマット:Mac OS Xではさまざまなボリュームフォーマットがサポー トされています。Mac OS拡張(HFS+)などのマルチフォークフォーマットとフラットファ イルフォーマット(UFSなど)の両方がサポートされています。Mac OS Xは、異なるフォー マットのボリューム間でのファイルシステム操作をできるかぎりシームレスにしようとしま す。詳細については、「Finderとファイル操作」(186ページ)を参照してください。 Finderは、すべてのアプリケーション環境でユーザの操作感をできるかぎり同じものにしようと します。ただし、Classic 環境にはいく つかの問題があり ます。Classicアプリ ケーションは、 Mac OS標準(HFS)またはMac OS拡張(HFS+)ではないボリュームからは実行できません。 他の環境のアプリケーションは、フォーマットに関係なく、どんなボリュームからでも実行でき ます。同様に、ClassicアプリケーションはHFSまたはHFS+以外のボリュームで書類のオープン や保存を行うことができません。Classic環境の詳細については、「Classic環境とアプリケーショ ン」(240ページ)を参照してください。C H A P T E R 1 0 Finder Finderとアプリケーションのインタフェース 181  Apple Computer, Inc. February 2001 Finderとアプリケーションのインタフェース 現在のところ、Finderはアプリケーションのインタフェースとして情報プロパティリストを提供し ています。このインタフェースを介して、アプリケーションは自身の基本的なデータをFinderに伝 えます。 書類のオープンやアプリケーションの起動といった機能を実現するためにアプリケーションと Finderの間で送受信できるアップルイベントのスイートなど、その他のインタフェースの開発も計 画されています。 情報プロパティリスト アプリケーションなどのMac OS Xのバンドルを開発するときには、プロジェクトの一部として、 バンドルの情報プロパティリストで使用する特定のキーと値のペアを指定する必要があります。 このプロパティリストは、アプリケーションをビルドするときにバンドル(つまり、アプリケー ションパッケージ)の一部として作成されるInfo.plistという名前のファイルに格納されます。 このプロパティリストには、次のようなFinder固有の情報が含まれます。 ■ アプリケーションの名前(Finderによって表示される) ■ タイプコードとクリエータコード(アプリケーションのタイプは「APPL」) ■ アイコンファイル名 ■ バージョン文字列 ■ 説明情報(Finderによって表示される) ■ このアプリケーションが取り扱う書類(書類名、アイコン、役割、タイプ、拡張子など) ■ このアプリケーションが取り扱うURL(URL名、アイコン、スキーマなど) この形式のFinderインタフェースは他のインタフェースに比べるとより受動的です。デベロッパ の作業は、この情報がFinderで使用できるようにすることだけです。アプリケーションを見つけ ると、FinderはInfo.plistの情報を抽出してデータベースに格納します(詳細については、「Finder によって格納される情報」(182ページ)を参照)。182 Finderによって格納される情報  Apple Computer, Inc. February 2001 C H A P T E R 1 0 Finder 情報プロパティリストとFinderに固有のキーの詳細については、「ソフトウェアの設定」の章の 「情報プロパティリスト」(190ページ)を参照してください。また、関連情報については、「バ ンドル」(103ページ)と「アプリケーションのパッケージング」(119ページ)を参照してくだ さい。 Finderによって格納される情報 Finderはいくつかの(プライベートな)データベースをメンテナンスしています。これらのデー タベースは、デスクトップ、アプリケーション、書類、およびユーザが操作するその他の項目に 関する、完全ではないにしても包括的な情報を提供します。このセクションでは、Finderがど のようにこれらのデータベースに情報を入力しているかについて説明し、格納されている情報の 概要を示します。また、Finderに特に関係の深いファイル属性についても説明します。 アプリケーション情報の収集 Finderがファイルシステムに関する情報を格納する方法は、Mac OS 9の場合とは異なります。 Mac OS 9のFinderは、システムにマウントされているそれぞれのボリュームに対して1つのデス クトップデータベースを関連づけます。それぞれのデータベースには、そのボリューム上にある すべてのファイルとディレクトリに関する情報が含まれます。Finderはシステムが起動するとき にこれらのデータベースを構築し、その後は、ファイルやディレクトリの追加、変更、または 削除が行われる度に、それらのデータベースをダイナミックに更新します。 Mac OS Xでは異なります。Mac OS Xはマルチユーザ環境を標準でサポートするため、Finderは、 そのシステム上にアカウント(ローカルまたはネットワークアカウント)を持つそれぞれのユー ザごとにアプリケーションデータベースを管理します。このデータベースには、それぞれのユー ザがFinderで使用しているすべてのアプリケーションに関する情報と、それぞれのアプリケー ションによって認識される書類のタイプに関する情報が含まれます。Finderは、この情報をアプ リケーションの情報プロパティリストから抽出します(この情報の概要については、「情報プロ パティリスト」(181ページ)を参照)。 Mac OS XのFinderがそのデータベースを構築する方法も、Mac OS 9のFinderとは異なります。 ■ Finderはまず、起動時にユーザ、ローカル(+システム)、およびネットワークの各ドメイン の、アプリケーションの標準位置をスキャンして、検出したアプリケーションをデータベース に追加します。C H A P T E R 1 0 Finder Finderによって格納される情報 183  Apple Computer, Inc. February 2001 ■ ユーザが Finder を使ってファイルシステム内を移動すると、Finder はユーザがアクセスした ディレクトリ内にあるアプリケーションをデータベースに追加します。 ■ ユーザが書類を開こうとしたか、またはアプリケーションを必要とする何らかの操作を試み て、Finderが適切なアプリケーションを見つけることができなかった場合、使用するアプリ ケーションをユーザが選択するためのダイアログが表示されます。ユーザが選択したアプリ ケーションはそのユーザのアプリケーションデータベースに追加されます。 ファイルシステム内にはユーザが絶対にアクセスしない場所や、ユーザが絶対に開かないタイプ の書類がある可能性があるため、Finderが、システム上で使用可能なアプリケーションについて 不完全な情報しか把握できない場合があります。しかし、Finderには、ファイルシステムの情報 を必要なときに更新する機能が組み込まれています。 Desktop Folder Mac OS 9とMac OS Xのどちらでも、Finderは、ユーザのデスクトップの内容を不可視フォルダ (その名もDesktop Folder)に格納します。フォルダの名前と不可視属性は共通ですが、フォル ダの位置とデスクトップでのセマンティックスは2つのオペレーティングシステムでまったく異 なります。 ■ Mac OS 9では、Desktop Folderがボリュームのルートにあります。Mac OS Xでは、Desktop ディレクトリが、各ユーザのホームディレクトリ(~/Desktop/)にあります。 ■ Mac OS 9でデスクトップ上に表示されるのは、すべてのボリュームのDesktop Folderの内容を 合わせたものですが、Mac OS Xでデスクトップに表示されるのは、ログインしているユーザの ホームディレクトリにあるDesktopディレクトリの内容だけです。 Finder属性 Mac OS Xファイルシステム内のファイルとフォルダには、Finder属性(Finder Info)が関連づ けられていることがあります。この属性により、Finderがファイルやフォルダを表示したり取り 扱ったりする方法が影響を受けます。Mac OS XのFinderが認識できる属性はMac OS 9のFinder より少数です。サポートされている属性には以下のものを含みます。 ■ バンドルビット ■ 不可視ビット ■ タイプコードとクリエータコード ■ カスタムアイコン184 アプリケーションと書類の取り扱い  Apple Computer, Inc. February 2001 C H A P T E R 1 0 Finder Mac OS Xでは以下の属性はサポートされていません。 ■ アイコンの位置 ■ 表示のタイプ ■ ラベル Mac OS Xでは、Finderは属性をフォルダ単位の不可視ファイルに格納します。このファイルに 含まれているデータ構造は拡張可能で、ボリュームフォーマットに無関係です。 アプリケーションと書類の取り扱い 「Finderによって格納される情報」(182ページ)で説明したように、Finderはファイルシステム内 にあるアプリケーションの情報を収集し、その情報をいくつかのデータベースに入力します。ファ イルまたはフォルダを見つけると、多くの場合、Finderはこの情報を使って、ファイルやフォルダ を表示する方法やユーザによるファイルまたはフォルダの操作を管理する方法を決定します。 Finderは、バンドルビット、タイプコードとクリエータコード、およびファイル名の拡張子の組み 合わせを使って書類(ロード可能バンドルを含む)とアプリケーションを識別し、それに応じた取 り扱いをします。次の手順は、ファイルシステム内で項目を見つけたときのFinderの一般的なロ ジックの概要を示しています。 1. ファイルとフォルダのどちらであるかを判断します。 フォルダであれば、Finderはそれがバンドルであるかどうかを判断します(手順2へ)。 また、ファイルであれば、ファイルの種類を判断します(手順4へ)。 2. そのフォルダがバンドルであるか、または通常のフォルダかを判断します。 Finderはバンドルビットまたはフォルダの拡張子を使って、そのフォルダがバンドルである かどうかを判断します。バンドルビットは必ずしも必要ではありません。実際、アップル社 が提供するシステムフレームワークでは、バンドルビットはセットされていません。 3. バンドルのタイプを判断します。C H A P T E R 1 0 Finder アプリケーションと書類の取り扱い 185  Apple Computer, Inc. February 2001 Finderは、バンドル内に格納されている情報からタイプコードとクリエータコードを取得し ます(「バンドルの解剖」(105ページ)を参照)。タイプコード(タイプコードがない場合は 拡張子)からバンドルの種類を判断します。バンドルがフレームワークでなければ、Finder はそのバンドルをファイルとして取り扱います(つまり、そのバンドルはファイルパッケー ジです)。 4. そのファイル(手順3のファイルパッケージを含む)がアプリケーションであるかどうかを判 断します。 そのファイルがバンドルで、そのバンドルがアプリケーションの場合(タイプコードまたは 拡張子で判断します)、Finderは.app拡張子(もしあれば)を非表示にします。また、アプリ ケーションの情報プロパティリストに格納されている情報を、現在のユーザのアプリケー ションデータベースに追加します(その情報がデータベースに存在しなかった場合)。詳細に ついては、「アプリケーション情報の収集」(182ページ)を参照してください。アプリケー ションでなければ、そのファイルは書類です(手順5へ)。 5. 書類を適切に表示します。 Finderはアプリケーションデータベースを参照して、ファイル名に添えて表示するアイコンを 検索します。アイコンが存在しない場合は、デフォルトの書類アイコンを表示します。 ユーザがダブルクリックまたはその他の方法でファイルシステム内の書類を開こうとすると、 Finderはその書類のタイプコードとクリエータコード(HFSまたはHFS+ファイルの場合)、また はファイル拡張子をチェックします。Finderはこの情報をキーとして使用し、そのタイプの書類 を取り扱うアプリケーション(1つまたは複数)を参照します。 ■ 該当するアプリケーションが1つだけ存在する場合、Finderはそのアプリケーションを起動し (起動していない場合)、そのアプリケーションで書類を開きます。 ■ そのタイプの書類を取り扱えるアプリケーションが存在しない場合、Finderはダイアログを表 示し、適切なアプリケーションを選択するようユーザに求めます。この情報はアプリケーショ ンデータベースに追加されます。 ■ その書類を取り扱えるアプリケーションが複数存在し、書類にタイプコードとクリエータコー ドが関連づけられていない場合、Finderは、その拡張子を持つ書類を取り扱うアプリケーショ ンの1つで書類を開きます。 書類がタイプコード、クリエータコード、ファイル拡張子のいずれも持っていない場合、ユーザが 書類を開こうとしても、Finderは何の動作も行いません。その書類を取り扱えるアプリケーション が複数存在するとき、ユーザはFinderを介して書類を開くために使用するアプリケーションを選択 することができます。186 Finderとファイル操作  Apple Computer, Inc. February 2001 C H A P T E R 1 0 Finder Finderとファイル操作 Finderは、Mac OS Xで行うファイル操作のすべてではないにしろ、その大部分を管理する「ト ラフィックマネージャ」です。cpやmvのようなシェルコマンド(一般にはお勧めできません)、 AppleScript、またはその他のプログラム的手段を使用する場合を除いて、ユーザはFinderを使っ て、ファイルのコピー、移動、削除、およびエイリアスの作成を行う必要があります。もちろ ん、複数のボリュームフォーマットを対象にこれらの操作を実行するときにはさまざまな注意事 項があります。このセクションでは、Finderが異なるボリューム間で行われるファイル操作をど のように管理するかについて説明します。 コピーおよび移動操作 ファイルのコピーまたは移動を行うとき、Finderは、コピー(移動)元とコピー(移動)先のボ リュームのフォーマットに応じて、使用できるモデルの中で情報ロスの最も少ないものを使用し ます。このような操作にとっても最も重要なフォーマットはHFS+(またはHFS)とUFSです。 これらの操作は特に、HFSおよびHFS+のリソースフォークの表現とFinder属性(特に、タイプ コードとクリエータコード)に影響を与えます。 十分に予想できることですが、FinderがHFS+ファイルをHFS+(HFS)ボリューム間でコピー するとき、HFS+ファイルのリソースフォークとFinder属性は「そのまま」保持されます。より 注意を要するのは、HFS+ファイルをUFSボリュームにコピーするときです。この操作が発生す ると、Finderはデータフォーク内にない情報(特に、タイプコードとクリエータコード)を切 り出し、この情報をコピー先のファイルと同じディレクトリ位置にある隠しファイルに書き込み ます。この隠しファイルは、対応するUFSファイルと同じ名前ですが、「._」というプレフィッ クスを持つ点が異なります。したがって、たとえばMyMug.jpegという名前のHFS+ファイルを UFSボリュームにコピーすると、コピー先のファイルと同じ位置に._MyMug.jpegという名前の ファイルが作成されることになります。 UFSファイルをHFSまたはHFS+ボリュームにコピーする場合、Finderは「._」のついた隠しファ イルを検索します。このファイルが存在する場合、Finderは、隠しファイルに含まれる情報をリ ソースフォークとFinder属性に再統合したHFS+(またはHFS)ファイルを作成します。隠しファ イルが存在しない場合、コピーされたファイルはリソースフォークを持ちません。C H A P T E R 1 0 Finder Finderとファイル操作 187  Apple Computer, Inc. February 2001 なお、Finderはその基盤になっているCarbon APIを介してこれらの操作を実行します。 エイリアスとシンボリックリンクの管理 Mac OS標準(HFS)ファイルシステムおよびMac OS拡張(HFS+)ファイルシステムには、 エイリアスと呼ばれるファイルシステムエンティティがあります。エイリアスはいくつかの点で UFSファイルシステムのシンボリックリンクに似ていますが、両者の間には大きな違いがありま す。両者の相違点の説明は、「ファイルシステム」の章の「エイリアスとシンボリックリンク」 (172ページ)を参照してください。 エイリアスとシンボリックリンクの両方が共存するファイルシステムをFinderが管理する方法 は単純です。Finderはシンボリックリンクを認識できますが、作成するのはエイリアスだけです (適切なメニューコマンドが用意されている場合)。ファイルシステム内でシンボリックリンクを 検出すると、Finderはそれをエイリアスとして表示します。つまり、両者の間に見た目の違いは ないということです。Mac OS Xでシンボリックリンクを作成する唯一の方法はBSDのln -sコマ ンドを使用することです。 注意:アプリケーションパッケージ(またはその他のバンドル)に対してBSDのcpまたはmv コマンドを使用しても特に問題は発生しません。ただし、単一ファイルのCFMアプリケーショ ンに対してこれらのコマンドを使用すると、コピー(移動)されたアプリケーションは使用 できなくなります。CFMアプリケーションをコピーまたは移動するために、アップル社では CpMacコマンドラインユーティリティを用意しています。188 Finderとファイル操作  Apple Computer, Inc. February 2001 C H A P T E R 1 0 Finderプロパティリスト 189  Apple Computer, Inc. February 2001 C H A P T E R 1 1 11 ソフトウェアの設定 Mac OS Xには、ソフトウェアを設定する方法がいくつか用意されています。さまざまなメカニズ ムを使ってすべての設定データが永続的に格納されます。これらのメカニズムは、設定データを ダイナミックに更新して実行時にプログラムから使用できるようにします。 Mac OS Xには、3つの基本的な設定オプションが用意されています。 ■ プロパティリスト:構造化の手段としてXMLを使用して、データをテキストとして表現しま す。プロパティリストの要素は、配列、辞書、文字列などの特定のデータ型のデータを表し ます。システムルーチンを使用することにより、プログラムはプロパティリストをメモリに 読み込み、表現されているデータを「実」データに変更することができます。 ■ 情報プロパティリスト:特殊な形式のプロパティリストで、あらかじめ定義されているキー を含みます。このキーは、基本的なバンドル属性やFinderおよびその他のアプリケーション にとって意味のある情報を指定します。情報プロパティリストはバンドルの内部に格納され ます。サポートされている書類のタイプ、URLスキーマ、著作権およびバージョンなどの情 報を指定します。情報プロパティリストでは、ユーザ定義のキーを指定することもできます。 ■ 環境設定システム:ユーザ、アプリケーション、およびホストごとの設定の作成、書き込 み、または読み込みができます。 プロパティリスト Mac OS Xのプロパティリストは、形式構造を表す手段としてXML(Extensible Markup Language) を使用するテキストで表現したデータです。こうした構造は柔軟であるため、プログラミングを 行う上で非常に便利です(XMLの概要は、http://www.w3.org/XML/1999/XML-in-10-pointsを 参照してください)。プロパティリストの要素は、配列、辞書、文字列などのプログラムエンティ ティに対応しています。190 情報プロパティリスト  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 プロパティリストはProperty List Editorアプリケーションを使って作成しますが、それがない場合 は、任意のテキストエディタでも作成できます。作成したファイルはプロジェクトに追加します。 プロパティリストはバンドルリソース(通常はローカライズされない)として格納されます。プロ グラムをビルドして実行するとき、プログラムは、プロパティリストを読み込み、その中で表現さ れているデータを適切なデータ型に変換する専用のルーチンを使用します。これにより、プロパ ティリストに含まれる情報に簡単にアクセスすることができます。プロパティリストでサポートさ れているデータ型は、辞書、配列(ベクタ)、文字列、データ、日付、数値、および論理値です。 キーバインディングなどの特殊なデータ型の初期化データを指定するために、カスタムプロパティ リストが使用されることもあります。このような目的には、通常CustomInfo.plistという名前のファ イルが使用されます。 情報プロパティリスト 情報プロパティリストは、バンドルにとって必須の設定情報を含んだシステムプロパティリストで す(「プロパティリスト」(189ページ)を参照)。この情報は、実行時にシステムおよびプログラ ムコードから使用することができます。「バンドル」の章の「バンドルのタイプ」(111ページ) のセクションで説明した通り、バンドルはアプリケーション、フレームワーク、プラグインなどを まとめる方法であり、またそれらのプログラム上の包括的な区分でもあります。したがって、情報 プロパティリストはほとんどすべての種類のソフトウェアを設定するために広く使用される重要 な手段といえます。情報プロパティリストは、Finder(および、場合によってはその他のアプリ ケーション)が必要とする情報を提供し、アプリケーションがHFSおよびHFS+ファイルをうまく 取り扱えるようにします。 習慣的に、情報プロパティリストはInfo.plistという名前のファイルに格納されています。情報プロ パティリストはプラットフォーム固有の情報を含むことができます。その場合、プラットフォーム を表すタグがファイル名に埋め込まれます。標準的なプラットフォーム固有のファイル名は次のと おりです。 Info-macos.plist Info-macosclassic.plistC H A P T E R 1 1 ソフトウェアの設定 情報プロパティリスト 191  Apple Computer, Inc. February 2001 設定情報がすべてのプラットフォームにとってジェネリックである場合(これが理想ですが)、 ファイル名はInfo.plistになります。バンドルコードが実行されるとき、まずプラットフォーム固 有のファイルが検索されます。バンドル内にそのようなファイルが存在しないと、プラットフォー ムジェネリックなファイルが読み込まれます。この検索アルゴリズムでは特定のキーではなく、 ファイルを検索するため、プラットフォーム固有のファイルとプラットフォームジェネリックな ファイルの両方が存在する場合は、それぞれに対応するキーと値のペアがある必要があります。 情報プロパティリストファイルはバンドルのContentsディレクトリにあります。 バンドルのInfo.plistファイルはあらゆる種類の情報を含むことができます。プロパティリスト の最上位レベルで、情報はキーと値のペア(つまり、辞書として)として指定されます。Mac OS Xでは、実行可能ファイルの名前やバンドルのバージョンなどの基本的な設定情報に使用す る標準キーのセットが定義されています。また、Finderでは、書類、アイコン、およびユーザに 対して表示するその他の情報などに使用するキーが定義されています。さらに、独自のキーを定 義して使用することもできます。統合開発環境(IDE)には、標準設定データ、Finder設定デー タ、およびカスタム設定データをInfo.plistファイルにキーと値のペアとして入力するための ヒューマンインタフェースが用意されています。情報プロパティリストの標準の情報キーについ ては、「標準キー」(195ページ)を参照してください。また、Finderキーについては、「Finder キー」(197ページ)を参照してください。 Info.plistファイルには、InfoPlist.stringsという名前のローカライズされた特殊なファイルが付 属します。InfoPlist.stringsには、ローカライズが必要になる可能性がある情報プロパティリス トのキーが含まれています。このキーは、Info.plistファイル内でこのキーに対応しているキー に対して指定される値です。一般に、ローカライズされるキーは、CFBundleName、 CFBundleShortVersionString、CFBundleGetInfoString、およびCFBundleGetInfoHTMLで、 このほかにCFBundleTypeNameおよびCFBundleURLNameのタイプの値があります。ローカラ イズされるバンドルの詳細、特にそれらがバンドル内のどこに格納され、どのように検索される かについては、「バンドル」(103ページ)を参照してください。192 情報プロパティリスト  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 書類の設定 書類を作成、または「認識」するアプリケーションの情報プロパティリストは抽象型と役割を定 義することができます。その定義は、クリップボード(ペーストボード)および書類に適用され ます。 抽象型は1つのファミリーに属する書類の一般的な特性を定義します。それぞれの抽象型には、 ファイル名拡張子や4バイトの識別子などの具体型が対応しています。具体型は、抽象型をさま ざまなファイルシステムまたは永続的なフォーマットへエンコードしたものです。抽象型という 考え方を導入することにより、ペーストボードタイプのシステムとファイル名拡張子タイプのシ ステムの間にある溝が取り除かれ、一般的なアプリケーションの相互運用性が向上します。抽象 型の名前は、一意性を確実にするために著作権を持つ必要があります。 役割はアプリケーションと書類のタイプとの関係を定義します。役割には次の5つがあります。 ■ エディタ:この役割を持つアプリケーションはタイプの読み込み、処理、および保存を行う ことができます。 ■ ビューア:この役割を持つアプリケーションはデータの読み込みと表示を行うことができ ます。 ■ プリンタ:この役割を持つアプリケーションは、データの印刷のみを行うことができます。 ■ シェル:この役割を持つアプリケーションは、ほかのプロセス(Javaアプレットビューアな ど)で使用するランタイムサービスを提供します。書類の名前は、ホスティングされている プロセスの名前で(アプリケーション名ではありません)、それぞれの書類が開かれる度に 新しいプロセスが作成されます。 ■ なし:この役割を持つアプリケーションはデータを認識できませんが、タイプに関する情報を 宣言します(たとえば、Finderはフォントのアイコンを宣言します)。 情報プロパティリストの例 リスト11-1に、Info.plistファイルの例を示します。Sketchデモアプリケーションから抜き出した この情報プロパティリストでは、このアプリケーションに対応する書類のタイプが指定されてい ます。C H A P T E R 1 1 ソフトウェアの設定 情報プロパティリスト 193  Apple Computer, Inc. February 2001 リスト11-1 SketchデモアプリケーションのInfo.plistファイル CFAppleHelpAnchor sktch001 CFBundleDevelopmentRegion English CFBundleDocumentTypes CFBundleTypeExtensions sketch draw2 CFBundleTypeIconFile Draw2File CFBundleTypeName Apple Sketch Graphic Format CFBundleTypeOSTypes sktc CFBundleTypeRole Editor NSDocumentClass SKTDrawDocument NSExportableAs NSPDFPboardType NSTIFFPboardType CFBundleTypeExtensions pdf CFBundleTypeName NSPDFPboardType CFBundleTypeOSTypes pdf CFBundleTypeRole None CFBundleTypeExtensions tiff194 情報プロパティリスト  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 CFBundleTypeName NSTIFFPboardType CFBundleTypeOSTypes tiff CFBundleTypeRole None CFBundleExecutable Sketch CFBundleIconFile Draw2App CFBundleIdentifier com.apple.CocoaExamples.Sketch CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType APPL CFBundleSignature sktc CFBundleVersion 1.2.0 NSAppleHelpFile osxa444.htm NSAppleScriptEnabled YES NSJavaNeeded YES NSJavaPath Sketch.jar NSJavaRoot Contents/Resources/Java NSMainNibFile Draw2Java.nib NSPrincipalClass NSApplication Sketchアプリケーションは、このInfo.plistファイル(実際にはInfo-macos.plist)に、英語バー ジョンのリソースディレクトリにあるInfoPlist.stringsファイルを関連づけています。C H A P T E R 1 1 ソフトウェアの設定 情報プロパティリスト 195  Apple Computer, Inc. February 2001 リスト11-2 SketchデモアプリケーションのInfoPlist.stringsファイル { CFBundleName = "Sketch"; CFBundleShortVersionString = "Apple Sketch Application Example 1.1.0"; CFBundleGetInfoString = "Apple Sketch Application Example 1.1.0. Copyright \U00A9 1998-2000, Apple Computer, Inc."; NSHumanReadableCopyright = "Copyright \U00A9 1998-2000, Apple Computer, Inc."; // Document type human-readable names. "Apple Sketch Graphic Format" = "Apple Sketch Graphic Format"; "NSPDFPboardType" = "Portable Document Format (PDF)"; "NSTIFFPboardType" = "Tagged Image File Format (TIFF)"; } 標準キー Mac OS Xでは、標準キーが定義されています。統合開発環境によってデフォルト値が設定されて いるキーが一部あります。 CFBundleInfoDictionaryVersion:Info.plistフォーマットの将来のバージョンをサポートするため に使用されます。このキーは、バンドルをビルドするときに開発環境によって自動的に生成され ます。 CFBundleExecutable:バンドルのメイン実行可能ファイルの名前。アプリケーションの場合は、 アプリケーションの実行可能ファイルです。ロード可能バンドルの場合は、バンドルによってダイ ナミックにロードされるバイナリです。フレームワークの場合は、フレームワークの共有ライブラ リです(フレームワークの場合は起動時のパフォーマンスを向上させるため、実行可能ファイルの 名前はフレームワーク名と同じである必要があります)。実行可能ファイルの名前には、複数のプ ラットフォームで使用される可能性のある拡張子が含まれてはいけません。 CFBundleIdentifier:バンドルを一意に識別する文字列。この識別子は、com.apple.foo.barの ようなJavaスタイルのパッケージ名の形式でなければなりません。バンドル識別子は実行時にバ ンドルを検索するために使用できます。環境設定システムでは、この文字列を使って、アプリ ケーションを一意に識別します。 CFBundleVersion:Mac OSの「vers」リソースに適合するバージョン番号。このキーの値は文字 列でなければなりません。この値はアプリケーションに固有です。ただし、「2.5.3d5」のような 標準形式が使用されていると、システムのバンドルルーチンが値を正しく取得することができま す。値が任意の数値である場合、バンドルルーチンはそれを文字列として扱いますが、適切な数 値表現が返されることは保証されません。196 情報プロパティリスト  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 CFBundleDevelopmentRegion:バンドルの「ネイティブ」地域。通常これは、バンドルを開発 したデベロッパの母国語です。開発地域は、そのユーザに対して優先される地域または言語をリ ソースが検出できなかった場合に、最終的な選択肢として使用されます。 次のキーはCocoaバンドルにのみ適用されます。 NSJavaNeeded:論理値の「true」が指定された場合、必要に応じて、Java VMがロードされて起 動されます。論理値の「true」は、trueに設定されているCFBooleanオブジェクト(XMLの場合) と、「YES」という文字列値のいずれかを使って指定できます。 NSJavaPath:NSJavaRootが指定するルートの下にコンポーネントが格納されているクラスへ の相対パスの配列。配列内の値は、開発環境(具体的には、そのjamfile)により自動的にメン テナンスされます。 NSJavaRoot:アプリケーションのJavaクラスが格納されているディレクトリ位置のルートを指 定する文字列。 NSMainNibFile:アプリケーションのメインnibファイルの名前。nibファイルはInterface Builder アーカイブで、ヒューマンインタフェースの記述と、そのインタフェースのオブジェクト間の接続 の記述を含みます。メインnibファイルは、アプリケーションが起動するときに自動的にロードさ れます。デフォルトでは、ファイル名は、アプリケーションの名前に拡張子.nibを付けたものにな ります。 NSPrincipalClass:Cocoa環境での、バンドルの主要クラスの名前。主要クラスは、バンドル内 で他のクラスに対する関係の中心となるため、メインクラスに指定されます。デフォルトでは、 この名前はアプリケーション名です。 NSServices:アプリケーションによって提供されるサービスを指定する辞書の配列。このサブ辞 書に対するキーは、NSPortName、NSSendTypes、NSMenuItem、およびNSMessageです。 NSHumanReadableCopyright:CocoaアプリケーションのAbout(「~について」)ダイアログに 表示する著作権情報を含む文字列。ローカライズが必要であるため、このキーは通常 InfoPlist.stringsファイル内にあります。 CFAppleHelpAnchor:そのバンドルの、HTMLヘルプ起動時のヘルプファイルの名前から、拡張 子.htmlまたは.htmを除いたもの。このファイルは、バンドルのローカライズされたリソースの フォルダ、または、ローカライズされない場合はResourcesディレクトリの直下に保存されてい ます。C H A P T E R 1 1 ソフトウェアの設定 情報プロパティリスト 197  Apple Computer, Inc. February 2001 Finderキー 次のキーは、Mac OS XのFinderがバンドルに関する重要な情報を格納するのに使用します。 Finderはこれらのプロパティをアプリケーションのアイコンの検索と表示、関連づけられている 書類タイプの認識などに使用します。 CFBundleName:メニューやAboutボックスなど、ユーザインタフェースのさまざまな場所で表示 す る場 合に 適し たバ ンド ルの 短縮 名。ローカ ライ ズが 必要 であ るた め、この キー は通 常 InfoPlist.stringsファイル内にあります。 CFBundlePackageType:バンドルの タイプコード(4文字)。アプリケーションのタイプは 「APPL」、フレームワークのタイプは「FMWK」、ロード可能バンドルのタイプは「BNDL」です。 ロード可能バンドルについては、「BNDL」より限定されたタイプコードを選択することができ ます。 CFBundleSignature:バンドルのクリエータコード(4文字)。 CFBundleIconFile:Finder(またはその他のアプリケーション)がこのバンドルの表示に使用す るアイコンが含まれたバンドルリソースのファイル名。ファイル名には拡張子を付けることがで きますが、必須ではありません。ファイル名に拡張子が付いていない場合、システムがプラット フォームに応じて適切な拡張子を追加します(たとえば、Mac OS 9では「.icns」)。 CFBundleShortVersionString:「情報」ウインドウに表示されるバンドルのバージョンの説明。 この説明には、CFBundleVersionキーが存在する場合に、そのキーで生成可能な文字列と異なる 文字列を使用することができます。ローカライズが必要である場合、このキーはInfoPlist.strings ファイル内にあります。推奨フォーマットは、n.n.n(nは数字)です。マイナーバージョンを 表す番号のどちらか1つは省略可能です。したがって、「1」、「10.1」、および「2.0.11」が有効な バージョン番号の例です。 CFBundleGetInfoString:Finderの「情報」ウインドウに表示されるプレーンテキストの文字列 (Mac OS 9では、Long Version Stringと呼ばれていました)。このキーのフォーマットはMac OS 9 のLong Version Stringに準拠する必要があります(例:「2.2.1, Great Software, Inc, 1999」)。ロー カライズが必要であるため、このキーは通常InfoPlist.stringsファイル内にあります。 CFBundleGetInfoHTML:Finderの「情報」ウインドウに表示されるHTML文字列。ローカライズが 必要であるため、このキーは通常InfoPlist.stringsファイル内にあります。高度な表現力が必要な 場合は、プレーンテキストを指定するCFBundleGetInfoStringの代わりに、このキーと値のペアを 指定することができます。CFBundleGetInfoStringとCFBundleGetInfoHTMLの両方が存在する場合 は、CFBundleGetInfoHTMLが使用されます。198 情報プロパティリスト  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 CFBundleDocumentTypes:アプリケーションが認識する任意の書類のタイプの、タイプ定義の 配列。それぞれのタイプ定義は配列内にある1つの辞書です。タイプ定義辞書では次のキーがサ ポートされています。 ■ CFBundleTypeName:書類のタイプの抽象名。タイプが有効であるためには、この名前が存 在する必要があります。これは、タイプを参照するためのメインの方法で、データがペース トボード上にあるときにシステムが使用します。一意性を確実にするため、Javaパッケージ 形式の識別子を使用することをお勧めします。この識別子は、InfoPlist.stringsファイル内で もキーとして使用され、タイプ名を可読的に示します。タイプがシステムタイプの場合は、 一般的なクリップボードタイプに対して用いられる以下のシンボル名の1つを使用すること ができます。 NSStringPboardType NSFilenamesPboardType NSPostScriptPboardType NSTIFFPboardType NSRTFPboardType NSTabularTextPboardType NSFontPboardType NSRulerPboardType NSFileContentsPboardType NSColorPboardType NSPICTPboardType NSPDFPboardType NSURLPboardType ■ CFBundleTypeIconFile:Finderがそのタイプに対して表示するアイコンが含まれた、バンド ル内のリソースのファイル名(拡張子を除いたもの)を指定します。ファイル名には拡張子 を付けることができますが、必須ではありません。ファイル名に拡張子が付いていない場合、 システムがプラットフォームに応じて適切な拡張子を追加します(たとえば、Mac OS 9では 「.icns」)。 ■ CFBundleTypeRole:そのタイプとの関連でのアプリケーションの役割を定義します。値は、 Editor、Viewer、Printer、Shell、Noneのいずれかです。これらの値の詳細については、「書類 の設定」(192ページ)を参照してください。C H A P T E R 1 1 ソフトウェアの設定 情報プロパティリスト 199  Apple Computer, Inc. February 2001 ■ CFBundleTypeOSTypes:このタイプへのマッピングを行うタイプコード(4文字)の配列。 ■ CFBundleTypeExtensions:このタイプへのマッピングを行うファイル名拡張子の配列。 ■ NSDocumentClass:この書類のインスタンスの生成に使用する NSDocument サブクラス。 Cocoaアプリケーションにのみ使用します。 ■ NSExportableAs:このタイプの書類のエクスポート形式となる他のタイプの配列(書き込み 専用のタイプ)。Cocoaアプリケーションのみに使用します。 CFBundleURLTypes:CFBundleDocumentTypesに類似した辞書の配列。アプリケーションが取 り扱うことのできるURLスキーマを記述します。URLタイプ辞書では次のキーがサポートされて います。 ■ CFBundleURLName:このURLタイプの抽象名。これは、特定のタイプを参照するための主な 方法です。一意性を確実にするため、Javaパッケージ形式の識別子を使用することをお勧め します。また、意味がわかる形式のタイプ名を得るためにInfoPlist.stringsファイルの検索キー としてもこの名前を使います。 ■ CFBundleURLIconFile:そのタイプに対して使用するアイコンが含まれたバンドル内のリソー スのファイル名(拡張子を除いたもの)を指定します。 ■ CFBundleURLSchemes:このタイプが取り扱うURLスキーマの配列(http、ftpなど)。 アプリケーションパッケージキー Mac OS X上のアプリケーションバンドルは、アプリケーションパッケージキーを利用すること により、リソースのインストール先とインストール方法を制御することができます。アプリケー ションパッケージのインストールには2つの段階があります。ほとんどの場合、ユーザまたは管 理者が行う作業は、目的のインストール先にパッケージをコピーするだけです(コピーを行う 権限があるものとします)。ただし、バンドル化されたリソースをバンドル外部の特定の場所に インストールするメカニズムとして、アプリケーションパッケージキーがあります。ユーザまた は管理者は、インストールするリソースをアプリケーションの「情報」ウインドウ(Finderの 「情報を見る」コマンドからアクセスします)で選択し、「インストール」ボタンをクリックし ます。リソースのアンインストールも同様の方法で行います。200 情報プロパティリスト  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 表11-1に、アプリケーションパッケージキーの説明を示します。 表11-2に、APFiles配列内の各辞書に含まれるキーの説明を示します。 表11-1 Finderアプリケーションパッケージキー キー 説明 APInstallerURL アプリケーションパッケージ内の項目をインストールするのに使用 するプログラムを特定するURL。現在サポートされている唯一のURL スキーマは「file:」です。 APFiles インストール可能なファイルまたはディレクトリを記述した辞書の 配列。 表11-2 APFiles辞書のキー キー 説明 APFileName ファイルまたはフォルダの名前。 APFileDescriptionKey Finderの「情報」ウインドウに表示される、アイテムの説明(短縮版)。 APFileSourcePath インストーラとの相対位置で示した、アプリケーションパッケージ内の コンポーネントへのパス。 APFileDestinationPath アプリケーションパッケージとの相対位置で示した、コンポーネント のインストール先パス。 APInstallAction そのコンポーネントに対して行う操作(コピーまたはオープン)。 APDisplayedAsContainer trueの場合は、インスペクタに表示される項目に、フォルダのアイコン が使用されます。falseの場合は書類のアイコンが使用されます。C H A P T E R 1 1 ソフトウェアの設定 情報プロパティリスト 201  Apple Computer, Inc. February 2001 起動サービスキー 起動サービスキーは、CFMベースの実行可能ファイルの、Mac OS X上での起動方法を制限しま す。通常、Finderの「情報」ウインドウでは、選択されている各CFMアプリケーションに対し て「Classic環境で起動」コントロールが表示されます。ユーザがこのコントロールを設定する と、FinderはそのアプリケーションをClassic環境で起動します。起動サービスキーのいずれかが 指定されている場合、Finderの「情報」ウインドウにはそのコントロールが表示されません。 アプリケーションはキーで指定された環境で起動する必要があります。詳細については、「イン ストールと統合」の章の「CFM実行可能ファイル」(230ページ)を参照してください。 表11-3に、キーの説明を示します。 表11-3 起動サービスキー キー 説明 LSRequireClassic trueに設定されている場合、アプリケーションはClassic環境でのみ起 動します(Carbon環境では起動しません)。 LSRequireCarbon trueに設定されている場合、アプリケーションはCarbon環境でのみ起 動します(Classic環境では起動しません)。 LSBackgroundOnly trueに設定されている場合、アプリケーションはバックグラウンドで のみ動作します。これが必要なのは、ウインドウサーバに接続はする が、ユーザに対して表示されることを考慮していない、上位レベルの フレームワークを使用するプロセスだけです。202 環境設定  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 環境設定 環境設定とは、ユーザがその作業環境をカスタマイズするために選択することができるアプリ ケーションあるいはシステムのオプションです。たとえば、自動保存、デフォルトフォント、 スマートクォートは、書類ベースのアプリケーションの一般的な環境設定です。ほとんどすべて のアプリケーションで、環境設定の保存と取得を行う必要があります。Mac OS Xの環境設定シ ステムは、ユーザがアプリケーションやシステムソフトウェアの動作をカスタマイズすることを 可能にするだけでなく、複数の起動環境を対象にそれぞれの環境設定を保存する方法を提供しま す。環境設定はアプリケーションだけに限定される機能ではありません。フレームワークやライ ブラリも、場合によっては、ユーザ環境設定などの環境設定値の読み書きを行うことができま す。環境設定の作成、書き込み、読み込み、および削除を行うには、Core Foundationの環境設 定サービスを使用します。また、Cocoaデベロッパの場合はNSUserDefaultsクラスを使用します。 重要 アプリケーションの起動時に設定する必要のあるデータを、環境設定 値として保存するのは好ましくありません。ユーザ環境設定であると いうことは、その値によってアプリケーションの起動に重大な影響を 与えないということです。つまり、何らかの理由で環境設定が失われ ても、アプリケーションは、環境設定のデフォルトセットを作成し 直すことができるということです。起動時設定の情報はアプリケー ションにとって必須であるため、情報プロパティリストまたはアプリ ケーションパッケージ内のその他のプロパティリストに格納してく ださい。 環境設定システムはキーに関連づけられている値を格納します。その後、必要になったときに、 キーを使って目的の環境設定を参照することができます。キーと値のペアには、ユーザ名、アプ リケーションID、およびホスト(コンピュータ)名の組み合わせを使用する有効範囲が割り当て られます。このメカニズムを使用すると、さまざまなクラスのユーザに適用される環境設定を作 成することができます。たとえば、次の対象に適用される環境設定値を保存することができます。 ■ あるアプリケーションを現在のホスト上で使用している現在のユーザ ■ あるアプリケーションをあるローカルネットワークに接続されている特定のホスト上で使用 するすべてのユーザ ■ あるアプリケーションをあるローカルネットワークに接続されている任意のホスト上で使 用している現在のユーザ(通常の意味のユーザ環境設定)C H A P T E R 1 1 ソフトウェアの設定 環境設定 203  Apple Computer, Inc. February 2001 ■ あるローカルネットワークに接続されている任意のホスト上で任意のアプリケーションを実 行する任意のユーザ 環境設定値の格納方法 環境設定システムは、適切なファイルシステムドメイン内のLibrary/Preferencesフォルダにある ファイルに環境設定データを格納します。たとえば、環境設定が1人のユーザに適用される場合、 そのユーザのホームディレクトリにあるLibrary/Preferencesフォルダにファイルが書き込まれ ます。また、環境設定があるネットワーク上のすべてのユーザに適用される場合は、/Network/ Library/Preferencesに格納されます。 Library/Preferencesにあるファイルはそれぞれ、対象となるアプリケーションを一意に特定する 名前を持ちます。名前はアプリケーションのバンドル識別子から生成されます。バンドル識別子 は、アプリケーションプロジェクト内で、情報プロパティリストの一部として(CFBundleIdentifier キーを使用して)割り当てます(詳細については、「標準キー」(195ページ)を参照)。環境設 定に関連するシステムルーチンでは、バンドル識別子を使って、目的のアプリケーションに対す る環境設定を見つけます。 名前のコンフリクトが発生しないようにするため、アップル社では、バンドル識別子にJavaの パッケージ名と同じ形式(デベロッパの所属企業の一意のドメイン名と、それに続くアプリケー ション名またはライブラリ名)を使用することを強く推奨しています。たとえば、 com.apple.Finder、com.adobe.Photoshop、com.foo.ImageImportのようなバンドル識別子を 使用します。この方式を使用することで、名前が重複する可能性を最小限に抑えることができ、 識別子のネームスペースの管理をデベロッパの所属企業のドメイン内でだけ行えば済むように なります。 Core Foundationのバンドルサービス(Cocoaアプリケーションの場合はNSBundleクラス)には、 アプリケーションのバンドル識別子にアクセスするためのルーチンが用意されています。常にこれ らのルーチンを使用するようにし、アプリケーションの識別子を直接書き込まないようにしてくだ さい。 Library/Preferencesにある環境設定ファイルは.plistという拡張子を持ちます。この拡張子は、 それらがプロパティリストを含んでいることを示します。必要な場合は、これらのXMLプロパ ティリストを直接修正して、アプリケーション用の環境設定値を追加または変更することができ ます。ただし、これにより、XMLに編集エラーが入り込む可能性があります。編集エラーが発生 すると、アプリケーションはファイルをロードできなくなり、その結果、アプリケーションのす べての環境設定値が失われてしまう可能性があります。環境設定ファイルを編集しなければなら ない場合は、Property List Editorアプリケーションを使用してください。204 環境設定  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定 適切なファイルシステムドメイン内のLibrary/Preferences以外の位置にアプリケーションが環 境設定を書き込もうとすると、問題が発生する可能性があります。まず、環境設定APIは、異な る位置を扱えるように設計されていません。しかしより深刻なのは、本来と異なる位置に格納さ れた環境設定は環境設定値検索リストから除外されるため、他のアプリケーション、フレーム ワーク、またはシステムサービスがこの環境設定を認識できなくなる可能性があることです。 環境設定ドメイン 新しい環境設定の作成や既存の環境設定の検索を行うとき、環境設定システムは環境設定ドメイ ンという考え方を使って、環境設定の有効範囲と位置を指定します。環境設定ドメインは、アプ リケーション識別子、ホスト名、およびユーザ名という3つの情報から構成されます。表11-4に、 環境設定システムが環境設定値を検出するときの検索順に従って、すべての環境設定ドメインを 示します。 検索ルーチンは、指定されたキーを見つけるまで、上の順序ですべての環境設定ドメインを順に 検索していきます。環境設定が「任意のアプリケーション」などの限定の弱いドメイン内で設定 されている場合、その値が取得されるのは限定の強いドメインでその値が検出されなかった場合 にかぎります。つまり、限定の強いドメインで設定されている値が、限定の弱いドメインで設定 されている同じキーの値をオーバーライドすることになります。 表11-4 環境設定ドメインの検索順序 1 現在のユーザ 現在のアプリケーション 現在のホスト 2 現在のユーザ 現在のアプリケーション 任意のホスト 3 現在のユーザ 任意のアプリケーション 現在のホスト 4 現在のユーザ 任意のアプリケーション 任意のホスト 5 任意のユーザ 現在のアプリケーション 現在のホスト 6 任意のユーザ 現在のアプリケーション 任意のホスト 7 任意のユーザ 任意のアプリケーション 現在のホスト 8 任意のユーザ 任意のアプリケーション 任意のホストC H A P T E R 1 1 ソフトウェアの設定 環境設定 205  Apple Computer, Inc. February 2001 defaultsユーティリティ Mac OS Xの環境設定システムには、アプリケーションおよびその他のドメインの環境設定値(ま たはユーザデフォルト)の読み書きと削除を行うdefaultsという名前のコマンドラインユーティ リティが用意されています。defaultsユーティリティは、アプリケーションをデバッグするとき に非常に役立ちます。大部分の環境設定情報にはアプリケーションの「環境設定」ダイアログ (あるいはそれに相当するもの)を介してアクセスできますが、ウインドウの位置など、一部の 設定情報には「環境設定」ダイアログからはアクセスできません。defaultsユーティリティを使 用すると、このような情報にもアクセスすることができます。 このユーティリティを実行するには、Terminalアプリケーションを起動し、BSDシェルで、 defaultsに続けて、適切なコマンドオプションをすべて入力します。構文と引数の簡単な説明を 参照するには、オプションを付けないでdefaultsコマンドを実行します。詳細な説明が必要な場 合は、defaultsのmanページを参照するか、次のようにusage引数を付けてコマンドを実行します。 $ defaults usage アプリケーションは実行されている間ずっと環境設定にアクセスしているため、defaultsを使っ て実行中のアプリケーションのデフォルトを変更しないでください。実行中のアプリケーション で使用されているドメイン内でデフォルトを変更すると、アプリケーションはその変更に気づか ず、デフォルトを上書きしてしまう可能性があります。206 環境設定  Apple Computer, Inc. February 2001 C H A P T E R 1 1 ソフトウェアの設定207  Apple Computer, Inc. February 2001 C H A P T E R 1 2 12 国際化 Mac OS Xは国際化されたオペレーティングシステムです。つまり、ソフトウェアリソース(テキ スト、画像、サウンドなど)のローカライズが容易であるだけでなく、複数のスクリプトを含む テキストを表示することもできます。しかし、デベロッパの協力なしには、Mac OS Xは国際化 の要求事項を完全に満たすことができません。デベロッパは担当する役割を認識し、お住まいの 国または地域の外部に出荷されるすべてのソフトウェアが、確実に正しく国際化およびローカラ イズされるようにご協力ください。また、アプリケーションは、マルチスクリプトテキストの表 示を確実にサポートできるようにする必要があります。 先に進む前に、ローカリゼーション、国際化、およびマルチスクリプトサポートという、一見類 似した用語の区別を明確にしておきます。 ■ ローカリゼーションとは、オリジナル製品が開発された国や地域に加えて、世界のその他の 国や地域で使用するために、オンラインヘルプやマニュアルを含めたソフトウェア製品を適 合させることです。ソフトウェアのローカリゼーションには、ユーザインタフェーステキス トの翻訳、テキスト関連のグラフィック要素のリサイズ、国や地域の事情に合わせた画像や サウンドの変更などの作業が含まれます。 ■ 国際化とは、ソフトウェア製品を、ローカライズが容易になるように設計または変更すること です。 Mac OS Xは、Unicodeベースのテキスト記憶域、バンドル化されたリソース、および環 境設定システムを採用することにより、ローカライズされたリソースを入力、表示、フォー マット、および操作することが可能な、国際化されたシステムとなっています。ソフトウェア を国際化するには、それらのロケール対応のサービスを利用するコードを作成する必要があり ます。 ■ マルチスクリプトサポートとは、ソフトウェアがマルチリンガルテキストを正しく取り扱う ことを保証する一連のプログラム手法を指します。マルチリンガルをサポートしたプログラ ムは、たとえば、英語、日本語、アラビア語といった複数のスクリプトを含む書類を正確に 表示することができます。208 アプリケーションを国際化する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 この章では、ユーザインタフェースの微調整を除いてローカライズの話題は扱いません。ローカ ライズはソフトウェア開発とは異なる分野です。通常、テキストの翻訳は専門の翻訳者が行い、 画像やサウンドの変更はアーティストや技術者が行います。これらの作業はしばしばデベロッ パ自身により行われますが、作業でソースコードの変更が必要になることはありません。ただ し、ローカライズの取り組みにデベロッパが関与することは重要です。デベロッパは、たとえば 翻訳されたユーザインタフェーステキストがそれぞれのユーザインタフェースエレメントに納 まるかどうかを確認し、必要に応じて、ユーザインタフェースエレメントを正しく調整したり、 翻訳を変更するよう依頼したりする必要があります。 アプリケーションを国際化する 国際化とはアプリケーションを特定の言語に依存しないようにすること、つまり複数の言語また は地域からユーザが1つを選択することによって、その言語または地域用にローカライズされた バージョンのアプリケーションを使用できるようにすることです。ローカライズされるのはアプ リケーションのリソース(テキスト、画像、サウンドなど)だけです。実行可能コードは、アプ リケーションのすべてのローカライズバージョンを通じて同一です。 アプリケーションを国際化するとは、アプリケーションをローカライズ可能にすることです。つま り、特定の言語に固有のテキスト、画像、およびサウンドをプロジェクトディレクトリ内にあるそ の言語固有のサブディレクトリに配置し、ロケールを認識できるAPIを使用してそれらのリソース にアクセスすることにより、アプリケーションにローカライズサポートを組み込むことです。 開発するアプリケーションで複数の言語をサポートする予定が当面ない場合でも、国際化を意識 してアプリケーションを設計することには利点があります。アプリケーションが正しく設計され ていると、後でローカライズを行う場合でもソースコードを改変する必要がないため、後から必 要なフックを作り入れることによってバグが侵入する危険がありません。また、ローカライズさ れたコードをオリジナルのモノリンガル製品と同時にテストすることができるため、後でローカ ライズを行う場合に必要なテストの作業量を最小限に押さえることができます。 Mac OS Xの国際化システムは、多くのテクノロジーを利用しています。C H A P T E R 1 2 国際化 アプリケーションを国際化する 209  Apple Computer, Inc. February 2001 ■ Unicode:Unicodeは世界中の言語の大部分を表現可能であるため、Mac OS Xではネイティ ブの文字エンコーディングとして使用されます。 Unicodeを使用した場合、Mac OS Xのファイ ルシステムでは、エンコーディングに応じてローカリゼーションを変更する必要はありませ ん。 Unicodeベースにすると、ある言語を使用するユーザが、別の言語のスクリプトを使用し たファイル名またはボリューム名を付けることが可能になります。しかし、現行のテキスト システムでサポートされていない表記法(縦書きや右から左に書く言語)が一部に存在する ので、そうした言語に対応するようローカライズするのは実用的ではありません。また、Mac OS Xで使用されるUnicodeのエンコーディングは、UTF-8またはUTF-16で、ソフトウェアの レベルに応じて異なります。システムの下位レベル(BSD、NetInfoなど)のルーチンでは UTF-8を、上位レベルではUTF-16を使用します。 正しく国際化されたアプリケーションはUnicode対応であるため、マルチスクリプトもサポー トします(「マルチスクリプトサポートを追加する」(220ページ)を参照)。 ■ バンドル:バンドルおよびバンドル関連のAPIには、特定の言語および地域に合わせてローカ ライズされたリソース用のパッケージングおよびアクセス手段が用意されています。詳細につ いては、「バンドル」(103ページ)の章を参照してください。 ■ 環境設定システム: Mac OS Xの環境設定システムは、言語設定をはじめとするユーザの個人 環境設定を保存するための手段です。言語に関する環境設定の詳細については、「言語環境設 定とバンドルリソース」(209ページ)を参照してください。 また、特定のスクリプトで使用するフォントやインプットサービスも、もちろんインストールされ ている必要があります。 言語環境設定とバンドルリソース ユーザは、「地域情報」システム環境設定の「言語」ペインで、コンピューティング環境で優先 される言語およびロケールの順位を設定することができます。環境設定システム(「環境設定」 (202ページ)参照)は、言語とロケールの順位を示したこの一覧を、ユーザごとのデフォルト として、AppleLanguagesキーに格納します。したがって、複数の言語を使用できるユーザは、 最も優先される言語のローカリゼーションがアプリケーションに用意されていなかった場合に 備えて、代替の選択肢を指定することができます。210 アプリケーションを国際化する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 図12-1 システム環境設定の「地域情報」モジュールの「言語」ペイン 言語の一覧に表示される各文字列は、バンドルのResourcesディレクトリにある.lprojディレク トリのベースネームに対応しています。システムのバンドル管理ルーチンは、この文字列を使用 して、対応する.lprojディレクトリ内で、ローカライズされたリソースを検索します。該当する ディレクトリが存在しない場合、2番目に優先される言語環境設定の値を使用して、バンドルの ローカリゼーションを検索します。ローカリゼーションが見つかるまでこの操作が繰り返され ます。見つからない場合のデフォルトのローカリゼーションは開発時に使用された言語です。C H A P T E R 1 2 国際化 アプリケーションを国際化する 211  Apple Computer, Inc. February 2001 Carbonおよび Javaアプリケーションでは、Core Foundationバンドルサービス(CFBundle)が この検索機能を提供しています。Cocoaアプリケーションでは、この機能はNSBundleクラスに より提供されます。翻訳された言語固有のリソースがアプリケーションに含まれている場合、 アプリケーションは、そのユーザの言語環境設定の値にもとづいて、ローカライズされたリソー スを適切なファイルセットからロードします。これによりアプリケーションは、各ユーザに対し て、優先される言語に設定した言語のいずれかで表示されます。可能な場合にはそのユーザに とって最も優先順位の高い言語で表示されますが、そうでない場合もあります。 バンドルによるリソースの格納方法については「バンドル」(103ページ)の章を参照してくださ い。 言語およびロケールの指定 Mac OS Xには、言語環境設定とバンドルのローカリゼーションを表現する方法が3つあり、それぞ れ指定の程度が異なります。その言語指定方式を以下に示します。 ■ 言語の名前(たとえば「英語」) ■ ISO 639に準拠した言語の短縮名(たとえば「en」) ■ ISO 3166に準拠した、言語のバリエーションを特定するロケールの短縮名(たとえば「en_US」) 一般に、推奨できる手法は、ISO 639の言語短縮名を使用すること、または、可能な場合には、 ISO 3166のロケール短縮名を使用することです。ただし、CFBundleとNSBundleでは、「English」、 「French」、「German」、「Japanese」、「Chinese」、「Spanish」、「Italian」、「Swedish」、および 「Portuguese」の各言語名が認識されます。また、ISO 639の短縮名をこれらの短縮名にマップ することが可能です。 システムが言語環境設定の値に一致するローカリゼーションを容易に見つけられるよう、ユーザ の言語環境設定は可能な限り具体的であり、バンドル内に格納されるローカリゼーションは可能 な限り一般的である必要があります。すでに説明した通り、システムバンドルルーチンは、バン ドル内の.lprojディレクトリのベースネームの中から言語環境設定の指定に一致するものを検索 します。正確に一致するものが見つからなかった場合、上位の階層でローカリゼーションを検索 します。 注意:ISO 639規格およびISO 3166規格は、ISOのWebサイト(http://www.iso.ch)で入手でき ます。212 アプリケーションを国際化する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 例を引いて説明します。あるユーザがアメリカ英語(「en_US」)を最も優先される言語に指定し たとします。そのユーザがローカリゼーションを2つだけ(French.lprojおよびEnglish.lproj)持つ アプリケーションを起動した場合を考えます。システムに対してローカライズされたリソースを フェッチするよう要求があった場合、システムは最初にen_US.lprojという名前のディレクトリを 探し、次にen.lproj、最後にEnglish.lproj内を探してリソースを見つけます。 バンドルルーチンがリソースを検索する場合、単一のロケールに対応するローカリゼーションを チェックし、リソースをそこで検出できなかった場合、そのロケールを言語のバリエーションと して含む言語のローカリゼーションをチェックします。このように動作するため、ロケールに固 有のリソースと、その言語全体に使用できるリソースを、相互の論理的な関係を保ったまま、 それぞれの.lprojディレクトリに置くことができます。システムは最初にロケール固有のローカ リゼーション(en_US.lproj)内で検索し、目的のリソースをそこで検出できなかった場合は言 語固有のローカリゼーション(en.lprojやEnglish.lproj)内で検索を行います。そこでもリソー スを検出できなかった場合、システムは、そのユーザが次の優先順位を指定した言語またはロ ケールに進みます。アップル社では、特定のロケール用のローカリゼーションを持つアプリケー ションには、そのロケールを含む言語のローカリゼーションも用意するよう推奨しています。 言語のローカリゼーションには、その言語に対してジェネリックなすべてのリソースが含まれる 必要があります。 CFBundleおよびNSBundleは、ISO 639規格の短縮名を参照するため、既存の大部分の言語を取り 扱うことができます(使用可能範囲の広さを示す例として、マン島語、フェロー語、オロモ語が 含まれていることを挙げることができます)。このセクションですでに挙げた言語名を除き、 CFBundleやNSBundleは、短縮名を英語による言語名表記にマップすることはできません。そうし たマッピングを行う必要がある場合は、ISO 639規格の短縮名を特定の言語での表記名に変換する Carbon関数MacLocales.hを使用できます。 CFBundleやNSBundleが認識しないロケールまたは言 語の短縮名を使用することもできます。ただし、その場合には、その言語環境設定の値に対して 使用される短縮名と.lprojディレクトリのベースネームが正確に一致する(あるいは、最低でも最 初の2文字が一致する)ように注意してください。 一方、CFBundleとNSBundleが認識できるロケール短縮名の一覧に含まれるのは、英語、中国語、 フランス語、ドイツ語、スペイン語、オランダ語、イタリア語、およびポルトガル語の8ヶ国語 だけです。 CFBundleとNSBundleは、ISO 3166のロケール短縮名を単純に切り詰めることによっ て、その「親」に当たるISO 639の短縮名にマップすることができます。C H A P T E R 1 2 国際化 アプリケーションを国際化する 213  Apple Computer, Inc. February 2001 国際化とローカリゼーションに使用するツール Mac OS Xでのアプリケーションの国際化作業の1つに、特定の言語または地域用にローカライズ されたリソースを正しいバンドル位置に配置することがあります。これまでCode Fragment Manager(CFM)アプリケーションなどでは、この作業を手作業で行わなければならないことも ありました(詳細については「CFM実行可能ファイル」(230ページ)を参照)。幸い大部分の場 合には負担の軽減に役立つツールがあります。 Project Builderに含まれているFile Reference Inspectorを使用すると、国際化の負担を軽減できま す。リソースファイルを国際化するには、以下の手順に従ってください。 1. Project Builderにリソースファイルを追加します。 a. 「Groups and Files」ペインで追加先の「Resources」フォルダを選択します(「Groups and Files」ペインを表示するのに「Files」タブをクリックする必要がある場合があります)。 b. 「Project」メニューから「Add Files」を選択します。 c. ファイルブラウザを使用して目的のリソースまでナビゲートし、リソースを選択して 「Open」をクリックします。 d. Project Builderにより表示されるダイアログで、「Copy into group folder」を選択し、相対 的(relative)な参照スタイルのいずれかを選択します(Project Relativeなど)。正しい追 加先リソースが選択されていることを確認してください。「Add」をクリックします。 2. 目的のリソースファイルを選択し、「Project」メニューから「Show Inspector」を選択します。 3. File Reference Inspectorで(図12-2(214ページ)参照)、「Localization & Platforms」ポップ アップメニューから「Make Localized」を選択します。 4. 表示されるダイアログで、ポップアップメニューから標準の言語のいずれかを選択するか、 目的の言語が一覧にない場合は言語名を入力します。 既存のリソースの1つをプレースホルダまたはテンプレートに使用して別のローカリゼー ションを作成する場合は、「Add Localized Variant」を選択し、作成する言語名を選択(また は入力)します。 Project Builderにより、目的のリソースが別の.lprojディレクトリにコピーさ れます。 5. リソースがテキストファイルの場合は、「File Encoding」ポップアップメニューで「Unicode」 を選択します。214 アプリケーションを国際化する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 図12-2 Project BuilderのFile Reference Inspector stringsファイル(ソースコードに埋め込まれている文字列のローカライズされたバージョンが含 まれているファイル)を作成するには、genstringsコマンドラインユーティリティを使用するか、 手作業でファイルを作成する必要があります。詳細については、「文字列をローカライズする」 (216ページ)を参照してください。 最後に、リソースのローカライズに使用するツールに触れます。画像やサウンドについては、 適切なアプリケーション(Photoshopなど)を使います。テキストに関しては、UTF-16エンコー ディングで保存できるワードプロセッサやテキストエディタを使います。Mac OS Xに付属する TextEditアプリケーションは、このような機能を備えています。Interface Builderなどのアプリ ケーションを使用してユーザインタフェースを定義およびアーカイブすることができる場合、 それらのインタフェースアーカイブに、ローカライズされたバージョンを用意する必要がありま す。このトピックの詳細については、この後のセクションを参照してください。C H A P T E R 1 2 国際化 アプリケーションを国際化する 215  Apple Computer, Inc. February 2001 ユーザインタフェースをローカライズする Mac OS X用のネイティブの統合開発環境(IDE:Integrated Development Environment)は、Project Builder、Interface Builder、およびビルド、デバッグ、パフォーマンス調整を行う各ツールのセッ トで構成されます。開発者は、Interface Builderを使用して、アプリケーションのユーザインタ フェースを作成します。作成したインタフェースは、nibファイルと呼ばれるXMLアーカイブの形 式で保存されます。nibファイルは、画像やサウンドファイルと同様にローカライズ可能です。 nibファイルには、ウインドウ、ダイアログ、ユーザインタフェースエレメント(ボタン、スラ イダ、テキストオブジェクトなど)、およびこれらのエレメントのヘルプタグなどのアプリケー ションのユーザインタフェースが格納されています。nibファイルにはオブジェクト間の接続も 含まれます。これは、ユーザがコントロールをアクティベートしたときに実行される動作を指定 するものです。nibファイルは、通常、一度にローカライズされます。ローカライズ担当者はnib ファイルを取り出し、ユーザに対して表示されるすべての文字列をローカライズして、必要に応 じてその他の調整(表示エレメントのリサイズなど)を行います。 中規模から大規模のアプリケーションでは、それぞれのウインドウやパネル(ダイアログ)に対 して、専用のnibファイルを作成することをお勧めします。こうすると、必要になるときまでユー ザインタフェースのロードを遅延できるだけでなく、ローカリゼーションを多くの段階に分割し て進めることができます。アプリケーションのメニューを独立したnibファイルに分離する方法も 有効です。 nibファイルをローカライズするには、Interface Builderを使うと便利です。言語の.lprojディレ クトリにあるすべてのnibファイルを開き、すべての文字列をローカライズし、新しい文字列に 合わせてユーザインタフェースエレメントのサイズを変更し、nibファイルを保存します。注意 事項はほかにもいくつかあります。 ■ nib ファイル内のオブジェクトは通常相互に接続していますが、この接続は壊してはいけま せん。nibファイルを編集する前に、すべての接続をロックしておく(Interface Builderの環 境設定のオプションで)必要があります。 ■ 数値や日付のフィールドには、通常フォーマッタが付属しています。必要に応じて、新しい ロケールに合わせてフォーマットを変更します。たとえば、数値の3桁ごとの区切り記号は、 アメリカではカンマですが、ヨーロッパではピリオドが使われます(フォーマットを変更す る方法は、Interface Builderのマニュアルを参照してください)。 注意:このセクションでは、Interface Builderとそのnibファイルについて説明します。ただし、 ここで説明することはほとんど、他のIDEによって作成されるローカライズ可能なユーザイン タフェースアーカイブにも対応できます。216 アプリケーションを国際化する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 ■ ダイアログやウインドウは、通常、インスペクタで最大サイズや最小サイズが定められてい ます。ある言語で、ダイアログやウインドウの大きさを大きくしなければならない場合、 最小値も変更しなければならない場合があります。 ■ 一部のユーザインタフェースオブジェクトはヘルプタグをサポートしています。ヘルプタグ とは、ユーザがオブジェクトにポインタを重ねたときに表示される説明文です。Interface Builderのインスペクタでは、オブジェクトのヘルプタグの定義やローカライズを行うことが できます。 文字列をローカライズする stringsファイルを使用すると、アプリケーションのソースコードに埋め込まれている文字列を外 部化してローカライズすることができます。このファイルは、.stringsという拡張子を持つため、 stringsファイルと呼ばれています。たとえばLocalizable.stringsというファイル名になります。 通常、バンドル内のローカリゼーション1つにつき(つまり.lprojディレクトリ1つ当たり)、最低 1つのstringsファイルがあります。 stringsファイルは、アーカイブされたユーザインタフェース(たとえば、Interface Builderで作 成されたnibファイル)の文字列を対象にしたものではありません。このような文字列は、適切 な開発用アプリケーションを使用してローカライズします(「ユーザインタフェースをローカラ イズする」(215ページ)を参照)。 また、埋め込まれている文字列には、ユーザに対して表示されるものと表示されないものがあるこ とに注意してください。次のステートメントには、ユーザに見えない文字列が含まれています。 if (CFStringHasPrefix(value, CFSTR("-")) { CFArrayAppendValue(myArray, value); }; 文字列"-"はユーザには表示されないのでローカライズする必要はありません。また、ユーザに表 示されるものに対する影響もありません。一方、警告ダイアログに表示される文字列は、ローカ ライズする必要があります。 stringsファイルを作成する ローカライズする必要のある文字列を、以下に示すフォーマットでstringsファイル内に置きます。 /* A comment */ "Yes" = "Oui"; "The same text in English" = "Le meme texte en francais";C H A P T E R 1 2 国際化 アプリケーションを国際化する 217  Apple Computer, Inc. February 2001 左側の文字列をコード内でのキーとして使用することによって、右側にある文字列がstringsファ イル内で検索されます。CarbonやCocoaでは、stringsファイル内にあるローカライズされた文 字列にアクセスするためのAPIが用意されています。Cocoaアプリケーションでは、以下のマク ロ(FoundationフレームワークのNSBundleクラスの場合はヘッダで宣言されています)を使用 して、stringsファイルから文字列を取り出します。 NSLocalizedString(key, comment ) NSLocalizedStringFromTable(key, table, comment ) Carbonやその他の非Cocoaプログラムでは、Core Foundationバンドルサービス(CFBundle)で 定義されている、同等の働きをするマクロを使います。 CFCopyLocalizedString(key, comment) CFCopyLocalizedStringFromTable(key, table, comment) CFCopyLocalizedStringFromTableInBundle(key, table, bundle, comment) たとえば、フランス語のローカリゼーションが選択されている場合、 NSLocalizedString (@"Yes", @"") は、上記のテーブルから「Oui」を返します。このマクロの引数は、以下の通りです。 key ローカライズされた値を検索するために使用される文字列。 table 検索先のstringsファイルの名前(デフォルトは「Localizable」であるため、マクロは Localizable.stringsを検索します)。 comment stringsファイルを生成するときに追加されるコメント。 一部の関数やメソッド(CocoaのstringWithFormat:メソッドやCore Foundationの CFStringCreateWithFormat関数など)では、フォーマット文字を含む文字列の引数を使用でき ます。このような関数やメソッドでは、以下の例にあるように、キーと値のどちらでも、フォー マット文字を指定することができます。218 アプリケーションを国際化する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 "Windows must have at least %d columns and %d rows." = "Les fenetres doivent etre composes de %d colonnes et %d lignes au minimum."; "File %@ not found." = "Le fichier %@ n'existe pas."; 文字列を翻訳する場合、ローカライズ担当者は、必要に応じて引数の順序を変更することができま す。文字列に、変数の引数が複数含まれている場合、n$ 修飾子を使用して引数の順番を変更する ことができます。ここで、nは、引数の順番を表します。以下にその例を示します。 /* Message in alert dialog when something fails */ "Oh %@! %@ failed!" = "%2$@ blah blah, %1$@ oh!"; C言語の場合と同様、一部の文字を文字列プロパティに入れるには、プレフィックスとしてバック スラッシュを付ける必要があります。そのような文字には、二重引用符、バックスラッシュ、改行 記号などがあります。改行記号は\nで表すこともできます。 "File \"%@\" cannot be opened" = " ... "; "Type \"OK\" when done" = " ... "; 文字列には、任意のUnicode文字を入れることができます。この場合、\Uに続けて、そのUnicode 文字を表す最大4桁の16進数字を指定します。たとえば、スペースを表す16進数は20であるため、 \U0020と表記します。このオプションは、何らかの理由でタイプ入力できないUnicode文字を文字 列に入れたい場合などに役立ちます。 stringsファイルはUnicode形式で保存するのが理想的です。それによりstringsファイルがエン コーディングに依存しないファイルになると同時に、アプリケーションがstringsファイルをロー ドするときに使用するエンコーディングを単純化できます。TextEditアプリケーションでは Unicode形式での保存が可能です。エンコーディングは、Plain Textモードでは「Save」ダイア ログから選択できます。TextEditの一般環境設定として指定することも可能です。 注意:「%@」指定子は、標準のprintf()のフォーマット付き文字の拡張で、任意のCocoaオブ ジェク トやCore Foundationオブジェ クトを表し ます。すべて の指定子の 一覧は、『Inside Cocoa: Object-Oriented Programming and the Objective-C Language』を参照してください。C H A P T E R 1 2 国際化 アプリケーションを国際化する 219  Apple Computer, Inc. February 2001 stringsファイルを生成する stringsファイルは手作業で作成することもできますが、コマンドラインプログラムgenstringsを使 用すると、ソースコードから自動的に生成することができます。 このプログラムは、指定したソースファイルをパースして、CocoaのNSLocalizedString マクロ (および、その関連マクロ)の呼び出しやCore FoundationのCFCopyLocalizedStringマクロ(お よび、その関連マクロ)の呼び出しに遭遇するごとに、その呼び出しから情報を取り出し、適切 なstringsファイルに追加します。関連するマクロのいずれかが呼び出されるごとにエントリーが 生成され、table.stringsという名前のファイルに置かれます。ここで、「table」には、マクロの table引 数で指 定され た名前 が入り ます(テー ブルが 指定さ れない 場合は、デフォル トで、 Localizable.stringsになります)。別々のテーブルを使用すると、文字列セットに対して別のド メインが作成され、状況に応じて、同一の文字列に対して複数の翻訳を使用することが可能にな ります。 stringsファイルには、それぞれの呼び出しに与えられたコメントも書き込まれます。これによ り、翻訳者は、それぞれの文字列の使用状況を理解しやすくなります。genstringsは、関連する マクロのいずれかが呼び出される度にエントリーを1つ生成するため、まったく同じエントリー が複数できることを理解しておくことが重要です。コード内に同じ引数を使うマクロが複数ある 場合、genstringsを実行した後でstringsファイルを編集し、重複するエントリーを削除する必要 があります。1つのソースファイル内に1つのキーが複数回現れることに問題はありませんが、 stringsファイル内の各キーは一意でなければなりません(ただし、1つのローカリゼーションに 対して複数のstringsファイル、つまり「テーブル」を用意し、各ファイルが同じキーを含むよう にすることは可能です)。 stringsファイルを自動的に生成するか、自分で作成するかは、開発者次第です。場合によって は、アプリケーションの開発時に1度だけstringsファイルを生成し、それを手作業で微調整する 方が有効なことがあります。しかし、ほとんどの場合、ローカライズされる文字列を変更または 追加するごとに、ソースからstringsファイルを新しく生成することをお勧めします。220 マルチスクリプトサポートを追加する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化 マルチスクリプトサポートを追加する マルチスクリプトサポート機能を持つアプリケーションでは、複数のスクリプトのテキストを同時 に正確に表示することができます。このようなアプリケーションでは、ユーザの言語環境設定の値 に関わらず、1つの書類内で、複数の言語のスクリプトを含むテキストを入力、表示、および印刷 することができます。アプリケーションがマルチスクリプトサポートを備えていない場合、テキス トの一部が正しく表示されません。 マルチスクリプトサポートはますます重要度を増してきています。オペレーティングシステムだけ でなく、サードパーティのアプリケーションも採用すべき機能です。Mac OS Xなどの国際化され たオペレーティングシステムでは、ある言語とスクリプトで文書を作成して、言語の選択を変更 し、次にその文書を開いたときに最後に保存したときの状態で開くことができることを求められる 場合があります。さらに、インターネットも、マルチスクリプトサポートに対する要求を高める要 因です。これは、最も優先される言語にした言語とは異なる外国語のテキストをダウンロードする 機会が増えるためです。 一般的なレベルでは、適切なUnicodeテクノロジーとAPIを使用することにより、Mac OS Xのマル チスクリプトサポート機能を備えることができます。具体的には以下のことが必要です(Carbon アプリケーションの場合)。 ■ 可能な限り、CやPascalの文字列ではなく、Core Foundation文字列サービスのCFStringを使用 します。 CFStringオブジェクトは、内部的にUnicodeデータを格納および処理します。このとき、開発 者にグローバル文字セット規格に対する特別な知識は必要ありません。Unicodeと他のエン コーディングを使用するCやPascalの文字列の間で変換を行う必要がある場合はCFStringの機 能を使用します。ただし、CFStringオブジェクトとCやPascalの文字列の間での変換は可能な 限り避けてください。このような変換は不経済であるだけでなく、マルチスクリプトの表示 に悪影響を与えるバグが侵入する可能性を高めます。特定の状況で、使用できるCFStringや Unicode対応のAPIが見つからなかった場合は、エンコーディングを、ユーザごとのデフォル トのシステムエンコーディングに変換する必要があります。 ■ ローカライズされる文字列については、GetIndStringではなく、Core Foundationの CFCopyLocalizedString(および関連するマクロ)を使用します。C H A P T E R 1 2 国際化 マルチスクリプトサポートを追加する 221  Apple Computer, Inc. February 2001 GetIndStringは、スクリプトシステムにもとづいているので、マルチスクリプトテキストを表 現することができません。CFCopyLocalizedStringは、UnicodeベースのCFStringオブジェク トを返すため、このようなテキストを表現することができます。一般的に、コード内では、 スタティックテキストに対してダイナミックテキスト処理(たとえば、「文字列をローカライ ズする」(216ページ)で説明した、ローカライズされた文字列からの生成など)を使用します。 ■ Core Servicesの下位にあるシステムレイヤに直接アクセスすることは避けてください。 Core Servicesフレームワーク、特にCore Foundationを使用することにより、カーネル環境で 使用できる機能(特にBSDコールやMachコール)の大部分を利用できるはずです。BSD関数 を直接呼び出すことは可能な限り避けてください。ファイルシステムへのアクセスには、Core Foundation URLサービス(CFURL)、File ManagerのFSRefデータ型、あるいはNSFileManager (Cocoaの場合)を使用します。 ■ TextEdit APIの使用は避けてください。 TextEdit APIはマルチスクリプトテキストを取り扱うことができます。ただし、スクリプトの フォントやスタイルは開発者が管理しなければなりません。MLTEには、マルチスクリプトテ キストを処理するためのUnicodeベースの単純なAPIが用意されています。 ■ テキストデータがMacRomanエンコーディングになっているとは限りません。 Mac OS Xでは、すべてのテキストデータがMacRomanであると前提したり、テキストエン コーディングの問題を完全に無視して済ませたりすることはできません。開発者は、テキス トエンコーディングの問題に対処できる必要があります。現在では、スクリプトコードを伴 わず、タグも付いていないテキストデータのスクリプトがシステムスクリプト(Roman)で あるとは限りません。その前提が誤っている場合(多くの場合、誤っています)、ユーザに 対するテキスト表示が正しくできません。さらに、ユーザのデータを破壊したり、システム をクラッシュさせたりするなどの異常動作が発生する可能性もあります。 Cocoa APIを正しく使用すると、マルチスクリプトサポートは自動的に提供されます。 Mac OS Xにおけるファイルエンコーディングの詳細については、「ファイルシステム」(155ペー ジ)の章の「ファイルエンコーディングとフォント」(176ページ)を参照してください。222 マルチスクリプトサポートを追加する  Apple Computer, Inc. February 2001 C H A P T E R 1 2 国際化223  Apple Computer, Inc. February 2001 C H A P T E R 1 3 13 インストールと統合 待望の瞬間の到来です。これまでに、設計、コーディング、再設計、デバッグ、テスト、微調整、 そしてバグフィックスと、Mac OS Xアプリケーションに数ヶ月を費やしてきました。最後のビル ドが完了すると、洗練され、エンジニアリングの粋を極めた、強力で豊かな潜在能力を持つアプリ ケーションが、意図していたようにできあがります。 しかし、これで確かに完成でしょうか。すぐに配布できるでしょうか。市販できる品質でしょう か。インストールや使用はお客様にとって容易でしょうか。見落としはないでしょうか。 この章は、これらの質問への回答に役立てます。最初に、アプリケーションを配布する前に完了 しておくべき(少なくとも完了することを考慮すべき)重要なタスクのチェックリストを提示し ます。この中には、仕上げに関するものもありますが、優れた設計のアプリケーションに不可欠 なタスクがほとんどです。次に、開発したアプリケーションをMac OS Xのさまざまなパーツや他 のアプリケーションに統合する際の最善の方法と、予想される問題点を取り上げます。最後に、 アプリケーションをインストールするためのさまざまな手法やツールについて説明します。これ までは、ユーザの評価を得られる機能を備えたすばらしいアプリケーションを開発することに力 を注いできました。ここからは、ユーザが快適にアプリケーションのインストールとセットアッ プができるようにします。224 ソフトウェアをMac OS X用に準備する  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 ソフトウェアをMac OS X用に準備する ソフトウェアデベロッパにとって、Mac OS Xは非常に融通の利くシステムです。同じ結果を得 るために利用できる手法が複数あることも多く、その場合、1つは従来の手法と同じ(あるい はよく似た)手法です。そうした代替策がある分野は、アプリケーションのパッケージング、 リソースの取り扱い、書類のタイプ指定などです。ただし、通常はその中で特に適した手法が あり、また、複数の手法を組み合わせて使用することもできます。次のセクションでは、設計 上のさまざまな側面からアプリケーションを説明します。ここでは、何が可能かだけではなく、 パフォーマンス、相互運用性、堅牢性の観点からどうするべきかについても説明します。 アプリケーションと書類に関するFAQ アプリケーションと書類については、本書全体を通してさまざまな箇所で取り上げています。 これは、アプリケーションや書類の性質、構造、および取り扱いには多くの要因が関わるためで す。それらの要因としては、バンドル、実行可能ファイルのフォーマット、ファイルシステム、 およびFinderなどがあります。このセクションでは、情報をQ & A形式で示すことによって、デベ ロッパにとって重要な、アプリケーションと書類に関するポイントを要約します。 アプリケーションにはどのようなメタデータを指定する必要がありますか? ユーザが(バンドル化された)アプリケーションを起動するには、Finderアプリケーションは、 まずそのフォルダがバンドルであることを検出し、続いてそのバンドルがアプリケーションであ ることを認識する必要があります。この判定を行うために、Finderは最初に以下のいずれかを チェックします。 ■ バンドルフォルダにバンドルビットがセットされているかどうか ■ バンドルの拡張子がバンドル用に予約されているものかどうか(.appなど) フォルダがバンドルであると判断すると、FinderはバンドルのPkgInfoファイルに記録されている タイプコードを読み込みます。このコードが「APPL」であれば、バンドルがアプリケーションで あるとわかります。Finderがタイプコードを見つけられない場合は、バンドルの拡張子(アプリ ケーションの場合は.app)を使用してバンドルタイプを判定します。C H A P T E R 1 3 インストールと統合 ソフトウェアをMac OS X用に準備する 225  Apple Computer, Inc. February 2001 他の形式のHFSやHFS+メタデータと同様、バンドルビットも、複数のファイルシステムが関係 するネットワーク環境では失われやすいため、アプリケーションバンドルに常に.appという拡張 子を持たせることが非常に重要です。Project Builderは、アプリケーションをビルドする際に自 動的にこの拡張子を付加しますが、他のIDEに同じ機能があるとは限りません。この拡張子を削 除したり、ユーザに削除するよう推奨しないようにしてください。.appに美観上の問題を感じる 場合でも、Mac OS XのFinderでは.app拡張子を表示されないので問題はありません。 アップル社は自社のアプリケーションにバンドルビットをセットしませんが、デベロッパは、アプ リケーションをビルドする際にバンドルフォルダにこの属性を設定することができます。 この問題の詳細については、「Finderとバンドル」(110ページ)および「アプリケーションと書 類の取り扱い」(184ページ)を参照してください。 CFM実行可能ファイルをバンドルにパッケージングする必要がありますか? 必須ではありませんが、パッケージングすることをお勧めします。詳細については、「CFM実行可 能ファイル」(230ページ)を参照してください。 アプリケーションリソースはどのように格納したらよいでしょうか? Mac OS 9以前のMac OSでは、アプリケーションのリソースは実行可能ファイルのリソースフォー クに格納されます。Mac OS Xでは、この手法は推奨されません。アプリケーションのリソースは、 アプリケーションバンドル内にある独立したファイルのデータフォークに格納してください。 この方法をお勧めするのは、書類のタイプを指定するのに、ファイル名の拡張子とFinderメタデー タを併用するのと同じ理由からです(「なぜ、いまさら拡張子が必要なのですか?」(229ページ) を参照)。HFSやHFS+のボリュームフォーマットは、マルチフォーク、つまり複数のデータスト リームを持つファイルを許容します。ただし、ファイルのデータフォーク以外の場所にあるもの は、ファイルがLAN、イントラネット、またはインターネット上にある、種類の異なるコンピュー タの間を移動脱落してしまう可能性は十分にあります。重要なのは、ますますネットワーク化が 進む世界で、リソースやその他の形式のデータを失わずに保つことです。 Carbonアプリケーションのデベロッパには、特にアプリケーションがCode Fragment Manager (CFM)に依存している場合、これ以外にもMac OS Xのリソースに関して考慮すべき点がいくつ かあります。アプリケーションが、CFMに管理される単一ファイルの実行可能ファイルである場 合(つまり、バンドル化されたCFMアプリケーションではない場合)、リソースは、実行可能ファ イルのリソースフォークに格納されているはずです。通常、単一ファイルのCFM実行可能ファイ ル形式にパッケージングされたアプリケーションは、起動するとリソースフォークを開きます。 これに対して、バンドル形式にパッケージングされたアプリケーションが起動すると、通常ロー カライズされたデータフォークのリソースを開きます。226 ソフトウェアをMac OS X用に準備する  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 Carbonアプリケーションをバンドルにパッケージすると、リソースに関してより多くの可能性が 広がります。リソースをResource Managerによって管理される他のリソースを1つにまとめる代 わりに、特定のタイプのリソースを独立したファイルに置くことができます。たとえば、アプリ ケーションがTIFF画像を使用する場合、TIFF画像データを.tiffという拡張子を持つファイルの データフォークに入れることができます。そうすると、適切なバンドルAPIの使用により、リソー スに直接アクセスすることができます。各リソースをそれぞれ独立したファイルに置くことには 多くの利点があります。たとえば、XMLプロパティリストで指定されたリソースのエクスポート が容易になるため、ツールの使用方法に関する知識のないローカライズ担当者の負担を軽減でき ます。 Carbonアプリケーションは、CFMベースの場合もdyldベースの場合も、いつでもResource Manager 形式のリソースを使用することが可能です。ただし、アプリケーションをバンドルにパッケージン グする場合(推奨)、リソースは、バンドルのResourcesディレクトリ内にあるファイルに置く必 要があります。このファイルはデータフォークだけを使用します。このファイルは、.rsrcという 拡張子を持っていますが、他のファイルと同じようにバンドルリソースとして扱われ、国際化も容 易です。.rsrcファイルのベースネームは任意ですが、標準の名前を付けて、リソースの標準バン ドル位置に置くと、システムのバンドルルーチンにより自動的にリソースが管理されます。以下 に、具体的に示します。 ■ ローカライズされないリソースは executableName.rsrc という名前のファイルに入れ、この ファイルを、ローカライズされないリソースのバンドル位置(つまり、Resourcesディレクト リの直下)に置きます。 ■ ローカライズされたリソースはLocalized.rsrcという名前のファイルに入れ、ローカライズさ れたリソースの適切なバンドル位置(つまり.lprojディレクトリ)に置きます。 アプリケーションが起動すると、システムのバンドルルーチンは自動的にこれらのリソースを開 き、アプリケーションが使用できるようにします。 要約すると、アプリケーションのリソースには以下のオプションが用意されています。 ■ 特定のタイプの各リソースは、そのタイプに適切な拡張子の付いた、独立したファイルに置き ます。この手法は、いずれのアプリケーション環境でも、バンドル化されたアプリケーション に適しています。この「1タイプ1ファイル」モデルの例外はローカライズされた文字列で、 ローカリゼーションごとにまとめられ、習慣的にLocalized.stringsという名前が付けられた ファイルに入れられます。詳細については、「文字列をローカライズする」(216ページ)を 参照してください。C H A P T E R 1 3 インストールと統合 ソフトウェアをMac OS X用に準備する 227  Apple Computer, Inc. February 2001 ■ バンドル化されたCarbonアプリケーションは、Resource Manager形式のリソースをリソース ごとに別々のファイルのデータフォークに格納します。ファイルには.rsrcという拡張子がつ けられます。これらのファイルは、ローカライズされないリソースとローカライズされたリ ソースのどちらのバンドル位置にも置くことができます。 ■ バンドル化されていないCarbonアプリケーションでは、Resource Manager形式のリソースは、 アプリケーションの実行可能ファイルのリソースフォークに格納する必要があります。 Finderにアプリケーションと書類を適切に処理させるには、キーと値のペアを指定する必要 があります。このペアは、タイプ「plst」、ID 0のリソースとして、バンドルの情報プロパティ リストにあります。 この問題の詳細については、「バンドルとResource Manager」(118ページ)および「リソースフォー ク」(173ページ)を参照してください。 Mac OS Xではどのようにして書類のタイプを指定するのですか? Mac OS Xでは、書類のタイプは、2つの方法で指定することができます。 ■ タイプコードとクリエータコード。ファイルの属性として格納されます( HFSまたはHFS+ ボリュームで作成される場合)。 ■ そのタイプに関連する1つまたは複数の拡張子(たとえば、.htmlと.htm)。 アップル社では、アプリケーションの書類タイプには、両方の方法を利用することを推奨してい ます。アプリケーションが書類を持つ場合は、タイプおよびクリエータとファイルの拡張子の両 方をアプリケーションプロジェクトの情報プロパティリスト(Info.plist)で指定することができ ます(「情報プロパティリスト」(190ページ)を参照してください)。Project Builderには、この 情報を入力するための手段として、ビルドされたターゲット用の「Application Settings」ペイン が用意されています。アプリケーションは、アプリケーションの書類のすべての有効なタイプ、 特にファイルの拡張子の設定を必ず行う必要があります。「アプリケーションでは書類をどのよ うに保存したらよいでしょうか?」(229ページ)を参照してください。 拡張子については、もう1つだけ重要な注意事項があります。一般に、アプリケーションは、 タイプやクリエータがなくても、拡張子のある書類は開くことができなくてはなりません。一般 的な(したがってクロスプラットフォームの)書類タイプ、たとえば画像ファイル、テキスト ファイル、HTMLファイルなどについては、特に必要です。228 ソフトウェアをMac OS X用に準備する  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 自作のプラグインを書類として扱うことは可能ですか? プラグインやその他のロード可能バンドルはファイルパッケージであるため、Finderはファイル として表示します。アプリケーションは、ロード可能バンドルをファイルと同様に、書類として 扱うことができます。したがって、「Mac OS Xではどのようにして書類のタイプを指定するので すか?」(227ページ)に示したアドバイスは、この場合も適用されます。ロード可能バンドル には常に拡張子を付加してください。また、タイプコードとクリエータコードが存在する場合は、 タイプコード(BNDL)とクリエータコードをバンドルのPkgInfoおよびInfo.plistファイルに記述 してください。すべてのバンドルと関連付けるためのタイプ指定の情報は、「アプリケーション にはどのようなメタデータを指定する必要がありますか?」(224ページ)を参照してください。 Finderは書類をどのように取り扱うのですか? Finderは、ファイルのタイプとクリエータ、およびファイルの拡張子を使用して、書類のタイプ と、書類を持っているアプリケーションを判定します。Finderがウインドウにファイルを表示す るとき、この情報を使用して、その書類の表示に適切なアイコンを探します。Finderが、ユーザ がファイルに対して行ったアクションに対応する場合、たとえばユーザが書類を開くためにアイ コンをダブルクリックしたとき、Finderはその書類のタイプをキーにして、書類を開くためのア プリケーションを検索します。タイプ情報の詳しさによって(たとえば拡張子は付いているが、 タイプコードやクリエータコードがないなど)、Finderは以下のように対応します。 ■ ただちにアプリケーションを使用して書類を開きます。 ■ ユーザがアプリケーションを選択するためのダイアログを開きます。 ■ その書類のタイプを取り扱えるアプリケーションの1つで書類を開きます。 ファイルにタイプもクリエータも拡張子もない場合、Finderはこれを書類以外のファイルとして 扱います。ファイルは汎用のアイコンで表示され、ダブルクリックしてもアプリケーションが開 きません。 アプリケーションがロード可能バンドルを書類として扱うことができることに注意してくださ い。バンドルをダブルクリックすると、アプリケーションは、そのバンドルを認識できる場合に はロードします。他の書類と同様に、アプリケーションは情報プロパティリストで、バンドルの 拡張子、タイプコード、クリエータコード、役割、およびその他の情報を特定します。アプリケー ションがバンドルを書類として取り扱うには、Finderがそれをバンドルと判断している必要があ ります。 詳細については、「アプリケーションと書類の取り扱い」(184ページ)を参照してください。C H A P T E R 1 3 インストールと統合 ソフトウェアをMac OS X用に準備する 229  Apple Computer, Inc. February 2001 なぜ、いまさら拡張子が必要なのですか? Macintoshソフトウェアのデベロッパの中には、ファイルの拡張子に抵抗を感じる方もいます。 書類のタイプとオーナーシップを指定する手段として、拡張子は、タイプコードやクリエータ コード、および、マルチフォークのHFSやHFS+ボリュームフォーマットによるリッチメタデー タに比較して原始的に感じられます。拡張子の使用は退行に見えるかもしれません。 たしかにそうですが、それが正しいのは限られた範囲においてのみです。Macintoshのユーザは、 現在では狭いMacintoshの世界だけにとどまっていません。インターネットの時代では、書類は性 格の異なるネットワーク間を流通します。たとえば、MacintoshからLinuxネットワークサーバ、 さらに企業のローカルエリアネットワーク上のWindowsコンピュータへと移動します。この経路 上のそれぞれのコンピュータは、ファイルタイプの構成要素や、ファイルそのものの構成要素に 対して、異なる考え方を持っていることがあります。多くのコンピュータシステムは、既知の拡 張子(.jpg、.mp3、.htmlなど)のみを使用して書類のタイプを定義します。このため、拡張子 のないファイルは判断のしようがなく、タイプ不明として扱います。また、HFS+のメタデータ は無視されるか、場合によっては完全に除去され、永久に失われます。 アプリケーションでは書類をどのように保存したらよいでしょうか? アプリケーションが書類を保存するときは、アプリケーションがエディタの役割を果たせるタイプ の1つとして保存します。アプリケーションが書類ファイルを保存する場合、アップル社では、ファ イル名に適切な拡張子と、タイプコードおよびクリエータコードを付加することを推奨していま す。拡張子はユーザが後から(自己責任で)変更したり削除することができますが、アプリケー ションが書類を保存するときには、拡張子を含むすべての使用可能な方式で書類タイプを指定する べきです(理由は、「なぜ、いまさら拡張子が必要なのですか?」(229ページ)を参照)。 アプリケーションが書類を複数のタイプで保存できる場合、アップル社では、「保存」ダイアログ のポップアップメニューに選択可能なタイプが表示されるようにすることを推奨しています(この とき、あらかじめ「ネイティブ」の書類タイプが選択されているようにします)。その後、アプリ ケーションは、拡張子を次のような方法で取り扱います。 ■ ユーザがファイル名のフィールドに拡張子を入力しなかった場合は、拡張子を追加します。 ■ ユーザが間違った拡張子を入力した場合は、それを削除して正しい拡張子を追加します。 ■ ユーザが正しい拡張子を入力した場合はそのまま使用します。 このほか、ファイル名を「Untitled」として正しい拡張子を付け、ベースネームのみを選択した状 態にして表示する方法もあります。たとえば、「Untitled-1.txt」という名前にして「Untitled-1」の み選択された状態にします。230 ソフトウェアをMac OS X用に準備する  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 CFM実行可能ファイル 先に述べたように、Mac OS Xは非常に融通の利くオペレーティングシステムです。Mac OS Xは、 複数のファイルシステム、複数のアプリケーション環境、複数のプログラミングモデル、複数のグ ラフィックレンダリングライブラリ、そして複数のネットワークプロトコルスタックをサポートし ています。また、複数のランタイム環境や複数の実行可能ファイルフォーマットもサポートしてい ます。具体的には、以下のタイプのバイナリがMac OS Xで動作します。 ■ ダイナミックリンクエディタ(dyld)によって管理されるMach-Oコードモジュール ■ Code Fragment Manager(CFM)によって管理されるPEFコードフラグメント ■ Java仮想マシンによって管理されるJavaクラスファイル 以上の3つの実行可能ファイルフォーマットのうちでは、Mach-Oが最も重要です。Mach-Oがネイ ティブフォーマットで、ほかのものは最終的にここに依存しています。CFMおよびPEFテクノロ ジーは、Mac OS 9の主要なライブラリマネージャおよび実行可能ファイルフォーマットです。 これらは、CFM-68KがPowerPCへの橋渡しをしたのと同じように、Mach-O/dyldテクノロジーへ の橋渡しとして機能します。Mach-OとdyldがMac OS X上のネイティブの実行可能ファイルフォー マットおよびライブラリマネージャであるため、Carbonフレームワークも含むすべてのシステム フレームワークが、Mach-Oフォーマットでdyld管理のバイナリとしてビルドされることになりま す。ただし、CFMは従来のMacintoshライブラリマネージャ、PEFはコードフラグメント用の従来 の実行可能ファイルフォーマットで、現時点ではこのランタイム環境(Classic互換環境を含む) 用にアプリケーションの実行可能ファイルを生成するMacintosh IDEが多数あります。 「Library Managerと実行可能フォーマット」(267ページ)で説明しますが、Mac OS X用アプリ ケーションをMach-O実行可能ファイルとしてビルドすることには、それなりの理由があります。 最も重要な理由は、パフォーマンスです。CFM/PEFランタイム環境は、dyld/Mach-Oランタ イム環境より上位のレイヤであるため、CFM/PEFベースのコードが動作するためには、余分な ソフトウェアレイヤを通過しなければなりません。 ただし、アプリケーションをCFM管理バイナリとしてビルドしていけない理由はありません。 CFM管理バイナリは、Classicアプリケーション環境を含むMac OS X上で問題なく実行できます。 実際、CFMアプリケーションを、Carbon環境ではなくClassic環境で動作させる必要がある場合 も考えられます(アプリケーションが、完全にはCarbonに移植されていないプラグインに依存 している場合など)。このような場合には、Finderの「情報」ウインドウに、CFMアプリケー ションをClassic環境で起動するようユーザが選択するためのオプションが表示されます。このオ プションを無視してアプリケーションを常にCarbonで(または常にClassicで)起動させるには、 情報プロパティリストで、それぞれの場合に対応するLaunch Servicesキーを指定します。詳細 については、「ソフトウェアの設定」の章の「起動サービスキー」(201ページ)を参照してくだ さい。C H A P T E R 1 3 インストールと統合 ソフトウェアをMac OS X用に準備する 231  Apple Computer, Inc. February 2001 アプリケーションをCFM実行可能ファイルとして配布する場合は、アプリケーションバンドルに パッケージングするかどうかを決定する必要があります。パッケージングを検討する場合( Java は除外します)、Mac OS Xで実行できるアプリケーションには3つのタイプがあります。図13-1に、 可能なタイプを示します。 図13-1 Mac OS Xでサポートされているアプリケーションのタイプ 理想的には、CFM実行可能ファイルはアプリケーションバンドルにパッケージングするべきで す。それにより、アプリケーションはパッケージングのもたらすあらゆる利点を活用できます。 詳細については、「バンドルとしてのアプリケーション」(120ページ)を参照してください。 バンドル化されたCFMアプリケーションは、Mac OS XでもMac OS 9でも容易に起動できますが、 起動方法は異なります。Mac OS Xでは、ユーザがファイルとして表示されているファイルパッ ケージをダブルクリックすると、Finderがアプリケーションを起動します。Mac OS 9では、ユー ザは.appフォルダを開いて、表示されるCFM実行可能ファイルのエイリアスをダブルクリック します。また、「CFMまたはdyldの使用」(271ページ)の推奨事項も念頭に置いてください。 パフォーマンスの見地から言えば、理想的には、アプリケーションバンドルには、Mac OS 9上 の動作に最適化したCFM管理の実行可能ファイルとMac OS X上の動作に最適化したdyld管理の 実行可能ファイルの、2つの実行可能ファイルを持たせるべきです。 現時点では、バンドルされるCFMアプリケーションを作成する開発テクノロジーはありません。 「バンドル」(103ページ)と「アプリケーションのパッケージング」(119ページ)の章の情報 をもとに、手作業でバンドルを作成する必要があります。ただし、省略できる手順もあります。 Project Builderにアクセスできる場合、Project Builderを使用して空のアプリケーションを作成 し、生成されたバンドルをCFMアプリケーション用に再利用することができます。この方法を 使用する場合でも、CFMアプリケーションバンドルを作成する際に注意が必要な点がいくつか あります。 ■ バンドルディレクトリ自身が「APPL」というタイプを持つ必要があります。バンドルビット はセットしてもかまいません。また、拡張子として.appを付加する必要があります。 ■ CFM実行可能ファイルは、Contentsディレクトリ直下のMacOSClassicという名前のディレ クトリに入れる必要があります。 dyld/Mach-O CFM/PEF Single file In bundle yes no yes yes232 ソフトウェアをMac OS X用に準備する  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 ■ バンドルディレクトリの最上位の階層に、CFM実行可能ファイルのエイリアスを同じ名前で作 成します。以下のリストにファイルの位置を示します。 MyApp.app/ MyApp /* alias to Contents/MacOSClassic/MyApp */ Contents/ MacOSClassic/ MyApp ... ■ Info.plist という名前のファイルに、XML のプロパティリストを作成します。この情報プロパ ティリストで、「情報プロパティリスト」(190ページ)で説明した、必要なキーと値のペア をすべて指定します。次に、このファイルをContentsディレクトリ直下に置きます。 ■ 同じ場所に、PkgInfo という名前のファイルを置きます。このファイルのデータフォークには アプリケーションのタイプコードとクリエータコードが含まれます。 ■ 「アプリケーションリソースはどのように格納したらよいでしょうか?」(225ページ)にあ る指示に従って、アプリケーションのリソースをバンドルに入れます。 必要に応じて、CFM実行可能ファイルを、Resource Manager形式のリソースをリソースフォー クに保管する単一ファ イルのアプリケーションとして配布するこ ともできます。この場合、 Finderがアプリケーションとその書類を適切に取り扱うには、情報プロパティリストに、タイプ 「plst」、ID 0のリソースとして存在するキーと値のペアを指定する必要があります。単一ファイ ルの実行可能ファイルで「plst」リソースを持っていない場合、Classic環境でのみ動作するアプ リケーションと見なされます。CFMアプリケーションは、Finderの「情報」ウインドウで設定 することにより強制的にClassic環境で起動することができます。 注意:プロパティリストは、Property List Editorアプリケーション (/Developer/Applications/PropertyListEditor)を使用して作成することができます。ほかの エディタでも作成できますが、テキストにASCII以外の文字が含まれる場合は、そのエディタ がファイルをUTF-8エンコーディングで保存できることを確認してください。既存のアプリ ケーションのInfo.plistファイルをテンプレートとして使用することもできます。C H A P T E R 1 3 インストールと統合 ソフトウェアをMac OS X用に準備する 233  Apple Computer, Inc. February 2001 ユーザインタフェースの問題点 アプリケーションを配布する前に、ユーザインタフェースの問題点について考慮する必要がある ことがあります。まず第一に、アプリケーションが『Inside Mac OS X: Aqua Human Interface Guidelines』に準拠していることを確認する必要があります。この本のPDF版は、以下のApple Developer ConnectionのWebサイトの、Mac OS X技術文書の一覧があるセクションで入手でき ます。 http://developer.apple.com/techpubs/macosx/ 次に、アプリケーションが、出荷対象となるすべての言語と地域用に国際化およびローカライズ されていることを確認してください。国際化の一環として、アプリケーションが1つの文書内で の複数スクリプト表示をサポートできることを確認してください。この問題の詳細については、 「国際化」(207ページ)を参照してください。 次のセクションでは、アプリケーションのユーザインタフェースの、開発に関連するその他の側面 を説明します。 アイコン アプリケーションや書類のアイコンは、.icnsという拡張子を持つファイルのデータフォークに格 納された「icns」リソースでなければなりません。アップル社では、アイコンの作成と管理を支援 する2つのアプリケーションを、/Developer/Applicationsに用意しています。 ■ Icon Composer:最も標準的なビットマップ形式(TIFF、PICT、JPEG、GIFなど)の画像を インポートし、16×16、32×32、64×64、128×128(単位はピクセル)という4種類の大き さのアイコンセットに変換します。また、初めの3つのサイズに関しては、ビットマスクを 作成します。最良の結果を得るには、すべてのサイズのアイコンを作成する必要があります。 また、取り込む画像は縦横の長さが同じサイズのものにしてください。アプリケーションは、 アイコンデータを.icnsという拡張子の付いたファイルとして保存します。 ■ Pixie:画面の一部をさまざまな倍率で表示して、拡大された画像をクリップボードにコピーし たり、TIFFファイルとして保存することができます。 /Applications/UtilitiesのGrabアプリケーションも、画面の一部や全体をTIFFファイルとして取り込 むことができるため、アイコンを作成する際に役に立つツールです。234 ソフトウェアをMac OS X用に準備する  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 ユーザは、Mac OS 9を使用する場合と同様に、書類にカスタムアイコンを割り当てることができ ます。Finderの「情報」ウインドウ(「ファイル」メニューの「情報を見る」を選択)で、現在の アイコンを選択した状態でカスタムアイコンをペーストします。ユーザがこの操作をできるよう にするには、Finderメタデータ(Finder Info)でデフォルトの書類アイコンを無効にする必要が あります。 カスタムコントロールとシステムアピアランス 描画を自身で行うカスタムコントロールを作成する場合、コントロールの表示はユーザが「システ ム環境設定」アプリケーションの「一般」ペインで選択したAquaのアピアランスに適合する必要 があります。現時点では、アピアランス(ボタン、メニュー、およびウインドウに適用されるカ ラー)は、ブルーかグラファイトのいずれかです。 Carbonのカスタムコントロールをシステムのアピアランスに適合させるには、カスタムコント ロールの定義に、Appearance Manager API(Appearance.hで宣言されます)を使用する必要があ ります。選択されているAquaアピアランスにCocoaのカスタムコントロールを適合させるには、 Application Kitクラスのカスタムサブクラスは、NSColorのcolorWithControlTint:メソッドを使用し て現在選択されているAquaの色合いに対応するNSColorオブジェクトを取得し、そのオブジェクト を使用して自身の描画を彩色する必要があります。 Aquaとの不適合の可能性が常に考えられるため、一般的には、自身を描画するカスタムコント ロールの作成は避けてください。カスタムコントロールを作成する場合は、理想的には描画に関 連しない動作を持たせてください。 Carbon Nibファイル Cocoaプロジェクトと同様にCarbonプロジェクトでも、Interface Builderを使用して「オブジェク ト」のパレットからユーザインタフェースを作成できるようになりました。このパレットのオブ ジェクトには、ボタン、テキストフィールド、スライダ、メニュー項目、ウインドウ、プログレ スバーなどがあります。これらのオブジェクトには、属性、大きさ、およびコントロール情報を 設定できます。Interface Builderは、インタフェースをXMLアーカイブ形式で保存します。これ は、.nibという拡張子を持っているため、nibファイルと呼ばれます。 Carbonのnibファイルは、Carbonアプリケーションに通常含まれるユーザインタフェースオブジェ クトのほとんどの定義を持つことができます。また、Carbonイベントモデルのような機能の組み 込みも行います。特殊なCarbon APIによって、アプリケーションはnibファイルに定義されたオブ ジェクトにアクセスできます。nibファイルは、インタフェースの仕様を格納するための便利な手 段というだけでなく、ユーザインタフェースをローカライズするためにも使用されます。さらに、 nibファイルはXMLベースであるため、本質的に、他の環境へのエクスポートに適しています。C H A P T E R 1 3 インストールと統合 オーナーシップとアクセス権 235  Apple Computer, Inc. February 2001 これらの理由から、アップル社では、Carbonデベロッパに、これまでResource Managerスタイ ルのリ ソースと して格納さ れていた ユーザイ ンタフェー スエレメ ントの多く を、Interface Builderオブジェクトに変換することを推奨しています。可能なことの範囲を知る手がかりとし ては、/Developer/Examples/InterfaceBuilder/IBCarbonExampleにあるサンプルのプロジェク トを参照してください。Carbonのnibファイルは、Cocoa nibファイルで定義されている機能の 多く(たとえば、ターゲットとアクションの接続など)を持っていないことに注意してくださ い。これは主に、手続き型とオブジェクト指向というプログラミングモデルの違いが原因です。 オーナーシップとアクセス権 基礎レベルでは、Mac OS XはBSDシステムです。この土台の一部にBSDがファイルシステムの ファイルやフォルダのオーナーシップやアクセス権を実現する方法があります。このモデルでは、 誰がファイルを読み書き、リネームし、実行できるか、また誰がファイルをフォルダからフォル ダへコピーあるいは移動できるかを制御します。このモデルは、これまでUFSや類似のファイル システムに結び付けられていますが、Mac OS Xでは、Mac OS標準(HFS)やMac OS拡張(HFS+) など、サポートされているすべてのファイルシステムに拡張しています。 従来のBSDシステムでのオーナーシップやアクセス権についての詳しい解説は本書の範囲外で すが、Mac OS 9でのアクセス権モデルとの違いやMac OS Xの実装と従来のBSDモデルの実装と の違いを知るには、ある程度のことを理解しておく必要があります。このため、このセクショ ンでは、これらの違いを取り上げる前に、BSDのアクセス権モデルについて簡単にまとめてお きます(詳細については、多数出版されている書籍のいずれか、またはBSDを取り上げている Webサイトを利用してください)。 BSDアクセス権の概要 BSDには、ファイルシステムのそれぞれのフォルダやファイルに対して、オーナー、グループ、 およびその他の3種類のユーザのカテゴリーがあります。これらのユーザのタイプごとに、ファ イルやフォルダへのアクセスを決める、読み取り、書き込み、実行の3種類のアクセス権があり ます。たとえば、あるアプリケーションについて、ユーザがいずれかのカテゴリーで実行アクセ ス権を持っていない場合、アプリケーションを起動することができません。236 オーナーシップとアクセス権  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 ■ フォルダやファイルのオーナーは、一般にそのファイルやフォルダの作成者です。オーナー は、通常そのファイルやフォルダに対するすべてのアクセス権(読み取り、書き込み、実行) を持っており、他のカテゴリーのユーザにアクセス権を設定することができ、「ルート」(後 述)の場合はオーナーシップを譲ることもできます。 ■ すべてのユーザは、1つ以上のグループに属します。グループは、共通点を持つユーザの集合 で、名前が付けられており、グループアクセス権を割り当てられます。たとえば、「projectx」 という名前のグループを作って、あるプロジェクトの設計に関わるすべてのユーザをこのグ ループに所属させることができます。仮に、上のグループを使用して説明を進めると、その メンバーには、コードリポジトリのソースファイルに対する書き込みアクセス権が与えられ ます。フォルダのグループオーナーは、そのフォルダにファイルが作成されると、そのファ イルのデフォルトのオーナーになります。適切なグループを設定するのはシステム管理者の 仕事です。 ■ その他のカテゴリーに入るユーザは、オーナーやグループユーザ以外のすべての人を指し、 ファイルやフォルダへのアクセス権は、一般的に最も制限されます。 BSDシステムには、「ルート」という特別なユーザがいます。スーパーユーザとも呼ばれます。ルー トユーザは、使用しているコンピュータに接続したデバイス上のフォルダやファイルに無制限にア クセスできます。ルートユーザには以下のことができます。 ■ 任意のファイルの読み取り、書き込み、実行 ■ 任意のファイルやフォルダのコピー、移動、名前の変更 ■ オーナーシップの委譲と他のすべてのユーザのアクセス権のリセット wheelグループと呼ばれる特殊なグループがあります。wheelグループのメンバーは、コマンドラ インでsuと入力してパスワードを入力することで、スーパーユーザになることができます。 BSDシェルで、ファイルシステムのいずれかの場所(たとえば、~steve/Documents)でls -lコマ ンドを入力すると、以下のような出力が得られます。 total 3704 drwxrwxrwx 5 steve staff 264 Oct 24 20:56 General drwxrwxr-x 5 steve admin 264 Oct 21 21:47 ProjectDocs drwxr-xr-x 6 steve staff 160 Oct 25 12:00 Planning drwx--x--x 6 steve staff 160 Oct 21 15:22 Private -rwxrwxrwx 1 steve staff 0 Oct 23 09:55 picture clipping [spongebob:~/Documents] steve%C H A P T E R 1 3 インストールと統合 オーナーシップとアクセス権 237  Apple Computer, Inc. February 2001 この出力から、ファイルやフォルダのオーナーやプライマリグループ、および各カテゴリーの ユーザに与えられたアクセス権など、さまざまな情報を入手できます。3番目の列にユーザが、 4番目の列にプライマリグループが表示されています。これを見ると、Generalフォルダのユー ザはsteveで、グループはstaffです。1番左の列には、コード化された10個の「ビット」が並ん でいて、ファイルシステムエンティティとそのアクセス権を表しています。先頭のdは、その項 目がフォルダ(ディレクトリ)であることを示しています。この部分がダッシュ記号の場合、 通常のファイルであることを示します。残りの9つのビットは、左からオーナー、グループ、 その他の3つのカテゴリーを表します。r、w、xの文字は、それぞれ読み取り、書き込み、実行 の各アクセス権を表しており、それぞれのビットが表すカテゴリーのユーザに適用されます。 例として、~steve/DocumentsにあるPlanningフォルダのアクセス権を見てみます。 drwxr-xr-x 6 steve staff 160 Oct 25 12:00 Planning このフォルダのオーナーのアクセス権は、rwxであるため、フォルダのオーナー(アカウントsteve を持つユーザ)は、このディレクトリへファイルやフォルダをコピーすることができ、cdコマン ドを使用して、このディレクトリをカレントディレクトリにすることができます。また、この中に あるプログラムはすべて実行することができます。staffグループのメンバーとその他のユーザに は、どちらもr-xアクセス権が与えられており、steve内のファイルを読んだり、作業中のディレク トリにすることはできますが、フォルダへのファイルの追加やフォルダ内のファイルの修正または 削除はできません。 ProjectDocsフォルダでは、別の設定がされています。 drwxrwxr-x 5 steve admin 264 Oct 21 21:47 ProjectDocs ここでは、グループに対して読み取り、実行および書き込みが許可されています(rwx)が、 このアクセス権を使用するにはadminグループのメンバーである必要があります。 適切なアクセス権がある場合は、オーナー、グループ、個人の各アクセス権を変更することができ ます。それには、Terminalシェルで、それぞれ、chown、chgrp、およびchmodコマンドを使いま す。詳細については、関連するmanページを参照してください。また、Finderの「情報」ウインド ウの「アクセス権」ペインにも、選択したフォルダやファイルに対するアクセス権やオーナーが表 示されます。ファイルやフォルダのオーナーは、このウインドウでアクセス権を変更することもで きます。238 オーナーシップとアクセス権  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 Mac OS Xでのファイルのアクセス権 従来のBSDアクセス権セマンティックスとMac OS Xでの実装との最大の違いは、システムのイン ストール後、Mac OS Xではルートユーザが無効にされていることです。ユーザがwheelグループに 所属する(従来であればスーパーユーザ権限を付与される)場合でも、suコマンドを使用してスー パーユーザになることはできません。このようにした理由は、もちろんセキュリティです。ルート ユーザは、ファイルシステム全体に対して無制限の権限を持っているため、意図的に、または意図 せずに、システムに大きな損害をもたらす恐れがあります。リモートでのログインや、その他のリ モートアクセスが使用可能な場合は、セキュリティについて、さらに考慮する必要があります。 ただし、Mac OS Xには、ルートユーザの代わりに「管理者」ユーザがあります。管理者は、ルー トユーザとほとんど同じ機能を持ち、Finderで操作を行うことができます(コマンドラインを使 用する必要がありません)。管理者にできない唯一のことは、システムドメインのファイルを直 接、追加、修正、または削除することです。その必要がある場合は、Installerやソフトウェアアッ プデートなど、特殊なアプリケーションから行います。管理者は実際のユーザではなく、「admin」 というアカウントを持つユーザはいません。管理者とは、adminグループに所属するユーザすべ てを指します。 Mac OS Xをインストールして設定アシスタントアプリケーションに情報を入力したユーザが、 自動的にそのシステムの最初の管理者になります。それ以降、このユーザ(あるいはほかの任意 の管理者)は「ユーザ」システム環境設定を使用することにより、新しいユーザのためにローカ ルシステム上のアカウントを作成できます。新しいユーザには、管理者権限を持たせることも (adminグループのメンバーにする)、持たせないこともできます。後者の場合は、デフォルトで staffグループのメンバーになります。 ルートユーザはデフォルトで無効になっていますが、管理者はこれを有効にしてスーパーユーザ になることができます。ただし、セキュリティ上の理由から、そうするのはどうしても必要な場 合に限ってください。ルートを有効にするには、/Applications/UtilitiesのNetInfo Managerアプリ ケーションを実行して、自分自身をローカル管理者として認証します。次に、「ドメイン」メニュー の「セキュリティ」で「ルートユーザを有効」を選択します。このメニュー項目は、ローカルの adminグループのメンバーであり、事前にローカルドメインで認証を受けている場合に限り選択 できます。ルートユーザとして有効になると、パスワードは空欄になります。ここでルートのパ スワードを設定することをお勧めします(「ドメイン」、「セキュリティ」、「ルートパスワードの変 更」の順に選択)。ルート権限を要求する作業が完了したら、同じメニューから「ルートユーザを 無効」を選択して、スーパーユーザ権限を無効にする必要があります。C H A P T E R 1 3 インストールと統合 オーナーシップとアクセス権 239  Apple Computer, Inc. February 2001 アプリケーションや書類のアクセス権 アプリケーションをProject Builderでビルドすると、ビルドサブシステムは実行可能ファイルに自 動的に-rwxr-xr-xというアクセス権を設定します。この設定は、オーナー、つまりアプリケーショ ンをインストールしたユーザにアプリケーションの実行と書き込みを許可し、他のユーザには実 行のみを許可します。ほかのIDEも、ビルドした実行可能ファイルには同様のアクセス権を設定 します。 ほとんどの場合、-rwxr-xr-xの設定が妥当ですが、まれにアプリケーションが特権アクセス(ルー トアクセス)を要求することがあります。たとえば、ディスク修復プログラムのようなアプリ ケーションでは、カーネルを介したローレベルハードウェアへのアクセスが必要です。このよう な場合、setuidをアプリケーションに組み込み、アプリケーションへのルートアクセス権を獲得 し、NetInfo Kitおよびシステムフレームワークの機能を使用して管理者を認証します。setuidの 詳細については、setuid (2)およびchmod (1)のmanページを参照してください。 アプリケーションを起動できるユーザは、アプリケーションに設定されたアクセス権(特に「x」 ビット)によって決定されますが、アプリケーションがいったん起動した後は、そのプロセスは、 起動したユーザが所有します。これは、アプリケーションがログインしたユーザと同じアクセス権 を持ち、そのユーザが持つオーナーやグループとしてのステータスを継承することを意味します。 したがって、ユーザがある場所で書類を書き込むためのアクセス権を持っている場合、アプリケー ションはその場所に書類を保存できます。 Carbon、Cocoa、Javaのいずれかのアプリケーションが書類を保存すると、それぞれのアプリケー ション環境が自動的に書類のアクセス権を設定します。これは、ユーザのumaskの値によって決 定されます。デフォルトでは、グループやその他のユーザは書き込みアクセスを禁止されていま す。書類に対するこの通常の設定(-rw-r--r--)では、オーナーはファイルを読み書きできます が、その他のすべてのユーザに可能なのはファイルを読むことだけです。アプリケーションの書 類に、これとは違うアクセス権を設定したい場合、アクセス権を設定できるファイル管理APIを 使用する必要があります。CarbonではFile Managerが、CocoaではNSFileManagerクラスがこの機 能を提供します。240 Classic環境とアプリケーション  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 Classic環境とアプリケーション Calssic互換環境(単にClassicとも言います)では、Mac OS 9の最新版とそこで実行できるすべ てのアプリケーションをMac OS Xで実行できます。ClassicのMac OS 9と「ネイティブ」のMac OS 9システムは非常によく似ています。ただし、特にアプリケーションのデベロッパにとって 重要な相違点もあります。 このセクションではClassic環境について、特にネイティブのMac OS 9との互換性やMac OS Xの他 の部分との統合について説明します。また、作成したアプリケーションがClassicでも実行される 場合に、Mac OS 9用アプリケーションのデベロッパが考慮する必要がある点を説明します。さら に、Mac OS Xの各アプリケーション環境(Carbon、Cocoa、Java)用ソフトウェアのデベロッパ を対象として、Classic環境でアプリケーションを実行する場合に問題になる可能性のある設計上 の側面についても説明します。 用語について:以下の解説の中で、Classic環境とMac OS Xを明示的に比較することがあります が、その場合のMac OS Xは「Mac OS Xの残りの部分」を指します。 Classic環境の概要 Classic環境は、Mac OS X以前のMac OS用にビルドされたアプリケーションをMac OS Xシステム で実行することを可能にするため、「ソフトウェア互換」環境と呼ばれます。これを使用すると、 Mac OS Xに完全に移行するまでの間、ユーザは従来のアプリケーションを使用することができま す。移行プロセスには時間がかかるため、まだ当分の間、Classic環境はオペレーティングシステ ムにとって必要なコンポーネントと言えます。 Classic環境上で動作するMac OS 9オペレーティングシステムにとって、そのClassicは新しいプラッ トフォームに見えます。Classicは、Mac OS Xカーネル環境(特にI/O Kit)を使用したハードウェア サービスを実装しています。Classic環境はエミュレータではありません。Mac OS 9はClassic環境内 でネイティブに動作します。Classic環境は、視覚的にも機能的にもMac OS Xの残りの部分と矛盾し ないため、その大部分は、ユーザから見てMac OS Xの残りの部分と区別することができません (「Mac OS Xとの統合」(243ページ)で説明する例外を除く)。C H A P T E R 1 3 インストールと統合 Classic環境とアプリケーション 241  Apple Computer, Inc. February 2001 アーキテクチャが異なるため、Mac OS 9やClassic環境で実行するアプリケーションでは、メモ リ保護やプリエンプティブマルチタスキングなどのカーネル環境の利点を完全に活用すること はできません。したがって、Classic環境で実行するアプリケーションがクラッシュまたはハン グすると、Classic環境自身を再起動する必要があることがあります。しかし、再起動する必要 があるのはClassic環境だけで、そのホストの役割を果たすMac OS Xシステムは再起動する必要 がありません。 ネイティブのMac OS 9との互換性 ネイティブのMac OS 9で実行するプログラムのうち、システムの下位レイヤで直接、操作を行お うとするものは、多くの場合、Classic環境では実行できません。これを具体的に見ると、その内容 はさまざまです。 ■ Window Managerポートに描画するアプリケーションは、一般に、Classicウインドウに重なる 部分に上描きしてしまいます。ただし、フルスクリーンにすることもできます。 ■ QuickDrawをバイパスしてフレームバッファに直接描画するアプリケーションでは、カーソル の表示と非表示に関する規則に従わなければ、Aquaウインドウに上描きしてしまいます。 ■ メモリにマップされたI/Oレジスタを操作するソフトウェアはクラッシュします。 ■ トラップにパッチを当て、グローバルな効果を期待するソフトウェアは、効果がClassicだけ に反映され、Mac OS Xには影響しないため、予期しない動作が発生することがあります。 たとえば、すべてのファイルシステムトラップにパッチを当ててファイルのI/Oをインター セプトするソフトウェアには、ClassicでのI/Oしか渡されません。 ■ ディスクドライバレベルでファイルシステムに、直接あるいはDevice Manager APIを使用して アクセスしようとするソフトウェアは機能しません。したがって、ネイティブのMac OS 9で動 作するディスクユーティリティは、Classic環境では動作しません。 一般的に、カーネル環境(および特にI/O Kit)が提供するハードウェアアブストラクションより も下位のレベルでMac OSの内部構造を変更または利用するプログラムは、Classic環境では動作し ません。このようなアクセスが必要な場合は、代わりにより上位のレベルのAPIを使う必要があり ます。たとえば、ファイルシステムに対するすべてのアクセスは、File Manager APIを使用して行 います。242 Classic環境とアプリケーション  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 デバイスのサポート Mac OS Xで一般にサポートされるデバイスのほとんどは、Classic環境でもサポートされます(あ るいは、近日中にサポートされる予定です)。そうしたデバイスには、以下のようなものがあります。 ■ USB ■ サウンド(入力および出力) ■ ディスクイメージとSMI(Self Mounting Imageファイル) ■ Ethernet ■ SCSI(予定) ■ FireWire(予定) ■ ビデオ(予定) Mac OS Xは、すべてのブロック記憶(「ディスク」)デバイスをマウントします。Classic環境で は、それらはFile Manager APIを介してボリュームとして表示されます。Mac OS Xがつかんでい ないデバイスへのアクセスを、Classic環境がつかむことができます。ディスクイメージ(SMIな ど)とMac OS XにマウントされたAppleShareボリュームは、Classic内ではFile Manager APIを使用 して見ることができます。Mac OS Xは常にUSBキーボードやマウスへのアクセスをつかんでいる ことに注意してください。Classicはこれらのデバイスとはイベントのより上位のレベルで通信し ます。 Classicでサポートしていないデバイスには、以下のものがあります。 ■ ADB(プライマリキーボードやポインティングデバイスは除きますが、これらもイベントレベ ルに限ります) ■ LocalTalk ■ 内蔵フロッピー ■ シリアル ■ 特殊なPCI/PCカード(つまり、Mac OS Xがサポートする表示、ネットワーキング、およびSCSI 用のカード以外のすべてのカード) PPP(モデム)とAirMac通信については、ClassicではMac OS XのPPP接続をネットワーク接続とし て利用できます。C H A P T E R 1 3 インストールと統合 Classic環境とアプリケーション 243  Apple Computer, Inc. February 2001 Mac OS Xとの統合 アップル社はClassic環境の要素とMac OS Xの対応する部分の区別が明白にならないように、可能な 限り努力をしてきました。ただし、すべてが同じに見えたり同じ動作をしたりするわけではありま せん。これらの相違点の一部はいずれなくなりますが、セマンティックスの相違によるものはなく なりません。 このセクションでは、統合されずに相違が残っている領域について説明します。今後のバージョ ンのオペレーティングシステムでは、このほかにも相違が生じる可能性があります。おおまかな 指針として、特定のClassic要素がMac OS Xの残りの部分に統合されているかどうかが不明な場合 は、統合されていないと想定してください。 ユーザインタフェース Classic環境とMac OS Xの残りの部分との相違点で最も顕著なのは、おそらくウインドウなどの ユーザインタフェースでしょう。ウインドウのルック&フィールは、Aquaではなくプラチナです。 たとえば、Classicのウインドウには半透明の赤、黄、緑のウインドウコントロールはなく、クロー ズボックス、コラプスボックス(最小化ボックス)、ズームボックスがあります。コラプスボック スをクリックしても、Aquaでウインドウを最小化する場合と異なり、「ジニー」特殊効果は使用 されず、単純にウインドウの内容が表示されなくなります。プラチナのウインドウには、ドロッ プシャドウがありません。 メニューにも、Classicアプリケーション用と他のMac OS X用アプリケーションではいくつか違い があります。Mac OS Xアプリケーションでは、たとえば、アプリケーションを終了するためのメ ニュー項目のある場所が違います。Classicアプリケーションでは「ファイル」メニューに「終了」 というメニュー項目がありますが、Mac OS Xアプリケーションでは、アプリケーションメニュー に「(アプリケーション名)を終了」というメニュー項目があります。 相違点は、ウインドウのサイズ変更やドラッグのような動作にまでおよびます。Aquaでは、ウイ ンドウはどの地点でも再描画されます。これに対してClassicでは、ウインドウのドラッグやサイ ズ変更を行うと、ウインドウの外枠(マーキー)だけが表示され、操作が終わるまで、ウインド ウは再描画されません。 Classicは、透明効果の影響を受けません。Classicオブジェクトが半透明のAquaウインドウの下にあ ると、そのオブジェクトは真っ白に表示されることがあります。ClassicウインドウがAquaオブジェ クトの上にある場合はこのような現象は起きません。 ほかの明らかな相違点には、ファイルシステムのブラウザがあります。Mac OS Xがこの機能に関 して使用するのは Navigation Servicesだけですが、ClassicアプリケーションはNavigation Servicesと Standard File Packageのいずれかを使用できます。244 Classic環境とアプリケーション  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 統合している部分としては、ClassicもMac OS XもOpenGLと8ビットグラフィックスをサポートし ています。 Classic環境とファイルシステム Classic環境は、Mac OS標準(HFS)、Mac OS拡張(HFS+)、AFP、ISO 9660、UDFなど、Mac OS Xでサポートされるファイルシステムの大部分をサポートします。ただし、UFSおよびNFSファイ ルシステムはサポートしていません。したがって、Classicアプリケーションは、NFSボリューム やUFSボリュームに対して読み書きを行ったり、ボリュームを表示したりすることはできません。 Classic環境とMac OS Xでは、ファイルシステムのアクセス権の取り扱いも異なります。Mac OS 9自身はローカルディスクボリューム上のアクセス権を認識しませんが、AFPはフォルダ単位の アクセス権を認識します。ファイルへのアクセス権は、そのファイルを含むフォルダに割り当て られたアクセス権で決定されます。Classicは、BSDアクセス権エラーを、それに対応する最も近 いAFPアクセス権エラーにマップし、Classic環境で実行するアプリケーションに最も矛盾のない 動作をさせます。 Classic環境のアプリケーション(特にインストーラ)では、このアクセス権統合モデルが原因で 問題が生じる可能性があります。AFPアクセス権エラーを適切に取り扱えないアプリケーション は、誤ったエラーメッセージを表示するか、誤動作を起こす可能性があります。ほかにアクセス 権に関連する問題が起きる可能性があるのは、同一のディスクやパーティションがClassicとMac OS Xの両方で使用されているときです。ルートオーナーだけがこの起動ボリュームのルートに書 き込みができるため、ファイルシステムのルートにソフトウェアをインストールしようとしても 失敗します。このようなアプリケーションのインストーラは、ユーザにフォルダを選択するよう 求める必要があります。 Classicは、システムフォルダ、ゴミ箱、デスクトップフォルダ、およびMac OS 9固有のいくつか の隠しフォルダなどの特殊な場所以外ではBSDファイルアクセス権を尊重します。ユーザが Classic環境のルートに読み書きできるアクセス権を持っている場合、Classicアプリケーションは システムフォルダに書き込みができ、項目を「ゴミ箱」フォルダに移動することができます。 Classic環境で実行しているプログラムがアクセス権のないフォルダに書き込みを試みるとAFPエ ラーコードが返されます。 AFPファイル共有については、ClassicはMac OS Xを経由します。 注意:Mac OS Xでこのような問題を起こすインストーラの場合、正常にインストールするに は、Mac OS 9でブートし直して、インストールする以外にない場合もしばしばあります。C H A P T E R 1 3 インストールと統合 Classic環境とアプリケーション 245  Apple Computer, Inc. February 2001 機能拡張と環境設定 Macintoshコンピュータシステムの一般的なセットアップでは、初めにネイティブのMac OS 9シ ステムがハードディスクのパーティションあるいは独立したハードディスクにインストールさ れます。次に、Mac OS Xシステムがシステムにインストールされ、Mac OS 9ボリュームがClassic 環境の起動ディスクとして選択されます。このようにセットアップすると、ユーザは、Classic環 境を使用するときもネイティブのMac OS 9システムを起動したときも、同じアプリケーション、 機能拡張、環境設定、およびその他のソフトウェアのセットを使用することができます。 ネイティブのMac OS 9システムで使用される機能拡張とClassic環境でそれに対応する機能拡張の 間でコンフリクトが発生する場合があります。このようなコンフリクトによってクラッシュする 可能性があります。一般的に、コンフリクトする機能拡張がある場合、Classicは対応する「ネイ ティブ」の機能拡張を起動時に無効にします。その一例は、マルチユーザ機能拡張です。Mac OS Xは、本質的にマルチユーザシステムです。そのため、Classic環境では起動時にマルチユーザ機 能拡張が無効にされ、ユーザがネイティブのMac OS 9システムを起動するとマルチユーザ機能拡 張が有効にされます。 Classic環境は、環境設定のコンフリクト(通常、ネットワーク関連)にも同じ方法で対処しま す。Mac OS Xのシステム環境設定アプリケーションでユーザが設定した環境設定が、ネイティ ブのMac OS 9システムの対応する環境設定のセットより優先されます。ただし、ユーザがネイ ティブのMac OS 9システムを起動すると、すべての「ネイティブ」環境設定が復元されます。 Classicは、ネイティブのMac OS 9システムの設定に悪影響を与えるような永続的な変更は一切 行いません。 Finderとデスクトップ Classic環境は、その他すべてのアプリケーション環境との間でMac OS Xデスクトップを共有しま す。Mac OS XのFinderを使用して、ユーザはClassicを含むすべての環境のファイルやアプリケー ションを操作できます。Finderではユーザは以下のことを実行できます。 ■ ファイルシステム内をナビゲートする ■ ファイルやフォルダを移動、コピー、削除、名称変更する ■ ダブルクリックでアプリケーションを起動する ■ ダブルクリックで書類を開く 注意:Classic環境のリリースノートには、現在コンフリクトすることがわかっている機能拡 張のセットが記載されています。246 Classic環境とアプリケーション  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 Classic環境は、ネイティブのMac OS 9に類似した方法で複合デスクトップを表示します。この複合 デスクトップには、起動ボリュームのMac OS XのDesktopフォルダと、Classicが認識可能な(つま りUFSやNFSボリュームは含まれません)、マウントされたすべてのボリュームのデスクトップ フォルダが含まれます。Classicは、AFPボリュームをネイティブのMac OS 9と同様に扱います。AFP ボリュームにDesktop Folderがあっても複合デスクトップから除外されますが、ClassicのStandard File PackageやNavigation ServicesのAPIを使用することによって、AFPボリュームのルートにアクセ スすることができます。 Mac OS XのFinderとNavigation Servicesは、Mac OS 9のDesktop Folderが起動ボリュームにある場 合、これを非表示にします。Mac OS XがMac OS 9に上書きインストールされるケースでは、ユー ザがFinderやNavigation ServicesからMac OS 9のDesktop Folderにアクセスしようとする場合、 /MacOS9内のエイリアスを使用してアクセスできます。ユーザがネイティブのMac OS 9を再び起 動すると、Mac OS 9のデスクトップ、つまりすべてのマウントされたボリューム上にあるAFP以 外のすべてのデスクトップフォルダを複合したものが、以前の状態のまま表示されます。 Mac OS XのFinderは、Classic環境ではSystem Folderの自動ルーティングを行い、Mac OS 9のシス テムフォルダをブレスします。 ネットワーキングと印刷 Classic環境でのネットワーキングは、Mac OS Xのネットワーキング機能に大部分が統合されて います。Classicは、ネットワーキングデバイス(Ethernet、AirMac、およびPPP)、コンピュー タのIPアドレス、およびIPポートアドレス空間をMac OS Xと共有します。ただし、Classicでは Open Transportプロト コルスタック(ストリームを全面サ ポート)を完全に実 行しますが、 CarbonはOpent Transport実装の一部分だけをBSDソケット上に構築しています。 さらに、Classic環境で使用されるバージョンのInternet Configは、Mac OS Xで使用されるInternet Configソフトウェアと異なります。Mac OS XでInternet Configを呼び出すとMac OS XのInternet Configデータベースを参照します。Classicでの呼び出しは、Mac OS 9のInternet Configデータ ベースを参照します。これは混乱を引き起こす可能性もあります。デフォルトのブラウザを起動 するリクエストが出された場合、それがClassicのInternet Configのリクエストとネイティブの Mac OS XのInternet Configのリクエストのどちらであるかによって、また2つのデータベースの 設定が同じかどうかによって結果が変わってくることがあります。C H A P T E R 1 3 インストールと統合 アプリケーションをインストールする 247  Apple Computer, Inc. February 2001 Classic環境のプリンタ設定は、ネイティブのMac OS 9システムと同様に、セレクタ、またはデスク トッププリンタユーティリティを使用します。ただし、Classicの場合、実際のデスクトッププリン タが、Mac OS XのFinderによってデスクトップに表示されません。Classic環境でアプリケーション から印刷する場合、ネイティブのMac OS 9に表示されるものと同じポップアップメニューから「プ リント」ダイアログを開き、そこで設定済みのプリンタのいずれかを選択します。Classicで印刷す ると、Desktop Print Monitorではなく、旧式のPrint Monitorが使用されます。 その他のClassic統合に関する問題点 このほかにも、デベロッパに関係のあるClassic統合の問題がいくつかあります。 ■ フォント:Apple Type Solution(ATS)システムは、Classicのシステムフォルダの「フォン ト」フォルダに入れられるフォントを統合および管理します。これにより、このフォルダ内 のフォントがMac OS X全体で共有されます。ただし、Mac OS X内のほかのFontフォルダ内の フォントは、Classic環境では共有されません。 ■ AppleScript:Classic環境のAppleScriptは、アプリケーションパッケージを認識します。 ■ コピー/ペースト:Classic環境とCocoaアプリケーション環境は、クリップボードの処理で使 用するデータのタイプが異なります。したがって、これらの環境間でのコピー/ペーストや ドラッグ操作は失敗する可能性があります。 アプリケーションをインストールする Mac OS Xでは、アプリケーションのインストール方法が複数あります。アプリケーションをハー ドディスクに単純にドラッグするようユーザに指示することも可能ですし、アプリケーション用 のインストーラを用意することもできます。このセクションでは、これらの方法を紹介し、アプ リケーションをインストールできるようにするために必要な作業を要約します。 インストール位置 「ファイルシステムの構成」(155ページ)で説明したように、ファイルシステムの標準的なディ レクトリレイアウトでは、アプリケーションをインストールできる位置がいくつかあります。 ■ システムドメインとローカルドメインの組み合わせ(/Applications) ■ ユーザドメイン(~/Applications、ローカルまたはネットワーク上)248 アプリケーションをインストールする  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 ■ ネットワークドメイン(たとえば、/Network/Applications) 一般的に、Mac OS Xシステムの大部分のアプリケーションは、特定のコンピュータシステムのす べてのユーザが使用できるように、/Applicationsにインストールされます。ただし、アプリケー ションの使用を制限する場合(1ユーザライセンス版を購入した場合など)は、アプリケーショ ンをユーザのホームディレクトリの「Applications」フォルダにインストールする必要がありま す(このフォルダは先に作成しておく必要があります)。アプリケーションをLAN上のすべての ユーザが実行できる場合、ネットワーク管理者は、これらのユーザ全員がアクセスできるファイ ルサーバにアプリケーションをインストールする必要があります。 重要 フレームワークやフォントなどのソフトウェアやリソースを /System/Libraryにインストールしないでください。それらの項目は、 ローカルドメインの適切な場所(/Library)に置く必要があります。 ユーザは、必ずしもドメインの定位置にアプリケーションをインストールしなくてもかまいませ ん。アプリケーションがバンドルにパッケージングされている場合、必要なものをほとんどすべ て含むように設計されているため、ユーザは任意の場所にインストールして問題なく実行できる はずです。ただし、推奨される場所の外部にアプリケーションがあると、Cocoaアプリケーショ ン用のアプリケーションサービスなど、システムの機能の一部を利用できなくなる場合がありま す。また、Finderがアプリケーションを認識できなくなることがあります。Finderがアプリケー ションデータベースを構築する場合、既知のドメインでアプリケーションを探します。アプリケー ションがいずれのドメインにもないと、システムの効率が悪くなります。Finderとアプリケーショ ンの詳細については、「Finder」(179ページ)の章を参照してください。 手動インストール Mac OS X用のアプリケーションのほとんどは、自己完結的なバンドルとしてパッケージングされ ているため、ユーザが行うべきアプリケーションのインストール作業は、ほとんどの場合、ユー ザが書き込みアクセス権を持っているフォルダにバンドルをドラッグするだけです。インストー ル形式がこのように単純なアプリケーションでは、インストール方法を記した指示書(簡潔なオ ンライン文書または印刷物)をアプリケーションに同梱することができます。C H A P T E R 1 3 インストールと統合 アプリケーションをインストールする 249  Apple Computer, Inc. February 2001 ドラッグ&ドロップ方式のインストールは、Mac OS Xでの推奨手順です。アプリケーションは必 要なものをすべてバンドル内に持っているため、単純に手動でインストールするだけで、ファイ ルシステム内の各所にファイルが分散されにくくなり、ファイルシステムのどこか別の場所にあ る項目に依存することがなくなります。また、特に必要ではないと判断したファイル(Read Me ファイルなど)をハードディスクにコピーしないという選択肢をユーザに提供することができま す。アプリケーションをアンインストールするために必要な作業は、ボリュームからアプリケー ションバンドルを削除することだけです。 Finderは、アプリケーションコンポーネントを簡単にインストールするためのメカニズムとして、 「アプリケーションパッケージ」に関するキーをいくつかサポートしています。アプリケーション をビルドする場合、これらのキーと、それに対応する値を、アプリケーションの情報プロパティリ スト(Info.plist)で指定することができます。後で、ユーザがアプリケーションを選択してFinder の「情報」ウインドウを開くと、「アプリケーションファイル」ペインにコンポーネントのリスト が表示されます。ユーザは、インストールする(あるいはアンインストールする)コンポーネント を選択することができます。 このようなキーの詳細については、「ソフトウェアの設定」の章の「アプリケーションパッケー ジキー」(199ページ)を参照してください。 インストーラ アプリケーションによっては、単純なドラッグ&ドロップによるインストールに適さないものがあ ります。アプリケーションを実行可能にするための要求事項が複雑すぎるか、インストーラを使用 することで得られる機能がぜひとも必要な場合です。そうした機能には、以下のものがあります。 ■ 圧縮 ■ Read Meファイルを、インストールプロセスの一部として表示する ■ インストール前に、ユーザにライセンスに対する同意を求める ■ インストールの前に、ユーザを管理者として認証する必要がある ■ より専門的な表示を行う 重要 インストーラを使用することには利点がありますが、アップル社では、 できるだけ単純なドラッグ&ドロップによる手動インストールを使用 するよう推奨しています。インストーラは、項目を何らかの理由でバ ンドルの外部にインストールする必要のあるアプリケーションにのみ 使用するべきです。250 アプリケーションをインストールする  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 インストーラを使用する場合は、いくつかオプションがあります。アプリケーションがCocoaま たはJavaアプリケーションの場合、あるいはMac OS XにのみインストールされるCarbonアプリ ケーションの場合は、Mac OS Xのネイティブのインストーラテクノロジーを使用することがで きます。アプリケーションがCarbonアプリケーションで、Mac OS 9とMac OS Xの両方にインス トールする場合、次のいずれかの手法を使います。 ■ どちらのフラットフォームでも、Mac OS Xに移植されたサードパーティ製のインストーラを使 用する。 ■ Mac OS Xにアプリケーションをインストールする作業にはネイティブのインストーラテクノ ロジーを使い、Mac OS 9にはサードパーティ製のインストーラを使用する。 Mac OS Xのネイティブのインストーラアプリケーションは、Installerという名前で、 /Applications/Utilitiesにあります。ユーザがインストールパッケージをダブルクリックすると、 Installerアプリケーションが起動します。Installerアプリケーションはユーザに対して、認証な どを行う一連のペインの表示(図13-2(250ページ)を参照)、インストール位置の指定、イン ストールのカスタマイズなど、一連のインストール作業を順に提示します。また、項目の一覧と インストールログを表示します。「インストールパッケージ」(251ページ)のセクションでは、 インストールパッケージの構造と内容について説明します。 図13-2 InstallerアプリケーションC H A P T E R 1 3 インストールと統合 アプリケーションをインストールする 251  Apple Computer, Inc. February 2001 Mac OS X上にインストール可能なパッケージを作成するには、Package Makerというアプリケー ションを使用します(/Developer/Applications/PackageMaker)。ソフトウェアをパッケージでき る状態にするための一般的な手法とPackage Makerの使用方法は、「インストールパッケージを作 成する」(252ページ)で説明します。 インストールパッケージ Mac OS Xのインストーラ対応ソフトウェアのネイティブな形式は、パッケージと呼ばれます。 インストールパッケージはファイルパッケージ(ユーザに対してはファイルとして表示される フォルダ)で、.pkgという拡張子を持ちます。インストールパッケージには複数のコンポーネ ント、ファイルアーカイブ、Read Meファイルやライセンス関係の書類(省略可能)、およびイ ンストーラスクリプト(省略可能)が含まれます。インストールパッケージ形式を使用すること で、Installerは、説明、デフォルトのインストール位置、アンインストール機能などの有用な機 能を提供できます。 Finderはパッケージを単一のファイルシステムエンティティとして表示しますが、(Terminalアプ リケーションで)BSDのcdコマンドを使用してパッケージディレクトリを開くことにより、パッ ケージのコンポーネントを表示することができます。パッケージを構成するファイルは、ファイ ルに格納される情報のタイプを示すサフィックスが名前の末尾に付けられます。基本的なパッ ケージには、以下のファイルが含まれます。 ■ 項目のリスト(.bom):パッケージの内容を記述したバイナリフォーマットのファイル。 ■ 情報ファイル(.info):パッケージが作成されたときにPackage Makerアプリケーションに入 力された情報が記述されたテキストファイル。 ■ アーカイブファイル(.pax):インストールされるすべてのファイルが含まれたアーカイブ。 アーカイブが圧縮されている場合、アーカイブにはさらに.gzというサフィックスが付きます。 ■ サイズ計算ファイル(.sizes):アーカイブ前のソフトウェアの圧縮後(および圧縮前)のサ イズを含むテキストファイルで、インストーラはこの情報をもとに、インストールに必要な 容量を計算します。 ■ 補足的な(省略可能の)リソース:アイコン、Read Meファイル、ライセンス情報、プレイ ンストールスクリプト、プレインストールスクリプトなど。これらはパッケージリソースで、 インストール時に使用または実行されますが、ソフトウェアといっしょにインストールされ ることはありません。 インストールパッケージは基本的にフォルダ(つまりファイルパッケージ)であるため、取り扱い によっては、内容が変更されたり損傷したりする可能性があります。パッケージを配布できる状態 にするには、パッケージを安全に配布できる形式にアーカイブ(および圧縮)する必要があります。252 アプリケーションをインストールする  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 インストールパッケージを作成する インストールパッケージを作成する一般的な手順は、以下の通りです。 1. 配布ディレクトリを作成し、インストールするソフトウェアをそこにコピーします。 2. オプションで、インストールリソースディレクトリを作成して、Read Meファイル、使用許 諾契約書、インストールスクリプトなどを入れることができます。 3. Package Makerを起動し、表示される「フォーム」に記入します。 このような手順の詳細については、それぞれ、「配布ディレクトリを作成する」(252ページ)、 「インストール用リソースディレクトリを作成する」(253ページ)、および「Package Makerフォー ムに記入する」(254ページ)を参照してください。 配布ディレクトリを作成する フォルダを1つ作成します。この中には、ソフトウェアのインストール先となるデフォルトのディ レクトリ階層をローカルに再現した構造を持つサブフォルダ群を置きます。次にソフトウェアを適 切な場所(複数の場所も可)にコピーします。ディレクトリ階層のルートがあるフォルダの場合、 通常dstrootという名前が付けられます。これは、このフォルダが配布(ディストリビューション) のルート(/)を指すためです。配布ディレクトリの内容は、パッケージのファイルアーカイブ内 に作成されます。 たとえば、フレームワークをビルドし、それを/Library/Frameworksにインストールする場合、 ~/dstroot/Library/Frameworksというディレクトリ階層を作成して、この場所にフレームワー クをコピーします。Package Makerがパッケージをビルドする際に、このディレクトリ階層が記 録されます。パッケージがインストールされる際に、Installerはソフトウェアをファイルシステ ム内の正しい場所に置きます(ただし、パッケージが移動可能である場合、ユーザはほかの場所 にインストールすることもできます)。C H A P T E R 1 3 インストールと統合 アプリケーションをインストールする 253  Apple Computer, Inc. February 2001 インストール用リソースディレクトリを作成する 「インストールパッケージ」(251ページ)で説明したように、パッケージには、インストール時 にパッケージにより使用されるだけで、それ自体はインストールされない補助的なリソースを持 たせることができます。このようなリソースとして一般的なのは、Read Meファイルとライセン ス書類です。Read Meファイルには、ユーザがソフトウェアをインストールする前に読んでおく 必要のある(あるいは読むことが推奨される)情報が記載されています。ライセンスには、ソフ トウェアを利用するためにユーザが承諾する必要のある条件などが記述されています。 これらのRead Meファイルやライセンスファイルに使用できるファイル形式(適切な拡張子を持 つ)は、テキスト(.txt)、HTML(.html)、RTF(Rich Text Format、.rtf)の3つです。これらの ファイルを作成する際は、ファイルをUnicodeエンコーディングで保存できるテキストエディタ を使用してください。Read Meファイルやライセンスファイルで使用するために、特殊なベース ネームが予約されています。Read Meファイルの名前がReadMe.extで、ライセンスファイルの名 前がLicense.extの場合、Installerは各ファイルを認識して(パッケージ内にある場合)、自動的に 以下の処理を行います。 ■ Installerは「Read Me」項目を、アプリケーションの左側に表示される箇条書きリストに追加 します。ユーザが「Important Information」ペインまで進むと、ファイルの内容が表示され ます。ユーザは、「Continue」ボタンをクリックすることによりRead Meの表示をキャンセル することができます。 ■ Installerは「License」項目を、アプリケーションの左側に表示される箇条書きリストに追加 します。ユーザが「Software License Agreement」ペインまで進むと、ファイルの内容が表 示されます。ユーザが「Continue」ボタンをクリックすると、Installerはライセンスの条件 に同意したことを(「Agree」をクリックして)示すよう求めるダイアログを表示します。 補助的なインストールリソースはソフトウェアとともにはインストールされないため、これらの ファイルは配布ディレクトリには置きません。dstrootと同じ階層にresourcesディレクトリを作成 して、その中にこれらのファイルを置きます。resourcesディレクトリの内容は、パッケージが作 成されるときにパッケージにコピーされます。254 アプリケーションをインストールする  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合 Package Makerフォームに記入する インストールパッケージの設定と作成を行うには、Package Makerアプリケーションを使用します。 使用方法は容易で、図13-3に示すようにフィールドやチェックボックスで構成された簡単なフォー ムに記入するだけです。 図13-3 Package MakerのユーザインタフェースC H A P T E R 1 3 インストールと統合 アプリケーションをインストールする 255  Apple Computer, Inc. February 2001 最初の2つのフィールド、Package Root DirectoryとPackage Resources Directoryに注目してくださ い。これらのフィールドには、作成済みの配布ディレクトリとリソースディレクトリのルートをポ イントするパスを指定します。これらのフィールドと、その他のフィールドやコントロールの目的 および通常の値については、アプリケーションのオンラインヘルプを参照してください。 システム全体のリソース バンドル化された実行可能ファイルに、何らかの理由でバンドルの外部にインストールしなけれ ばならないリソースがある場合、インストーラ側で対処する必要があります。通常、このような リソースは、システムサービスを利用できるように特定の場所に置く必要があります。この一例 がフォントです。Apple Type Solution(ATS)システムは、システム、ローカル、ネットワーク、 およびユーザの各ファイルシステムドメイン内のLibrary/Fontsでフォントを検索することに よってフォントを管理します。 ファイルシステムドメインに関するもう1つの問題は、リソースの制限です。たとえば、ライセン ス制限のあるフォントを、Mac OS Xシステムの全ユーザではなく1人のユーザだけに使用させたい 場合、インストーラはこのフォントを、/Library/Fontsフォルダではなく、ユーザの~/Library/Fonts フォルダに入れる必要があります。 システム全体で使用されるリソースに対する推奨ドメイン位置を認識し、インストーラがこれら のリソースを、適切な場所、あるいはユーザが選択できる場所に置くようにする必要があります (これらの場所の詳細については、「ファイルシステムの構成」(155ページ)を参照)。インス トールする場所がシステム管理者権限を必要とする場合、インストーラはユーザを認証する必要 があります。Mac OS Xのインストーラテクノロジーでは、アプリケーションバンドルの外部にオ プションのサブパッケージをインストールすることが許容されています。このようなサブパッ ケージの集まりを管理するためには、メタパッケージという概念が使用されます。メタパッケー ジは、.mpkgという拡張子を持つファイルパッケージです。Installerは、メタパッケージにもとづ くインストール可能パッケージごとに1つの「Customize」ボタンを用意します。256 アプリケーションをインストールする  Apple Computer, Inc. February 2001 C H A P T E R 1 3 インストールと統合タスクとプロセス 257  Apple Computer, Inc. February 2001 C H A P T E R 1 4 14 マルチ環境の問題点とオプション Mac OS Xは高度にレイヤ化されたシステムであるため、しばしば複数の異なるレイヤに同等の メカニズムが存在します。たとえば、スレッディングAPIはMach、BSD、およびそれぞれのアプ リケーション環境で使用できます(後者は前者の上位にあるため)。このセクションでは、シス テムの各レイヤに異なるテクノロジーとAPIが存在するときに(場合によっては用語さえ異なる ときに)発生する可能性のあるプログラミング上の問題について説明します。 タスクとプロセス Mac OS Xは複数の異なるコンポーネントから構成されており、それぞれのコンポーネントには独 自の背景があります。このため、ときおり用語の不一致が発生することがあります。このような用 語の不一致は、マニュアルだけでなく、しばしばAPIにも見られます。適切な事例としては「タス ク」と「プロセス」という用語があります。Machではタスク、BSDではプロセス、CPM(Carbon Process Manager)もプロセス、マルチプロセッシングサービスではタスクと、混乱を極めています。 このような混乱を明確にするためには次の「等式」が役に立ちます。 Machタスク = BSDプロセス = Carbon Process Managerプロセス Open Software Foundationの定義に従うと、Machタスクは「スレッドのセットを保持するコンテ ナ。Machタスクはスレッドの実行に必要な要素、つまりポートのネームスペースと仮想アドレス 空間を含む」と定義されます(「Mach 3 Kernel Principles」)。つまり、Mac OS X上のMachタスク (またはBSDプロセス、Carbon Process Managerプロセス)の仕事は、メモリ、アドレス空間、 およびスレッドの実行に関連するその他のリソースを管理することです。それぞれのMachタスク (またはプロセス)は個別に4GBの仮想アドレス空間を持ち、この領域は保護されています。258 スレッディングパッケージ  Apple Computer, Inc. February 2001 C H A P T E R 1 4 マルチ環境の問題点とオプション 1つのCPM(Carbon Process Manager)プロセスは1つのBSDプロセスの上位にあります。このよ うなレイヤ構造がCPM APIを有効にします。したがって、Carbon、Cocoa、およびJava、どのア プリケーションのプロセスも、同時に、Machタスクであり、BSDプロセス(独自のプロセスID を持ちます)であり、さらにCPMプロセス(独自のPSN、つまりプロセスシリアル番号を持ちま す)でもあります。ただし、Classicプロセスだけは、この1対1プロセスモデルに対する例外で す。Classicアプリケーション環境で動作しているアプリケーションはそれぞれ独自のCPMプロ セスを持ちますが、これら複数のプロセスはただ1つのBSDプロセスの上に置かれています。 CarbonとCocoaは、APIのほかの箇所で「タスク」という名前を使用しています。Cocoaでは、Mach とBSDの意味で「タスク」と「プロセス」を使用します。FoundationフレームワークのNSTaskク ラスを使って作成されたオブジェクトは、実際には親プロセスから派生したサブプロセスに関連付 けられています。このオブジェクトは、独自のスレッドのセットとアドレス空間を持つ独立した実 行可能なエンティティです。マルチプロセッシングサービスはユーザレベルのプリエンプティブな スレッドを「タスク」と呼びます。これは、Thread Managerの協調的なスレッドとの混同を防ぐ ためです。マルチプロセッシングサービスタスクの詳細については、次の「スレッディングパッ ケージ」のセクションを参照してください。 スレッディングパッケージ スレッドはプロセス内の実行コンテキストです(「タスクとプロセス」(257ページ)を参照)。 スレッドはコールスタックとプロセッサのステータスに関連付けられています。1つのスレッド は、仮想アドレス空間とその他のタスク内のリソースを、プロセスの他のスレッドと共有しま す。スレッドはプリエンプティブに、あるいは対称マルチプロセッシングを使って、並行的に実 行されるようにスケジュールされます。ただし、カーネルスレッドの最上位に構築されるスレッ ディングモデルは、協調的なスレッディング動作を提供するために、さまざまな同期メカニズム を使います。 アプリケーションのようなプロセスが複数の実行スレッドを持てることは、非常に価値がありま す。というのも、この機能によりプログラムの効率が大幅に向上し、一部のタスクのプログラミン グが簡略化されるからです。しかし、マルチスレッドプログラムは、より複雑になる可能性もあり ます。 Mac OS Xは、プログラムをマルチスレッド化するために使用できるさまざまなモデルとプログラ ミングインタフェースをデベロッパに提供します。それぞれのパッケージはレイヤ構造の中で他 のパッケージの上位または下位にあるため、これらのパッケージの間には依存関係が存在します。 図14-1に、パッケージと依存関係を示します。C H A P T E R 1 4 マルチ環境の問題点とオプション スレッディングパッケージ 259  Apple Computer, Inc. February 2001 図14-1 Mac OS Xのスレッディングパッケージ Mac OS Xのカーネル環境、特にMachは、基本的なスレッドサポートを提供します。Machはスレッ ドのレジスタステータスを管理し、それらを相互にプリエンプティブにスケジュールします。対称 マルチプロセッシングの場合は、1つのスレッドを1つのプロセッサに割り当てて、並行的に実行 されるスレッドをプリエンプティブにスケジュールします。MachスレッドのクライアントAPIはシ ステムフレームワークとして実装されます。 その他のスレッディングモデルまたはスレッディングパッケージは、Machスレッドの上位に実装 されます。 スレッディングパッケージ 説明 POSIXスレッド プリエンプティブにスケジュールされたスレッドを実装するため にカーネル環境に組み込まれているスレッドパッケージ。これは業 界標準のスレッディングモデルの1つです。このパッケージはシス テムフレームワークの中に含まれています。 マルチプロセッシング サービス Carbon上にプリエンプティブにスケジュールされたスレッドを実 装するパッケージ。このパッケージはPOSIXスレッドの上位にあ り、コアサービスレイヤの一部です。 Machスレッド� マルチプロセッシング� サービス(Carbon)� Thread Manager (Carbon) NSThread (Cocoa) java.lang.Thread POSIXスレッド�260 スレッディングパッケージ  Apple Computer, Inc. February 2001 C H A P T E R 1 4 マルチ環境の問題点とオプション Mach APIではなく、できるかぎりクライアントAPIのいずれかを使用するようにしてください。 レイヤの詳細 図14-1(259ページ)に示すように、BSDのPOSIXスレッドパッケージ(Pthreadとも呼ばれます) は、独自のマルチスレッディング環境をカーネル環境のMachスレッドの上位に構築しています。 このパッケージは、そのスレッドをプリエンプティブにスケジュールして、MachスレッドとPOSIX スレッドとの間の1対1のマッピングを維持します。 アプリケーション環境のスレッドパッケージは、POSIXスレッドの上位にレイヤ化されていま す。POSIXスレッドと同様に、これらのパッケージも独自のマルチスレッディング環境を、 スレッディング基礎構造の上に構築しています。Carbonではマルチプロセッシングサービスに よって、CocoaではNSThreadクラスによって提供されるスレッドは、プリエンプティブにスケ ジュールされ、下位にあるPOSIXスレッドとの間に1対1のマッピング関係を持ちます(事実、API の中では「タスク」と呼ばれているマルチプロセッシングサービスのスレッドは、POSIXスレッ ドを被っているうすい膜のようなものです)。一方、Thread Managerのスレッドは単一のPOSIX スレッドの上に「多重化」されており、協調的にのみスケジュールされます。 使用方法のガイドライン アプリケーションプロセスが起動されるとき、アプリケーション環境に関係なく、アプリケー ションは1つのスレッドを自動的に獲得します。アプリケーションをマルチスレッド化する場合 は、通常、アプリケーション環境と、Carbonの場合は必要なスレッドのタイプ(プリエンプティ ブまたは協調的)に対応したスレッドパッケージを使用してください。 Thread Manager Carbon上に協調的にスケジュールされたスレッドを実装するパッ ケージ。このパッケージはPOSIXスレッドの上位にあり、コアサー ビスレイヤの一部です。 NSThread このクラスのオブジェクトは、プリエンプティブにスケジュールさ れたスレッドを、Cocoaアプリケーションで使用するためにラップ します。このパッケージはPOSIXスレッドの上位にあり、 Foundationフレームワークによって提供されます。 java.lang.Thread このクラスのオブジェクトは、プリエンプティブにスケジュールさ れたスレッドを、Javaアプリケーションで使用するためにラップし ます。このパッケージはPOSIXスレッドの上位にあります。 スレッディングパッケージ 説明C H A P T E R 1 4 マルチ環境の問題点とオプション プロセス間通信 261  Apple Computer, Inc. February 2001 他のオペレーティングシステムとの間のソースコード互換性を最大にする必要があるときは、 POSIXスレッドを使用してください。たとえば、多くのBSDコードではPOSIXスレッドを使用し ており、これはMac OS X内の実装と互換性を持ちます。 まれな例外を除き(デバッガなど)、プロジェクト内でMachスレッドを作成および管理すること はできるだけ避けるようにしてください。これらのスレッドには、POSIXスレッドが提供する多 くのインフラストラクチャが欠けています。さらに、Machスレッドを使用すると、結果的に互換 性の問題が発生する可能性があります。 プロセス間通信 通常、プロセスは、そのライフタイムのある時点で、別のプロセスと通信する必要があります。 その目的は、データを転送するため、または自プロセスの状況を他のプロセスに通知するためな どです。しかし、モダンオペレーティングシステムでのプロセス間通信には注意が必要です。 不十分な理解にもとづいてプロセス間通信を使用すると、システム全体の安定性とパフォーマン スに影響が生じる可能性があります。 Mac OS Xのプログラムはいくつかの方法を使って他のプログラムと情報をやり取りしていま す。プロセス間通信のメカニズムは、多くの場合、システム内のさまざまなレイヤに存在しま す。それぞれのメカニズムには、独自の目的、制限、および想定しているシナリオがあります。 システムの特定のレベルで書かれるコードによっては、あるものが他のものよりも望ましい場合 があります。たとえば、カーネル機能拡張ではアップルイベントを使用できません。 Mac OS Xには、以下に示すようなプロセス間通信メカニズムがあります。 ■ Mac OS Xのプロセス間通信では、多くの場合、ほかのメソッドよりもアップルイベントがアプ リケーションにとって適切です。「アップルイベントによる通信」(262ページ)を参照して ください。 ■ 同一のマシン上のすべてのアプリケーションに対して単純な通知をブロードキャストするに は、分散化された通知を使用することができます。「単純な通知のブロードキャスト」(263 ページ)を参照してください。 ■ パフォーマンスが重要な場面では、アップルイベントに代えてCore Foundationの CFMessagePortを使用することを検討します。「CFMessagePortによる生データの転送」(263 ページ)を参照してください。262 プロセス間通信  Apple Computer, Inc. February 2001 C H A P T E R 1 4 マルチ環境の問題点とオプション ■ ネットワーク経由での通信にはBSDソケットを使用します。「BSDソケットによる通信」(264 ページ)を参照してください。 ■ 同一のコンピュータ上でのアトミックな一方向通信には、BSD のパイプを使用することがで きます。「BSDのパイプによる通信」(264ページ)を参照してください。 ■ カーネルは、例外をプロセスに送信する場合に、BSDシグナルを呼び出します。「BSDシグナ ルによる例外処理」(265ページ)を参照してください。 ■ 画像、サウンド、ムービーなどの大きなリソースを他のプロセスと共有するには、共有メモリ をPOSIXセマフォと組み合わせて使います。「共有メモリによる大規模リソースの共有」(265 ページ)を参照してください。 ■ NSPasteboardはCocoaクラスの1つで、パブリックな共有可能データを格納する実行時単位 で、永続的で単純な記憶域を確保します。アプリケーション間で用いられるローレベルのク リップボード操作(カット、コピー、ペースト)は、NSPasteboardを使用して実装されています。 ■ Cocoaアプリケーションでは、そのアプリケーションが他のアプリケーションに代わって実 行できるサービスを(「サービス」メニューで)通知することができます。「他のアプリケー ションへのサービスの提供」(266ページ)を参照してください。 ■ Cocoaアプリケーションでは、分散オブジェクトを使用して、同一のコンピュータ上の他のス レッドまたはプロセスにあるオブジェクトにメッセージを送信することもできます。「分散オ ブジェクトによる他のプロセスの呼び出し」(266ページ)を参照してください。 ■ Machポートオブジェクトは、Mac OS X上のすべてのプロセス間通信に使用される基礎プリミ ティブです。「Machポートオブジェクトを使用したメッセージング」(266ページ)を参照し てください。 アップルイベントによる通信 アップルイベントはハイレベルのセマンティックイベントで、アプリケーションから、自分自身、 同じコンピュータ上の別のアプリケーション、あるいはリモートコンピュータ上のアプリケーショ ンに送信することができます。アップルイベントは、Mac OS Xでのアプリケーション間通信の主 要な方式です。 アップルイベントオブジェクトのデータ構造は明確に定義されており、拡張可能な階層的データ 型をサポートしています。アプリケーションは通常、他のアプリケーションに対してサービスや 情報を要求したり、逆にそのような要求に応えてサービスや情報を提供したりするのにアップル イベントを使用します。必要に応じてカスタムのイベントを定義することもできますが、他のア プリケーションとの相互運用性を増大させるには、アップル社によりドキュメント化されたアッ プルイベントの標準セットを採用してください。C H A P T E R 1 4 マルチ環境の問題点とオプション プロセス間通信 263  Apple Computer, Inc. February 2001 標準のアップルイベントスイートおよび関連するデータ構造は、「save document」や「open document」などのローレベルの書類管理タスクのほか、テキスト処理やデータベース管理など の多様な機能分野に対して定義されています。適格な定義を持つアップルイベントスイートは、 AppleScriptを使用する高機能なスクリプティングインタフェースもサポートしています。 アップルイベントオブジェクトを作成するには時間がかかります。このため、パフォーマンスが 重要な場面では、アップルイベントが使用されることは多くありません。アップルイベントの作 成パフォーマンスを向上させるには、CarbonではAEBuildおよびAEStreamユーティリティを使用 します。これらは多くの場合、AEPutDescおよびAEPutParamよりも大幅に高速です。 単純な通知のブロードキャスト 分散化された通知とは、任意のプロセスがマシンごとの通知センターに投稿できるメッセージで す。通知センターは、同じマシン上にあり、通知の受信を必要としているすべてのプロセスにメッ セージをブロードキャストします。通知には送信元の識別子が含まれ、さらにオプションで追加 情報を含む辞書が含まれることもあります。分散化された通知は、Core Foundationの CFNotificationCenterオブジェクトおよびCocoaのNSDistributedNotificationCenterクラスによっ て実装されます。 分散化された通知は、単純な通知タイプのイベントに最適です。たとえば、ある通知が、基幹ハー ドウェアの特定の部分(ネットワークインタフェースやタイプセッタなど)のステータスを通知 するなどです。 分散化された通知の受信を許可されるプロセスのセットを制限する方法はありません。特定の通 知に対して登録を行ったすべてのプロセスが受信可能です。分散化された通知では、一意の登録 キーに文字列を使用するため、ネームスペースのコンフリクトが発生する可能性があります。 分散化された通知は真の意味での通知です。受信先には、通知に応答する機会がありません。 CFMessagePortによる生データの転送 CoreFoundationのCFMessagePortオブジェクトには、同一のマシン上にある1つのプロセスから 別のプロセスへ生データを転送するための、高速で効率のよいメカニズムが実装されています。 アップルイベントでは低速すぎる用途の場合には、CFMessagePortの使用を検討してください。264 プロセス間通信  Apple Computer, Inc. February 2001 C H A P T E R 1 4 マルチ環境の問題点とオプション BSDソケットによる通信 ソケットでは、任意の数のプロセス間での双方向通信がサポートされています。ソケットは、アド レスをファイルディスクリプタに関連付けるオブジェクトです。Mac OS Xでは、すべてのネット ワーク通信で、ソケットを使用する必要があります。 ソケットには、ファイルおよびネットワークという2つのバリアントがあります。ファイルソケッ トはファイル名でアドレスされ、さまざまな理由から、異なるマシン上にあるプロセス間での通信 をサポートしていません。ネットワークソケットはネットワークホスト名とポート番号の組み合わ せを使用してアドレスされます(たとえば、www.apple.co.jpと80)。どちらのタイプのソケット も、POSIXコールreadおよびwriteを使用して読み書きされます。 Core Foundationフレームワークには、ソケットのアブストラクションが含まれています (CFSocket/CFRunLoop)。ローソケットAPIコールに代えてCFSocketを使用すると、Core Foundation は異種オペレーティングシステム間に想定される相違点を抽象化し、よりプログラミングの容易な オブジェクト指向のインタフェースを提供します。 CFSocketとCFRunLoopを併用することにより、あるソケットから受信したデータを、他のソース から受信したデータとともに多重化することができます。これによりアプリケーション内のスレッ ド数を必要最小限に抑えることができ、パフォーマンスの向上に寄与します。CFMessagePortも CFRunLoopと併用することができます。 BSDのパイプによる通信 パイプとは、1つの送信端と1つの受信端を持った通信ポータルです。パイプに書き込まれたデー タは、FIFO(First In、First Out)の順で読み出されます。パイプに対してデータを読み書きする には、パイプの読み出し端と書き込み端の両方がオープンしている必要があります。 名前のないパイプは共通の親プロセスにより作成される必要があります。この親プロセスが、 パイプのディスクリプタ番号を両方の子プロセスに渡します。この機能は、通常、コマンドライ ンシェルにより、パイプ結合されているプロセスを接続するのに使用されます(たとえば、「cat magic.txt | grep -e Gwendoyln」は、magic.textの内容を、Cライブラリのコンソール入力スト リーム経由でgrepコマンドに送信します)。 名前付きパイプは、ファイルシステム内では、FIFOスペシャルファイルと呼ばれる1つのファイル として表現されます。名前付きパイプは、送信側プロセスと受信側プロセスの両方が識別できる一 意の名前で作成される必要があります。C H A P T E R 1 4 マルチ環境の問題点とオプション プロセス間通信 265  Apple Computer, Inc. February 2001 パイプに対する少量のデータの読み書きは、書き込まれるデータのサイズがカーネルに固有の特 定のサイズより小さい場合には、アトミックな動作となります。これにより、名前付きパイプの 受信端で、パーシャルバッファを読み取ることを避けることができます。 BSDシグナルによる例外処理 シグナルは、特定のプロセス上で呼び出すことができるソフトウェアインタラプトです。通常、 デフォルトのシグナル処理動作(システムが提供するもの)は、シグナルを受信すると即座にそ のプロセスを終了させます。プロセスは、シグナルハンドラルーチンをインストールすることに より、この動作をオーバーライドすることができます。 シグナルの最も一般的な使用例は、カーネルが、無効なアドレスエラーやゼロによる除算エラーな どの例外条件をプロセスに通知するのに使用する場合です。別の一般的な使用例は、コマンドライ ンのkillツールです。このツールは、ユーザが指定した任意のシグナルをプロセスに送信できます が、最も一般的には、SIGHUPでプロセスを終了させるのに使用されます。 シグナルは複雑なため効率的な使用が難しい上に、異なるオペレーティングシステム上では異な る動作をする傾向があります(信頼性が低い場合もあります)。シグナルのネームスペースは、 単一の整数によって構成されるため限定されており、サードパーティのシグナル番号やオペレー ティングシステムの今後のバージョンで使用されるシグナル番号と衝突する可能性があります。 したがって、通常のプロセス間通信の範囲内では、一般にシグナルの使用は避けます。 共有メモリによる大規模リソースの共有 共有メモリはメモリの1つの領域で、プロセスによって割り当てられ、複数のプロセスが読み出 す(場合によっては書き込む)ことを主な目的とします。この領域は、各プロセスのアドレス空 間に、アクセス権とともにマップされます。このメモリ領域へのアクセスは、ある種のロック機 構を実装したPOSIXセマフォにより管理されます。 共有メモリには、ほかのプロセス間通信と比較して、2つの顕著な利点があります。 ■ 適切なアクセス権を持つすべてのプロセスに、共有メモリ領域での読み書きが許可されます。 ■ いずれのプロセスも、直接データを読み取るため、データがコピーされることがありません。 共有メモリの欠点は、非常に脆弱なことです。共有メモリ領域内の1つのデータ構造が破損する と、そのデータ構造を参照しているすべてのプロセスが破壊されます。このため、共有メモリの 最適な使用方法は、単純に生データ(生ピクセルやオーディオ)を格納するための倉庫として使 い、データ構造へのアクセスはより一般的なプロセス間通信を使います。266 プロセス間通信  Apple Computer, Inc. February 2001 C H A P T E R 1 4 マルチ環境の問題点とオプション 他のアプリケーションへのサービスの提供 Cocoaアプリケーションは、「標準サービス」機能を通して、自身の機能をほかのアプリケーショ ンに提供することができます。ほかのアプリケーションの側では、提供されるサービスをあらか じめ知っている必要はありません。サービス提供側のアプリケーションは、特定のタイプのデー タに対して自身が実行できる操作(たとえば、選択されたファイルの暗号化処理や、選択された URLを開く操作など)を通知します。そのサービスを利用するアプリケーションは、「サービス」 メニューを通してその機能にアクセスする権限を自動的に獲得します。利用側のアプリケーショ ンは、提供される処理をあらかじめ知っている必要はありません。手元のデータのタイプを示す と、「サービス」メニューがそのタイプに対して適用可能な処理を利用可能にします。このよう に、サービス機能は、Cocoaアプリケーションに対して、相互の機能を拡張する手段を制約を伴 わずに提供します。データの転送はクリップボードを通して行われ、一方向と双方向のいずれも 可能です。 分散オブジェクトによる他のプロセスの呼び出し Objective-Cのランタイムは、「分散オブジェクト」と呼ばれるプロセス 間メッセージングソ リューションをサポートしています。このメカニズムを使用すると、Cocoaアプリケーションか ら別のCocoaアプリケーションにあるオブジェクトを呼び出すことができます。呼び出しは同期 的にも非同期的にも行えます。同期的とは、受信側からの応答を待機する間、送信側プロセスが ブロックされることを意味し、非同期的とは、応答が不要で送信側がブロックされないことを意 味します。 分散オブジェクトの詳細については、『The Objective-C Language Reference』および『Foundation Framework Reference』を参照してください。 Machポートオブジェクトを使用したメッセージング Machポートオブジェクトは、プロセス間でメッセージを転送するための、標準的、安全、かつ効 率的な構造体を実装しています。Mac OS X上のほかのすべてのプロセス間通信プリミティブは、 いずれかのレベルでMachポートオブジェクトを使用しています。 送信側プロセスと受信側プロセスは独立にスケジュールされているため、特定のプロセスが、 送信されたメッセージを特定の時刻に受信可能である保証はありません。したがって、着信する メッセージはキューに格納され、受信側プロセスが処理可能になったときにキューから取り出さ れます。C H A P T E R 1 4 マルチ環境の問題点とオプション Library Managerと実行可能フォーマット 267  Apple Computer, Inc. February 2001 適切なアクセス権(Machの用語では「ポートアクセス権」)を持たないプロセスは、指定のポート にアクセスできません。このメカニズムは、Machカーネルの特徴である安定性をもたらす要素の 1つです。 ほかに可能な手段がある場合には、直接Machメッセージングを使用することは避けてください。 将来のバージョンではカーネルのインタフェースが変更される可能性があります。 Machポートオブジェクトは、BSDソケットで使用されるようなインターネットアドレスポート番 号とは無関係です。混同しないように注意してください(「BSDソケットによる通信」(264ペー ジ)を参照)。Machポートオブジェクトは、Carbonグラフィックポートプリミティブ(GrafPort) とも無関係です。 Library Managerと実行可能フォーマット ランタイム環境(あるいは単にランタイム)とは、コードとデータがメモリ内にロードされて管 理される方法を決定する規約のセットのことです。Mac OS X では、dyld(dynamic link editor) とCFM(Code Fragment Manager)の2つの主要なランタイム環境がサポートされています。 1つのシステム上に複数のランタイム環境が存在することによって発生するやっかいな問題に は、たとえば一方のランタイム用に準備されたコードがもう一方のランタイム用に準備された コードにアクセスすることをどのように許可するかという問題があります。このセクションで は、この問題について、また複数のランタイム環境を橋渡しするためにアップル社が開発したテ クノロジーについて説明します。また、デベロッパに推奨されるランタイムへのアプローチに対 するアップル社の見解も示します。 このセクションでは、dyldランタイムとCFMランタイムを簡単に比較し、さらにこれらのランタイ ムが処理するコードとデータの実行可能フォーマットについて説明します。CFMベースのランタ イム環境の詳細については、Code Fragment Managerを対象とするCarbonのマニュアル、特に 「CFM-Based Runtime Architecture」の章を参照してください。また、ダイナミックリンクエディタ の詳細については、本書の「フレームワーク」の章の「ダイナミック共有ライブラリ」(136ペー ジ)を参照してください。また、CFM実行可能ファイルをMac OS Xに対応させる方法の説明は、 「CFM実行可能ファイル」(230ページ)を参照してください。268 Library Managerと実行可能フォーマット  Apple Computer, Inc. February 2001 C H A P T E R 1 4 マルチ環境の問題点とオプション ランタイム環境の比較 CFMベースのアプリケーションは、dyldベースのフレームワークに含まれる関数を直接呼び出 すことができません。また、この逆も同様です。この制限と、アップル社のソリューションを理 解するためには、まず、この2つの環境の主な違いを知っておく必要があります。 CFMとdyld CFM(Code Fragment Manager)とdyld(dynamic link editor)はともにライブラリマネージャで す(他の呼び方をすることもできますが、ここでの説明では、「ライブラリマネージャ」という呼 び方で問題ありません)。ライブラリマネージャは、コードとデータを含む1つまたは複数のコン テナ(モジュール)をメモリにマップし、それらを実行可能な状態にします。実行可能な状態に するために、ライブラリマネージャは主として、外部で定義されているシンボルへの参照を解決 しようとします。これらのシンボルは通常、ビルド時にコンテナにリンクされた共有ライブラリ の中で定義されています。 ライブラリマネージャとしてのdyldとCFMの動作の違いは、いつ、これらの参照を解決して、 適切なライブラリ内のアドレスにバインドするかです。CFMはスタティックなアプローチをと ります。つまり、CFMは、コードとデータの各コンテナ(フラグメントと呼ばれます)を1つの まとまり(クロージャと呼ばれます)として準備