Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 09-05-2009, 10:41   #1
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1271
Programmazione kernel

Qualuno di voi si è mai addentrato nella programmazione del kernel? intendo anche piccoli moduli.
In questi giorni per curiosità ho voluto dare uno sguardo al kernel Linux e al kernel XNU (tra l'altro non sapevo che parte di OSX fosse open source). Mi sono spaventato della loro complessità, non tanto per le righe i codice, quanto per il numero di file in cui è diviso il kernel, anche escludendo il filesystem e i driver, anche il nucleo del kernel è diviso in decine di file, che si tratta di XNU o di Linux; non sarebbe stato meglio creare un solo file sorgente? magari creando un file di testo che indichi la riga in cui trovare ogni funzione. Vorrei capire il funzionamento del gestore della memoria o del gestore dei processi di un kernel, secondo voi ho qualche speranza di riuscirci?
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline  
Old 09-05-2009, 15:20   #2
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
. Mi sono spaventato della loro complessità, non tanto per le righe i codice, quanto per il numero di file in cui è diviso il kernel, anche escludendo il filesystem e i driver, anche il nucleo del kernel è diviso in decine di file, che si tratta di XNU o di Linux; non sarebbe stato meglio creare un solo file sorgente? magari creando un file di testo che indichi la riga in cui trovare ogni funzione.


un kernel in un unico file,questa mi mancava davvero...
__________________
Khelidan
khelidan1980 è offline  
Old 09-05-2009, 15:22   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
non sarebbe stato meglio creare un solo file sorgente?
No.
























Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
Vorrei capire il funzionamento del gestore della memoria o del gestore dei processi di un kernel, secondo voi ho qualche speranza di riuscirci?
Certo, ma devi avere un buon fegato e la pazienza di un santo.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline  
Old 09-05-2009, 17:37   #4
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1271
Quote:
Originariamente inviato da khelidan1980 Guarda i messaggi


un kernel in un unico file,questa mi mancava davvero...
sembra una cosa impossibile, però se ci pensi, un solo eseguibile sarebbe ottimizzante per la memoria, e sarebbe anche più semplice a scopi didattici. Per risalire ai vari moduli, sarebbe sufficiente creare un documento che indicasse le righe in cui trovarli. Poi per kernel non intendo file system driver etc, intendo gestione memoria, gestione processi e chiamate di sistema.

Per quanto riguarda la pazienza non c'è problema, visto che mi interessa moltissimo cpire il funzionamento del kernel, e poi tra poco andrò in vacanza e avrò tre mesi per studiarlo bene.
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline  
Old 09-05-2009, 18:32   #5
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Eseguibile != file != kernel

Dunque; un kernel non è un eseguibile, ma più che altro "quello che esegue"... inoltre un eseguibile o una libreria o quello che è vengono sempre compilati a partire da TANTISSIMI file, a parte casi banali.

D'altra parte, non riesco a capire come fai a ritenere più pratico avere un solo file da 2.000.000 righe rispetto a tanti file raggruppati per funzione e con nomi che ne descrivono il contenuto
__________________
*ToMmO*

devlog | twitter
Tommo è offline  
Old 10-05-2009, 10:17   #6
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1271
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Eseguibile != file != kernel

Dunque; un kernel non è un eseguibile, ma più che altro "quello che esegue"... inoltre un eseguibile o una libreria o quello che è vengono sempre compilati a partire da TANTISSIMI file, a parte casi banali.

D'altra parte, non riesco a capire come fai a ritenere più pratico avere un solo file da 2.000.000 righe rispetto a tanti file raggruppati per funzione e con nomi che ne descrivono il contenuto
vuoi dire che compilare 2000 file è come compilarne uno solo?
io non direi. Inoltre trovo più comodo avere tutto in 20000000 di righe, perché hai tutto sottomano, e non devi aprire file su file. Mgari quando scrivi i moduli devi stare ttento che non ci siano bug per non mandare in blocco tutto, ma eseguendo i singoli moduli fuori dal kernel, credo si possa fare senza problemi.

Ad ogni modo, sapete dirmi dove posso trovare qualche ddocumento che spieghi la gerarchia dei sorgenti del kernel Linux o del kernel XNU?

PS: che senso ha chiamare kernel una parte del kernel?
avrebbero potuto chiamarla core, tanto per non creare confusione
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline  
Old 10-05-2009, 11:08   #7
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Vuoi capire come funziona il kernel?

Clicca qui: http://www.os-book.com/

Ma evita di fare affermazioni che buttano via anni e anni di ricerca e evoluzione tecnologica...
_Claudio è offline  
Old 10-05-2009, 11:16   #8
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Io qualche device driver per linux l'avevo scritto taaaaanto tempo fa...
Se vuoi esplorare quell'aspetto c'è il mitico Linux Device Driver, che è a ufo.

http://lwn.net/Kernel/LDD3/
shinya è offline  
Old 10-05-2009, 12:07   #9
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
Qualuno di voi si è mai addentrato nella programmazione del kernel? intendo anche piccoli moduli.
In questi giorni per curiosità ho voluto dare uno sguardo al kernel Linux e al kernel XNU (tra l'altro non sapevo che parte di OSX fosse open source). Mi sono spaventato della loro complessità, non tanto per le righe i codice, quanto per il numero di file in cui è diviso il kernel, anche escludendo il filesystem e i driver, anche il nucleo del kernel è diviso in decine di file, che si tratta di XNU o di Linux; non sarebbe stato meglio creare un solo file sorgente? magari creando un file di testo che indichi la riga in cui trovare ogni funzione. Vorrei capire il funzionamento del gestore della memoria o del gestore dei processi di un kernel, secondo voi ho qualche speranza di riuscirci?
beh stai "solo" mandando a puttane il concetto di modularizzazione....un salto nel passato di 20 anni

Per capire come funziona il gestore della memoria e dei processi comprati un bellibro di sistemi operativi e studiatelo tutto :-)
D4rkAng3l è offline  
Old 10-05-2009, 12:24   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Mi viene in mente la stupenda comodità di un intero kernel in un singolo file. Milioni e milioni di righe, tempi di caricamento e salvataggio mostruosi, la RAM che muore sotto...

E poi vorrei vedere con Linux in un unico file sorgente cosa si capirebbe di com'è fatto.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline  
Old 10-05-2009, 13:36   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
minchia ragazzi, é del '91, ha appena 18 anni e non ha mai programmato in vita sua... e fategliela dire una cazzata
71104 è offline  
Old 10-05-2009, 13:40   #12
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da 71104 Guarda i messaggi
minchia ragazzi, é del '91, ha appena 18 anni e non ha mai programmato in vita sua... e fategliela dire una cazzata
Ma infatti ricordo i miei vergognosi post a 15 anni che provavo a scrivere un kernel pure io, ne ho dette di cazzate... Ed infatti mica gli impedisco di dirle: solo vedo di portarlo sulla buona strada.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline  
Old 10-05-2009, 19:51   #13
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
Se vuoi spaventarti vai su questo sito e scaricati le slides, è un corso dato al secondo anno della specialistica in ingegneria informatica, per farti rendere conto un po della portata!!!
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB
morskott è offline  
Old 10-05-2009, 19:52   #14
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
sembra una cosa impossibile, però se ci pensi, un solo eseguibile sarebbe ottimizzante per la memoria, e sarebbe anche più semplice a scopi didattici. Per risalire ai vari moduli, sarebbe sufficiente creare un documento che indicasse le righe in cui trovarli. Poi per kernel non intendo file system driver etc, intendo gestione memoria, gestione processi e chiamate di sistema.

Per quanto riguarda la pazienza non c'è problema, visto che mi interessa moltissimo cpire il funzionamento del kernel, e poi tra poco andrò in vacanza e avrò tre mesi per studiarlo bene.
Tu pensi che a 18 anni in 3 mesi di vacanza riusciresti a fare quello che forse (e dico forseee) riuscirebbe a fare una persona con una quinquennale in Informatica?

DOH
D4rkAng3l è offline  
Old 10-05-2009, 20:35   #15
grigor91
Senior Member
 
L'Avatar di grigor91
 
Iscritto dal: Dec 2007
Città: brianza
Messaggi: 717
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
vuoi dire che compilare 2000 file è come compilarne uno solo?
io non direi. Inoltre trovo più comodo avere tutto in 20000000 di righe, perché hai tutto sottomano, e non devi aprire file su file. Mgari quando scrivi i moduli devi stare ttento che non ci siano bug per non mandare in blocco tutto, ma eseguendo i singoli moduli fuori dal kernel, credo si possa fare senza problemi.

Ad ogni modo, sapete dirmi dove posso trovare qualche ddocumento che spieghi la gerarchia dei sorgenti del kernel Linux o del kernel XNU?

PS: che senso ha chiamare kernel una parte del kernel?
avrebbero potuto chiamarla core, tanto per non creare confusione
Non basterebbe fare un documento che ti dice in quale file e riga si trova ogni modulo? Il risultato sarebbe equivalente alle tue richieste.
__________________
AMD Ryzen 9700X MSI RX 480 Gaming X 8G ASRock B850 Pro-A Windows 11 Pro RAM DDR5 16GBx2 TEAMGROUP T-Create Expert 6000 MHz CL30 SSD Crucial T500 4TB case Corsair Carbide 200R
grigor91 è offline  
Old 10-05-2009, 20:38   #16
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Ma infatti ricordo i miei vergognosi post a 15 anni che provavo a scrivere un kernel pure io, ne ho dette di cazzate... Ed infatti mica gli impedisco di dirle: solo vedo di portarlo sulla buona strada.
Più che altro di cazzate ne abbiamo dette tutti in gioventù e visto che siamo stati perculati noi all'epoca in cui provavamo ad imbarcarci in progetti impossibili ora mi pare cosa buona e giusta percurlare i giovini che si imbarcano in assurdità e la sparano grossa
D4rkAng3l è offline  
Old 11-05-2009, 14:51   #17
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1271
non sono cazzate, volendo un kernel potrebbe benissimo stare in un unico file, e per lo sviluppo basterebbe eseguire (e compilare) le varie parti fuori dal kernel; inoltre, altra cosa, non ho mai messo in dubbio i vantaggi della scomposizione in moduli, ho solo detto che per motivi didattici, con un apposito indice sarebbe stato più semplice avere il kernel in un unico file.
Terza e ultima cosa, non voglio studiarmi il kernel, non voglio studiarmi neanche un solo filesystem, ma gestore memoria e/o gestore processi. Non mi sembra impossibile, soprattutto considerando il fatto che non devo scrivere un kernel, non devo neanche scrivere un modulo del kernel, solo leggere. Ho chiesto se qualcuno si è mai interessato della scrittura di moduli del kernel, sperando che riportasse le proprie esperienze.

Comunque grazie per i link.
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline  
Old 11-05-2009, 15:11   #18
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Io ho scritto, piu' di 10 anni fa, un modulo kernel per Minix per il supporto delle finestre multiple ciascuna per il proprio processo. L'utente sceglieva con i tasti funzione quale finestra di quale processo voleva vedere e il sistema si occupava di copiare sulla memoria video i dati.
Ma tutto in un file no... c'erano pezzi in assembly, pezzi in C, etc.

Ah, ancora, circa 20 anni fa insieme ad un amico avevamo cambiato parti di kernel del Commodore 64/128, che si chiamava Kernal, e tra le altre cose avevamo supportato il Basic con keyword in piemontese (che faceva parte del Kernel su quella macchina)
Non lo annovererei pero' tra le modifiche del Kernel piu' utili della storia, e nemmeno lo metto nel curriculum...

In pratica potevi scrivere poi programmi stile:
10 BUTA a = 100
20 BUTA a = a+1
30 STAMPA a
40 SE a>200 ALURA SAUTA 60
50 SAUTA 20
60 STAMPA "Ciao"

Un perfetto spaghetti code piemotese, direi che si potrebbe chiamare "Surgent ai Tajarin"
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 11-05-2009 alle 15:27.
gugoXX è offline  
Old 11-05-2009, 16:02   #19
-Slash
Senior Member
 
L'Avatar di -Slash
 
Iscritto dal: Mar 2006
Messaggi: 2516
Quote:
Originariamente inviato da M4rk191 Guarda i messaggi
non sono cazzate, volendo un kernel potrebbe benissimo stare in un unico file, e per lo sviluppo basterebbe eseguire (e compilare) le varie parti fuori dal kernel; inoltre, altra cosa, non ho mai messo in dubbio i vantaggi della scomposizione in moduli, ho solo detto che per motivi didattici, con un apposito indice sarebbe stato più semplice avere il kernel in un unico file.
Terza e ultima cosa, non voglio studiarmi il kernel, non voglio studiarmi neanche un solo filesystem, ma gestore memoria e/o gestore processi. Non mi sembra impossibile, soprattutto considerando il fatto che non devo scrivere un kernel, non devo neanche scrivere un modulo del kernel, solo leggere. Ho chiesto se qualcuno si è mai interessato della scrittura di moduli del kernel, sperando che riportasse le proprie esperienze.

Comunque grazie per i link.
Ma hai idea di cosa significherebbe avere 2000000 di righe di codice in un solo file?

Solo per aprirlo ci vorrebbero un paio di minuti. Per cercare una parte in particolare(magari di poche linee di codice) ti ci vorrebbe mezza giornata

Comunque per quello che vuoi sapere tu basta un libro di sistemi operativi qualsiasi, come per esempio lo stallings. Lì troverai a grandi linee le spiegazioni che cerchi
-Slash è offline  
Old 11-05-2009, 16:26   #20
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Se ti interessa sapere come funziona un gestore dei processi o della memoria ti compri un qualsiasi libro di sistemi operativi e te lo leggi come quello di Paolo Ancilotti ed altri 3 professori edito da McGrowHill...però te lo devi studiare tutto perchè sapere come funziona il gestore dei processi e della memoria senza sapere come si interfaccia con il resto del sistema operativo ha molto poco senso.

Ahh...di codice ne vedrai molto poco a questo livello...saprai a grandi linee in linea teorica come funziona un generico sistema operativo e le strategie che può adottare a sviluppare ad esempuio vari tipi di scheduler di processi e vari tipi di gestione della memoria.

Guarda te lo dico sinceramente...io al terzo anno di Informatica avrei grosse difficoltà a leggere il sorgente di un kernel e a capire cosa fà....e credo proprio che tra esami di programmazione, metodologie di programmazione e di progettazione sono qualche anno luce avanti a te...
Tra l'altro dovresti avere anche delle salde basi di architetture degli elaboratori per addentrarti nel mondo dei SO e dovresti avere una discreta conoscienza di assembler...

Non è per scoraggiarti...ma magari se hai poca esperienza inizia a leggerti un libro di SO per farti una cultura generale e come programmazione buttati su progetti più tranquilli e sicuramente più utili dal punto di vista didattico...per ora...poi se vorrai approfondire avrai tempo continuando gli studi

Ciao
Andrea
D4rkAng3l è offline  
 Discussione Chiusa


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Era finito, eccolo ancora: torna il supe...
Game Pass: tutte le novità di nov...
Xiaomi 15T e 15T Pro con fotocamere by L...
3 portatili un super sconto: 355€ con 16...
Il nuovo iPhone pieghevole costerà...
MediaTek Dimensity 9500 sfida lo Snapdra...
Nuovo storico lancio per il razzo spazia...
Elgato Embrace: una sedia ergonomica pro...
Brad Pitt torna in pista: F1 – Il Film a...
Hitachi Vantara annuncia la sua AI Facto...
Brembo passa all'alluminio riciclato al ...
HONOR pronta a sfidare gli iPad Pro con ...
OpenAI esce allo scoperto: confermati i ...
In arrivo altri due prodotti da Apple en...
Il tool per aggiornare da Windows 10 a W...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v