Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Vista x64 + native C/C++ development

Îåêßíçóå áðü ôï ìÝëïò ikaros. Τελευταία δημοσίευση από το μέλος ikaros στις 06-01-2008, 21:28. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-03-2007, 00:49 26493

    Vista x64 + native C/C++ development

    Θέλω να στήσω ένα μηχάνημα για development σε native C/C++.  Πιστεύετε ότι θα υπάρξουν προβλήματα-ασυμβατότητες αν επιλέξω Vista x64 + Visual Studio 2005 (+ τα Service Packs)? Μήπως να προτιμήσω την 32bit έκδοση των Vista για σιγουριά?


  •  27-03-2007, 14:46 27145 σε απάντηση της 26493

    Απ: Vista x64 + native C/C++ development

    Έχω ήδη στήσει Vista 64-bit με Visual Studio. Απλά χρειάζεται να βάλεις τα Service Packs αλλά θα πρέπει να το τρέχεις ως Administrator. Υπάρχει νομίζω κι ένα hotfix στα σκαριά το οποίο θα επιτρέπει τη χρήση του VS χωρίς να το ξεκινάς σαν administrator. Εξάλλου, όταν ξεκινάς το Visual Studio παίρνεις αμέσως ειδοποίηση για τυχόν προβλήματα και τί πρέπει να κάνεις για να τα αντιμετωπίσεις.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  30-03-2007, 17:13 27488 σε απάντηση της 27145

    Απ: Vista x64 + native C/C++ development

    ok, θα προτιμήσω τα 64bit Vista λοιπόν...thanx
  •  17-08-2007, 21:57 34359 σε απάντηση της 27488

    Απ: Vista x64 + native C/C++ development

    Ψάχνοντας κάτι αθώο στο visual studio 2005 είδα ότι χρειάζεται να έχει εγκατασταθεί το "Windows Platform SDK" για να κάνω link στην βιβλιοθήκη για τα sockets (winsock2). Μπορεί κανείς να με κατατοπίσει στο που κάτεβάζω τι και τι πρέπει να κάνω γιατί από posts που διαβάζω η κατάσταση είναι λίγο... νεφελώδης.




  •  27-10-2007, 12:29 36654 σε απάντηση της 26493

    Απ: Vista x64 + native C/C++ development

    Υπάρχουν ακόμα πολλά προβλήματα με τα x64 λειτουργικά, δηλαδή όχι ακριβώς με τα λειτουργικά αλλά με τους drivers (καθυστερημένα updates, πολλά bugs, κλπ). Ιδίως αν έχεις παραπάνω από 3 και κάτι ψιλά GB RAM (παίζει ανάλογα με το motherboard) τότε ετοιμάσου για έντονες περιπέτειες. Κοινώς θα βλαστημήσεις. Και φυσικά μη διανοηθείς να βάλεις 3+ GB RAM σε σύστημα με x64 CPU και x86 OS.

    Δεν θα σου αναλύσω εδώ ποιό ακριβώς είναι το ζήτημα που προκαλεί αυτά τα προβλήματα. Αν έχεις περιέργεια βρες και διάβασε ένα thread που έγραψα πρόσφατα στο osronline.com, στο NTDEV forum, με τίτλο "Max 16 map registers".

    Θεωρητικά ο ίδιος κώδικας θα πρέπει να έχει την ίδια συμπεριφορά είτε τρέχεις {x86.exe on x86.os}, {x86.exe on x64.os} είτε {x64.exe on x64.os}. ΘΕΩΡΗΤΙΚΑ = ΘΑ ΘΕΛΑΜΕ. Αλλά αυτό δεν ισχύει πάντα.

    Μερικά παραδείγματα:
    • Public key cryptography με OpenSSL. Το signature που παράγει το x86 signing exe δεν γίνεται verify από το x64 verifying exe και τανάπαλιν. Αν το sign το κάνει x86 executable, τότε το verify πρέπει επίσης να το κάνει x86 executable. Δεν ξέρω αν είναι bug ή feature, και δεν με ενδιαφέρει. Απλά συμβαίνει.
    • Το x64 λειτουργικό στον kernel έχει ρουτίνα με όνομα IoIs32BitProcess, ώστε να μπορούν οι x64 drivers να διαφοροποιούν τη συμπεριφορά τους όταν μιλάνε με x86 processes. Που σημαίνει ότι ΔΕΝ κάνουν ακριβώς τα ίδια πράγματα που κάνουν για ένα x64 process, και ΔΕΝ κάνουν τα ίδια πράγματα που θα έκανε ο x86 driver.
      Εγώ έφαγα 3 εβδομάδες για να βάλω στους 64-bit drivers μας υποστήριξη για 32-bit processes, διαδικασία που περιέλαβε και το εξής παράδοξο: x86 DLL που είναι built specifically για να τρέχει σε x64 συστήματα (στην DllMain ελέγχει τον τύπο του λειτουργικού και αποτυγχάνει αν δεν είναι x64, ώστε να μην την χρησιμοποιήσουμε κατά λάθος σε x86 OS.
    • COM: Στα x64 συστήματα, δεν μπορείς να φορτώσεις x86 DLL σε x64 process και το ανάποδο. Συνεπώς πρέπει να δώσεις και τις 2 DLL σου, να κάνεις 2 φορές register το COM object σου, μία για τα x86 processes και μία για τα x64 processes, κλπ.
    • Registry Redirection/File Redirection
    Συνεπώς, αν βγάζεις x86 executable (που όλοι βγάζουμε) πρέπει οπωσδήποτε να έχεις ένα x86 OS με στημένο development environment ώστε να μπορείς να δοκιμάζεις την εφαρμογή σου στο "φυσικό της περιβάλλον".
    Αν θέλεις να είσαι κύριος, πρέπει να έχεις στημένο και x64 OS με development environment ώστε να δοκιμάζεις ΚΑΙ εκεί την x86 εφαρμογή σου και να κάνεις debugging αν χρειαστεί.
    Αν βγάζεις και x64 executable τότε εννοείται και πάλι ότι θέλεις x64 OS με dev env.

    Εν ολίγοις πρέπει να τα έχεις και τα δύο. Μόνο με x64 δεν είσαι safe (πέρα από τα λειτουργικά προβλήματα). Αν μια x86 εφαρμογή σου λειτουργεί στο x64 λειτουργικό αυτό δεν είναι ΙΚΑΝΗ συνθήκη για να λειτουργεί χωρίς πρόβλημα σε x86 λειτουργικό.
    Συνήθως θα είσαι ΟΚ βέβαια, αλλά αν θέλεις να λειτουργείς με industrial standards θα πρέπει να τα έχεις και τα δύο. Αν δεν κάνεις περίεργα πράγματα με devices τότε μπορείς να βολευτείς και με κάνα virtual machine για το ένα από τα δύο.

    Είναι λίγο μανούρα να τα συντηρείς και τα δύο παράλληλα. Π.χ. ξεχνιέσαι και δουλεύεις 1 μήνα στο x86 και μετά μπουτάρεις στο x64 και βλέπεις με τρόμο 263ΜΒ updates!!! LOL... Και ήθελες ο κακομοίρης να κάνεις μια δοκιμή 5 λεπτών...

    Στην εταιρία που δουλεύω πάντως, όλοι ανεξαιρέτως δουλεύουμε σε x86 λειτουργικά σε καθημερινή βάση. Και όλοι πλην ενός σε Windows Server 2003. By far ότι σταθερότερο έχει φτιάξει η MS. Vista μόνο ένας χρησιμοποιεί για καθημερινή εργασία. Ο ίδιος που δοκίμασε για κανα μήνα να δουλέψει σε XP64 και μετά ξαναγύρισε σε 2003.x86 (μέχρι που κράσαρε ο δίσκος του και έβαλε Vista). Από εκεί και μετά βέβαια έχουμε test PCs με τα πάντα επάνω.

    Have fun!

    The fact that the program works is irrelevant.
  •  06-01-2008, 21:28 38827 σε απάντηση της 36654

    Απ: Vista x64 + native C/C++ development

    Thanx BruteForce για το ιδιαίτερα εκπαιδευτικό post. Τελικά προτίμησα τα Vista x64 (είμαι και λίγο θύμα του marketing... :-)  ) αλλά δεν κάνω τόσο εξεζητημένα (βλέπε low-level) πράγματα οπότε δεν αντιμετώπισα πρόβλημα.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems