|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#61 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Dimmi di + che questo discorso ni interessa
|
|
|
|
|
|
#62 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Bhè, ci sono due modi di vedere la cosa e questi due modi sono tutti applicabili a qualsiasi genere di hardware. Un componente hardware è composto essenzialmente da due parti. Una parte logica (che gestisce, genera e manipola segnali elettrici) e un'interfaccia di programmazione, ovvero un "traduttore" di questi segnali elettrici nei cosiddetti bit, che servono per colloquiare con il mondo esterno. Cosa c'è dietro l'interfaccia di programmazione è materia degli ingegneri elettronici. L'interfaccia di programmazione è proprio il punto in comune fra informatici ed elettronici. Entrambi la devono capire. Ma l'informatico non sa cosa c'è dietro, l'elettronico non sa cosa ci sta davanti. Ed è proprio questo "muro" a segnare la barriera fra hardware e software. Il driver essenzialmente "prende" le informazioni del sistema operativo e le "converte" in un formato leggibile dall'interfaccia di programmazione (e quindi dalla scheda grafica). Viceversa, "prende" i dati dall'interfaccia di programmazione e la "converte" in un formato "leggibile" dal sistema operativo. Come vedete il funzionamento può sembrare quello di un modem. Possiamo chiamare questa operazione come "marshalling" dell'informazione. Ed è essenzialmente questo che fa un driver. Poi ci sono tutte altre funzioni che interoperano con le primitive del sistema operativo, ma quì andremmo troppo nel dettaglio. . . Spero di essere stato chiaro... |
|
|
|
|
|
|
#63 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Se aspettate vi faccio un esempio ancora + tangibile...
|
|
|
|
|
|
#64 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
|
|
|
|
|
|
|
#65 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Guardate. Questo è un semplice modulo per il linux kernel.
Codice:
/* -*-linux-c-*- */
#define MODULE
#include <linux/module.h>
int
init_module(void)
{
for (int i = 0; i < 10; i++)
printk("<1>Hello! I'm in the Linux Kernel address space!");
return 0;
}
void
cleanup_module(void)
{
printk("<1>Good bye cruel world...\n");
}
MODULE_LICENSE("GPL");
MODULE_AUTHOR("mjordan");
gcc -Wall -g -O2 -std=c99 -D__KERNEL__ -D__MODULE__ -o hello.o -c hello.c assumendo che hai chiamato il modulo hello.c Ora caricalo nel kernel space da root con il comando: insmod hello.o - Fai, sempre da root, un lsmod per vedere il nostro bel modulo caricato in memoria. Infine eliminalo con rmmod hello. Fammi sapere. Ultima modifica di mjordan : 30-08-2003 alle 18:39. |
|
|
|
|
|
#66 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ma è un modulo del kernel
|
|
|
|
|
|
#67 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
|
|
|
|
|
#68 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
nn sono su linux ma so quale sara l'output...........ma che centra?
|
|
|
|
|
|
#69 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
La modalità user mode non consente al sistema operativo di effettuare operazioni pericolose, quale l'impostazione di un temporizzatore, la gestione di un interrupt, l'aggiornamento di un trap vector ecc. Quando siamo in modalità supervisor, invece, il sistema operativo può effettuare quelle e molte altre operazioni (per esempio impostare la modalità protetta della CPU). Secondo te, quel modulo viene eseguito in user mode o supervisor mode?? |
|
|
|
|
|
|
#70 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
user mode
|
|
|
|
|
|
#71 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Codice:
/* -*-linux-c-*- */
#define MODULE
#include <linux/module.h>
int
init_module(void)
{
for ( ; ; );
return 0;
}
void
cleanup_module(void)
{
printk("<1>Good bye cruel world...\n");
}
MODULE_LICENSE("GPL");
MODULE_AUTHOR("mjordan");
Tutto quello che potrai fare e spegnere il sistema. Tutto questo per dirti che poichè i driver in genere sono moduli di un sistema, devono avere accesso TOTALE al sistema e alla macchina, cioè richiedere l'inizializzazione di se stessi in modo supervisor. Altrimenti non potresti accedere alla scheda grafica nell'esempio che ti dicevo prima. E' questo è un altro motivo per non caricare drivers proprietari chiusi di persone che non si conoscono. Questo era un semplice esempio sciocchezza. Ma immagina cosa si potrebbe fare con il pieno controllo del kernel a questo punto... |
|
|
|
|
|
|
#72 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
E puoi ben immaginare a questo punto perchè Windows è una fetecchia ...
|
|
|
|
|
|
#73 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Molto interessante
Sei preparatissimo E io sono un pessimo programmatore |
|
|
|
|
|
#74 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
P.s: ma se io gli dicessi di eseguire codice ASM arbitrario al for infinito del modulo.............lo farebbe? |
|
|
|
|
|
|
#75 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
|
|
|
|
|
#76 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
E soprattutto "USE AT YOUR OWN RISK"
|
|
|
|
|
|
#77 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ma allora perche i virus nn sono presentati come driver?
|
|
|
|
|
|
#78 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Ma poichè sotto Windows hai il controllo completo della macchina, basta effettuare chiamate di sistema native per modificare il comportamento del sistema. Sfruttano un particolare bug per caricarsi nella memoria in modo "supervisor" e fare i loro giochetti. Molto a grandi linee ovviamente. |
|
|
|
|
|
|
#79 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
mi hai spiegato un sacco di cose che nn sapevo.
Sei eruditissimo Tnk p.s: tornando ai tipi dato.............mi spiegheresti gli stack(pila) o mi daresti un link ove documentarmi? |
|
|
|
|
|
#80 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Figurati. E' solo un granello di sabbia di tutto ciò che si dovrebbe sapere ...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:54.



















