Προς το περιεχόμενο

Προγραμματισμός σε linux


Isle

Προτεινόμενες αναρτήσεις

Δημοσ.

Επειδή είμαι άσχετος με το θέμα αυτό μπορείτε να μου εξηγήσετε τι διαφορά έχει ο προγραμματισμός σε linux με τον προγραμματισμό σε windows?Γιατί ένα πρόγραμμα που τρέχει σε windows δεν τρέχει σε linux και το αντίστροφο?Επίσης γιατί συμβαίνει το ίδιο και με τις διανομές?Θα ήθελα επίσης να ξέρω σε πιο λειτουργικό να μάθω να προγραμματίζω.Σκέφτομαι να αρχίσω με python και μετά να πάω στα δύσκολα αλλα δεν ξέρω σε ποιό λειτουργικό.

Δημοσ.

Χμμ...Η C αποτι εχω ακουσει ειναι δυσκολη και θελω να αρχισω με κατι ευκολο.Παντως αφου βαριεσαι να γραφεις δωσε μου κανενα λινκ.Μην μου δωσετε τιποτα πολυπλοκο γιατι ειμαι αρχαριος.

Δημοσ.

Isle, C για αρχη κ' μετα Java/C++.

Μετα απο αυτες τις 3, εχεις μαθει 2 βασικα ειδη προγραμματισμου κ'

μπορεις να κανεις πολλες δουλειες αν τα χρησιμοποιησεις.

Δημοσ.

Μικρα scriptακια δεν ξερω, ξερω τις βασικες εντολες και ισα ισα που ξερω να βαζω και κανενα pipe.Το θεμα ομως ειναι αλλο:Τι διαφορα εχει ο προγραμματισμος σε linux απο τον προγραμματισμο σε windows?Αμα μαθω σε linux και θελω να γραψω ενα προγραμμα σε windows θα δυσκολευτω?Μην βαριεστε, πειτε και σε μενα τον ασχετο.Εχει σχεση με το filesystem?Με τα processes?Με τι?Επισης γιατι δεν τρεχει το ιδιο προγραμμα σε διαφορετικες διανομες?Αμα θελετε γραψτε μου κανενα link.

Δημοσ.

H java einai eulolh glwssa kai me th xrhsh pogrammatwn opws JBuilder ginetai paixnidi.

8a sunistousa java giati einai platform independent pou shmainei oti trexei pantou. Opote grafontas ena prog 8a mporeis na to trexeis kai se linux alla kai se windows.

Epishs einai eukolh lush gia th dhmiourgia GUI se linux an den exeis asxolh8ei me Qt, GKT kai ta loipa. Epishs prepei na ksereis C/C++ gia gui me qt kai gtk

Δημοσ.

Μαλιστα.Αν καταλαβα καλα για να κανεις gui πρεπει να συνδυασεις τη γλωσσα προγραμματισμου με αλλα προγραμματα.Η java ειναι ευκολη?Κανει για αρχαριους?Εξηγηστε μου γιατι δεν τρεχουν τα προγραμματα στα δυο λειτουργικα συστηματα?Πως η java τρεχει?

Δημοσ.

Ο προγραμματισμός σε επίπεδο γλώσσας είναι ίδιος. Η γραμματική της γλώσσας είναι ίδια και οι συναρτήσεις ίδιες (εκτός να χρησιμοποιείς κάποιο παρακλάδι γλώσσας που δεν ακολουθεί τα πρώτυπα). Από κει και πέρα αν θέλεις να προγραμματίσεις σε γραφικό περιβάλλον κυρίως χρειάζεσαι τις βιβλιοθήκες του συστήματος για κάθε αρχιτεκτονική/πλατφόρμα (το ίδιο ισχύει βέβαια και για προγραμματισμό χωρίς γραφικά αλλά η πολυπλοκότητα είναι μικρότερη). Διαφορές μεταξύ των διανομών δεν υπάρχουν (τουλάχιστον για το επίπεδο που θέλεις να ασχοληθείς εσύ).

Δημοσ.

Θα προσπαθησω να σου εξηγησω με απλα λογια (και να θελες πιο πολλες λεπτομερειες δεν ξερω) γιατι δεν μπορεις να τρεχεις τα executables του ενος λειτουργικου στο αλλο. Βασικα εχει να κανει με το γεγονος οτι ενα προγραμμα δεν ειναι αυτονομο αλλα χρησιμοποιει και το λειτουργικο για καποιες διαδικασιες.

 

Το λειτουργικο διαθετει API (application programming interface) και κλησεις συστηματος που χρησιμοποιουν οι εφαρμογες και αυτα δεν ειναι τα ιδια στα διαφορα λειτουργικα. Προκειται για ετοιμες ρουτινες που καλουν τα προγραμματα οταν εκτελουνται. Το καθε προγραμμα "ξερει" πως να καλεσει αυτο που θελει σε συγκεκριμενο περιβαλλον. Οι κλησεις συστηματος εχουν να κανουν με πολυ βασικες εργασιες. Για παραδειγμα οταν κανεις save κατι (πχ αρχειο στο word) εκεινη τη στιγμη το word κανει μια κληση στα windows που αναλαμβανουν να γραψουν στο δισκο. Η ιδια η εφαρμογη δεν εχει προσβαση αμεσα στους πορους του συστηματος οπως το δισκο αλλα μονο μεσω του λειτουργικου

Το API ειναι πιο υψηλου επιπεδου υπηρεσιες. Πχ το directX ειναι συλλογη απο διαδικασιες για γραφικα και ηχο που χρησιμοποιουν απο κοινου οι εφαρμογες αντι να γραφει ο καθενας τα δικα του και η εφαρμογη "περιμενει" να υπαρχουν ετοιμες.

 

Αν εχεις ακουσει για προγραμματα που επιτρεπουν να τρεχεις εφαρμογες του ενος λειτουργικου στο αλλο (πχ το wine για linux) ουσιαστικα παιζουν το ρολο του μεσαζοντα. Πιανουν τις κλησεις που κανει η "ξενη" εφαρμογη και τις ερμηνευουν σε αντιστοιχες που καταλαβαινει το λειτουργικο. Αυτο το τελευταιο ειναι εικασια. Δεν εχω ιδεα πραγματικα τι γινεται εκει. Αν ξερει καποιος λεπτομερειες ας μας διαφωτισει.

 

Για τις διανομες linux, καταρχην τρεχουν εκτος απο ειδικες περιπτωσεις (πχ να εχεις πολυ παλιο πυρηνα η δεν ξερω τι αλλο). Απλως πακεταρονται για διαφορετικες διανομες. Βλεπεις σε αντιθεση με τα windows καθε linux ειναι λιγο ως αρκετα διαφορετικο. Τα προγραμματα περιμενουν βιβλιοθηκες που πιθανον να μην εχει η δικα σου διανομη αλλα υπαρχουν σιγουρα σε καποια αλλη. Θα μπορουσες ομως να τις βαλεις αμα θελεις και να τρεξεις προγραμματα που προοριζονται για οποιαδηποτε διανομη εκτος απο τη δικη σου. Η λογικη κινηση ομως ειναι να παρεις το πακετο που προοριζεται για τη δικη σου εκτος αν εισαι μαζοχας και σου αρεσει να δημιουργεις προβληματα για να εχεις να λυνεις.

Δημοσ.
....Πως η java τρεχει?

 

Από αυτό εδώ το tutorial:

With most programming languages, you either compile or interpret a program so that you can run it on your computer. The Java programming language is unusual in that a program is both compiled and interpreted. With the compiler, first you translate a program into an intermediate language called Java bytecodes —the platform-independent codes interpreted by the interpreter on the Java platform. The interpreter parses and runs each Java bytecode instruction on the computer. Compilation happens just once; interpretation occurs each time the program is executed. The following figure illustrates how this works.

 

You can think of Java bytecodes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether it's a development tool or a Web browser that can run applets, is an implementation of the Java VM.

 

Java bytecodes help make "write once, run anywhere" possible. You can compile your program into bytecodes on any platform that has a Java compiler. The bytecodes can then be run on any implementation of the Java VM. That means that as long as a computer has a Java VM, the same program written in the Java programming language can run on Windows 2000, a Solaris workstation, or on an iMac.

 

Καλύτερα όμως να δείς όλη την απάντηση γιατί έχει και εικόνες που μπορεί να βοηθήσουν: εδώ

Δημοσ.

Ένα πολύ καλό εισαγωγικό βιβλίο για προγραμματισμό στο Linux είναι το Beginning Linux Programming, 3rd Edition

Neil Matthew, Richard Stones, Alan Cox. Περιέχει αρκετά πράγματα για πολλές γλώσσες αν και κυρίως αναφέρεται σε C.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...