Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'Informatica Forense: Hardware e Fondamenti Digitali, Sintesi del corso di Elementi di Informatica

Una panoramica introduttiva all'informatica forense, concentrandosi sul ruolo dell'hardware nei dispositivi tecnologici. Esplora i componenti chiave dei computer, dei dispositivi mobili, dell'internet delle cose (iot) e degli assistenti vocali, fornendo una comprensione di base dei concetti digitali come il sistema binario, la codifica ascii e unicode. Utile per studenti che desiderano approfondire le basi dell'informatica forense e comprendere il funzionamento dei dispositivi tecnologici.

Tipologia: Sintesi del corso

2022/2023

Caricato il 17/01/2025

Titti-19
Titti-19 🇮🇹

1 documento

1 / 39

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA FORENSE
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27

Anteprima parziale del testo

Scarica Introduzione all'Informatica Forense: Hardware e Fondamenti Digitali e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA FORENSE

1 HARDWARE: IL CUORE FISICO DEI DISPOSITIVI TECNOLOGICI

Hardware —> insieme degli elementi fisici di un dispositivo tecnologico (computer o dispositivi mobili, oggetti connessi ad internet o assistenti vocali come Alexa); è anche la componente tangibile che interagisce con il software per eseguire compiti o funzioni specifici. Ogni tipo di dispositivo ha il proprio tipo di hardware che si adatta alle esigenze e alle funzionalità Nei PC (personal computer) include:

  • CPU (Unità di Elaborazione Centrale), si occupa dell’esecuzione delle istruzioni del software
  • Memoria RAM (Random Access Memory): si usa per conservare temporaneamente i dati mentre il computer è in uso
  • Disco Rigido o SSD (Solid State Drive): si usa per lo stoccaggio a lungo termine dei dati
  • Scheda Madre : collega tutti i comportamenti del computer
  • Scheda Grafica: per l’elaborazione di immagini e video

Digitale —> nel contesto tecnologico è legato al modo in cui i computer

elaborano e gestiscono le informazioni

Nel mondo analogico le informazioni sono in un flusso continuo (ex.

Lancette orologio)

Nel mondo digitale in cui i computer operano, è basato tutto su dati

discreti, tutto viene processato in unità separate e distinte, i Bit; un

computer traduce tutti i dati in una serie di 0 e 1 bit, che possono essere

manipolati per svolgere calcoli e compiere operazioni complesse

GLOSSARIO

• Hardware > elementi fisici di un dispositivo tecnologico, parte

tangibile che lavora con il software

• CPU (Central processing Unit) > elemento più importante del

computer, il cervello della macchina, responsabile dell’esecuzione

delle istruzioni dei programmi e gestisce i calcoli eseguiti da un pc

• Memoria RAM (Random access Memory) > memoria che conserva i

dati e le istruzioni in uso attivo

• Disco rigido/SSD (soldi state private) - HDD (hard disk drive)/ SSD >

usati per immagazzinare al lungo termine i dati; gli SSD più veloci e

affidabili ma hanno una capacità minore

• Scheda madre (Motherboard) > scheda principale di un computer a

cui sono connessi gli altri componenti e periferiche come la

CPU,RAM,schede di espansione

• Scheda Grafica (Graphics card) > componente del computer che si

occupa dell’elaborazione grafica delle immagini, video e calcoli

complessi legati alla grafica 3d e realtà virtuale. Con lo sviluppo

dell’AI esse hanno assunto un ruolo sempre più centrale grazie alla

capacità di accelerare i calcoli per questi processi. Le schede

grafiche de fascia bassa possono essere integrate con la CPU,

disponibili come componenti esterni che si collegano alla scheda

madre con uno slot PCI Express x16 (collegamento)

• Alimentatore (power Supply) > fornisce energia elettrica ai

componenti del computer convertendo la corrente alternata delle rete

elettrica in una corrente continua utilizzabile

• Schermo tattile (touch screen) > il tocco fisico è l’input

• Batteria (Battery) > fornisce energia ai dispositivi mobili, senza essere

collegati a una presa di corrente

• Processori mobile (mobile processor) > versioni ottimizzate dei

processori, efficienti dal punto di vista energetico

• Sensori (Sensors) > dispositivi che rilevano eventi o cambiamenti

nell’ambiente e inviano le informazioni al dispositivo per essere

processate

• Moduli di connettività (connectivity modules) > componenti che

permettono a dispositivi IoT di collegarsi e comunicare con altri

apparecchi i con internet attraverso il WiFi, Bluetooth o reti cellulari

• Microfoni (Microphones) > dispositivi di input che catturano il suono e

permettono la rilevazione di comandi

• Altoparlanti (Speakers) > dispositivi di output che riproducono suoni

consentendo di fornire feedback sonoro al utenti

2 HARDWARE : COMPUTER E UNITÀ DI MISURA

Ragionamento digitale nei computer:

  • i computer funzionano secondo principi digitali, eseguono calcoli utilizzando la matematica, a una velocità inimmaginabile Velocità e tecnologia nei computer:
  • le velocità di un computer può dati a frequenze dell’ordine dei Gigahertz (miliardi di cicli al secondo). Per fare ciò i computer usano tecniche e tecnologie avanzate, come la meccanica quantistica e le leggi fisiche dei materiali Unità di misura nel computer digitale:
  • i computer lavorano con numeri e grandezze, usando unità di misura come Hertz (Hz) ovvero la frequenza di campionamento, che indica quante volte al secondo il pc elabora informazioni, e Byte/Bit, unità di misura dello spazio memoria usato I computer hanno la capacità di convertire la realtà in dati numerici, operando secondo una logica binaria, dove vi sono solo numeri binari; nel sistema binario si aggiunge una cifra ogni volta che si raggiunge il secondo valore

Codifica CodeBase64: Secondo l’algoritmo vi sono i file suddivisi in gruppi da 6 bit (valori da 0 a 63) e ogni possibile valore viene convertito in un carattere ASCII. I 64 caratteri scelti per rappresentare i valori variano, l’obiettivo è quello di scegliere 64 caratteri comuni alla maggior parte delle codifiche e che siano anche stampabili; le altre varianti che di solito derivano dal Base64 hanno le stesse proprietà ma hanno gli ultimi due caratteri diversi. Se la lunghezza del messaggio originale non è un multiplo di 3 byte il numero dei bit che costituiscono Il Base64 è un metodo di codifica per convertire dati binari in un testo ed è usato per:

  • compatibilità con sistemi basati su testo —> molti sistemi sono progettati per lavorare con dati di testo e il Base64 consente di incorporare dati binari (immagini, video, ecc) in questi sistemi, convertendoli in testo
  • Trasmissione sicura dei dati —> durante la trasmissione di dati su internet alcuni caratteri binari possono causare problemi o possono essere interpretati in modo sbagliato; convertendoli in Base64 si evitano questi problemi e i dati arriveranno intatti
  • Facilità di integrazione e manipolazione —> il testo codificato può essere facilmente integrato e manipolato con altri strumenti di testo senza correre il rischio di corruzione dei dati
  • Uniformità e standardizzazione —> la codifica Base64 segue uno standard uniforme, rendendola affidabile e universalmente riconosciuta per la codifica di dati binari

Codifica testuale UTF-8 UTF- Unicode e i formati di verifica qui sopra indicati, superano i limiti dei precedenti sistemi come ASCII e code page Unicode: sistema di codifica standardizzato che punta a rappresentare i sistemi di scrittura esistenti; può rappresentare molti più simboli e caratteri rispetto all’ASCII UTF-8 e UTF-16: sono due delle codifiche usate per rappresentare i caratteri unicode UTF-8: la più usata su internet, usa da 1 a 4 byte per rappresentare ogni carattere, compatibile con ASCII ma può rappresentare tutti i caratteri Unicode UTF-16: usa 2 byte (16 bit) per la maggior parte dei caratteri, per il resto usa 4 byte; usata principalmente per le versioni più vecchie di Unicode o dove è necessario l’uso di 2 byte Vantaggi di Unicode:

  • standardizzazione internazionale—> fornisce una soluzione unica per rappresentare testi in lingue diverse, evitando i problemi di incompatibilità tra le codifiche
  • Ampia copertura—> include sia i caratteri latini, sia quelli delle altre lingue scritte, con simboli, Emoji e altro
  • Facilità di uso —> grazie a Unicode si potranno avere tutti i caratteri disponibili in un unico set e non sarà più necessario passare da una code page ad un’altra per gestire i testi in lingue diverse
  • Compatibilità e flessibilità—> UTF-8 è molto popolare perché è retrocompatibile (è in grado di aprire correttamente i dati salvati usando la versione precedente del software in uso) con ASCII ed efficiente per lo spazio; UTF-16 rappresenta in modo più diretto un più ampio range di caratteri Unicode Quindi Unicode e le sue codifiche hanno semplificato lo sviluppo di software e la comunicazione digitale su scala globale. 3 HARDWARE: ELEMENTI Processori RISC e CISC - il cuore dei sistemi informatici RISC —> Reduced instruction set computing CISC —> Complex instruction set computing In base ai tipi di dispositivi vi è un uso diverso di questi dispositivi:
  • dispositivi come MCU (microcontroller units) nell’IoT, smartphone e tablet che tendono a usare processori basati sull’architettura RISC, con un set di istruzioni ridotto e semplice, efficienti per il consumo energetico e per prestazioni per applicazioni specifiche

Mainboard o Scheda Madre: È uno dei componenti più cruciali di un computer, è una scheda di circuito stampato a cui sono collegati tutti gli altri componenti del sistema (processore CPU,scheda RAM,hard disk e SSD). Funge da piattaforma centrale che agevola la comunicazione e l’interazione tra tutti i componenti. Componenti e caratteristiche:

  • slot del processore (socket della CPU) —> connettore fisico sulla scheda madre dove viene inserito in processore
  • Slot della memoria (DIMM) —> slot per installare moduli di memoria RAM
  • slot di espansione —> include: slot PCI,PCIe per le schede aggiuntive (grafiche, di rete,ecc)
  • Chipset —> set di circuiti che gestisce il flusso di dati tra CPU,RAM,periferiche di attivazione e altri dispositivi
  • Connettori per periferiche di attivazione —> connettori SATA,M.2 per collegare hard disk, SSD e altri dispositivi di archiviazione
  • Porte I/O —> per connessioni esterne (USB,HDMI,ETHERNET,AUDIO,ecc)
  • BIOS/UEFI firmware —> un firmware pre installato che avvia il computer e gestisce la comunicazione base tra sistema operativo e hardware del pc
  • Sistema di alimentazione —> regola la distribuzione dell’elettricità ai componenti del computer Importanza della scheda madre:
  • essa determina molte capacità e limitazioni del computer (tipo di CPU da installare, quantità massima di RAM, capacità di connessione, ecc)
  • La scelta della scheda deve essere fatta con attenzione poiché determina la compatibilità con altri componenti hardware e le prestazioni del sistema CPU: Central processing unit, nota come processore, cervello dei dispositivi elettronici, responsabile dell’esecuzione delle istruzioni di un programma e del processamento dei dati; esegue operazioni aritmetiche, logiche, di controllo e di I/O (input e output) CPU multi-core: le CPU moderne sono per la maggior parte multi-core, quindi che hanno più core indipendenti all’interno del processore, e questi possono eseguire operazioni indipendentemente dall’altro, aumentando le capacità di elaborazione del processore 1- esecuzione indipendente: in una CPU acta-core, ci sono 8 core indipendenti e questo consente al processore di eseguire fino a 8 unità di esecuzione diverse nello stesso momento

2- gestione dei processi e dei Thread: la CPU può gestire vari processi contemporaneamente, distribuendoli tra i vari core (ex. 8 processi diversi, uno per core). Un processo può essere suddiviso in più Thread che può essere eseguito su un core specifico e diverso da un altro così da permettere un’esecuzione parallela ed efficiente Analogia con il cervello umano —> come anche il cervello umano, la CPU gestisce compiti informatici nello stesso momento; la presenza dei core aumenta efficienza e capacità multitasking del processore Frequenza di clock e prestazioni—> le CPU moderne hanno frequenze di clock che variano, ma molte che hanno un’alta prestazione operano intorno ai 4- GHz, è una frequenza più elevata permette prestazioni migliori in particolare in un’attività che richiede un’elaborazione dei dati Importanza delle frequenza di clock —> non solo la frequenza di clock determina le prestazioni ci una CPU, ma anche i core, l’architettura del processore, la cache e l’efficienza energetica Differenza tra CPU X86 CISC e RISC Esempi di operazioni matematiche in CISC —> immaginiamo di dover eseguire una divisione con resto in un’architettura CISC: 1- istruzioni complesse: CPU e CISC hanno istruzioni che consentono di svolgere operazioni complesse in un solo passaggio (una sola istruzione di divisione CISC può calcolare il quoziente e il resto nello stesso momento) 2- utilizzo dei registri: le CPU CISC tendono ad avere un numero minore di registri, ma le istruzioni possono eseguire operazioni complicate coinvolgendo più parti che operano 3- esempio pratico:l'istruzione di divisione potrebbe assomigliare a questo: DIVIDE A, B, dove A e B sono registri o posizioni di memoria. Questa istruzione divide il contenuto di A per B e restituisce il risultato in un registro specifico, con minimo sforzo da parte del programmatore. Esempi di operazioni matematiche in RISC —> 1- istruzioni semplici: la CPU RISC eseguono operazioni più semplici e piccole, infatti una singola istruzione fa molto meno rispetto a una in CISC; per una divisione con resto RISC avrebbe bisogno di istruzioni più semplici 2- utilizzo intensivo dei registri : le CPU RISC hanno molti registri e le operazioni sono progettate per lavorare con questi, quindi utilizzerebbe diverse istruzioni usando registri multipli per memorizzare i valori intermedi 3- esempio pratico:il processo di divisione potrebbe richiedere istruzioni come LOAD, SUBTRACT, e COMPARE, ripetute in una sequenza per arrivare al risultato finale del quoziente e del resto. Ogni istruzione esegue una parte del

nello stesso momento senza rallentamenti

  • memoria temporanea —> la RAM è una memoria volatile, cioè conserva i dati solo quando il computer è acceso, e quando si spegne i dati vengono persi
  • Applicazioni e sistemi operativi —> utilizzano la RAM per le operazioni di routine (ex, apri un browser web, il sistema operativo lo carica nella RAM per farlo funzionare fluidamente)
  • Importanza per le prestazioni —> quantità e velocità della RAM possono avere un impatto sulle prestazioni generali del computer, quelli con più ram infatti possono gestire più applicazioni “pesanti” e migliorare l’esperienza dell’utente in attività come il gaming, editing, lavori com grandi database
  • Tipi di RAM —> esistono i DDR3 e DDR4, con diverse velocità e specifiche tecniche; la scelta del tipo di RAM dipende dalla compatibilità con la scheda madre e dalle esigenze che ha l’utente Cosa serve HDD Funzione principale degli HDD:
  • memorizzazione del sistema operativo —> conservano il sistema operativo del pc, quando questo viene acceso l’HDD carica l’OS nella RAM per l’avvio e l’esecuzione
  • Archiviazione di dati e file —> gli HDD sono usati anche per memorizzare un grande numero di dati (foto,video,software,ecc) e inoltre hanno una capacità di archiviazione che li rende più adatti per la conservazione di questi dati Caratteristiche e uso degli HDD:
  • tecnologia di memorizzazione —> utilizzano piatti magnetici rotanti e testine di lettura o scrittura per accedere ai dati e memorizzarli; questo permette di memorizzare grandi quantità a un costo più o meno basso
  • Velocità e performance—> sebbene sia inferiore agli SSD (solid state drives), è adatta per molte applicazioni da uso quotidiano e per archiviare i dati
  • Backup e sicurezza dei dati —> il backup implica la creazione di copie di dati memorizzati sull’ HDD per prevenirne la perdita in caso di guasto dell’hardware o errori del software
  • Importanza nel contesto informatico —> hanno una grande importanza per lo sviluppo dei personal computer, grazie ai loro pregi di costo e capacità di spazio HDD M.2 - SATA- magnetico vs SSD. Velocità e costo HHD (hard disk drive)
  • funzionamento —> memorizzano i dati su dischi magnetici che ruotano; le testine di scrittura o lettura si muovono sui dischi per accedere ai dati
  • prestazioni —> hanno velocità di accesso ai dati più lente rispetto agli SSD a causa della loro natura meccanica dei dischi rotanti e testine di movimento
  • Costo e capacità —> sono più economici per gigabyte rispetto agli SSD e sono disponibili in capacità di archiviazione più elevate SSD (solid state drive) e Interfacce M.2/SATA
  • SSD —> non hanno parti mobili e usano celle di memoria flash per archiviare i dati, dando così più accessi rapidi e una maggiore affidabilità. Sono più costosi ma offrono maggiori prestazioni in termini di velocità di avvio del sistema e caricamento delle app
  • Interfacce M.2 e SATA —> SATA interfaccia standard per connettere HDD e SSD, i dischi sono limitati dalla velocità dell’interfaccia che è inferiore rispetto a PCle usato in M.2. M.2 interfaccia moderna che supporta sia il protocollo SATA che PCle; gli SSD M.2 con connessione PCle hanno più velocità della SATA e sono ideali per operazioni ad alta densità di dati
  • Velocità e costo —> SSD più costosi , migliore esperienza per l’utente con tempi di avvio e caricamento veloci; HHD sono una scelta popolare per l’archiviazione di grandi quantità di dati a un costo più basso Riconoscimento del dispositivo di memoria 1- interfaccia hardware : pc, tablet o smartphone utilizzano la loro faccia hardware (USB, slot per SD card, ecc) per connettersi al dispositivo di memoria 2- interazione con il sistema operativo: collegato, il sistema operativo rileva la presenza di un nuovo dispositivo di memoria ma per far sì che funzioni e sia accessibile, deve essere formattato in un formato compatibile con il sistema operativo in uso Formattazioni comuni e compatibilità tra sistemi operativi :
  • Windows 10 —> SD card spesso formattate in FAT32, formato supportato ma con limitazioni come la dimensione di un file con massimo 4 GB; HDD formattati in NTFS con maggiore sicurezza e supporto per file di grandi dimensioni ma con una compatibilità limitata su sistemi non Windows

SD Card Anch’essa può essere usata come supporto esterno per archiviare i dati, e sono versatili grazie alle loro multiple dimensioni (standard, micro, mini) e alla loro compatibilità con molti dispositivi (smartphone, fotocamere digitali e droni) Utilizzo di adattatori e adapter SD card to USB3: 1- adattatori per micro SD card —> com SD card micro si possono usare adattatori standard per inserirla direttamente nello slot SD del pc; questi adattatori non richiedono alimentazione esterna o connessione USB 2- adapter SD card to USB —>

  • questo dispositivo converte l’SD o micro SD card in una chiavetta USB per farla collegare a qualsiasi porta USB
  • Collegandola in questo modo, il computer la riconoscerà come una memoria USB esterna che può avere vantaggi in termini di velocità di trasferimento dei dati, sfruttando così una maggiore velocità delle porte USB Confronto tra SSD/HDD, USB KEY, SD CARD tramite USB
  • Funzionalità simile —> collegati al computer, tutti questi hanno la funzione di memoria esterna, il sistema operativo li rileverà come unità esterne permettendo di di trasferire dati, leggere file, come tutti gli altri dispositivi esterni
  • Prestazioni—> variano a seconda del tipo di dispositivo e alla sua tecnologia
  • Probabilità e convenienza —> le SD Card e le chiavette USB hanno un vantaggio in termini di portabilità e facilità d’uso Uno dei vantaggi principali delle SD card è la loro certificazione di velocità, e gli standard di velocità più comuni includono:
  1. Classi di velocità standard (SD speed class) —> classe 2 (c2), classe 4 (c4) e classe 6 (c6), classe 10 (c10)
  2. UHS (ultra high speed) class —> UHS classe 1 (u1), UHS classe 3 (u3)
  3. Video speed class —> V6 e V10, V30, V60, V Tipi di porte di un pc
  • OS (sistemi operativi) È un software che gestisce le risorse hardware di un computer e fornisce dei servizi per i programmi del computer; è una sorta di intermediario tra utente e hardware (Windows, Linux, macOS)
  • Processi Istanza di un programma in esecuzione, è incluso il codice del programma e il suo attuale stato di esecuzione
  • thread la sequenza più piccola di istruzioni programmabili che può essere indipendente da un scheduler che sta nel sistema operativo; un processo può contenere più thread
  • user process processi eseguiti nello spazio utente e non hanno un accesso diretto all’hardware o ai dati kernel; questi sono isolati dal sistema operativo per la sicurezza
  • kernel process questi processi hanno un pieno controllo del sistema e possono interagire direttamente con l’hardware; il kernel gestisce le richieste di input e output, funzioni a basso livello; gli errori possono portare a problemi di sistema gravi HARDWARE - GPU Graphics processing Unit, originariamente progettata per i videogiochi, poi per altre applicazioni; processore creato per accelerare la creazione di immagini di un buffer di memoria destinato a un dispositivo di visualizzazione. Viene usata per applicazioni grafiche avanzate, con l’uso delle Criptovalute, ma soprattutto con l’intelligenza artificiale Codice e programmazione Compilatore: programma che converte il codice originario in un linguaggio di programmazione, in un formato eseguibile
  1. Python —> linguaggio interpretato, il suo codice sorgente viene prima convertito in bytecode Python e poi viene eseguito da un interprete Python ; è molto facile da usare e il bytecode generato è indipendente dalla piattaforma potendolo così eseguire su qualsiasi sistema che abbia un Python installato correttamente
  2. Java e .Net Core. —> anche loro compilano il codice sorgente in uno intermedio che viene poi eseguito da una macchina virtuale
  3. Compilazione diretta VC++ (Visual C++) —> compila il codice C++ in codice macchina specifico per una piattaforma e architettura hardware

Intervento su processi non rispondenti Un applicazione può non funzionare correttamente e in questi casi il kernel può intervenire sottraendo delle risorse a quel processo o anche farlo finire in modo forzato per far sì che il sistema continui senza problemi. Codice e compilazione Il codice, istruzioni scritte in un linguaggio di programmazione che deve essere eseguito da un computer, può essere:

  • interpretato —> eseguito direttamente da un interprete specifico per quel linguaggio su qualsiasi sistema che ha un interprete (Phyton)
  • Compilato —> codificato (trasformato) in codice macchina specifico per quel tipo di sistema operativo e/o architettura hardware (file per Linux o Windows) codice compilato —> è codificato per la codifica della CPU RISC/CISC e per il compilatore del sistema operativo con i relativi accessi. Per esempio il codice compilato per Windows non potrà girare su altri sistemi operativi e viceversa; i file compilati su Windows sono con estensione .exe (estensione ultimi tre caratteri dopo il “…”). Su Linux invece i file non hanno un’estensione ma hanno un attributo di eseguibilità e il file di installazione è in un pacchetto .Deb.; i programmi installabili su questi sistemi sono compilati quindi non potranno essere installati sugli OS. I file compilati producono file binari non leggibili e i vantaggi sono che sfrutta hardware e OS al ,assumo delle sue capacità e viene eseguito in maniera ottimizzata per l’ambiente operativo Codice intermedio interpretato —> è un file che contiene istruzioni in modalità testo e sono leggibili, i linguaggi prodotti sono Phyton, .Net Core, Java, goLang, Javascript; il codice può essere eseguito quasi senza modifiche in tutti gli OS, i file prodotti sono file di testo ispezionabili e il vantaggio è che lo stesso programma può girare su più sistemi operativi, mentre gli svantaggi sono il fatto che non sfrutta la la capacità e potenza dell’hardware ne dell’OS e può avere un’esecuzione lenta Programmi cross Platform —> possono essere eseguiti su più piattaforme come Chrome, ma si seguirà un codice diverso. I dati sono considerati cross Platform quindi possono essere aperti, letti o visualizzati su qualsiasi sistema operativo solo se si ha il software appropriato per interpretarli, ad esempio
  • immagini (JPEG,MP4) : possono essere visualizzati su qualsiasi dispositivo che abbia un visualizzatore di immagini
  • Filmati (MKV,MP4) : possono essere riprodotti su qualsiasi dispositivo che abbia un lettore multimediale compatibile con quel formato
  • Documenti (DOCX,PDF) : aperti e letti su ogni piattaforma cha ha un lettore

documenti che supporta il formato Tutto questo avviene perché i dati sono memorizzati in formati standard, che sono indipendenti dal sistema operativo, e definiscono come i dati sono organizzati e memorizzati facendo sì che i software siano compatibili su diverse piattaforme e possano interpretarli nel modo giusto Glossario •Compilatore: Un software che traduce il codice sorgente scritto in un linguaggio di programmazione ad alto livello in un formato eseguibile da un computer, come codice macchina o bytecode, facilitando l'esecuzione del programma su un sistema operativo specifico. •Bytecode: Un tipo di codice intermedio più astratto rispetto al codice macchina. Viene utilizzato da alcune piattaforme, come Java (JVM) e .NET (CLR), per consentire l'esecuzione del codice su diverse architetture hardware tramite interpretazione o compilazione Just-In-Time. •Python Virtual Machine (PVM): L'ambiente di runtime che esegue il bytecode Python, consentendo l'esecuzione di script Python su qualsiasi sistema che possieda l'interprete Python. •Java Virtual Machine (JVM): Un componente della piattaforma Java che esegue programmi compilati in bytecode Java, permettendo loro di girare su qualsiasi dispositivo che abbia la JVM. •Common Language Runtime (CLR): Il motore di esecuzione al centro della piattaforma .NET, che consente l'esecuzione di codice MSIL (Microsoft Intermediate Language), gestendo servizi come la gestione della memoria, la sicurezza del codice, e altro. •RISC (Reduced Instruction Set Computer): Un'architettura di processore che utilizza un set ridotto di tipi di istruzioni, mirando a velocizzare l'esecuzione del programma attraverso la semplificazione delle operazioni eseguibili da ciascuna istruzione. •CISC (Complex Instruction Set Computer): Un'architettura di processore caratterizzata da un set esteso di istruzioni che possono eseguire complesse operazioni di elaborazione dati con un singolo comando, contrapposta alla filosofia RISC. •Codice Nativo Compilato: Codice che è stato tradotto dal codice sorgente in codice macchina specifico per un'architettura hardware e sistema operativo, rendendolo ottimizzato per quella piattaforma ma meno portatile. •API (Application Programming Interface): Un insieme di definizioni e protocolli per la costruzione e l'integrazione di software applicativo, consentendo a diversi programmi di comunicare tra loro. •Kernel: La parte centrale del sistema operativo, che gestisce le operazioni di basso livello, in particolare quelle riguardanti l'hardware. Funziona come un ponte tra le applicazioni software e l'elaborazione fisica dei dati effettuata a livello di hardware. •Processi User: Programmi ed applicazioni eseguiti in uno spazio di memoria protetto, separato dal kernel, per prevenire accessi diretti all'hardware che potrebbero compromettere la sicurezza e la stabilità del sistema. •Cross-platform: Software o codice che può essere eseguito su più sistemi operativi senza modifiche sostanziali, grazie all'uso di ambienti di runtime universali o alla compilazione condizionale basata sulla piattaforma.