UPX: ένα όχι-και-τόσο μυστικό όπλο για υπολογιστή… αστραπή!

Γνωρίζετε πως ο σκληρός δίσκος και, γενικότερα, τα μέσα αποθήκευσης του υπολογιστή αποτελούν ένα από τα βασικότερα σημεία καθυστέρησης του; Ας δούμε πώς μειώνεται το πρόβλημα με το UPX.Fast-Five-Film.jpg

Σας υποσχέθηκα νωρίτερα, στην είδηση σχετικά με την κυκλοφορία του νέου LibreOffice, πως θα σας έδειχνα ένα κολπάκι με το οποίο μπορείτε να επιταχύνετε τη φόρτωση του – και που θεωρώ πλήρως απαράδεκτο πως δεν έχουν εφαρμόσει οι δημιουργοί του. Ήρθε η ώρα να σας το πω – ή, μάλλον, σας το είπα ήδη: το λένε UPX, αλλά πριν φτάσουμε στο “πώς”, θα πρέπει να σας εξηγήσω το “γιατί” (και, κυρίως, γιατί… έθαψα την παρεούλα του LibreOffice).

Πρώτα από όλα, ένα disclaimer: πολλοί έχουν κατακρίνει όσα είχα γράψει στο παρελθόν για το Linux. Μια διαφορά μας (και μου), που διέπει και το unregistered, είναι πως ΟΤΙΔΗΠΟΤΕ γράφουμε εδώ προσπαθούμε να “στέκει”. Όλοι μας. Το έχουμε ψάξει, το έχουμε δουλέψει, και δεν έχουμε απλά “μια προσωπική άποψη”, αλλά και αναφορές από τρίτους, πηγές, διασταύρωση πληροφοριών και… Γενικά, ό,τι λέμε, ή μπορείτε να το διασταυρώσετε και με άλλα sites, ή είναι “μετρήσιμο” και “αποδείξιμο”. Το ίδιο ισχύει και για όσα θα δούμε εδώ.

Το “κολπάκι” που θα κάνουμε δεν είναι στην πράξη ένα κολπάκι. Είναι, απλά, ένας έξυπνος τρόπος εφαρμογής συμπίεσης στα αρχεία, με μετρήσιμα αποτελέσματα. Το γιατί οδηγεί σε κέρδος επιδόσεων, επίσης θα το εξηγήσουμε – και όποιος διαφωνεί, ή δεν το πιστεύει, απλά… δεν γνωρίζει πώς λειτουργούν οι υπολογιστές.

Ody's thoughts

Και ναι, είμαι απόλυτος σε αυτό.

Ταυτόχρονα, όμως, δεν είναι και απόλυτα “ασφαλές”. Όχι, αν κάνει κανείς ό,τι πούμε, και εφαρμόσει όσα δούμε με λογική, δεν θα έχει το παραμικρό πρόβλημα. Αν κάνει ό,τι του καπνίσει, καταχαρούμενος με τα κέρδη που θα δει από την εφαρμογή του UPX, “πειράζοντας” όποιο αρχείο συναντά στο δίσκο του, θα συναντήσει πρόβλημα. Που μπορεί να φτάσει μέχρι και στην ανάγκη επανεγκατάστασης των Windows.

Αν αυτό σας κάνει να νιώθετε καλύτερα, πρέπει να είναι… ηλίθιος κάποιος για να συναντήσει πρόβλημα. Έτσι, αν δεν θεωρείτε τους εαυτούς σας “ηλίθιους”, απλά, δεν θα έχετε πρόβλημα. Αν μας γράψετε κανονικά, κάνετε ό,τι σας τη βιδώσει και, τελικά, συναντήσετε πρόβλημα, δεν φταίμε εμείς ή το UPX: μάλλον θα πρέπει να αναθεωρήσετε το… αν είστε “ηλίθιοι”.

Ody's thoughts

Ο λόγος για την κυνική, ωμή και βάναυση εισαγωγή, είναι απλός: με όσα θα δούμε, ένας, το τονίζουμε, ΗΛΙΘΙΟΣ, μπορεί να καταστρέψει τα Windows. Εμείς έχουμε στόχο να σας εξηγήσουμε τα πάντα, να σας παράσχουμε τις απαιτούμενες γνώσεις και συμβουλές, και να σας αφήσουμε με έναν γρηγορότερο υπολογιστή. Αν δεν ακολουθήσετε ό,τι πούμε και καταλήξετε να έχετε προβλήματα, ξεκαθαρίζουμε πως δεν φταίμε εμείς για τις δικές σας κινήσεις.

Page 1 of 912345...Last »
...γνωστός και ως Οδυσσέας Κουράφαλος, αρχικός υπεύθυνος για το unregistered. Συντάκτης, γραφίστας, "μαλτιμηντιάς", φανατικός της science fiction και των αστείων γατιών στου ιντερνέτ. "Δηλώνω graphics whore" (παίζω Ms. Pac-Man στο MAME με 2xSAL και το πρώτο Max Payne με FXAA antialiasing). Load "unreg*",8,1.
  • Εμ… ξέχασες να αναφέρεις όμως πως σε αυτήν την τεχνική, πολλά internet security suites θα σου βαράνε ιούς εκεί που δεν υπάρχουν (συμπεριλαμβανομένου αυτού που χρησιμοποιώ, AVG Internet Security 2013) λόγω heuristics και “ύποπτης” συμπεριφοράς.
    Στην περίπτωση μου… μπήκε στην καταπακτή των υπόπτων αρχείων ο firefox – “behavioral suspicion”.
    Αυτό γίνεται από τον καιρό του… PKLite (για όσους το πρόλαβαν).

  • ducklord

    Yeap, αλλά θέλω να πιστεύω πως κάθε χρήστης που σέβεται τον εαυτό του, και που θα δοκίμαζε όσα γράφω, έχει και λύσεις ασφαλείας που να του επιτρέπουν να πει “όχι, ΟΧΙ, ΜΗ ΑΖΩΡ, – ΘΕΛΩ – να τρέχω το αρχείο από εδώ και πέρα”. Ενα “Yes” σε ένα κουμπάκι την πρώτη φορά που τρέχεις το αρχείο, και τελείωσες.

    Μπορεί, δε, “να υπήρχε από την εποχή του PKLite”, αλλά ξεχνάς, όπως είπα και στο κείμενο, πως ΤΩΡΑ πια, περίπου την τελευταία πενταετία, μπορούμε να χρησιμοποιούμε τέτοιες λύσεις χωρίς αισθητό overhead. Πριν “παίζαμε” σε υπολογιστές με από μισό μέχρι 1GB, και αρκετά πιο αργούς (και… μονοπύρηνους) επεξεργαστές, όπου ήταν αισθητές “καθυστερησούλες” από την όποια συμπίεση. Τώρα πια, ΔΕΝ είναι! :-D

    Bonus, πως έχεις μικρότερα αρχεία, που πιάνουν λιγότερο χώρο στον SSD. Αν έχεις SSD. Και άρα, μικρότερη φθορά (και αστραπιαία φόρτωση εφαρμογών).

    Είδες, πάντως, που σου είπα πως “λάθος optimization κατάλαβες πως έλεγα για το LibreOffice” ;-P

  • Ορέστης

    παιδιά…. για linux που βρίσκω τα αρχεία των εφαρμογών;

  • ducklord

    Εννοείς “το ίδιο το UPX” ή “τα αρχεία που θα πρέπει να συμπιέσεις”;

    Το FreeUPX που χρησιμοποιούμε εδώ, από ό,τι βλέπω, δεν υπάρχει για Linux – μα δεν είναι παρά ένα GUI που προσπαθεί να κάνει πιο εύχρηστο το UPX. Μπορείς να χρησιμοποιήσεις το ίδιο το commandline UPX (εξάλλου, στο Linux… δεν φοβάσαι την command line, τη φοβάσαι;!) από εδώ: http://upx.sourceforge.net/#downloadupx

    Αν εννοούσες “που βρίσκονται τα αρχεία των εφαρμογών”, welcome to Linux! Στο “οργανωμένο” Linux, που κατά τους φανατικούς οπαδούς του “υπερτερεί από τα Windows γιατί δεν γίνεται μπάχαλο στη Registry”, μπορείς να βρεις εκτελέσιμα στα:

    bin
    sbin
    user home

    …και ίσως ΚΑΙ αλλού. Ανάλογα με το… που θα την καπνίσει στο δημιουργό κάθε εφαρμογής να “κρύψει” το εκτελέσιμο της. Το standard θεωρείται το bin και το sbin, οπότε ξεκίνα κοιτάζοντας εκεί.

    Για libraries (aka DLLs-των-Windows), επίσης μπορεί να είναι “απλωμένες” σε διάφορα σημεία. Ίσως κάνω λάθος, μα νομίζω πως συνήθως τις βρίσκεις επίσης “απλωμένες” ανάμεσα α) στο φάκελο όπου, τελικά, εγκαταστάθηκαν “τα υπόλοιπα αρχεία ενός προγράμματος” (όπως λέμε user home) και ίσως κάποιες στο Var. Καλύτερα απέφυγε να τις συμπιέσεις αυτές.

    Αν ψάχνεις για τρόπους πρόσθετου optimization του συστήματος σε Linux, να προτείνω καλύτερα να χρησιμοποιήσεις συμπιεσμένο Ram Disk για τα όποια temp και swap, καθώς και να μάθεις τα βασικά για το “πώς να απενεργοποιείς stuff από τον πυρήνα και να τον κάνεις recompile”. Ψάξε, επίσης, για παράλληλη φόρτωση εφαρμογών κατά την εκκίνηση (on από default σε Ubuntu και παραπλήσια, μα μπορείς να μάθεις περισσότερα από τους οδηγούς εγκατάστασης του Gentoo). Ναι, είναι άλλοι τρόποι optimization, μα έχουν καλύτερα αποτελέσματα στο Linux – που έχει διαφορετική λογική και “μπουκώνει” σε διαφορετικά σημεία από τα Win (π.χ. το Linux δεν προσπαθεί από default να προ-φορτώνει “αρχεία εφαρμογών που ΔΕΝ έχεις φορτώσει εσύ” – όπως λέμε prefetch των μετα-Vista εκδόσεων των Win).

  • ducklord

    Να προσθέσω πως ειδικά σε διανομές τύπου Gentoo και Arch, όπου ΙΣΩΣ έχεις κάνει την πατέντα “να κάνεις update αρχείων με τη χρήση deltas” (όπου όποτε κάνεις update, κατεβάζεις ΜΟΝΟ τις “διαφορές ανάμεσα στα νέα, updated αρχεία σε σχέση με αυτά που ήδη έχεις”), η συμπίεση των εκτελέσιμων με το UPX παίζει να σου “σπάσει” τη λειτουργία των updates με αυτό τον τρόπο (δεν θα μπορεί να υπολογίσει τις διαφορές ανάμεσα στα “παλιά” και “νέα” αρχεία, αφού λόγω της συμπίεσης, “το παλιό” θα είναι διαφορετικό από ό,τι θα περίμενε ο updater κατά το όποιο hash check του – δηλαδή, θα περίμενε “να το βρει ασυμπίεστο” για “να υπολογίσει τις διαφορές του σε σχέση με το νέο”).

    Νομίζω, δηλαδής.