NetSurf 2.6 ai nastri di partenza

Le nostre news in homepage

Moderatore: Newser

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda cdimauro » mar ott 05, 2010 10:12 pm

ShInKurO ha scritto:
cdimauro ha scritto:Dipende da quello che ci fai. Inoltre su AmigaOS la memoria si frammenta molto facilmente, e questo aggrava la situazione.

La gestione della memoria su AmigaOS4 è cambiata radicalmente:

http://web.archive.org/web/200512301415 ... 22&Itemid=

Vero, ma senza MMU è difficile riuscire a "rimettere assieme" i pezzi di memoria disallocata da un'applicazione (in particolare nel caso della sua chiusura) in modo da riformare blocchi più grandi.

Potresti avere 100MB di RAM libera, ma non poter aprire un'immagine che ne occupa 20, ad esempio.
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda cdimauro » mar ott 05, 2010 10:16 pm

afxgroup ha scritto:
cdimauro ha scritto:Non c'è differenza fra Exec e una qualunque altra libreria.

C'è differenza "teorica". C'era prima e c'è anche adesso. Perchè se ti rimpiazzavano exec.library ed era buggata magari non ti partiva l'OS

Difficile che potesse succedere: sarebbe stato un errore talmente macroscopico da richiedere il rilascio di una nuova ROM.
ma chiunque poteva farsi un clone di ASL.library e metterlo al posto della tua e se per caso la tua aveva una versione diversa e/o era buggata per qualsiasi motivo tutti i programmi si sarebbero schiattati anche se l'OS partiva.
E' inutile che cercate di girarci intorno. Era così e sarà sempre così con le varie librerie shared e/o "amigose". L'unica soluzione possibile sarebbe linkare tutto staticamente.

Dimentichi che con AmigaOS puoi patcharti perfino l'API utilizzata dallo scheduler di Exec.

Difatti, anche se AmigaOS non viene più sviluppato, col tempo sono nate numerose patch per correggere bug delle librerie e aggiungere anche nuove funzionalità. Sempre a colpi di SetPatch.

Ma le librerie rimangono in ogni caso in singola copia, sia su ROM/disco che in memoria. E scusa se è poco...
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda afxgroup » mar ott 05, 2010 10:25 pm

Altra cosa che con i sistemi operativi moderni è altamente rischiosa.. perchè patcharti una funzione ti permette di fare cose che potrebbero essere "leggermente" pericolose.. giusto un po'..
E tornando ad exec ormai con OS4 non c'è più nulla in ROM. forse quel discorso andrebbe bene per OS3 ma non per OS4. Ecco perchè a sto punto consiglio di restare ad OS3 e amen
Avatar utente
afxgroup

Admin
 
Messaggi: 3647
Iscritto il: ven giu 11, 2004 9:49 am
Località: Taranto

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda cdimauro » mar ott 05, 2010 10:51 pm

Non a caso ho sempre parlato di AmigaOS.

OS4, per come sto vedendo che funziona, non lo considero il successore o un erede.

AmigaOS non è mai stato un s.o. sicuro fin dal day 1, ma ciò non toglie che sia possibile pensare a qualche soluzione che permetta di mantenere l'enorme flessibilità che offre con una maggior sicurezza.
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda ShInKurO » mer ott 06, 2010 7:22 am

cdimauro ha scritto:Vero, ma senza MMU è difficile riuscire a "rimettere assieme" i pezzi di memoria disallocata da un'applicazione (in particolare nel caso della sua chiusura) in modo da riformare blocchi più grandi.

Uhm, ma OS4 utilizza la MMU, gli indirizzi sono virtualizzati come nei sistemi moderni...
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda TheKaneB » mer ott 06, 2010 1:04 pm

ShInKurO ha scritto:
cdimauro ha scritto:Vero, ma senza MMU è difficile riuscire a "rimettere assieme" i pezzi di memoria disallocata da un'applicazione (in particolare nel caso della sua chiusura) in modo da riformare blocchi più grandi.

Uhm, ma OS4 utilizza la MMU, gli indirizzi sono virtualizzati come nei sistemi moderni...


ehm... la questione è un po' complicata.

OS4, se non vado errato, espone un unico address space per tutti i programmi e per lo stesso kernel. Questo significa che la funzione della memoria virtuale serve soltanto a mappare questo address space sulla memoria fisica.
In particolare, ogni context switch tra processi NON implica un flush del TLB e NON implica una riprogrammazione della MMU.
Questo si traduce in maggiori prestazioni, ma non virtualizza gli address spaces dei singoli programmi.

Se montassi 2GB di ram su un sistema con OS4, in particolare, la memoria virtuale smetterebbe di essere utile, perchè il mapping tra indirizzi virtuali e fisici sarebbe 1:1.

Detto questo, quando i programmi frammentano la memoria nello spazio di indirizzi virtuali, sicuramente posso compattare le pagine "fisiche", ma nello spazio virtuale visto dai programmi questa memoria è, e continuerà ad essere, frammentata.

Ciò che limita la frammentazione di memoria in sistemi come Unix o Windows, è proprio la separazione di ogni "singolo" address space rispetto a quello di tutti gli altri processi.

In questo modo, se un processo frammenta il "proprio" address space virtuale, quello degli altri programmi non subisce "nessuna interferenza" in tal senso. La MMU in questi casi viene riprogrammata ad ogni context switch (o meglio ancora, solo se al rientro dall'ISR è stata effettuata una rischedulazione dei task) e di conseguenza viene flushato il TLB, penalizzando le prestazioni ma assicurando un'enorme vantaggio in termini di stabilità di sistema.
Avatar utente
TheKaneB

Eroe
 
Messaggi: 2218
Iscritto il: sab mar 27, 2010 2:17 am
Località: Milano

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda samo79 » mer ott 06, 2010 2:19 pm

TheKaneB ha scritto:Detto questo, quando i programmi frammentano la memoria nello spazio di indirizzi virtuali, sicuramente posso compattare le pagine "fisiche", ma nello spazio virtuale visto dai programmi questa memoria è, e continuerà ad essere, frammentata.

Ciò che limita la frammentazione di memoria in sistemi come Unix o Windows, è proprio la separazione di ogni "singolo" address space rispetto a quello di tutti gli altri processi.


Non è quello che già fa OS4 tramite lo slab allocator ?

http://www.amiga.org/forums/showthread.php?t=46360
Immagine

Moderatore sezioni Amiga/AmigaOne su
TGMOnline

WHEN IT'S DONE Immagine

Le mele a volte possono essere devastate dal colpo feroce di una tempesta, ma il tenero fascio del sole potrà sempre far sviluppare dei nuovi frutti

Sam440ep Flex 800 Mhz - 1 GB DDR Ram - Radeon 9250 - AmigaOS 4.1
AmigaOne XE G3 800 Mhz - 640 MB Ram - Radeon 9200 SE - AmigaOS 4.1
Avatar utente
samo79

Staff
 
Messaggi: 14962
Iscritto il: ven gen 10, 2003 5:09 am
Località: Perugia

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda ShInKurO » mer ott 06, 2010 3:06 pm

TheKaneB ha scritto:Se montassi 2GB di ram su un sistema con OS4, in particolare, la memoria virtuale smetterebbe di essere utile, perchè il mapping tra indirizzi virtuali e fisici sarebbe 1:1.


È quello che sostengo anch'io, e prima di me tutti gli sviluppatori dietro MorphOS. Se il sistema fosse a 64bit nel 21esimo secolo, o comunque avesse un supporto PAE allora la situazione sarebbe a favore di OS4 e del suo supporto alla memoria virtuale, ma in queste condizioni un simile supporto è praticamente superfluo: si comprano 2Gb di ram e si disattiva la memoria virtuale. Il sistema ne beneficierebbe di certo (in quanto la memoria virtuale su OS4 è una pena...).

Detto questo, quando i programmi frammentano la memoria nello spazio di indirizzi virtuali, sicuramente posso compattare le pagine "fisiche", ma nello spazio virtuale visto dai programmi questa memoria è, e continuerà ad essere, frammentata.

Ciò che limita la frammentazione di memoria in sistemi come Unix o Windows, è proprio la separazione di ogni "singolo" address space rispetto a quello di tutti gli altri processi.

In questo modo, se un processo frammenta il "proprio" address space virtuale, quello degli altri programmi non subisce "nessuna interferenza" in tal senso. La MMU in questi casi viene riprogrammata ad ogni context switch (o meglio ancora, solo se al rientro dall'ISR è stata effettuata una rischedulazione dei task) e di conseguenza viene flushato il TLB, penalizzando le prestazioni ma assicurando un'enorme vantaggio in termini di stabilità di sistema.

Grazie per la spiegazione, non avevo pensato che la separazione degli indirizzi per processo svolta con la MMU avesse anche questo importante vantaggio.

@samo79
No, non è la stessa cosa, in pratica per non avere la frammentazione di cui parlano TheKaneB e cdimauro serve il supporto alla memoria protetta.
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda divina » mer ott 06, 2010 5:20 pm

ShInKurO ha scritto:
TheKaneB ha scritto:Se montassi 2GB di ram su un sistema con OS4, in particolare, la memoria virtuale smetterebbe di essere utile, perchè il mapping tra indirizzi virtuali e fisici sarebbe 1:1.


È quello che sostengo anch'io, e prima di me tutti gli sviluppatori dietro MorphOS. Se il sistema fosse a 64bit nel 21esimo secolo, o comunque avesse un supporto PAE allora la situazione sarebbe a favore di OS4 e del suo supporto alla memoria virtuale, ma in queste condizioni un simile supporto è praticamente superfluo: si comprano 2Gb di ram e si disattiva la memoria virtuale. Il sistema ne beneficierebbe di certo (in quanto la memoria virtuale su OS4 è una pena...).


quando vi sono 2048Mb di RAM in OS4.1.x la memoria virtuale di default è disabilitata, verificato con la mia postazione
ciao :felice:
Avatar utente
divina

Leggenda
 
Messaggi: 5033
Iscritto il: dom ago 10, 2008 11:19 pm
Località: BG

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda TheKaneB » mer ott 06, 2010 5:28 pm

grazie divina, si vede che la mia teoria era esatta :-)
Avatar utente
TheKaneB

Eroe
 
Messaggi: 2218
Iscritto il: sab mar 27, 2010 2:17 am
Località: Milano

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda ShInKurO » mer ott 06, 2010 5:37 pm

divina ha scritto:quando vi sono 2048Mb di RAM in OS4.1.x la memoria virtuale di default è disabilitata, verificato con la mia postazione
ciao :felice:

Sarebbe stato scandaloso il contrario :ammicca:
Cmq questo evidenzia il fatto che gli OS Amiga compatibili oltre i 2Gb di memoria attualmente non vanno... E nel 21esimo secolo su una piattaforma che vorrebbe puntare sui porting da altre a 32bit in cui però ci sono indirizzamenti che permettono di supportare più di 4Gb diciamo che non è una cosa molto positiva...

D'altra parte una volta rimossa questa limitazione suppongo si perderà la retrocompatibilità, a meno di non chiudere tutto dentro una sandbox... ma ne avevamo già parlato.
Attualmente dubito che ci siano le risorse per avere un'API con annesse infrastrutture a parallela quella di AmigaOS che intanto risiederebbe dentro una sandbox. C'è da dire che MorphOS in questo caso è avanti sin dall'inizio agli altri due OS perchè ha già incapsulato tutte le API di AmigaOS dentro una sandbox. (Per la serie:"cose che abbiamo pensato a monte di tutta la situazione Amiga sin dal 1996-1997")
Il punto è, come evidenziato da guruman da qualche altra parte, che non ci sono le risorse umane per costituire un nuovo ambiente al di fuori di questa sandbox in tempi apprezzabili.
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda m3x » mer ott 06, 2010 8:35 pm

ShInKurO ha scritto:D'altra parte una volta rimossa questa limitazione suppongo si perderà la retrocompatibilità, a meno di non chiudere tutto dentro una sandbox... ma ne avevamo già parlato.
Attualmente dubito che ci siano le risorse per avere un'API con annesse infrastrutture a parallela quella di AmigaOS che intanto risiederebbe dentro una sandbox. C'è da dire che MorphOS in questo caso è avanti sin dall'inizio agli altri due OS perchè ha già incapsulato tutte le API di AmigaOS dentro una sandbox. (Per la serie:"cose che abbiamo pensato a monte di tutta la situazione Amiga sin dal 1996-1997")
Il punto è, come evidenziato da guruman da qualche altra parte, che non ci sono le risorse umane per costituire un nuovo ambiente al di fuori di questa sandbox in tempi apprezzabili.

Non occorre necessariamente una sandbox.
La funzione più "problematica" è IExec->AllocEntry() che ritorna appunto valori a 31 bit (in quanto l'ultimo bit è utilizzato per segnalare un eventuale errore)
Se leggi gli AutoDoc per quella funzione troverai scritto, tra le altre cose:

NOTES
This function is deprecated because it breaks on address spaces past the first 2gig boundary. Use AllocTaskMemEntry() from V51+

Quindi già da molto tempo OS4 utilizza internamente AllocTaskMemEntry, ed inoltre sia DOS che i vari FS sono stati adattati a non utilizzare BPTR ma APTR (in più l'SDK fa il cast BPTR -> APTR)

Utilizzando degli accorgimenti (neanche tanto complicati) si può fare in modo che i programmi nativi PPC possano vedere tutti i 4 GB, mentre i vecchi programmi 68K in emulazione continuano a vedere uno spazio di 2GB.

Certamente qualche vecchio software "esotico" potrebbe risentirne, ammesso che già non ne abbia risentito per altri cambiamenti nella struttura di OS4.1, ma comunque non è priorità per AOS4 la piena compatibilità con il passato.
In cambio, si otterrebbero finalmente i 32 bit pieni.
Avatar utente
m3x

Admin
 
Messaggi: 2250
Iscritto il: mer set 10, 2003 11:30 pm
Località: Roma

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda ShInKurO » mer ott 06, 2010 10:30 pm

m3x ha scritto:Non occorre necessariamente una sandbox.

Intendevo per andare oltre i 4Gb :ammicca:

La funzione più "problematica" è IExec->AllocEntry() che ritorna appunto valori a 31 bit (in quanto l'ultimo bit è utilizzato per segnalare un eventuale errore)
Se leggi gli AutoDoc per quella funzione troverai scritto, tra le altre cose:

NOTES
This function is deprecated because it breaks on address spaces past the first 2gig boundary. Use AllocTaskMemEntry() from V51+

Quindi già da molto tempo OS4 utilizza internamente AllocTaskMemEntry, ed inoltre sia DOS che i vari FS sono stati adattati a non utilizzare BPTR ma APTR (in più l'SDK fa il cast BPTR -> APTR)

Utilizzando degli accorgimenti (neanche tanto complicati) si può fare in modo che i programmi nativi PPC possano vedere tutti i 4 GB, mentre i vecchi programmi 68K in emulazione continuano a vedere uno spazio di 2GB.

Certamente qualche vecchio software "esotico" potrebbe risentirne, ammesso che già non ne abbia risentito per altri cambiamenti nella struttura di OS4.1, ma comunque non è priorità per AOS4 la piena compatibilità con il passato.
In cambio, si otterrebbero finalmente i 32 bit pieni.

Ma cosa si aspetta a troncare del tutto questa e altre funzioni problematiche? :ammicca:

Grazie per aver puntualizzato quale funzione "fa danno" al momento.
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda clros » mer ott 06, 2010 10:55 pm

ShInKurO ha scritto:
Grazie per aver puntualizzato quale funzione "fa danno" al momento.

E abbiamo anche capito perchè ci sono "solo" 31 bit!
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: NetSurf 2.6 ai nastri di partenza

Messaggioda samo79 » gio ott 07, 2010 9:21 am

Tanto per tornare in argomento è stata rilasciata una nuova versione (SVN 10866) :felice:

Main changes in this version since the last stable release:
* Problems with frames fixed
* WebP image support
* New treeview code for hotlist, history, cookies


http://aminet.net/package/comm/www/netsurf
Immagine

Moderatore sezioni Amiga/AmigaOne su
TGMOnline

WHEN IT'S DONE Immagine

Le mele a volte possono essere devastate dal colpo feroce di una tempesta, ma il tenero fascio del sole potrà sempre far sviluppare dei nuovi frutti

Sam440ep Flex 800 Mhz - 1 GB DDR Ram - Radeon 9250 - AmigaOS 4.1
AmigaOne XE G3 800 Mhz - 640 MB Ram - Radeon 9200 SE - AmigaOS 4.1
Avatar utente
samo79

Staff
 
Messaggi: 14962
Iscritto il: ven gen 10, 2003 5:09 am
Località: Perugia

Precedente

Torna a News e rumors

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

cron