Il GNU Coreutils è copiato da Unix?


1

Linuxdi per sé non è una copia di Unixperché si può sostenere che sia semplicemente conforme allo POSIXstandard. Tuttavia, che ne dici di GNU Coreutilsquale contiene utility come ls, cde rm, ecc ...? Esiste uno standard che definisce i nomi di queste utility di base e i loro comportamenti? In caso contrario, possiamo dire che è stato copiato Unix?


5
Definire "copiato" (e "Unix"). Per definizioni adeguate, si potrebbe anche dire POSIX copiato da Unix ...
chirlu,

È una vera domanda? Mi dispiace essere scortese se lo è, ma sembra davvero un'esca di fiamma (intenzionale o no, immagino). Non è necessario utilizzare i "tag di codice" per i nomi propri, ma è necessario sceglierli con più attenzione. Vale a dire, "Linux" non viene copiato perché è stato scritto da zero da Linus e autori successivi. Questo è il motivo per cui RMS insiste nel chiamarlo GNU / Linux; di solito sembra pedante, ma molto rilevante qui. Esiste più di un Linux e più di un Unix. I sistemi operativi basati su Linux non vengono "copiati" nel senso comune, ma sono certamente progettati per essere in stile Unix.
hunter2,

Inoltre, ci sono molte storie rilevanti che puoi leggere. Se tiri su le pagine di Wikipedia per Linux, GNU, POSIX e Unix (in quell'ordine) e sfogli appena nella parte superiore, avrai una risposta completa. @chirlu, Potresti anche dire che Unix ha copiato da Multics o dagli schedari. Non è una definizione molto utile ... Inoltre, devo essere un
imbecille

Risposte:


3

Tutte queste utilità e i loro comportamenti sono definiti nello standard POSIX.


Tuttavia, le versioni GNU Coreutils hanno spesso estensioni non POSIX.
Chirlu,

Così? Lo standard POSIX è esattamente lo standard richiesto. A meno che tu non stia dicendo che le estensioni non POSIX di GNU Coreutils sono vicine a (~ 'una copia di') un qualche tipo di Unix, e che Unix è uno standard diverso ...?
hunter2,

Alcuni se i membri delle utility Coreutils sono invenzioni indipendenti e / o non specificati in POSIX. Per un banale esempio, base64risolve un problema che non esisteva quando è stato specificato POSIX.
Tripleee

@tripleee La necessità di trasmettere file binari su canali non binari sicuri non esisteva nella seconda metà degli anni '80 (POSIX risalente al 1988)? Che dire di Usenet nel 1980? E-mail anche nei primi anni '70? Mentre da una rapida occhiata al web in particolare Base64 non sembra essere stato usato fino al 1993, il problema che ha risolto sicuramente doveva esistere su Internet in cui i collegamenti sicuri a 8 bit erano tutt'altro che garantiti.
un CVn

@tripleee Il problema esisteva quando è stato specificato POSIX. uuencoding precede base64 e le utilità uuencodee uudecodesono coperte da POSIX.
David Baggerman,

2

GNU è l'acronimo di Not UNIX di GNU. GNU è stato creato per rendere il sistema compatibile con Unix senza l'uso del codice Unix , non con idee e nomi di comandi.


POSIX era uno standard sviluppato 20 anni dopo l'UNIX. e le specifiche Single Unix arrivarono nel 1994, il che rese Unix un concetto piuttosto che un flusso di codice sorgente.
Escoce,

1

Coreutils è un consolidamento di tre utilità che venivano fornite separatamente. Fileutils, textutils e shellutils, tutti forniti da GNU. Shellutils fornisce i comandi che citi, ls, cd, anche se penso che rm provenga da fileutils iirc. Tornando un po 'più avanti, GNU era un progetto avviato da Richard Stallman per fornire un'alternativa gratuita a UNIX, e quindi la maggior parte dei comandi di base che trovi su tutti gli UNICES erano disponibili anche tramite GNU. Sfortunatamente per Richard, il kernel Linux ha ricevuto più attenzione del suo kernel HURD incompiuto e quindi il sistema UNIX o UNIX più popolare del pianeta è un ibrido del kernel Linux supportato e che supporta il set di utility GNU.

Ero in giro per il mondo di Linux quando si stava verificando questa transizione, e all'inizio ha reso la vita un po 'difficile quando si voleva usare diverse configurazioni di compilazione per ognuna, ma ce le vie. Per un po 'lì, il mio nome faceva parte di coreutils. Ho dato a uname la possibilità di distinguere processori Intel e Intel compatibili tra loro piuttosto che solo un i386. Fino ad allora tutti i sistemi unix basati su Intel erano solo i386s ad alta velocità e non sfruttavano i diversi set di istruzioni estese disponibili. Che il blocco di riconoscimento della CPU ora è stato completamente sostituito con qualcosa di molto più elegante e moderno, e puoi trovare il mio nome come riferimento storico in alcune patch antiquate che stanno ancora fluttuando intorno, ma era ancora una piuma fresca nel mio cap per alcuni anni e mi ha aiutato ad ottenere il mio primo vero lavoro IT.

Potremmo chiamare casualmente il sistema operativo Linux, ma questo è un troncamento di ciò che è realmente che è GNU Linux o GNU / Linux.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.