Discussione filosofico-sistematica sui Sistemi Operativi

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da Mario Vanoni »

Toni ha scritto:Linux è un kernel , non è un sistema operativo.

Nessuno di voi parla di glibc.

Linux senza glibc non serve ad una mazza.,per questo si parla di GNU/linux.

freebsd è un sistema operativo , in quanto utilizza una sua versione di librerie.

I compiti fondamentali del kernel sono :
-caricare e scaricare processi, con tutto quello che ne consegue , accesso hardware etc etc
-controllare l'esecuzione di processi , e stabilire CHI (software) può avere accesso alle risorse.
quindi implementare un multitasking

Un sistema operativo deve fornire una api per lo sviluppo (Linux non lo fa)
Quindi , almeno

glibc+linux= sistema operativo
Metti il caso di Ken Thompson 1969:

- kernel statico
- sh statica
- editore statico
- compilatore statico

con questo avresti un sistema operativo usabile.

Che il compilatore sia gcc o icc o ... non cambia molto.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6566
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da targzeta »

Mario Vanoni ha scritto:...Che il compilatore sia gcc o icc o ... non cambia molto.
Questa dovrebbe essere una delle differenze tra Sistema Operativo Linux e Sistema Operativo GNU/Linux. Se il kernel a cui ti riferisci era un kernel Linux, ovviamente. Comunque si, in complesso penso si possa dire che abbiamo appurato che il kernel non è il sistema operativo, ma ne è parte.

Sotto quest'ottica è più facile anche capire questo documento GNU:
http://www.gnu.org/gnu/linux-and-gnu.html

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

Avatar utente
Toni
Linux 3.x
Linux 3.x
Messaggi: 999
Iscritto il: lun 30 gen 2006, 22:08
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3
Località: milano

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da Toni »

Mario Vanoni ha scritto:
Toni ha scritto:Linux è un kernel , non è un sistema operativo.

Nessuno di voi parla di glibc.

Linux senza glibc non serve ad una mazza.,per questo si parla di GNU/linux.

freebsd è un sistema operativo , in quanto utilizza una sua versione di librerie.

I compiti fondamentali del kernel sono :
-caricare e scaricare processi, con tutto quello che ne consegue , accesso hardware etc etc
-controllare l'esecuzione di processi , e stabilire CHI (software) può avere accesso alle risorse.
quindi implementare un multitasking

Un sistema operativo deve fornire una api per lo sviluppo (Linux non lo fa)
Quindi , almeno

glibc+linux= sistema operativo
Metti il caso di Ken Thompson 1969:

- kernel statico
- sh statica
- editore statico
- compilatore statico

con questo avresti un sistema operativo usabile.

Che il compilatore sia gcc o icc o ... non cambia molto.
ti serve comunque una libreria.

Se ti serve una printf , cosa fai?
se devi aprire un socket?
etc etc

non dirmi che utlizzi le syscalls........ anche perchè di sicuro non sono implementate nel kernel.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6566
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da targzeta »

Toni ha scritto:...non dirmi che utlizzi le syscalls........ anche perchè di sicuro non sono implementate nel kernel.
Si, però dimentichi che ci sono sistemi operativi in cui le librerie non servono. Penso ai sistemi operativi installati su di un router, un telefonino etc... anche quelli sono sistemi operativi e non hanno librerie. La pagina di wikipedia spiega bene secondo me.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà 

zxzxasas
Linux 2.x
Linux 2.x
Messaggi: 397
Iscritto il: sab 15 nov 2008, 2:28
Nome Cognome: Pasquale
Slackware: current
Kernel: 2.6.35.7
Desktop: KDE 4.5.2

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da zxzxasas »

spina ha scritto:
Toni ha scritto:...non dirmi che utlizzi le syscalls........ anche perchè di sicuro non sono implementate nel kernel.
Si, però dimentichi che ci sono sistemi operativi in cui le librerie non servono. Penso ai sistemi operativi installati su di un router, un telefonino etc... anche quelli sono sistemi operativi e non hanno librerie. La pagina di wikipedia spiega bene secondo me.

Emanuele
I sistemi operativi per sistemi embedded sono una particolarità all' interno dell' intera definizione di sistemi operativi. Infatti sistemi monoprogrammati come possono essere questi non rispecchiano minimamente quello che attualmente viene definito Sistema Operativo.
Sono un sottinsieme e, in quanto tale, non posso rendere giustizia ad una definizione che deve essere quanto più generale possibile.

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da masalapianta »

non ho ben capito il punto, si sta chiedendo di dare una definizione di sistema operativo? In tal caso piu' che un problema filosofico e' un problema semantico; sistema operativo, cioe' atto ad operare, ma operare per fare cosa? Ovviamente dipende dalla destinazione d'uso dell'elaboratore dati su cui e' installato; ad esempio su un sistema desktop il sistema operativo dovrebbe permettere di eseguire ed utilizzare tutti o parte di quegli applicativi propri di questo segmento di elaboratori, quindi dovrebbe avere come minimo un kernel, le librerie di sistema, utilita' di sistema, interfaccia utente (gui o shell che sia, certo oggigiorno un desktop senza gui e' anacronistico ma comunque fattibile, con tutti i limiti del caso); altro esempio, sistemi embedded per pilotare macchine a controllo numerico: kernel, software che legge il g-code e manda gli opportuni segnali all'elettronica di potenza, software che permette di trasferire dall'esterno i file g-code (non necessariamente un sistema ha una sua interfaccia per la programmazione); ci sono poi esempi di sistemi embedded che hanno praticamente solo il kernel e via di seguito.
Quindi se la domanda e' "quali componenti compongono un sistema operativo?", la risposta deve essere "dipende"
zxzxasas ha scritto: I sistemi operativi per sistemi embedded sono una particolarità all' interno dell' intera definizione di sistemi operativi. Infatti sistemi monoprogrammati come possono essere questi non rispecchiano minimamente quello che attualmente viene definito Sistema Operativo.
Sono un sottinsieme e, in quanto tale, non posso rendere giustizia ad una definizione che deve essere quanto più generale possibile.
non ho capito, se l'insieme dei sistemi operativi ha dei sottoinsiemi, con che criterio decidiamo quale di questi sottoinsiemi rispecchia la "definizione di sistema operativo"? dalla diffusione? bhe in quel caso essendo tron il sistema operativo piu' diffuso al mondo ne verrebbe fuori che tutti quei sistemi che non sono real time, per piccoli dispositivi elettronici, composti praticamente dal solo kernel, non sono sistemi operativi; oppure vorresti decidere in base a quali sistemi sono di uso quotidiano per la maggior parte delle persone? anche in quel caso il vincitore sarebbe tron (che viene montato sulla maggior parte dell'elettronica di consumo).
Il punto, come ho spiegato sopra, e' che un sistema operativo e' tale (per una mera questione semantica, non per una convenzione assegnata da chicchessia) quando permette di far operare l'elaboratore per la destinazione d'uso che gli e' propria, quindi la sua struttura varia al variare di questa destinazione d'uso; se ne deduce che una definizione e' possibile solo restingendo il campo ad un singolo segmento di elaboratori dati.

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da elettronicha »

Mario Vanoni ha scritto:
slucky ha scritto:
Quindi almeno nell' accezione moderna del termine, un kernel NON è un Sistema Operativo.
quoto :)

di un kernel senza tutto il resto sinceramente non saprei cosa farne :)
Come ha detto Ken Thompson
- kernel
- shell
- editore
- compilatore

nel lontano 1969 tutti statici,
le shared libraries non esistevano.

Ma con questi elementi ha creato UNIX.
Non penso sia questa la definizione, anche perché non è applicabile, per esempio, a Windows o MacOS.

Avatar utente
elettronicha
Master
Master
Messaggi: 1712
Iscritto il: mer 13 apr 2005, 0:00
Località: Torino
Contatta:

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da elettronicha »

masalapianta ha scritto:non ho ben capito il punto, si sta chiedendo di dare una definizione di sistema operativo? In tal caso piu' che un problema filosofico e' un problema semantico; sistema operativo, cioe' atto ad operare, ma operare per fare cosa? Ovviamente dipende dalla destinazione d'uso dell'elaboratore dati su cui e' installato; ad esempio su un sistema desktop il sistema operativo dovrebbe permettere di eseguire ed utilizzare tutti o parte di quegli applicativi propri di questo segmento di elaboratori, quindi dovrebbe avere come minimo un kernel, le librerie di sistema, utilita' di sistema, interfaccia utente (gui o shell che sia, certo oggigiorno un desktop senza gui e' anacronistico ma comunque fattibile, con tutti i limiti del caso); altro esempio, sistemi embedded per pilotare macchine a controllo numerico: kernel, software che legge il g-code e manda gli opportuni segnali all'elettronica di potenza, software che permette di trasferire dall'esterno i file g-code (non necessariamente un sistema ha una sua interfaccia per la programmazione); ci sono poi esempi di sistemi embedded che hanno praticamente solo il kernel e via di seguito.
Quindi se la domanda e' "quali componenti compongono un sistema operativo?", la risposta deve essere "dipende"
Sono d'accordo sul fatto che anche solo un kernel e uno scarno parco software che si occupano del funzionamento di un qualsiasi sistema embedded costituiscano un SO (ho fatto riferimento in principio): nella definizione a cui ho fatto cenno all'inizio del thread ci stiamo ancora.

Le domande sono:

- qual è l'installazione minima che caratterizza i sistemi GNU/Linux e che fa sì che il resto del sw che ci metti sopra distingua le varie distribuzioni?
- la risposta alla precedente domanda porta a una definizione: questa è poi generalizzabile anche a sistemi non GNU/Linux (Windows, MacOS, ...)?
- come bisogna porsi di fronte a Google Chrome OS? sarà un nuovo SO o una nuova distribuzione */Linux?

Avatar utente
Vito
Staff
Staff
Messaggi: 4180
Iscritto il: mar 5 dic 2006, 17:28
Nome Cognome: Vito
Desktop: MacOS
Località: Monaco (DE)
Contatta:

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da Vito »

elettronicha ha scritto: - come bisogna porsi di fronte a Google Chrome OS? sarà un nuovo SO o una nuova distribuzione */Linux?
Se si limiterà ad includere SOLO il kernel Linux e non il software GNU allora sarà un sistema operativo diverso.
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]

"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]

zxzxasas
Linux 2.x
Linux 2.x
Messaggi: 397
Iscritto il: sab 15 nov 2008, 2:28
Nome Cognome: Pasquale
Slackware: current
Kernel: 2.6.35.7
Desktop: KDE 4.5.2

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da zxzxasas »

masalapianta ha scritto:
zxzxasas ha scritto: I sistemi operativi per sistemi embedded sono una particolarità all' interno dell' intera definizione di sistemi operativi. Infatti sistemi monoprogrammati come possono essere questi non rispecchiano minimamente quello che attualmente viene definito Sistema Operativo.
Sono un sottinsieme e, in quanto tale, non posso rendere giustizia ad una definizione che deve essere quanto più generale possibile.
non ho capito, se l'insieme dei sistemi operativi ha dei sottoinsiemi, con che criterio decidiamo quale di questi sottoinsiemi rispecchia la "definizione di sistema operativo"? dalla diffusione? bhe in quel caso essendo tron il sistema operativo piu' diffuso al mondo ne verrebbe fuori che tutti quei sistemi che non sono real time, per piccoli dispositivi elettronici, composti praticamente dal solo kernel, non sono sistemi operativi; oppure vorresti decidere in base a quali sistemi sono di uso quotidiano per la maggior parte delle persone? anche in quel caso il vincitore sarebbe tron (che viene montato sulla maggior parte dell'elettronica di consumo).
Il punto, come ho spiegato sopra, e' che un sistema operativo e' tale (per una mera questione semantica, non per una convenzione assegnata da chicchessia) quando permette di far operare l'elaboratore per la destinazione d'uso che gli e' propria, quindi la sua struttura varia al variare di questa destinazione d'uso; se ne deduce che una definizione e' possibile solo restingendo il campo ad un singolo segmento di elaboratori dati.

Quello che volevo dire è che un Sistema Operativo per router e un Sistema Operativo per MainFrame e uno per Desktop sono tutti Sistemi Operativi , ma sono strutturalmente diversi.
Se noi intendiamo con Sistema Operativo un Kernel, andremmo a finire che un Sistema Operativo per MainFrame sarebbe definito in modo uguale o quasi a un Sistema Desktop...Sono daccordo con te nel dire che la definizione può essere corretta solo se applicata ad ogni tipologia di sistema, ma essendo, purtroppo, una definizione generale, possiamo scegliere due Strade.

Sistema Operativo = kernel (es Linux) -> MainFrame OS = Router OS = Desktop OS = ecc ecc
Sistema Operativo = Kernel + S. di Sistema + Lib di Sistema -> MainFrame OS != Router OS != Desktop OS != ecc ecc

Nei sistemi per Router magari non esistono nè software di sistema nè librerie di sistema, ma meglio! però in tal modo risolvi l' ambiguità che si potrebbe creare!

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da raffaele181188 »

A me piace molto il ragionamento di masalapianta, e in effetti non è semplice dare una definizione di sistema operativo. E forse la risposta definitiva è proprio quella che suggerisce lui, ovvero non esiste una definizione "tecnica" di sistema operativo (nel senso delle parti che lo compongono) ma solo una definizione semantico-linguistica. Un po' come, definendo "animale"
Nicola di Cerignola ha scritto: Ogni organismo vivente capace di vita sensitiva e movimenti spontanei
bisogna limitarsi a questo, e non si possono individuare parti necessarie (ali, zampe, coda o chissà cos'altro)
Quindi il sistema operativo è, in lingua italiana, un complesso coordinato di elementi (sistema) finalizzato a compiere determinate operazioni (oprativo). Quindi il discorso sulle "parti" (editor, kernel...) non ha proprio senso, perchè individuando tutti i sistemi composti dalle stesse parti si trova, per definizione, una categoria di sistemi operativi

zxzxasas
Linux 2.x
Linux 2.x
Messaggi: 397
Iscritto il: sab 15 nov 2008, 2:28
Nome Cognome: Pasquale
Slackware: current
Kernel: 2.6.35.7
Desktop: KDE 4.5.2

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da zxzxasas »

raffaele181188 ha scritto:A me piace molto il ragionamento di masalapianta, e in effetti non è semplice dare una definizione di sistema operativo. E forse la risposta definitiva è proprio quella che suggerisce lui, ovvero non esiste una definizione "tecnica" di sistema operativo (nel senso delle parti che lo compongono) ma solo una definizione semantico-linguistica. Un po' come, definendo "animale"
Nicola di Cerignola ha scritto: Ogni organismo vivente capace di vita sensitiva e movimenti spontanei
bisogna limitarsi a questo, e non si possono individuare parti necessarie (ali, zampe, coda o chissà cos'altro)
Quindi il sistema operativo è, in lingua italiana, un complesso coordinato di elementi (sistema) finalizzato a compiere determinate operazioni (oprativo). Quindi il discorso sulle "parti" (editor, kernel...) non ha proprio senso, perchè individuando tutti i sistemi composti dalle stesse parti si trova, per definizione, una categoria di sistemi operativi
Ottimo esempio. Allora, per come la vedo io:
Animale = Sistema Operativo (ciò che vogliamo definire)
Organismo vivente = Kernel (cioè la funzionalità di base)
Vita Sensitiva e Movimenti Spontanei = Librerie di Sistema e Software di Sistema (cioè le funzionalità necessarie)
Ali, Zampe, Coda, ecc = Firefox, OOo, ffmpeg, ecc (cioè le parti specifiche e le funzionalità aggiuntive)

boh, poi francamente mi sa che la sto mettendo troppo sul personale :D

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da Mario Vanoni »

zxzxasas ha scritto: Ottimo esempio. Allora, per come la vedo io:
Animale = Sistema Operativo (ciò che vogliamo definire)
Organismo vivente = Kernel (cioè la funzionalità di base)
Vita Sensitiva e Movimenti Spontanei = Librerie di Sistema e Software di Sistema (cioè le funzionalità necessarie)
Ali, Zampe, Coda, ecc = Firefox, OOo, ffmpeg, ecc (cioè le parti specifiche e le funzionalità aggiuntive)

boh, poi francamente mi sa che la sto mettendo troppo sul personale :D
Senza
Ali, Zampe, Coda, ecc = Firefox, OOo, ffmpeg, ecc (cioè le parti specifiche e le funzionalità aggiuntive)
una mosca non vive!
Ma un computer senza FF, OOo, ffmpeg e` sicuramente usabile IMVHO.

zxzxasas
Linux 2.x
Linux 2.x
Messaggi: 397
Iscritto il: sab 15 nov 2008, 2:28
Nome Cognome: Pasquale
Slackware: current
Kernel: 2.6.35.7
Desktop: KDE 4.5.2

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da zxzxasas »

Mario Vanoni ha scritto:
zxzxasas ha scritto: Ottimo esempio. Allora, per come la vedo io:
Animale = Sistema Operativo (ciò che vogliamo definire)
Organismo vivente = Kernel (cioè la funzionalità di base)
Vita Sensitiva e Movimenti Spontanei = Librerie di Sistema e Software di Sistema (cioè le funzionalità necessarie)
Ali, Zampe, Coda, ecc = Firefox, OOo, ffmpeg, ecc (cioè le parti specifiche e le funzionalità aggiuntive)

boh, poi francamente mi sa che la sto mettendo troppo sul personale :D
Senza
Ali, Zampe, Coda, ecc = Firefox, OOo, ffmpeg, ecc (cioè le parti specifiche e le funzionalità aggiuntive)
una mosca non vive!
Ma un computer senza FF, OOo, ffmpeg e` sicuramente usabile IMVHO.
Perfettamente daccordo!
Infatti quello di cui sto parlando, cioè delle parti necessarie alla vita di un Sistema, sono le Librerie di Sistema e il Software di Sistema.
Almeno, per un sistema attuale. Poi ovviamente con sistemi monoprogrammati era (ed è) tutta un' altra storia.
Ma mi permetto di aggiungere che stando all' esempio, per avere mobilità una mosca deve anche avere le ali e le zampe, quindi si tratta semplicemente di qualcosa che va a specificare ciò che occorre per la mobilità...

Avatar utente
urka58
Linux 3.x
Linux 3.x
Messaggi: 543
Iscritto il: mer 7 dic 2005, 23:29

Re: Discussione filosofico-sistematica sui Sistemi Operativi

Messaggio da urka58 »

Cito da un testo:
Un sistema operativo è un componente software di un sistema di elaborazione il cui compito principale
è quello di controllare l'esecuzione dei programmi applicativi e di agire come "intermediario" tra questi e la macchina
fisica, con lo scopo di consentirne/facilitarne l'uso e al tempo stesso, di garantire che tale uso sia effettuato in
maniera efficace ed efficiente
Come osservato da masalapianta, con una definizione del genere, se non si chiarisce quali sono le funzionalità richieste, credo sia impossibile stabilire
quali debbano essere i componenti di un sistema operativo.
Limitandosi all'ambiente PC:
Kernel ---> gestione memoria e processi, driver dei dispositivi e dei bus
Programmi di sistema ---> Interattività, controllo e gestione
Programmi applicativi ---> ????
Molto generico, ma non credo si possa andare oltre.
Ciao

Rispondi