Erwthshs:

Dimitris Kamenopoulos el97146 at mail.ntua.gr
Sun Jan 27 20:29:01 EET 2002


On Sunday 27 January 2002 18:38, you wrote:
> On 2002-01-27 13:54:48, Thanos Agathaggelidis wrote:
> > Tora teleytaia exo mia aporia (h opoia profanos einai asteia gia
> > tous pio pollous edw mesa):
> >
> > Exoume to Linux,ta *BSDs, ta Windows, to OS/2, to Solarisx86. OLA trexoun
> > se arxitektoniki x86 ok? Otan kanoume compile ena programma tote ayto den
> > metatrepetai se assembly (h opoia den eksartatai ap'to OS alla apo thn
> > CPU swsta?) kai meta se machine code? Giati tote ena programma pou
> > graftike se Win/86 den paizei se Linux/86?
>
> Giati to Lixux einai diaforetiko leitourgiko susthma, me diaforetikes
> libraries, pou kalountai me diaforetiko tropo, kai epistrefoun
> diaforetika apotelesmata, h akoma xeirotera exoun diaforetika
> interfaces.
>
> Paradeigma:
>
> - Estw oti sta Windows gia na "anoijei ena arxeio" to programma kanei:
>
> 	.data
> 		.public	name
> 	name	.asciiz "koko.txt"
>
> 	.text
> 		.public	openfile
> 		.type	openfile, at function
> 	openfile:
> 		movl $1,%eax
> 		movl $name,%ebx
> 		intl $0x21
>
>   kai meta apo auto to file-handle einai ston %eax kataxorhth,
>   me errors pou mporei na parousiasthkan ston %ebx kataxorhth.
>
> - Sto Linux omws gia na kanei tin idia douleia, na prepei na kaneis:
>
> 	.data
> 		.public	name
> 	name	.asciiz "koko.txt"
>
> 	.text
> 		.public	openfile
> 		.type	openfile, at function
> 	openfile:
> 		movl $15,%eax		/* diaforetiko syscall */
> 		pushl $name		/* perasma parametrou sto stack */
> 		jmp $_syscall		/* diaforetikos tropos klhshs */
>
> Opws katalabaineis, mporei to idio instruction set (tou 386 sth
> sugkekrimenh periptosh) na to xrhsimopoiei to ka8e leitourgiko systhma
> opws tou katebei.  Den upoxreonei kaneis ta leitourgika susthmata na
> akolou8hsoun ton One-True-Way(TM) ulopoihshs kathe pragmatos, afou den
> uparxei One-True-Way(TM).
Με λίγα λόγια 
α) το λειτουργικό "παρεμβαίνει" μεταξύ του προγράμματος και της μηχανής. 
Μεγάλο μέρος των οδηγιών ενός προγράμματος είναι κλήσεις στο λειτουργικό 
(->εξαρτώμενες από το λειτουργικό), κάτι που δε σημαίνει πως δεν είναι 
assembly, αφού η assembly έχει εντολές του στυλ
"κάλεσε την τάδε assembly υπορουτίνα (του λειτουργικού)". Για παράδειγμα, 
ακόμα και στο DOS, όλες οι λειτουργίες συστήματος (ανάγνωση αρχείων, γράψιμο 
στην οθόνη, μπιπ κ.ο.κ.) γίνονται με κλήσεις σε ρουτίνες του DOS. 
β) Επειδή το λειτουργικό χειρίζεται τον κώδικα των εκτελέσιμων (π.χ. μπορεί να 
τον εξετάζει για να αποφασίσει ποιο τμήμα της μνήμης θα τους δώσει), ο 
κώδικας έχει συγκεκριμένη μορφή (εκεί τα δεδομένα, εκεί οι οδηγίες, εκεί τα 
υπόλοιπα) που πάλι είναι διαφορετική για κάθε λειτουργικό.



More information about the Linux-greek-users mailing list