SlideShare a Scribd company logo
1 of 10
Download to read offline
Integrating Intel into a
                    PowerPC Network
                                       Graham Lee
                                  UNIX Systems Manager,
                       University of Oxford Physics Practical Course
                              leeg@teaching.physics.ox.ac.uk




Computing lab. and support infrastructure comprising 39 PowerPC systems; mostly iMac G5 but two Xserves, some other client models. Until
recently...
Why I’m here
One of these Macs is an Intel one; my goal is to make using it no different from the PowerPC ones
We’ve been here before

           • Mac already migrated M68k - PPC
           • Apple’s Unix is Darwin, based on Mach OS
           • Mach so far ported to >10 arch’s
           • Already use “fat/universal” binaries for G5
           • Mach-O makes this easy(!?)

Apple have already had to switch processors once; this is just mentioned for completeness as the
implementation was nothing like the Universal Binary mechanism in place today.
Darwin derived from NeXTSTEP, supported on 68k, i386, sparc, PA-RISC (via rhapsody on i386/ppc)
Mach also available on ppc, ppc64, 88k, alpha, VAX...
It’s been in use for a while on Mac; dual-architecture ppc/ppc64 libs and bins to support 64bit-
specific code on G5, but still allowing G3/G4s to run 32-bit versions here since 10.2.8
With ELF, would have different versions of SOs in different locations and manipulate
LD_LIBRARY_PATH to find the appropriate ones; c.f. Debian universal. Mach-O means we can store
a single bin/lib with code appropriate for all arch’s, less to maintain.
$ file uname-q
uname-q: Mach-O universal binary with 4
architectures
uname-q (for architecture i386):
        Mach-O executable i386
uname-q (for architecture ppc):
        Mach-O executable ppc
uname-q (for architecture ppc64):
        Mach-O 64-bit executable ppc64
uname-q (for architecture m68k):
        Mach-O executable for m68k architecture



This file contains executable code for different architectures (in fact for different OS as well). When
executed, the loader will decide which is the most appropriate code to run. It does make the binary
bigger (on disk anyway; the kernel only loads the appropriate version so the resident size is
unchanged), but then most of the storage consumed by an app is in holding resources like images,
localised text etc....Unrelated to Rosetta.
Still a way to go...

           •   No OS X Server/i386

           •   OS X Server >10.4.4

           •   Installation/NetBoot
               images arch-dependent
                                                       http://www.bombich.com




Depending on needs, it may not be possible to go for a completely OS X/i386 environment. Some
Server functions can be carried out by client ver (or even other UNIX) but not all. Some server
installations still using Panther, can’t support Intel clients fully.
Not supported to have a single boot image for both architectures at present, although alledgedly
possible (and certainly is in principle). Means generating and maintaining images for each arch.
NetRestore is a useful tool for such imaging, and supports both platforms. Have to indicate that
each image is for each platform, OS X Server then serves up the right image (using BSDP)
Distribution
         •Fink, darwinports assume host arch only
         •Maintain/distribute separate trees
         •Or combine and distribute single PPC/i386 tree
         $ lipo gnuplot_ppc gnuplot_i386 
         -create -output gnuplot_u
         $ file gnuplot_u
         gnuplot_u: Mach-O universal binary
         with 2 architectures [...]



Usual suspects for distributing FLOSS to Macs are Fink and Darwinports. Both work well in a
networked environment but at time of writing, neither make it easy to generate unibins of their
packages. PPC-only distribution is one consideration, but really doesn’t work “universally” (some
stuff can’t be Rosettad). We could build and maintain distinct hierarchies, but then we’d essentially
split the network down the arch line - exactly what we want to avoid. Instead we can perform some
“lipostiction” - build the binaries separately and glue them together. This produces the same file as
if we’d compiled both arch’s in from the start - and it’s scriptable (exercise for reader).
Some gotchas include ensuring both segments can read the same config file, if we’re using the
same prefix (i.e. keep versions in sync); remembering to distribute universal dylibs where
appropriate too (see next slide)
$ otool -L gnuplot_u
gnuplot_u:
        /System/Library/Frameworks/
CoreServices.framework/Versions/A/CoreServices
(compatibility version 1.0.0, current version
18.0.0)
        /System/Library/Frameworks/
ApplicationServices.framework/Versions/A/
ApplicationServices (compatibility version
1.0.0, current version 22.0.0)
        /usr/lib/libz.1.dylib (compatibility
version 1.0.0, current version 1.2.3)
        /sw/lib/libgd.2.dylib (compatibility
version 3.0.0, current version 3.0.0) [...]

How do we know which libraries to lipo (or otherwise provide universal versions of)? otool: it’s like
ldd on ELF platforms. It’s also like objdump, and a lot of other cool stuff too. dylibs similar to SOs.
Absolute final last
                         resort
                                             (ever)

         $ arch
         i386
         $ export PATH=/usr/local/`arch`/bin:
         [...]




If it all really does go pear-shaped, you could always configure each system differently depending
upon its architecture. However as that’s what we’re trying to avoid I’m really not going to explain
too much about it; it’s wrong. Wrong wrong wrong wrong wrong. I’ve not had to do this *touches
wood, kisses lucky rabbit foot, picks four-leafed clover*
One more thing...
           •   Rosetta works ppc ->
               i386, not i386 -> ppc

           •   Xcode emits host-arch-
               only binaries by default

           •   /Library/Application
               Support/Apple/Developer
               Tools/Project Templates/

           •   insert “ARCHS=
               (ppc,i386,);”



Some applications may need tweaking to work well across both architectures, I’ll choose Xcode as
an example as I know about it. In default state, a “Standard Tool” builds in Debug mode which is
host arch only; if I build on i386 then log in at PPC my tool won’t run. Create new project templates
which always emit universal binaries. These can go in e.g. /Network/Library/Application Support/...
More Info
             NetRestore: http://www.bombich.com
                Fink: http://fink.sourceforge.net
         Darwinports: http://darwinports.opendarwin.org
            OS X admin info: http://www.afp548.com

                                      Eric’s talk :-)

  Slides will be available at http://users.ox.ac.uk/~wadh1342




That was a short description of what happens when an Intel Mac joins a PPC network, and some of
the considerations to be made. Much more info is out there on the web, AFP548 is a great resource
for Mac sysadmins.

More Related Content

What's hot

Linuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best PracticesLinuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best Practiceschristophm
 
Icg hpc-user
Icg hpc-userIcg hpc-user
Icg hpc-usergdburton
 
Containers are the future of the Cloud
Containers are the future of the CloudContainers are the future of the Cloud
Containers are the future of the CloudPavel Odintsov
 
Wish list from PostgreSQL - Linux Kernel Summit 2009
Wish list from PostgreSQL - Linux Kernel Summit 2009Wish list from PostgreSQL - Linux Kernel Summit 2009
Wish list from PostgreSQL - Linux Kernel Summit 2009Takahiro Itagaki
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Dobrica Pavlinušić
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory AnalysisMoabi.com
 
[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practicalMoabi.com
 
2. Vagin. Linux containers. June 01, 2013
2. Vagin. Linux containers. June 01, 20132. Vagin. Linux containers. June 01, 2013
2. Vagin. Linux containers. June 01, 2013ru-fedora-moscow-2013
 
Overview of linux kernel development
Overview of linux kernel developmentOverview of linux kernel development
Overview of linux kernel developmentPushkar Pashupat
 
Linux Kernel Programming
Linux Kernel ProgrammingLinux Kernel Programming
Linux Kernel ProgrammingNalin Sharma
 
ODSA PoC: Network Flow Processor Overview
ODSA PoC: Network Flow Processor OverviewODSA PoC: Network Flow Processor Overview
ODSA PoC: Network Flow Processor Overviewjennimenni
 
Functional approach to packet processing
Functional approach to packet processingFunctional approach to packet processing
Functional approach to packet processingNicola Bonelli
 
Linux Locking Mechanisms
Linux Locking MechanismsLinux Locking Mechanisms
Linux Locking MechanismsKernel TLV
 
Kernel Recipes 2016 -
Kernel Recipes 2016 - Kernel Recipes 2016 -
Kernel Recipes 2016 - Anne Nicolas
 
Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Boden Russell
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containersGoogle
 

What's hot (20)

Os
OsOs
Os
 
Linuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best PracticesLinuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best Practices
 
Icg hpc-user
Icg hpc-userIcg hpc-user
Icg hpc-user
 
Containers are the future of the Cloud
Containers are the future of the CloudContainers are the future of the Cloud
Containers are the future of the Cloud
 
Wish list from PostgreSQL - Linux Kernel Summit 2009
Wish list from PostgreSQL - Linux Kernel Summit 2009Wish list from PostgreSQL - Linux Kernel Summit 2009
Wish list from PostgreSQL - Linux Kernel Summit 2009
 
Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)Virtualization which isn't: LXC (Linux Containers)
Virtualization which isn't: LXC (Linux Containers)
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
 
[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical
 
2. Vagin. Linux containers. June 01, 2013
2. Vagin. Linux containers. June 01, 20132. Vagin. Linux containers. June 01, 2013
2. Vagin. Linux containers. June 01, 2013
 
Overview of linux kernel development
Overview of linux kernel developmentOverview of linux kernel development
Overview of linux kernel development
 
Linux Kernel Programming
Linux Kernel ProgrammingLinux Kernel Programming
Linux Kernel Programming
 
ODSA PoC: Network Flow Processor Overview
ODSA PoC: Network Flow Processor OverviewODSA PoC: Network Flow Processor Overview
ODSA PoC: Network Flow Processor Overview
 
Functional approach to packet processing
Functional approach to packet processingFunctional approach to packet processing
Functional approach to packet processing
 
Linux Locking Mechanisms
Linux Locking MechanismsLinux Locking Mechanisms
Linux Locking Mechanisms
 
Kernel Recipes 2016 -
Kernel Recipes 2016 - Kernel Recipes 2016 -
Kernel Recipes 2016 -
 
Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)Realizing Linux Containers (LXC)
Realizing Linux Containers (LXC)
 
Kernel modules
Kernel modulesKernel modules
Kernel modules
 
PF_DIRECT@TMA12
PF_DIRECT@TMA12PF_DIRECT@TMA12
PF_DIRECT@TMA12
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
 
PFQ@ PAM12
PFQ@ PAM12PFQ@ PAM12
PFQ@ PAM12
 

Viewers also liked

Sign your code
Sign your codeSign your code
Sign your codeGraham Lee
 
Dial M For Mitigation
Dial M For MitigationDial M For Mitigation
Dial M For MitigationGraham Lee
 
Taking a Test Drive: iOS Dev UK guide to TDD
Taking a Test Drive: iOS Dev UK guide to TDDTaking a Test Drive: iOS Dev UK guide to TDD
Taking a Test Drive: iOS Dev UK guide to TDDGraham Lee
 
Cross platform Objective-C Strategy
Cross platform Objective-C StrategyCross platform Objective-C Strategy
Cross platform Objective-C StrategyGraham Lee
 
Crypto storage
Crypto storageCrypto storage
Crypto storageGraham Lee
 
The Principled Programmer
The Principled ProgrammerThe Principled Programmer
The Principled ProgrammerGraham Lee
 
Beyond build and analyze
Beyond build and analyzeBeyond build and analyze
Beyond build and analyzeGraham Lee
 
Presentations and Podcasts - OxMug July 2009
Presentations and Podcasts - OxMug July 2009Presentations and Podcasts - OxMug July 2009
Presentations and Podcasts - OxMug July 2009Graham Lee
 
Designing a Secure Cocoa App
Designing a Secure Cocoa AppDesigning a Secure Cocoa App
Designing a Secure Cocoa AppGraham Lee
 

Viewers also liked (9)

Sign your code
Sign your codeSign your code
Sign your code
 
Dial M For Mitigation
Dial M For MitigationDial M For Mitigation
Dial M For Mitigation
 
Taking a Test Drive: iOS Dev UK guide to TDD
Taking a Test Drive: iOS Dev UK guide to TDDTaking a Test Drive: iOS Dev UK guide to TDD
Taking a Test Drive: iOS Dev UK guide to TDD
 
Cross platform Objective-C Strategy
Cross platform Objective-C StrategyCross platform Objective-C Strategy
Cross platform Objective-C Strategy
 
Crypto storage
Crypto storageCrypto storage
Crypto storage
 
The Principled Programmer
The Principled ProgrammerThe Principled Programmer
The Principled Programmer
 
Beyond build and analyze
Beyond build and analyzeBeyond build and analyze
Beyond build and analyze
 
Presentations and Podcasts - OxMug July 2009
Presentations and Podcasts - OxMug July 2009Presentations and Podcasts - OxMug July 2009
Presentations and Podcasts - OxMug July 2009
 
Designing a Secure Cocoa App
Designing a Secure Cocoa AppDesigning a Secure Cocoa App
Designing a Secure Cocoa App
 

Similar to Intel Briefing Notes

Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87Max Kleiner
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...Toradex
 
Brief Introduction to Parallella
Brief Introduction to ParallellaBrief Introduction to Parallella
Brief Introduction to ParallellaSomnath Mazumdar
 
Parallel and Distributed Computing Chapter 8
Parallel and Distributed Computing Chapter 8Parallel and Distributed Computing Chapter 8
Parallel and Distributed Computing Chapter 8AbdullahMunir32
 
At the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with OpenstackAt the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with OpenstackRyan Aydelott
 
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner FischerOSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner FischerNETWAYS
 
OSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 - Werner Fischer - Open power for the data centerOSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 - Werner Fischer - Open power for the data centerNETWAYS
 
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner FischerOSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner FischerNETWAYS
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQJérôme Petazzoni
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetesKrishna-Kumar
 
the NML project
the NML projectthe NML project
the NML projectLei Yang
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesNicola Ferraro
 
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleIntroduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleJérôme Petazzoni
 
Let's Containerize New York with Docker!
Let's Containerize New York with Docker!Let's Containerize New York with Docker!
Let's Containerize New York with Docker!Jérôme Petazzoni
 

Similar to Intel Briefing Notes (20)

Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
 
Cluster computer
Cluster  computerCluster  computer
Cluster computer
 
Brief Introduction to Parallella
Brief Introduction to ParallellaBrief Introduction to Parallella
Brief Introduction to Parallella
 
Parallel and Distributed Computing Chapter 8
Parallel and Distributed Computing Chapter 8Parallel and Distributed Computing Chapter 8
Parallel and Distributed Computing Chapter 8
 
At the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with OpenstackAt the Crossroads of HPC and Cloud Computing with Openstack
At the Crossroads of HPC and Cloud Computing with Openstack
 
C++0x
C++0xC++0x
C++0x
 
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner FischerOSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner Fischer
 
OSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 - Werner Fischer - Open power for the data centerOSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 - Werner Fischer - Open power for the data center
 
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner FischerOSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
 
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQDocker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
Docker Introduction, and what's new in 0.9 — Docker Palo Alto at RelateIQ
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
the NML project
the NML projectthe NML project
the NML project
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup SunnyvaleIntroduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
 
Let's Containerize New York with Docker!
Let's Containerize New York with Docker!Let's Containerize New York with Docker!
Let's Containerize New York with Docker!
 

Recently uploaded

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Intel Briefing Notes

  • 1. Integrating Intel into a PowerPC Network Graham Lee UNIX Systems Manager, University of Oxford Physics Practical Course leeg@teaching.physics.ox.ac.uk Computing lab. and support infrastructure comprising 39 PowerPC systems; mostly iMac G5 but two Xserves, some other client models. Until recently...
  • 2. Why I’m here One of these Macs is an Intel one; my goal is to make using it no different from the PowerPC ones
  • 3. We’ve been here before • Mac already migrated M68k - PPC • Apple’s Unix is Darwin, based on Mach OS • Mach so far ported to >10 arch’s • Already use “fat/universal” binaries for G5 • Mach-O makes this easy(!?) Apple have already had to switch processors once; this is just mentioned for completeness as the implementation was nothing like the Universal Binary mechanism in place today. Darwin derived from NeXTSTEP, supported on 68k, i386, sparc, PA-RISC (via rhapsody on i386/ppc) Mach also available on ppc, ppc64, 88k, alpha, VAX... It’s been in use for a while on Mac; dual-architecture ppc/ppc64 libs and bins to support 64bit- specific code on G5, but still allowing G3/G4s to run 32-bit versions here since 10.2.8 With ELF, would have different versions of SOs in different locations and manipulate LD_LIBRARY_PATH to find the appropriate ones; c.f. Debian universal. Mach-O means we can store a single bin/lib with code appropriate for all arch’s, less to maintain.
  • 4. $ file uname-q uname-q: Mach-O universal binary with 4 architectures uname-q (for architecture i386): Mach-O executable i386 uname-q (for architecture ppc): Mach-O executable ppc uname-q (for architecture ppc64): Mach-O 64-bit executable ppc64 uname-q (for architecture m68k): Mach-O executable for m68k architecture This file contains executable code for different architectures (in fact for different OS as well). When executed, the loader will decide which is the most appropriate code to run. It does make the binary bigger (on disk anyway; the kernel only loads the appropriate version so the resident size is unchanged), but then most of the storage consumed by an app is in holding resources like images, localised text etc....Unrelated to Rosetta.
  • 5. Still a way to go... • No OS X Server/i386 • OS X Server >10.4.4 • Installation/NetBoot images arch-dependent http://www.bombich.com Depending on needs, it may not be possible to go for a completely OS X/i386 environment. Some Server functions can be carried out by client ver (or even other UNIX) but not all. Some server installations still using Panther, can’t support Intel clients fully. Not supported to have a single boot image for both architectures at present, although alledgedly possible (and certainly is in principle). Means generating and maintaining images for each arch. NetRestore is a useful tool for such imaging, and supports both platforms. Have to indicate that each image is for each platform, OS X Server then serves up the right image (using BSDP)
  • 6. Distribution •Fink, darwinports assume host arch only •Maintain/distribute separate trees •Or combine and distribute single PPC/i386 tree $ lipo gnuplot_ppc gnuplot_i386 -create -output gnuplot_u $ file gnuplot_u gnuplot_u: Mach-O universal binary with 2 architectures [...] Usual suspects for distributing FLOSS to Macs are Fink and Darwinports. Both work well in a networked environment but at time of writing, neither make it easy to generate unibins of their packages. PPC-only distribution is one consideration, but really doesn’t work “universally” (some stuff can’t be Rosettad). We could build and maintain distinct hierarchies, but then we’d essentially split the network down the arch line - exactly what we want to avoid. Instead we can perform some “lipostiction” - build the binaries separately and glue them together. This produces the same file as if we’d compiled both arch’s in from the start - and it’s scriptable (exercise for reader). Some gotchas include ensuring both segments can read the same config file, if we’re using the same prefix (i.e. keep versions in sync); remembering to distribute universal dylibs where appropriate too (see next slide)
  • 7. $ otool -L gnuplot_u gnuplot_u: /System/Library/Frameworks/ CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0) /System/Library/Frameworks/ ApplicationServices.framework/Versions/A/ ApplicationServices (compatibility version 1.0.0, current version 22.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) /sw/lib/libgd.2.dylib (compatibility version 3.0.0, current version 3.0.0) [...] How do we know which libraries to lipo (or otherwise provide universal versions of)? otool: it’s like ldd on ELF platforms. It’s also like objdump, and a lot of other cool stuff too. dylibs similar to SOs.
  • 8. Absolute final last resort (ever) $ arch i386 $ export PATH=/usr/local/`arch`/bin: [...] If it all really does go pear-shaped, you could always configure each system differently depending upon its architecture. However as that’s what we’re trying to avoid I’m really not going to explain too much about it; it’s wrong. Wrong wrong wrong wrong wrong. I’ve not had to do this *touches wood, kisses lucky rabbit foot, picks four-leafed clover*
  • 9. One more thing... • Rosetta works ppc -> i386, not i386 -> ppc • Xcode emits host-arch- only binaries by default • /Library/Application Support/Apple/Developer Tools/Project Templates/ • insert “ARCHS= (ppc,i386,);” Some applications may need tweaking to work well across both architectures, I’ll choose Xcode as an example as I know about it. In default state, a “Standard Tool” builds in Debug mode which is host arch only; if I build on i386 then log in at PPC my tool won’t run. Create new project templates which always emit universal binaries. These can go in e.g. /Network/Library/Application Support/...
  • 10. More Info NetRestore: http://www.bombich.com Fink: http://fink.sourceforge.net Darwinports: http://darwinports.opendarwin.org OS X admin info: http://www.afp548.com Eric’s talk :-) Slides will be available at http://users.ox.ac.uk/~wadh1342 That was a short description of what happens when an Intel Mac joins a PPC network, and some of the considerations to be made. Much more info is out there on the web, AFP548 is a great resource for Mac sysadmins.