SlideShare a Scribd company logo
1 of 20
Download to read offline
Unix to Unix Wrapper Library (B64)


                   UUWL Shanghai Solution Center Team
Cheng Yan-Zhang,   HP RISC Migrations Solutions Lead
Bruno Cornec       HP EMEA Open Source Profession Lead
Arnaud Meurant     HP WW OSSI & RISC Migrations
Introducing Myself
●
    Software engineering and Unices since 1988
    ●
        Mostly Configuration Management Systems (CMS), Build systems, quality tools,
        on multiple commercial Unix systems
    ●
        Discover Open Source & Linux (OSL) & first contributions in 1993
    ●
        Full time on OSL since 1995, first as HP reseller then @HP
●
    Currently:
    ●
        Master Technology Architect on OSL for the HP/Intel Solution Center, Grenoble
    ●
        OSL HP Advocate
    ●
        EMEA OSL HP Profession Lead
    ●
        Solutions Linux Conference and OWF board member
    ●
        MondoRescue, Dploy.org, Project-Builder.org project lead
    ●
        LinuxCOE, mrepo, tellico, rinse, fossology, collectl contributor
    ●
        FOSSBazaar and OSL Governance enthusiast
    ●
        Mandriva, Mageia, Fedora packager
2                                Bruno Cornec
Agenda




3   ©2010
    ©2009 HP Confidential Hat restricted
             / Intel / Red
Agenda

• UUWL Introduction
    •   Project Outline
    •   Goals and phased approach
• Architecture
    •   Global Architecture
    •   Implementation details
• Demo
• Project Deliverables
• Wrap-up / Next steps




4                                   HP / OSSI / Bruno Cornec
Context & Status
HP Intel RISC Migrations Program
Context:
    ●
        Work done as part of the joint HP Intel Solution Centers and Open Source Solutions
        Initiative work on RISC to Linux migrations
Goal:
    ●
        Accelerate and ease customer transitions from competition RISC/Unix to HP IA.
    ●
        Allow for easy integration inside their own developments
Timeline:
    ●
        2011-Oct-17: Solution Stack approved by HP/Intel - First phase targets Solaris to Linux
        migration, with a global architecture to support more migrations
    ●
        2011-12 → 2012-04: First phase Development
    ●
        2012-04-19: Second phase targets AIX to Linux migration, approved by HP TS WW
    ●
        2012-05 → 2012-11: Second phase Development
    ●
        2012-12 → 2013-03: Finalize tests, documentation and packaging
    ●
        More information available on http://www.hpintelco.net
5                                      HP / OSSI / Bruno Cornec
Project Goals
Definition and Targets

UUWL is:                                               UUWL is targeted at:
•   A porting tool for speeding up the Unix to         •   Reducing the cost of migration by saving 40%
    Unix/Linux migration of C/C++                          of total migration effort.
    applications.
                                                       •   covering >70% of all incompatibility issues in
•   Reducing the number of changes to be                   Linux porting, which may take about 60% of
    made to the original source code while                 porting effort
    migrating Unix-based applications, to cut
    down the time and effort it takes to be up         •   taking 5% of the porting effort in its study
    and running on Linux.
                                                       •   Taking out 15% of the porting effort of each
•   Designed to support porting from any Unix              project by leveraging code in it
    to any Unix, with phase 1 focussing on
    Solaris (9 and upper) to Linux and phase 2         •   Improving the stability of the migrated system
    from AIX to Linux.                                     with a tested layer
•   NOT a tool to detect porting issues nor to         •   RHEL 6 x86_64 as the test platform (gcc 4.1.x
    help with porting the build environment as             and above), with support of 32 bits apps as
    other tools like SLPK.                                 well.



6                                   HP / OSSI / Bruno Cornec
Architecture & Realization




7   ©2010
    ©2009 HP Confidential Hat restricted
             / Intel / Red
Technical Architecture on Solaris
Conceptual Approaches

                                                   Two migration approaches :
                                                   •   modifying the code of the original
                                                       application to make it use a set of new
                                                       portable system calls providence by
                                                       the UUWL, themselves being identical
                                                       from an interface perspective from
                                                       one Unix to another

                                                   •   keeping the original application
                                                       untouched. In that case, the
                                                       adaptation required should be
                                                       performed with an additional piece of
                                                       software, called the adapter, which
                                                       will in turn call the UUWL, and should
                                                       exist for each pair of source/target OS




8                       HP / OSSI / Bruno Cornec
Technical Architecture on AIX
Conceptual Approaches

                                                   Two migration approaches :
                                                   •   modifying the code of the original
                                                       application to make it use a set of new
                                                       portable system calls providence by
                                                       the UUWL, themselves being identical
                                                       from an interface perspective from
                                                       one Unix to another

                                                   •   keeping the original application
                                                       untouched. In that case, the
                                                       adaptation required should be
                                                       performed with an additional piece of
                                                       software, called the adapter, which
                                                       will in turn call the UUWL, and should
                                                       exist for each pair of source/target OS




9                       HP / OSSI / Bruno Cornec
Technical Details Approach 1
 Design and Implementation of UUWLfor Approach 1



                                                                           Change the source file to include
                                     A new entry is created in the UUWL    the related UUWL .h file
                                     for this function and realized        •new function names corresponds to the
An incompatible call is found        based on its specification on the       original one prefixed by “uuwl_” as much
                                                                             as possible, and similarly for include files
                                     source OS. It just calls the source
                                     function on the source OS.




                                     The application is now portable by
Application to be linked with the
                                     calling uuwl_ consistent and
UUWL library (with -luuwl) to work
                                     available system calls across
correctly
                                     OSes.




 10                                  HP / OSSI / Bruno Cornec
Technical Details Approach 2
Design and Implementation of UUWLfor Approach 2




11                            HP / OSSI / Bruno Cornec
UUWL characteristics
Summary of the Development
• Delivered:                                             Sloccount Results Effort:
     ●
         UUWL Source code                                Development Effort Estimate, Person-Years
     ●
      User Guide                                         (Person-Months) = 0.72 (8.63)
     ●
      Function List
                                                         (Basic COCOMO model, Person-Months = 2.4 *
     ●
      Tested sample programs ported with UUWL            (KSLOC**1.05))
• Coverage Summary:
                                                         Schedule Estimate, Years (Months) = 0.47 (5.67)
     ●
      Functions covered: 321
     ●
      Macros covered: 537                                (Basic COCOMO model, Months = 2.5 * (person-
     ●
      Structures covered: 51                             months**0.38))
• Sloccount Results Code:                                Estimated Average Number of Developers
     ●
      Include ansic=2002                                 (Effort/Schedule) = 1.52
     ●
      src_top_dir ansic=1367
                                                         Total Estimated Cost to Develop = $97112
     ●
      Total Physical Source Lines of Code (SLOC)
         ansic 3369 (99.62%)                              (average salary = $56,286/year, overhead = 2.40).
           sh      13 (0.38%)


12                                      HP / OSSI / Bruno Cornec
UUWL usage
Generic Steps to Use UUWL in Porting Approach 1 :
To Implement:                                                 To Verify:
1. Find the most commonly-used header file (ask               •   Is the program using the UUWL ?
   to the program owner, search for keywords e.g.                  $ ldd <executable_file>
   “common.h”)
2. Adds a #Include ''uuwl/UUW.h'' line in the                 •   Does the program run on the target OS ? 
   identified commonly-used header files or in all
   souce files if it doesn' t exist
3. Update the makefile by adapting compile
   options and referencing the UUWL library (-
   luuwl)
4. Update the original source code to replace non-
   portable system calls by the corresponding
   uuwl_ ones.
5. Compile the source code with new makefile
6. Fix other errors according to the compilation
   output


13                                 HP / OSSI / Bruno Cornec
UUWL usage
Generic Steps to Use UUWL in Porting Approach 2 :
To Implement:                                                 To Verify:
1. Find the most commonly-used header file (ask               •   Is the program using the UUWL ?
   to the program owner, search for keywords e.g.                  $ ldd <executable_file>
   “common.h”)
2. Adds a #Include ''uuwl/                                    •   Does the program run on the target OS ? 
   UUWLSolaristoLinuxAdapter.h'' line in the
   identified commonly-used header files or in all
   souce files if it doesn' t exist
3. Update the makefile by adapting compile
   options and referencing the UUWL library (-
   luuwl) and the related adapter
   --lUUWLSolarisToLinux)
4. Compile the source code with new makefile
5. Fix other errors according to the compilation
   output




14                                 HP / OSSI / Bruno Cornec
Sample UUWL Implementation
To prove the design and part of the functions
Sample Programs:                                       Sample Sourcecode Compilation:
                                                       •   $ gcc -DLINUX -DNFS -DVPRINTF -DKVM -DSVR4 -DSUNOS=55
•    sps on Solaris                                        -DMAXUSERS=30000 -DMAXTTYS=2500 -D_GNU_SOURCE -I/usr/include
                                                           -I. -lm -lrt -lcrypt -c -g -O2 -Wall filecount.c
•    apcd on Solaris
•    lpr on Solaris
                                                       •   Before adding UUWL header to the common header-sps.h
Targets:                                               •   sps.h:151:9: warning: extra tokens at end of #endif
                                                           directive
•    Work on Linux after adding the UUWL layer         •   In file included from filecount.c:1:
                                                       •   sps.h:273: error: field 'pr_pi' has incomplete type
     into the Solaris source-codes                     •   sps.h:276: error: field 'pr_p' has incomplete type
                                                       •   sps.h:282: error: field 'pr_pu' has incomplete type
•    Functions kept                                    •   sps.h:300:9: warning: extra tokens at end of #endif
                                                           directive
•    Changes to the source code reduced
     compared to a direct porting
                                                       •   After adding UUWL header to the common header-sps.h
•    Simple implementation process                     •   sps.h:151:9: warning: extra tokens at end of #endif
                                                           directive
                                                       •   sps.h:300:9: warning: extra tokens at end of #endif
                                                           directive




15                                  HP / OSSI / Bruno Cornec
Demo of porting
sps from Solaris
to Linux using the
UUWL



16             HP / OSSI / Bruno Cornec
Wrap-up / Next steps




17   ©2010
     ©2009 HP Confidential Hat restricted
              / Intel / Red
Deliverables
Project URL and Resources

Project home URL
•    http://uuwl.project-builder.org/
•    Source code viewer
•    Reference documents, a User's guide and links
•    Test code
•    The project is an HP OSRB approved project since 2012-02-17 (#10686 at
     http://pts.corp.hp.com/proposal_editor/?10686).
•    The code is delivered under the dual licences MIT and LGPLv2.1

To checkout source code from SVN:
•    svn co svn://svn.project-builder.org/uuwl/devel devel


To submit issues:
•    http://uuwl.project-builder.org/newticket



18                                    HP / OSSI / Bruno Cornec
Next steps
Project usage in PoCs
•    Large plane manufacturer interested to use it in 3 migration projects (US). Shanghai team
     asked to contribute to the setup and extend the UUWL.
•    2 Banks in UK are also in the funnel list.


Next phases :
•    Funding is under discussion for an HP-UX to Linux proprietary module (Phase 3) with HP WW
     TS


Other developments
•    Discussions are held with the SLPK team to see what commonalities and synergies can be
     setup.
•    Project has been internally announced (5000 persons) and also externally.
•    2 webinars done for phase 1 in May 2012 – 1 new webinar in Nov. 2012 for phase 1&2.
•    Use project-builder.org to produce packages for 120+ distribution tuples.
•    Official Mageia/Fedora packaging is a next step.


19                                   HP / OSSI / Bruno Cornec
Thank you !

           Q&A (B64)



20   ©2010
     ©2009 HP Confidential Hat restricted
              / Intel / Red

More Related Content

What's hot

Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Pradeep Singh
 
Affordable trustworthy-systems
Affordable trustworthy-systemsAffordable trustworthy-systems
Affordable trustworthy-systemsmicrokerneldude
 
A tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisorA tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisorLouie Lu
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishBruno Cornec
 

What's hot (9)

Nachos
NachosNachos
Nachos
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
 
Affordable trustworthy-systems
Affordable trustworthy-systemsAffordable trustworthy-systems
Affordable trustworthy-systems
 
A tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisorA tour of F9 microkernel and BitSec hypervisor
A tour of F9 microkernel and BitSec hypervisor
 
Microkernel design
Microkernel designMicrokernel design
Microkernel design
 
Implement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVMImplement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVM
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
 
Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0Linux Internals - Interview essentials - 1.0
Linux Internals - Interview essentials - 1.0
 
Embedded Linux On A R M
Embedded  Linux On  A R MEmbedded  Linux On  A R M
Embedded Linux On A R M
 

Viewers also liked

UN VIAJE A NINGUNA PARTE
UN VIAJE A NINGUNA PARTEUN VIAJE A NINGUNA PARTE
UN VIAJE A NINGUNA PARTE26197134
 
Search &amp; Selection Legal
Search &amp; Selection LegalSearch &amp; Selection Legal
Search &amp; Selection Legalsorraya
 
Digital 2B all'Università di Messina - Gestione Elettronica
Digital 2B all'Università di Messina - Gestione ElettronicaDigital 2B all'Università di Messina - Gestione Elettronica
Digital 2B all'Università di Messina - Gestione Elettronicadigital2b
 
VI concurso de fotografía matemática
VI concurso de fotografía matemáticaVI concurso de fotografía matemática
VI concurso de fotografía matemática26197134
 
Smithsonian Mason Semester Feb 09
Smithsonian Mason Semester Feb 09Smithsonian Mason Semester Feb 09
Smithsonian Mason Semester Feb 09guest637f81
 
Poesías María José
Poesías María JoséPoesías María José
Poesías María José26197134
 
Digital 2B al Linux Day 2011
Digital 2B al Linux Day 2011Digital 2B al Linux Day 2011
Digital 2B al Linux Day 2011digital2b
 

Viewers also liked (9)

Aggu
AgguAggu
Aggu
 
UN VIAJE A NINGUNA PARTE
UN VIAJE A NINGUNA PARTEUN VIAJE A NINGUNA PARTE
UN VIAJE A NINGUNA PARTE
 
Search &amp; Selection Legal
Search &amp; Selection LegalSearch &amp; Selection Legal
Search &amp; Selection Legal
 
Pusk
PuskPusk
Pusk
 
Digital 2B all'Università di Messina - Gestione Elettronica
Digital 2B all'Università di Messina - Gestione ElettronicaDigital 2B all'Università di Messina - Gestione Elettronica
Digital 2B all'Università di Messina - Gestione Elettronica
 
VI concurso de fotografía matemática
VI concurso de fotografía matemáticaVI concurso de fotografía matemática
VI concurso de fotografía matemática
 
Smithsonian Mason Semester Feb 09
Smithsonian Mason Semester Feb 09Smithsonian Mason Semester Feb 09
Smithsonian Mason Semester Feb 09
 
Poesías María José
Poesías María JoséPoesías María José
Poesías María José
 
Digital 2B al Linux Day 2011
Digital 2B al Linux Day 2011Digital 2B al Linux Day 2011
Digital 2B al Linux Day 2011
 

Similar to Unix to Linux Wrapper Library (B64

Docker Online Meetup #31: Unikernels
Docker Online Meetup #31: UnikernelsDocker Online Meetup #31: Unikernels
Docker Online Meetup #31: UnikernelsDocker, Inc.
 
Linux Environment- Linux vs Unix
Linux Environment- Linux vs UnixLinux Environment- Linux vs Unix
Linux Environment- Linux vs UnixTrinity Dwarka
 
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.Idit Levine
 
Cigna Innovation Summit
Cigna Innovation SummitCigna Innovation Summit
Cigna Innovation SummitIdit Levine
 
Cooperative Linux
Cooperative LinuxCooperative Linux
Cooperative LinuxAnkit Singh
 
Linux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingLinux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingJérôme Kehrli
 
Overview on Open Source Technology.pptx
Overview on Open Source Technology.pptxOverview on Open Source Technology.pptx
Overview on Open Source Technology.pptxDrRShaliniVISTAS
 
The UNICORE Project: Unikraft and OpenNebula
The UNICORE Project:  Unikraft and OpenNebulaThe UNICORE Project:  Unikraft and OpenNebula
The UNICORE Project: Unikraft and OpenNebulaOpenNebula Project
 
CSUC - UNICORE Project: UNIKernel Power
CSUC - UNICORE Project: UNIKernel PowerCSUC - UNICORE Project: UNIKernel Power
CSUC - UNICORE Project: UNIKernel PowerUNICORE_project
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)yalini97
 
Linux – an introduction
Linux – an introductionLinux – an introduction
Linux – an introductionWingston
 
Open source-options-v1
Open source-options-v1Open source-options-v1
Open source-options-v1Hieu Le Trung
 
Operating systems
Operating systemsOperating systems
Operating systemsanishgoel
 

Similar to Unix to Linux Wrapper Library (B64 (20)

Docker Online Meetup #31: Unikernels
Docker Online Meetup #31: UnikernelsDocker Online Meetup #31: Unikernels
Docker Online Meetup #31: Unikernels
 
Unik Slides
Unik SlidesUnik Slides
Unik Slides
 
Coud discovery chap 9
Coud discovery chap 9Coud discovery chap 9
Coud discovery chap 9
 
Linux Environment- Linux vs Unix
Linux Environment- Linux vs UnixLinux Environment- Linux vs Unix
Linux Environment- Linux vs Unix
 
Craft april17
Craft april17Craft april17
Craft april17
 
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
Linux, Unikernel, LinuxKit: towards redefining the cloud stack.
 
Cigna Innovation Summit
Cigna Innovation SummitCigna Innovation Summit
Cigna Innovation Summit
 
Cooperative Linux
Cooperative LinuxCooperative Linux
Cooperative Linux
 
Unikernelized Linux
Unikernelized LinuxUnikernelized Linux
Unikernelized Linux
 
Linux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingLinux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and Troubleshooting
 
Overview on Open Source Technology.pptx
Overview on Open Source Technology.pptxOverview on Open Source Technology.pptx
Overview on Open Source Technology.pptx
 
Ch1-Unix.pptx
Ch1-Unix.pptxCh1-Unix.pptx
Ch1-Unix.pptx
 
The UNICORE Project: Unikraft and OpenNebula
The UNICORE Project:  Unikraft and OpenNebulaThe UNICORE Project:  Unikraft and OpenNebula
The UNICORE Project: Unikraft and OpenNebula
 
CSUC - UNICORE Project: UNIKernel Power
CSUC - UNICORE Project: UNIKernel PowerCSUC - UNICORE Project: UNIKernel Power
CSUC - UNICORE Project: UNIKernel Power
 
UNICORE Project: Unikernel Power
UNICORE Project: Unikernel PowerUNICORE Project: Unikernel Power
UNICORE Project: Unikernel Power
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Linux – an introduction
Linux – an introductionLinux – an introduction
Linux – an introduction
 
Open source-options-v1
Open source-options-v1Open source-options-v1
Open source-options-v1
 
OS ppt.pdf
OS ppt.pdfOS ppt.pdf
OS ppt.pdf
 
Operating systems
Operating systemsOperating systems
Operating systems
 

More from Bruno Cornec

Diaporama-2023.pdf
Diaporama-2023.pdfDiaporama-2023.pdf
Diaporama-2023.pdfBruno Cornec
 
Concert Amicus Meus 2023
Concert Amicus Meus 2023Concert Amicus Meus 2023
Concert Amicus Meus 2023Bruno Cornec
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdfBruno Cornec
 
Diaporama Exultate 2022
Diaporama Exultate 2022Diaporama Exultate 2022
Diaporama Exultate 2022Bruno Cornec
 
Diaporama-2021.pdf
Diaporama-2021.pdfDiaporama-2021.pdf
Diaporama-2021.pdfBruno Cornec
 
Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresBruno Cornec
 
Diaporama Variations 2019
Diaporama Variations 2019Diaporama Variations 2019
Diaporama Variations 2019Bruno Cornec
 
Diaporama Exultate 2019
Diaporama Exultate 2019Diaporama Exultate 2019
Diaporama Exultate 2019Bruno Cornec
 
Diaporama Exultate 2018
Diaporama Exultate 2018Diaporama Exultate 2018
Diaporama Exultate 2018Bruno Cornec
 
Diaporama Exultate 2017
Diaporama Exultate 2017Diaporama Exultate 2017
Diaporama Exultate 2017Bruno Cornec
 
Diaporama 2018 Guerre de 100 ans
Diaporama 2018 Guerre de 100 ansDiaporama 2018 Guerre de 100 ans
Diaporama 2018 Guerre de 100 ansBruno Cornec
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxBruno Cornec
 
Diaporama 2011 Musique pour la Vierge
Diaporama 2011 Musique pour la ViergeDiaporama 2011 Musique pour la Vierge
Diaporama 2011 Musique pour la ViergeBruno Cornec
 
Diaporama 2012 Musique polychorale
Diaporama 2012 Musique polychoraleDiaporama 2012 Musique polychorale
Diaporama 2012 Musique polychoraleBruno Cornec
 
Diaporama 2016 Musique Allemande
Diaporama 2016 Musique AllemandeDiaporama 2016 Musique Allemande
Diaporama 2016 Musique AllemandeBruno Cornec
 
Diaporama 2015 François Ier
Diaporama 2015 François IerDiaporama 2015 François Ier
Diaporama 2015 François IerBruno Cornec
 
Guide Open Source Syntec Numérique
Guide Open Source Syntec NumériqueGuide Open Source Syntec Numérique
Guide Open Source Syntec NumériqueBruno Cornec
 
Using containers and Continuous Packaging to Build native FOSSology packages
Using containers and Continuous Packaging to Build native FOSSology packagesUsing containers and Continuous Packaging to Build native FOSSology packages
Using containers and Continuous Packaging to Build native FOSSology packagesBruno Cornec
 

More from Bruno Cornec (20)

Diaporama-TMG.pdf
Diaporama-TMG.pdfDiaporama-TMG.pdf
Diaporama-TMG.pdf
 
Diaporama-2023.pdf
Diaporama-2023.pdfDiaporama-2023.pdf
Diaporama-2023.pdf
 
Concert Amicus Meus 2023
Concert Amicus Meus 2023Concert Amicus Meus 2023
Concert Amicus Meus 2023
 
Docker-v3.pdf
Docker-v3.pdfDocker-v3.pdf
Docker-v3.pdf
 
intro-linux-v4.pdf
intro-linux-v4.pdfintro-linux-v4.pdf
intro-linux-v4.pdf
 
Diaporama Exultate 2022
Diaporama Exultate 2022Diaporama Exultate 2022
Diaporama Exultate 2022
 
Diaporama-2021.pdf
Diaporama-2021.pdfDiaporama-2021.pdf
Diaporama-2021.pdf
 
Introduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libresIntroduction à Linux et aux logiciels libres
Introduction à Linux et aux logiciels libres
 
Diaporama Variations 2019
Diaporama Variations 2019Diaporama Variations 2019
Diaporama Variations 2019
 
Diaporama Exultate 2019
Diaporama Exultate 2019Diaporama Exultate 2019
Diaporama Exultate 2019
 
Diaporama Exultate 2018
Diaporama Exultate 2018Diaporama Exultate 2018
Diaporama Exultate 2018
 
Diaporama Exultate 2017
Diaporama Exultate 2017Diaporama Exultate 2017
Diaporama Exultate 2017
 
Diaporama 2018 Guerre de 100 ans
Diaporama 2018 Guerre de 100 ansDiaporama 2018 Guerre de 100 ans
Diaporama 2018 Guerre de 100 ans
 
Introduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à LinuxIntroduction aux logiciels libres et à Linux
Introduction aux logiciels libres et à Linux
 
Diaporama 2011 Musique pour la Vierge
Diaporama 2011 Musique pour la ViergeDiaporama 2011 Musique pour la Vierge
Diaporama 2011 Musique pour la Vierge
 
Diaporama 2012 Musique polychorale
Diaporama 2012 Musique polychoraleDiaporama 2012 Musique polychorale
Diaporama 2012 Musique polychorale
 
Diaporama 2016 Musique Allemande
Diaporama 2016 Musique AllemandeDiaporama 2016 Musique Allemande
Diaporama 2016 Musique Allemande
 
Diaporama 2015 François Ier
Diaporama 2015 François IerDiaporama 2015 François Ier
Diaporama 2015 François Ier
 
Guide Open Source Syntec Numérique
Guide Open Source Syntec NumériqueGuide Open Source Syntec Numérique
Guide Open Source Syntec Numérique
 
Using containers and Continuous Packaging to Build native FOSSology packages
Using containers and Continuous Packaging to Build native FOSSology packagesUsing containers and Continuous Packaging to Build native FOSSology packages
Using containers and Continuous Packaging to Build native FOSSology packages
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Unix to Linux Wrapper Library (B64

  • 1. Unix to Unix Wrapper Library (B64) UUWL Shanghai Solution Center Team Cheng Yan-Zhang, HP RISC Migrations Solutions Lead Bruno Cornec HP EMEA Open Source Profession Lead Arnaud Meurant HP WW OSSI & RISC Migrations
  • 2. Introducing Myself ● Software engineering and Unices since 1988 ● Mostly Configuration Management Systems (CMS), Build systems, quality tools, on multiple commercial Unix systems ● Discover Open Source & Linux (OSL) & first contributions in 1993 ● Full time on OSL since 1995, first as HP reseller then @HP ● Currently: ● Master Technology Architect on OSL for the HP/Intel Solution Center, Grenoble ● OSL HP Advocate ● EMEA OSL HP Profession Lead ● Solutions Linux Conference and OWF board member ● MondoRescue, Dploy.org, Project-Builder.org project lead ● LinuxCOE, mrepo, tellico, rinse, fossology, collectl contributor ● FOSSBazaar and OSL Governance enthusiast ● Mandriva, Mageia, Fedora packager 2 Bruno Cornec
  • 3. Agenda 3 ©2010 ©2009 HP Confidential Hat restricted / Intel / Red
  • 4. Agenda • UUWL Introduction • Project Outline • Goals and phased approach • Architecture • Global Architecture • Implementation details • Demo • Project Deliverables • Wrap-up / Next steps 4 HP / OSSI / Bruno Cornec
  • 5. Context & Status HP Intel RISC Migrations Program Context: ● Work done as part of the joint HP Intel Solution Centers and Open Source Solutions Initiative work on RISC to Linux migrations Goal: ● Accelerate and ease customer transitions from competition RISC/Unix to HP IA. ● Allow for easy integration inside their own developments Timeline: ● 2011-Oct-17: Solution Stack approved by HP/Intel - First phase targets Solaris to Linux migration, with a global architecture to support more migrations ● 2011-12 → 2012-04: First phase Development ● 2012-04-19: Second phase targets AIX to Linux migration, approved by HP TS WW ● 2012-05 → 2012-11: Second phase Development ● 2012-12 → 2013-03: Finalize tests, documentation and packaging ● More information available on http://www.hpintelco.net 5 HP / OSSI / Bruno Cornec
  • 6. Project Goals Definition and Targets UUWL is: UUWL is targeted at: • A porting tool for speeding up the Unix to • Reducing the cost of migration by saving 40% Unix/Linux migration of C/C++ of total migration effort. applications. • covering >70% of all incompatibility issues in • Reducing the number of changes to be Linux porting, which may take about 60% of made to the original source code while porting effort migrating Unix-based applications, to cut down the time and effort it takes to be up • taking 5% of the porting effort in its study and running on Linux. • Taking out 15% of the porting effort of each • Designed to support porting from any Unix project by leveraging code in it to any Unix, with phase 1 focussing on Solaris (9 and upper) to Linux and phase 2 • Improving the stability of the migrated system from AIX to Linux. with a tested layer • NOT a tool to detect porting issues nor to • RHEL 6 x86_64 as the test platform (gcc 4.1.x help with porting the build environment as and above), with support of 32 bits apps as other tools like SLPK. well. 6 HP / OSSI / Bruno Cornec
  • 7. Architecture & Realization 7 ©2010 ©2009 HP Confidential Hat restricted / Intel / Red
  • 8. Technical Architecture on Solaris Conceptual Approaches Two migration approaches : • modifying the code of the original application to make it use a set of new portable system calls providence by the UUWL, themselves being identical from an interface perspective from one Unix to another • keeping the original application untouched. In that case, the adaptation required should be performed with an additional piece of software, called the adapter, which will in turn call the UUWL, and should exist for each pair of source/target OS 8 HP / OSSI / Bruno Cornec
  • 9. Technical Architecture on AIX Conceptual Approaches Two migration approaches : • modifying the code of the original application to make it use a set of new portable system calls providence by the UUWL, themselves being identical from an interface perspective from one Unix to another • keeping the original application untouched. In that case, the adaptation required should be performed with an additional piece of software, called the adapter, which will in turn call the UUWL, and should exist for each pair of source/target OS 9 HP / OSSI / Bruno Cornec
  • 10. Technical Details Approach 1 Design and Implementation of UUWLfor Approach 1 Change the source file to include A new entry is created in the UUWL the related UUWL .h file for this function and realized •new function names corresponds to the An incompatible call is found based on its specification on the original one prefixed by “uuwl_” as much as possible, and similarly for include files source OS. It just calls the source function on the source OS. The application is now portable by Application to be linked with the calling uuwl_ consistent and UUWL library (with -luuwl) to work available system calls across correctly OSes. 10 HP / OSSI / Bruno Cornec
  • 11. Technical Details Approach 2 Design and Implementation of UUWLfor Approach 2 11 HP / OSSI / Bruno Cornec
  • 12. UUWL characteristics Summary of the Development • Delivered: Sloccount Results Effort: ● UUWL Source code Development Effort Estimate, Person-Years ● User Guide (Person-Months) = 0.72 (8.63) ● Function List (Basic COCOMO model, Person-Months = 2.4 * ● Tested sample programs ported with UUWL (KSLOC**1.05)) • Coverage Summary: Schedule Estimate, Years (Months) = 0.47 (5.67) ● Functions covered: 321 ● Macros covered: 537 (Basic COCOMO model, Months = 2.5 * (person- ● Structures covered: 51 months**0.38)) • Sloccount Results Code: Estimated Average Number of Developers ● Include ansic=2002 (Effort/Schedule) = 1.52 ● src_top_dir ansic=1367 Total Estimated Cost to Develop = $97112 ● Total Physical Source Lines of Code (SLOC) ansic 3369 (99.62%) (average salary = $56,286/year, overhead = 2.40). sh 13 (0.38%) 12 HP / OSSI / Bruno Cornec
  • 13. UUWL usage Generic Steps to Use UUWL in Porting Approach 1 : To Implement: To Verify: 1. Find the most commonly-used header file (ask • Is the program using the UUWL ? to the program owner, search for keywords e.g. $ ldd <executable_file> “common.h”) 2. Adds a #Include ''uuwl/UUW.h'' line in the • Does the program run on the target OS ?  identified commonly-used header files or in all souce files if it doesn' t exist 3. Update the makefile by adapting compile options and referencing the UUWL library (- luuwl) 4. Update the original source code to replace non- portable system calls by the corresponding uuwl_ ones. 5. Compile the source code with new makefile 6. Fix other errors according to the compilation output 13 HP / OSSI / Bruno Cornec
  • 14. UUWL usage Generic Steps to Use UUWL in Porting Approach 2 : To Implement: To Verify: 1. Find the most commonly-used header file (ask • Is the program using the UUWL ? to the program owner, search for keywords e.g. $ ldd <executable_file> “common.h”) 2. Adds a #Include ''uuwl/ • Does the program run on the target OS ?  UUWLSolaristoLinuxAdapter.h'' line in the identified commonly-used header files or in all souce files if it doesn' t exist 3. Update the makefile by adapting compile options and referencing the UUWL library (- luuwl) and the related adapter --lUUWLSolarisToLinux) 4. Compile the source code with new makefile 5. Fix other errors according to the compilation output 14 HP / OSSI / Bruno Cornec
  • 15. Sample UUWL Implementation To prove the design and part of the functions Sample Programs: Sample Sourcecode Compilation: • $ gcc -DLINUX -DNFS -DVPRINTF -DKVM -DSVR4 -DSUNOS=55 • sps on Solaris -DMAXUSERS=30000 -DMAXTTYS=2500 -D_GNU_SOURCE -I/usr/include -I. -lm -lrt -lcrypt -c -g -O2 -Wall filecount.c • apcd on Solaris • lpr on Solaris • Before adding UUWL header to the common header-sps.h Targets: • sps.h:151:9: warning: extra tokens at end of #endif directive • Work on Linux after adding the UUWL layer • In file included from filecount.c:1: • sps.h:273: error: field 'pr_pi' has incomplete type into the Solaris source-codes • sps.h:276: error: field 'pr_p' has incomplete type • sps.h:282: error: field 'pr_pu' has incomplete type • Functions kept • sps.h:300:9: warning: extra tokens at end of #endif directive • Changes to the source code reduced compared to a direct porting • After adding UUWL header to the common header-sps.h • Simple implementation process • sps.h:151:9: warning: extra tokens at end of #endif directive • sps.h:300:9: warning: extra tokens at end of #endif directive 15 HP / OSSI / Bruno Cornec
  • 16. Demo of porting sps from Solaris to Linux using the UUWL 16 HP / OSSI / Bruno Cornec
  • 17. Wrap-up / Next steps 17 ©2010 ©2009 HP Confidential Hat restricted / Intel / Red
  • 18. Deliverables Project URL and Resources Project home URL • http://uuwl.project-builder.org/ • Source code viewer • Reference documents, a User's guide and links • Test code • The project is an HP OSRB approved project since 2012-02-17 (#10686 at http://pts.corp.hp.com/proposal_editor/?10686). • The code is delivered under the dual licences MIT and LGPLv2.1 To checkout source code from SVN: • svn co svn://svn.project-builder.org/uuwl/devel devel To submit issues: • http://uuwl.project-builder.org/newticket 18 HP / OSSI / Bruno Cornec
  • 19. Next steps Project usage in PoCs • Large plane manufacturer interested to use it in 3 migration projects (US). Shanghai team asked to contribute to the setup and extend the UUWL. • 2 Banks in UK are also in the funnel list. Next phases : • Funding is under discussion for an HP-UX to Linux proprietary module (Phase 3) with HP WW TS Other developments • Discussions are held with the SLPK team to see what commonalities and synergies can be setup. • Project has been internally announced (5000 persons) and also externally. • 2 webinars done for phase 1 in May 2012 – 1 new webinar in Nov. 2012 for phase 1&2. • Use project-builder.org to produce packages for 120+ distribution tuples. • Official Mageia/Fedora packaging is a next step. 19 HP / OSSI / Bruno Cornec
  • 20. Thank you ! Q&A (B64) 20 ©2010 ©2009 HP Confidential Hat restricted / Intel / Red