SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Hashstyling &Prelinks

  Horsepower your Linux system
What “distro” do you use?
   Ubuntu
   Slackware
   Debian
   Fedora
   BSD!!
   Gentoo!!!!!
Is your box sleepy!!
   If you have to wait for a program to start then you
    better be using windows……..
   How much time does KDE or Firefox take to load??
   Let’s give some power pills to your box

                               I look sick!!!
                               Nah
Here are the pills……
   Hastyling
•   you got to compile to hash style, preferably Gentoo
    or BSD



 Prelinks
 Will work on any distro, but 64bit will be voila…
What are Prelinks???
   Well there are libraries to be loaded at startup of a
    program…
   Most of them are shared with other programs
   Thus a lot of symbolic references needs to be
    resolved while startup.
   This is fast for smaller programs, but
   For programs like open office and Firefox- Pain
   My open office writer takes 20sec to load before
    prelinking and 11 after….
   Firefox takes <3 in place of 9
   Not to mention KDE loading at all( you time that)
Prelinks drawbacks
   You need to re-prelink every time you update your
    libraries or anything.
   Size of executables increases( just penalty on space
    though)
   It’s static. Libraries are bonded to the executables, It
    doesn’t work with dynamically loaded libraries
   So, the improvement in programs like open office is
    far lesser…
   Don’t worry…… Just keep following
Doing it with style: Hashstlye
   The new improvement in binutils and glibc called
    direct linking or –Bdirect is the next improvement in
    the field of faster computing.
   Careful… It’s still under development and not
    officially adopted.
   With Hashstyling people(l33t ones!!) have seen 50%
    improvements in dynamic linking , as in load times
   All of this is owing to new improvements in the new
    DT_GNU_HASH or gnu.hash. The older version was
    .hash.
How to prelink?
   It’s basically same in all distros
   Emerge or apt-get or yast or yum anything you use
   Just install “prelink”
   Run this command
   #prelink –amfRv
    a = all packages
    m = Conserve the virtual memory space
    f = force linking
   R = Random – randomize the address ordering, this
    enhances security against buffer overflows.
    v = I won’t tell that( no price for guessing either!)
Enhance KDE
   What you did on the last page was good enough to
    see the power, but some more tweaking is no harm
   Set KDE_IS_PRELINKED=quot;truequot; in
    /etc/env.d/*kdepaths* to inform KDE about the
    prelinking.
   Prelink cronjob: Set it up as a cron job, if you keep
    updating your libraries
   Generally not required for quarterly updaters
Just in case : if you don’t like it
   To remove prelinks:
   Remove the prelink cronjob
   Run $prelink –au
   Just uninstall it as you do for any other software
   Gentooers $ emerge –aC prelink

   And there are gentoo forums and irc channels to
    discuss any meshups( and there will be!!) you
    encounter
Hashstyling: Gentoo only
   Get THE latest version of binutils , glibc and
    gcc(4.2+) .( edit package.keywords)
   Follow the steps in order:
   1) emerge binutils
    $ binutils-config -l
    $ binutils-config # (Replace # with the
    corresponding number to binutils-2.17.50.0.3)
    $ emerge glibc
Edit make.conf
   Open /etc/make.conf and make this entry exactly
    with NO SPACES what so ever.
   LDFLAGS=quot;-Wl,--hash-style=both“
   If you already use some LD flags, change them and
    input these.
   Now we will rebuild the system with these new flags.
   $emerge –e world
   $emerge prelink
   $prelink –amfRv
Crosscheck
   Just run this on the executable you want to check
   $ readelf -a /usr/bin/nano | grep GNU_HASH
     [ 4] .gnu.hash GNU_HASH 00000000004009a0           000009a0
    0x000000006ffffef5              (GNU_HASH)           0x4009a0

More information on http://www.gentoo.org/doc/en/prelink-howto.xml


   Please ensure you are emerging binutils >=
    2.17.50.0.3
   That’s it guys: You have a very fast system now,
    but don’t go and mess with a “l33t” guy yet.
    There are other ways of improving performance.
Upgrade from patch to newer version
   In case you have an old hashstyled system which
    was based on patches then follow exactly, or good
    luck restarting the whole process again
   Remove -Wl,--hash-style from LDFLAGS
   Get the latest overlay from the svn
   Run
   $ LD_X=1 emerge -1 coreutils binutils glibc
   Add -Wl,--hash-style=both to LDFLAGS again
   Run:
   $ LD_X=1 emerge -e world
Continued
   Emerge prelink
   Prelink –amfRv
   Do not turn off power during the whole process
   That’s it
   In case…..System crashed!! Rebuild or go dig
    Gentoo forums

 I haven’t tested it, but a gentoo veteran have:
http://gentoo-wiki.com/User:Roderick
Gentoo hashstlye thread
   http://forums.gentoo.org/viewtopic-t-475538.html

   You may find the solutions to all your problems here,
   If you don’t post one….
Some glichy packages
   X11-drm
   Maadwifi-ng

   While compiling these packages just comment
    LDFLAGS in make.conf
The next level……
   Hope you have your CHOST and CFLAGS and USE
    flags right
   Don’t you dare use anything below i686
   Add “ –O2 –march=<your-cpu> -fomit-frame-pointer”
   MAKEOPTS =“-j?” Google for your processor
   If you arte having more than one system give a look
    to distcc
   And ya ccache
   Above two will save a lot of compile time.
Wanna ask something…..




   I know you have lot of question, just throw them,
    answer is NOT guaranteed 
If you have time go Gentoo…




             Thanks!!!

Contenu connexe

Tendances

Tendances (20)

Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
Os Whitaker
Os WhitakerOs Whitaker
Os Whitaker
 
SVN essentials
SVN essentialsSVN essentials
SVN essentials
 
C++ Production Debugging
C++ Production DebuggingC++ Production Debugging
C++ Production Debugging
 
Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016Cocoa tip for Cocoaheads Shanghai February 2016
Cocoa tip for Cocoaheads Shanghai February 2016
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachine
 
Newgenlib Installation on Ubuntu 12.04
Newgenlib Installation on Ubuntu 12.04Newgenlib Installation on Ubuntu 12.04
Newgenlib Installation on Ubuntu 12.04
 
PHP Deployment With SVN
PHP Deployment With SVNPHP Deployment With SVN
PHP Deployment With SVN
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
VS Debugging Tricks
VS Debugging TricksVS Debugging Tricks
VS Debugging Tricks
 
Instruction: dev environment
Instruction: dev environmentInstruction: dev environment
Instruction: dev environment
 
A Docker-based Development Environment Even I Can Understand
A Docker-based Development Environment Even I Can UnderstandA Docker-based Development Environment Even I Can Understand
A Docker-based Development Environment Even I Can Understand
 
Node.js essentials
 Node.js essentials Node.js essentials
Node.js essentials
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Holding a mule flow
Holding a mule flowHolding a mule flow
Holding a mule flow
 

En vedette (8)

Garden project
Garden projectGarden project
Garden project
 
QCBT Retreat
QCBT RetreatQCBT Retreat
QCBT Retreat
 
Bioregionalism
BioregionalismBioregionalism
Bioregionalism
 
Being a sustainable learner
Being a sustainable learnerBeing a sustainable learner
Being a sustainable learner
 
Supporting the vision
Supporting the visionSupporting the vision
Supporting the vision
 
Primetime permaculture
Primetime permaculturePrimetime permaculture
Primetime permaculture
 
Alg case study
Alg case study Alg case study
Alg case study
 
Marcos Ton Curriculum, Resume e Referências Linkedin
Marcos Ton Curriculum, Resume e Referências LinkedinMarcos Ton Curriculum, Resume e Referências Linkedin
Marcos Ton Curriculum, Resume e Referências Linkedin
 

Similaire à Hashstyling &Prelinks

Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
oscon2007
 
Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6
Carlos Eduardo
 

Similaire à Hashstyling &Prelinks (20)

Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!
 
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual Infrastructure
 
An introduction to SVN
An introduction to SVNAn introduction to SVN
An introduction to SVN
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
Os Wilhelm
Os WilhelmOs Wilhelm
Os Wilhelm
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler Icecc
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFS
 
Chef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureChef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructure
 
Steps to Create odbc connection linux
Steps to Create odbc connection linuxSteps to Create odbc connection linux
Steps to Create odbc connection linux
 
Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool box
 
Using Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled WorldUsing Erlang in an Embedded and Cross-Compiled World
Using Erlang in an Embedded and Cross-Compiled World
 
Ndp Slides
Ndp SlidesNdp Slides
Ndp Slides
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
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
Safe Software
 
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
Victor Rentea
 
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
Safe Software
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
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
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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, ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Hashstyling &Prelinks

  • 1. Hashstyling &Prelinks Horsepower your Linux system
  • 2. What “distro” do you use?  Ubuntu  Slackware  Debian  Fedora  BSD!!  Gentoo!!!!!
  • 3. Is your box sleepy!!  If you have to wait for a program to start then you better be using windows……..  How much time does KDE or Firefox take to load??  Let’s give some power pills to your box I look sick!!! Nah
  • 4. Here are the pills……  Hastyling • you got to compile to hash style, preferably Gentoo or BSD  Prelinks  Will work on any distro, but 64bit will be voila…
  • 5. What are Prelinks???  Well there are libraries to be loaded at startup of a program…  Most of them are shared with other programs  Thus a lot of symbolic references needs to be resolved while startup.  This is fast for smaller programs, but  For programs like open office and Firefox- Pain  My open office writer takes 20sec to load before prelinking and 11 after….  Firefox takes <3 in place of 9  Not to mention KDE loading at all( you time that)
  • 6. Prelinks drawbacks  You need to re-prelink every time you update your libraries or anything.  Size of executables increases( just penalty on space though)  It’s static. Libraries are bonded to the executables, It doesn’t work with dynamically loaded libraries  So, the improvement in programs like open office is far lesser…  Don’t worry…… Just keep following
  • 7. Doing it with style: Hashstlye  The new improvement in binutils and glibc called direct linking or –Bdirect is the next improvement in the field of faster computing.  Careful… It’s still under development and not officially adopted.  With Hashstyling people(l33t ones!!) have seen 50% improvements in dynamic linking , as in load times  All of this is owing to new improvements in the new DT_GNU_HASH or gnu.hash. The older version was .hash.
  • 8. How to prelink?  It’s basically same in all distros  Emerge or apt-get or yast or yum anything you use  Just install “prelink”  Run this command  #prelink –amfRv  a = all packages  m = Conserve the virtual memory space  f = force linking  R = Random – randomize the address ordering, this enhances security against buffer overflows.  v = I won’t tell that( no price for guessing either!)
  • 9. Enhance KDE  What you did on the last page was good enough to see the power, but some more tweaking is no harm  Set KDE_IS_PRELINKED=quot;truequot; in /etc/env.d/*kdepaths* to inform KDE about the prelinking.  Prelink cronjob: Set it up as a cron job, if you keep updating your libraries  Generally not required for quarterly updaters
  • 10. Just in case : if you don’t like it  To remove prelinks:  Remove the prelink cronjob  Run $prelink –au  Just uninstall it as you do for any other software  Gentooers $ emerge –aC prelink  And there are gentoo forums and irc channels to discuss any meshups( and there will be!!) you encounter
  • 11. Hashstyling: Gentoo only  Get THE latest version of binutils , glibc and gcc(4.2+) .( edit package.keywords)  Follow the steps in order:  1) emerge binutils  $ binutils-config -l  $ binutils-config # (Replace # with the corresponding number to binutils-2.17.50.0.3)  $ emerge glibc
  • 12. Edit make.conf  Open /etc/make.conf and make this entry exactly with NO SPACES what so ever.  LDFLAGS=quot;-Wl,--hash-style=both“  If you already use some LD flags, change them and input these.  Now we will rebuild the system with these new flags.  $emerge –e world  $emerge prelink  $prelink –amfRv
  • 13. Crosscheck  Just run this on the executable you want to check  $ readelf -a /usr/bin/nano | grep GNU_HASH [ 4] .gnu.hash GNU_HASH 00000000004009a0 000009a0 0x000000006ffffef5 (GNU_HASH) 0x4009a0 More information on http://www.gentoo.org/doc/en/prelink-howto.xml  Please ensure you are emerging binutils >= 2.17.50.0.3  That’s it guys: You have a very fast system now, but don’t go and mess with a “l33t” guy yet. There are other ways of improving performance.
  • 14. Upgrade from patch to newer version  In case you have an old hashstyled system which was based on patches then follow exactly, or good luck restarting the whole process again  Remove -Wl,--hash-style from LDFLAGS  Get the latest overlay from the svn  Run  $ LD_X=1 emerge -1 coreutils binutils glibc  Add -Wl,--hash-style=both to LDFLAGS again  Run:  $ LD_X=1 emerge -e world
  • 15. Continued  Emerge prelink  Prelink –amfRv  Do not turn off power during the whole process  That’s it  In case…..System crashed!! Rebuild or go dig Gentoo forums  I haven’t tested it, but a gentoo veteran have: http://gentoo-wiki.com/User:Roderick
  • 16. Gentoo hashstlye thread  http://forums.gentoo.org/viewtopic-t-475538.html  You may find the solutions to all your problems here,  If you don’t post one….
  • 17. Some glichy packages  X11-drm  Maadwifi-ng  While compiling these packages just comment LDFLAGS in make.conf
  • 18. The next level……  Hope you have your CHOST and CFLAGS and USE flags right  Don’t you dare use anything below i686  Add “ –O2 –march=<your-cpu> -fomit-frame-pointer”  MAKEOPTS =“-j?” Google for your processor  If you arte having more than one system give a look to distcc  And ya ccache  Above two will save a lot of compile time.
  • 19. Wanna ask something…..  I know you have lot of question, just throw them, answer is NOT guaranteed 
  • 20. If you have time go Gentoo… Thanks!!!