La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam

Unix ha originato da AT & T Bell Labs Labs più di 20 anni fa.

Unix. - Questo sistema operativo multiplayer, multitasking, include strumenti sufficientemente potenti per proteggere programmi e file di vari utenti. Scritto nella lingua C ed è indipendente dalla macchina, che fornisce la sua elevata mobilità e la tolleranza alla luce software applicato su PC varie architettura. Una caratteristica importante della famiglia Unix è la sua modularità e un set ampio. programmi di servizioCiò consente di creare un ambiente operativo favorevole per gli utenti dei programmatori.

Supporta una struttura di file gerarchica, una memoria virtuale, un'interfaccia multi-ciclo, sistemi multiprocessore, sistema di gestione del database multiplayer, reti di computing disomogenei.

UNIX OS ha le seguenti caratteristiche principali:

Portabilità;

- spostamento multitasking Basato su processi in esecuzione in spazi mirati isolati nella memoria virtuale;

Supporto per il lavoro simultaneo di molti utenti;

Supporto per processi asincroni;

Gerarchico. file system.;

Supporto per le operazioni I / O indipendenti (tramite file di dispositivi speciali);

Interfaccia del programma standard (canali software, IPC) e utenti (interprete di comando, non incluso nel Kernel del sistema operativo);

Strumenti integrati per l'utilizzo del sistema.

Architettura OS UNIX. - multi-livello. Alle opere di livello inferiore nucleo sistema operativo. Le funzioni principali (gestione del processo, memoria, maneggevolezza di interruzione, ecc.) Sono disponibili tramite interfaccia di chiamata di sistema, formando il secondo livello. Chiamate di sistema Fornire interfaccia del programma Per l'accesso alle procedure del kernel. Lavoro di livello successivo comando interpreti. , Team e utilità di amministrazione del sistema, comunicazione autisti e protocolli - di solito è di solito indicato software di sistema . Forma della forma esterna programmi applicativi utente, rete e altri servizi di comunicazione, DBMS e utility.

Il sistema operativo esegue due attività principali: manipolazione dei dati e stoccaggio. La maggior parte dei programmi manipola principalmente i dati, ma in definitiva, sono memorizzati da qualche parte. Nel sistema UNIX, questa posizione di archiviazione è file system.. Inoltre, in UNIX tutti i dispositivicon cui funziona sistema operativoPresentato anche sotto forma di file speciali nel file system.

Sistema di file logico. In OS UNIX (o solo file system. ) è una struttura organizzata gerarchicamente di tutte le directory e file nel sistema, a partire da radice Catalogare. Il file system UNIX fornisce un'interfaccia di accesso dati unificata situata su vari supporti e dispositivi periferici. Il file system logico può consistere in uno o più file fisici (sotto) sistemi, Siamo partizioni di media fisici (dischi, cd-rom o dischetti).


Il file system controlla i diritti di accesso ai file, esegue le operazioni per creare ed eliminare file e anche registrare / leggere i dati del file. Il file system fornisce il reindirizzamento delle richieste indirizzate ai dispositivi periferici che corrispondono ai moduli del sottosistema I / O.

La struttura gerarchica del file system UNIX semplifica l'orientamento in esso. Ogni catalogo, iniziando con la radice ( / ), a sua volta, contiene file e sottodirectory..

In UNIX, non ci sono restrizioni teoriche sul numero di directory nidificate, ma ci sono limitazioni per la lunghezza massima del nome del file, che è indicata in comandi - 1024 caratteri.

In UNIX, ci sono diversi tipi di file che differiscono in scopi funzionali:

File normale -il tipo più comune di file contenenti dati in qualche formato. Per il sistema operativo, tali file sono semplicemente una sequenza di byte. Questi file includono file di testo, Dati binari e programmi eseguiti.

Catalogare-questo file contenente i nomi dei file in esso, così come i puntatori a informazioni aggiuntiveConsentire al sistema operativo di eseguire azioni con questi file. Utilizzando le directory, viene formata un'albero del file system logico.

File di dispositivo speciale -Fornisce l'accesso ai dispositivi fisici. L'accesso ai dispositivi viene effettuato aprendo, leggendo e scrivendo a un file di dispositivo speciale.

Canale FifO-Named.Questo file viene utilizzato per comunicare tra i processi sul principio della coda.

Presaconsenti di inviare una connessione di rete come file.

Ogni file nel software UNIX contiene un insieme di diritti di accesso, che è definito come l'utente interagisce con questo file.

Ogni disco rigido è costituito da una o più parti logiche - sezioni. La posizione e le dimensioni della partizione vengono determinate quando il disco è la formattazione. In Unix, le partizioni agiscono come dispositivi indipendenti, l'accesso a cui viene effettuato come vari vettori di dati. La sezione può contenere solo una sistema di file fisico.

Ci sono molti tipi di file system fisici, come FAT16 e NTFS, con una struttura diversa. Inoltre, ci sono molti tipi di file system fisici UNIX ( uFS., s5FS., ext2., vxfs., jFS., fFS. eccetera.).

Sandbox

uomo di ferro 19 marzo 2011 alle 23:16

Che cosa differisce Linux da Unix, e cos'è un sistema operativo come Unix?

Unix.
Unix. (non ne vale la pena Confuso con la definizione del sistema operativo simile UNIX) è una famiglia di sistemi operativi (Mac OS X, GNU / Linux).
Il primo sistema è stato sviluppato nel 1969 nei laboratori di campanili, un'ex azienda americana.

Caratteristiche distintive di UNIX:

  1. Semplice configurazione del sistema utilizzando file semplice, di solito testo,.
  2. Ampio uso della riga di comando.
  3. Uso dei trasportatori.
Al giorno d'oggi, UNIX è usato principalmente sui server e come sistema per le attrezzature.
È impossibile notare l'enorme importanza storica dei sistemi UNIX. Attualmente, sono riconosciuti come uno dei sistemi operativi più storicamente importanti. Nel corso dello sviluppo dei sistemi UNIX, è stata creata la lingua C.

Opzioni Unix per anni

Sistema operativo simile a Unix
Sistema operativo simile a Unix (a volte Usando una riduzione * Nix) - Un sistema formato sotto l'influenza di UNIX.

La parola Unix è usata come segno di conformità e come marchio di fabbrica.

Il consorzio aperto del gruppo ha un marchio "Unix", ma è più famoso come autorità di certificazione per il marchio UNIX. Recentemente, il Gruppo Open ha una luce che scompare in connessione con la pubblicazione delle specifiche di specifiche UNIX singolo, che devono soddisfare il sistema operativo di essere orgoglioso di essere chiamato Unix.

È possibile guardare l'albero genealogico dei sistemi operativi come Unix.

Linux.
Linux. - Il nome comune dei sistemi operativi assistiti UNIX, progettati all'interno del progetto GNU (progetto sullo sviluppo dello SPO). Linux funziona su un'enorme moltitudine di architetture del processore, che vanno dal braccio che termina Intel X86.

Le distribuzioni più famose e distribuite sono Arch Linux, Centos, Debian. Ci sono anche molte distribuzioni "domestiche", russe - Alt Linux, Asplinux e altri.

Ci sono alcune dispute di denominazione GNU / Linux.
Sostenitori "open source" Utilizzare il termine "Linux" e supportatori di "software gratuito" - "GNU / Linux". Preferisco la prima opzione. A volte per la comodità di visualizzare il termine GNU / Linux, "GNU + Linux", "GNU-Linux", "GNU Linux" stanno scrivendo.

A differenza dei sistemi commerciali (MS Windows, Mac OS X) Linux non ha un centro di sviluppo geografico e una certa organizzazione che avrebbe posseduto il sistema. Il sistema e i programmi per sé sono il risultato del lavoro di enormi comunità, migliaia di progetti. Unisciti al progetto o crea il tuo a tutti!

Produzione
Quindi, abbiamo avuto una catena: UNIX -\u003e OS UNIX-Like -\u003e Linux.

Riassumendo, posso dire che le differenze tra Linux e Unix sono evidenti. Unix è un concetto molto più ampio, fondamento per la costruzione e la certificazione di tutti i sistemi simili a Unix e Linux è un caso particolare di UNIX.

Tag: Unix, Linux, Nix, Linux, Unix

Questo articolo non è soggetto a commenti, dal momento che il suo autore non è ancora

Ministero dell'istruzione e della scienza del russo

Federazione

Agenzia federale dell'istruzione

Istituzione educativa statale

Istruzione professionale superiore

Università di ingegneria radio di Taganrog

Disciplina "Informatica"

"Sistema operativo UNIX"

Eseguito: Orda-Zhigulin D.V., GR. E-25.

Controllato: Vishnevetsky v.yu.

Taganrog 2006.


introduzione

Cos'è UNIX 3

Dove ottenere gratuitamente UNIX 7

Parte principale. (Descrizione UNIX)

1. Concetti di base UNIX 8

2. Sistema system 9

2.1 Tipi di file 9

3. Command Interpreter 11

4. Suono di UNIX 12

4.1 Organizzazione generale del tradizionale Nucleo OS UNIX 13

4.2 Funzioni principali di base 14

4.3 Principi di interazione con il nucleo 15

4.4 Principi di elaborazione 17

5. Controllo in ingresso / uscita 18

5. 1 Principi del buffering del sistema I / O 19

5. 2 Chiamate di sistema per l'immissione / uscita 21

6. Interfacce e punti di ingresso del driver 23

6. 1 Block Driver 23

6. 2 Driver simbolici 24

6. 3 Driver di streaming 25

7. Comandi e utilità 25

7. 1 Organizzazione dei comandi in UNIX 26

7. 2 Reindirizzamento dell'I / O e dell'organizzazione del trasportatore 26

7. 3 Built-in, Bibliotery e squadre personalizzate 26

7. 4 Programmazione del comando 27

8. Strumenti di interfaccia grafica utente 27

8.1 Identificatori utente e gruppo utente 30

8.2 Protezione file 32

8.3 OS Prospettiva, supporto Mercoledì OS UNIX 33

Conclusione

Le principali differenze di UNIX da altri OS 36

APPLICAZIONI UNIX 37.


introduzione

Cos'è UNIX.

Il termine UNIX e non completamente equivalente ad esso UNIX viene utilizzato in valori diversi. Iniziamo con il secondo dei termini come più semplice. In poche parole, Unix (in questa forma) è un marchio registrato, originariamente apparteneva a AT & T Corporation, che ha cambiato molti proprietari per la sua lunga vita ed è ora la proprietà di un'organizzazione chiamata Open Group. Il diritto di utilizzare il nome UNIX è ottenuto da una sorta di "controlli fognari" - passando test di conformità con alcune specifiche del sistema operativo di riferimento (Single Unix Standard - che in questo caso può essere tradotto come unico standard su UNIX). Questa procedura non è solo complicata, ma anche molto non più non più, e quindi erano solo alcune operazioni dall'ora infernano, e sono tutte proprietarie, cioè, sono di proprietà di alcune aziende.

Tra le corporazioni, che ha preso il diritto di UNIX, quindi gli sviluppatori / tester e i proprietari di sangue (più precisamente, il dollaro) possono essere definiti seguenti:

Sole con i suoi Sunos (meglio conosciuto nel mondo sotto il nome Solaris);

IBM sviluppato dal sistema AIX;

Hewlett-Packard - il proprietario del sistema HP-UX;

IRIX - Operazioni SGI.

Inoltre, il nome di UNIX si applica ai sistemi:

TRUE64 UNIX, sviluppato da DEC, con la cui liquidazione è passata a Compaq, e ora, insieme a quest'ultimo, che è diventato proprietà dello stesso Hewlett-Packard;

Unixware - Proprietà SCO (Product Merge Company Caldera e Santa Cruz operation).

Essendo un proprietario, tutti questi sistemi sono venduti per notevoli soldi (anche in scala americana). Tuttavia, questo non è il principale ostacolo alla diffusione della legge UNIX. Per una funzionalità comune è un legame per determinate piattaforme hardware: AIX funziona su server e workstation IBM con processori di potenza, HP-UX - sulle macchine HP-PA (presion Architettura), Irix - in stazioni grafiche di SGI trasportando processori MIPS, TRUE64 UNIX - è progettato per i processori Alpha (sfortunatamente, nel Bose sono già stati bene). Solo UNIXWARE è focalizzato sul PC della piattaforma "democratico", e Solaris esiste Nelle opzioni per due architetture - proprio, SPARC, e tutti gli stessi PC. Cosa, tuttavia, non ha contribuito molto alla loro prevalenza, a causa del supporto relativamente debole per la nuova periferia del PC.

Quindi, UNIX è un concetto principalmente legale. Ma per il termine Unix, l'interpretazione tecnologica era trincerata. Quindi, in uso del settore IT, chiamano l'intera famiglia di sistemi operativi, o dalla "Primary" Unix Company AT & T o le funzioni di riproduzione "con foglio puro", incluso il sistema operativo gratuito, come Linux, FreeBSD e altri BSD, nessuna ispezione per il rispetto del singolo standard UNIX mai sottoposto. E quindi vengono spesso chiamati UNIX-simili.

Il termine "sistemi compatibili con Posix", che combina la famiglia del sistema operativo, corrispondente alla serie di standard, è anche diffusa. Gli stessi standard dei POSIX (interfaccia di sistema operativa portatile basata su UNIX) sono stati sviluppati sulla base della pratica adottata nei sistemi UNIX, e quindi questi ultimi sono tutti per definizione di Posix-Compatible. Tuttavia, questo non è solo sinonimo: la compenalità degli standard Posix, lo SNIX associato a UNIX sta rivendicando solo indirettamente (qnx, sillaba) o non correlato a tutti (fino a Windows NT / 2000 / XP).

Per chiarire la questione delle relazioni Unix, Unix e Posix, dovrai andare in profondità nella storia. In realtà, la storia di questo problema è discussa in dettaglio nel capitolo pertinente del libro "Gratuito UNIX: Linux, FreeBSD e altri" (nel prossimo futuro va alla Casa editrice BHV-PETERSBURG) e negli articoli sulla storia di Sistemi Linux e BSD.

Il sistema operativo UNIX (più precisamente, la sua prima opzione) è stato sviluppato da dipendenti di Bell Labs (divisioni AT & T) nel 1969-1971. I primi autori - Ken Thompson e Dennis Richie hanno fatto esclusivamente per i propri scopi, in particolare, per divertirsi ad avere un gioco preferito StarTravel. E per una serie di motivi legali, la società stessa non poteva usarla come prodotto commerciale. Tuttavia, l'applicazione pratica di UNIX è stata trovata abbastanza rapidamente. In primo luogo, è stato utilizzato in Bell Labs per preparare ogni sorta di documentazione tecnica (compresa il brevetto). E in secondo luogo, su BASED UNIX sistema di comunicazione UUCP (Unix to Unix Copy Program - Copia da Unix in UNIX).

Un altro campo di applicazione dell'applicazione Unix negli anni '70 - i primi anni '80 del secolo scorso era completamente insolito. Vale a dire, nei testi di origine, si diffonde tra le istituzioni scientifiche che portano al lavoro nel campo dell'informatica. Lo scopo di tale distribuzione (non era abbastanza libero nella comprensione attuale, ma infatti si è rivelata molto liberale) erano: educazione e ricerca nell'area di cui sopra della conoscenza.

Il sistema BSD Unix creato presso l'Università di Berkeley, la California ha ricevuto la fama più grande. Che, gradualmente liberando dal codice proprietario della Pristina Unix, alla fine, dopo la drammatica peripetia (dettagliata qui descritta), ha dato origine ai moderni sistemi BSD gratuiti - FreeBSD, NetBSD e altri.

Uno dei risultati più importanti del lavoro degli hacker universitari è stato (1983) Introduzione nel supporto UNIX per il protocollo TCP / IP, basato sulla rete Arpanet (e che è diventata la base delle fondamenta del moderno Internet). È diventato una compostezza a Unix Dominance in tutte le aree associate alla rete mondiale. E si è rivelato essere la prossima applicazione pratica di questa famiglia di operazioni - dal momento in cui l'Unixified Unix non aveva più necessario parlare. Poiché è stata detta prima, i due dei suoi rami furono presunti - cosa stava accadendo dalla Pristina Unix (nel tempo ha ricevuto il sistema del nome V) e il sistema di origine berkliana. D'altra parte, il sistema V era basato su quei diversi diversi "OV, che, infatti, ha avuto un diritto legale di rivendicare questo nome.

L'ultima circostanza è la ramificazione del singolo sistema operativo singolo in diverse linee, perdendo gradualmente la compatibilità, - in contraddizione con uno dei capisaldi dell'ideologia UNIX: la portabilità del sistema tra diverse piattaforme e le sue applicazioni da un sistema UNIX a un altro. Ciò che ha causato le attività di vari tipi di organizzazioni standardizzazioni, che si sono concluse alla fine, creando un set di standard POSIX, che è stato precedentemente indicato.

Era sugli standard POSIX che Linus Torvalds si basava, creando "da zero" (cioè senza utilizzare il codice precedentemente esistente) il suo sistema operativo - Linux. E questo, in modo rapido e con successo le applicazioni tradizionali dei sistemi UNIX (sviluppo software, comunicazione, internet), aperti nel tempo per loro e nuove piattaforme generali personalizzate da desktop. Come ha fornito la sua popolarità nel popolo - Popolarità superiore a tutti gli altri sistemi UNIX, insieme, sia proprietari che quelli gratuiti.

Allora parleremo di lavorare in sistemi UNIX nel senso più ampio della Parola, escludendo qualsiasi tipo di marca e altri problemi legali. Sebbene i principali esempi relativi alle tecniche di lavoro saranno presi dal campo delle loro implementazioni libere - Linux, in misura minore FreeBSD e persino in meno di altri sistemi BSD.

Dove ottenere un UNIX GRATUITO?

Base FreeBSD - www.freebsd.org;

Puoi contattare su www.sco.com


Parte principale. (Descrizione UNIX)

1. Concetti di base UNIX

UNIX si basa su due concetti di base: "Processo" e "file". I processi sono il lato dinamico del sistema, questi sono sovvenzionati; E i file sono statici, questi sono oggetti di processi. Quasi l'intera interfaccia dell'interazione dei processi con il kernel e l'una con l'altra sembra un file di registrazione / lettura. Sebbene sia necessario aggiungere cose come segnali, memoria condivisa e semafori.

I processi possono essere divisi molto convenzionalmente in due tipi - compiti e demoni. Il compito è un processo che esegue il suo lavoro, cercando di finirlo rapidamente e finire. Il demone sta aspettando gli eventi che deve elaborare, elabora gli eventi che si sono verificati e sono in attesa di nuovo; È completato come regola con ordine di un altro processo, il più delle volte l'utente lo uccide, dando alla squadra "kill_number_process". In questo senso, si disattiva che l'elaborazione delle attività interattive l'input dell'utente è piuttosto simile al demone rispetto all'attività.

2. Sistema system.

Nella vecchia Unix "AH, 14 lettere furono assegnate al nome, nella nuova restrizione è stata rimossa. Nella directory, oltre al nome del file, è il suo identificatore di inode - un numero intero che definisce il numero di blocco in cui il file Gli attributi sono registrati. Tra loro: numero utente - host di file; gruppi di numeri; numero di riferimenti al file (cm. rivenditore) date e ora di creazione, ultima modifica e ultimo accesso ai file; Attributi di accesso. Attributi di accesso contengono un tipo di file ( Vedi Rivenditore), Attributi per cambiare i diritti all'avvio (vedi) e i diritti di accesso ad esso per il proprietario, un registro one-book e altre lettura, scrittura ed esecuzione. Il diritto di cancellare il file è determinato dal diritto di registrare nella directory sovrastante .

Ogni file (ma non directory) può essere noto sotto diversi nomi, ma necessariamente sdraiati sulla stessa sezione. Tutti i riferimenti al file sono uguali; Il file viene cancellato quando l'ultimo collegamento al file viene cancellato. Se il file è aperto (per la lettura e / o la registrazione), il numero di riferimenti ad esso aumenta un altro; Così tanti programmi che aprono un file temporaneo eliminarlo immediatamente in modo che quando un sistema operativo chiuda i file aperti al processo, questo file temporaneo è stato rimosso dal sistema operativo.

C'è un'altra caratteristica interessante del file system: Se dopo aver creato un file, la voce in esso non era in fila, ma con intervalli di grandi dimensioni, quindi per questi intervalli, lo spazio su disco non è assegnato. Pertanto, il volume totale dei file nella sezione potrebbe essere maggiore del volume della partizione, e quando il file viene eliminato, meno spazio viene rilasciato rispetto alle dimensioni.

2.1 Tipi di file

I file sono i seguenti tipi:

file di accesso diretto regolare;

directory (file contenente altri nomi di file e identificatori);

link simbolo (stringa con un altro nome file);

dispositivo di blocco (disco o nastro magnetico);

dispositivo seriale (terminali, porte seriali e paralleli; dischi e nastri magnetici hanno anche un'interfaccia del dispositivo seriale)

canale da corsa.

I file speciali progettati per funzionare con dispositivi sono solitamente concentrati nella directory "/ dev". Ecco alcuni di loro (nella nomination a FreeBSD):

tTY * - Terminali, tra cui: TTYV - Console virtuale;

tTYD - Terminale dialineto (di solito porta seriale);

cUAA - Linea Diaout

tTYP - Network Pseudo-Terminal;

tTY - Terminal con cui è associato il compito;

wd * - dischi rigidi e le loro sottosezioni, tra cui: wd - hard disk;

wDS - La partizione di questo disco (di seguito denominata "fetta");

wds - partizione partizione;

fd - floppy;

rwd *, rfd * - lo stesso di wd * e fd *, ma con accesso coerente;

A volte è necessario che il programma in esecuzione dall'utente non abbia il diritto di eseguire il suo utente e alcuni altri. In questo caso, l'attributo sostitutivo è impostato sui diritti dell'utente - l'host del programma. (Ad esempio, darò un programma che legge il file con domande e risposte e sulla base dei test di lettura che hanno lanciato questo programma studentesco. Il programma deve avere il diritto di leggere il file con le risposte e lo studente che lo esegue Non è.) Quindi, ad esempio, il programma passwd funziona, con l'assistenza su quale utente può cambiare la sua password. L'utente può eseguire il programma passwd, può apportare modifiche a base di sistema Dati - e l'utente non può.

A differenza del DOS, in cui il nome completo del file sembra "disco: Pavimia" e il RISC-OS, in cui sembra "-File_system-Disk: $. Percorso". (Ciò che in generale ha i suoi vantaggi), UNIX utilizza la notazione trasparente nel modulo "/ percorso / nome". La radice viene conteggiata dalla sezione da cui è stato caricato il kernel UNIX. Se è necessario utilizzare un'altra sezione (e nella sezione di avvio, viene solitamente posizionata la più necessaria per il download), viene utilizzato il selection "Mount / Dev / File_ Selection_. Allo stesso tempo, i file e i sottodirettori precedentemente posizionati in questa directory stanno diventando inaccessibili fino a quando la partizione non è smontato (naturalmente, tutte le persone normali sono utilizzate per montare le directory vuote). Il montaggio e l'interruzione hanno il giusto solo un supervisore.

Quando si avvia, ogni processo può calcolare che tre file sono già aperti per questo, che è noto per questo come voce standard Stdin per un descrittore 0; Stdout di uscita standard su un descrittore 1; e output standard STDERR sul descrittore 2. Quando si registra nel sistema, quando l'utente inserisce il nome e la password e la shell inizia, tutti e tre sono diretti a / dev / tty; Successivamente, ognuno di essi può essere reindirizzato a qualsiasi file.

3. Interprete di comando

In Unix, ci sono quasi sempre due interpreti di comando - SH (shell) e CSH (CSH (Shell come CSH). Oltre a loro, ci sono Bash (Bourne), Ksh (Korn) e altri. Senza entrare nei dettagli, fornirò principi generali:

Tutti i comandi diversi dalla modifica della directory corrente, impostare le variabili di ambiente (ambiente) e gli operatori di programmazione strutturale - programmi esterni. Questi programmi si trovano solitamente nelle directory / bin e / usr / bin. Programmi di amministrazione del sistema - IN / SBIN e / USR / SBIN directory.

Il comando è costituito dal nome del programma avviato e argomenti. Gli argomenti sono separati dal nome della squadra e l'uno dall'altro con uno spazio vuoto e tabulazioni. Alcuni mixer speciali sono interpretati dal guscio "Ohm. Specialsimols sono" "" "! $ ^ *? | &; (Cos'altro?).

In una riga di comando, puoi dare diversi comandi. I comandi possono essere divisi; (Esecuzione di comando sequenziale), e (esecuzione simultanea asincrona dei comandi), | (Esecuzione sincrona, l'output STDOUT standard del primo comando verrà archiviato per l'ingresso standard stdin).

Inoltre, è possibile effettuare una voce standard dal file, attivando il file come uno degli argomenti (il file verrà ripristinato) o "\u003e\u003e file" (il record verrà effettuato alla fine del file).

Se è necessario ottenere informazioni su qualsiasi comando, consentono il comando "man_name" comando. Sarà rilasciato attraverso il programma "Altro" allo schermo - guarda come è gestito sul tuo Unix "dall'uomo più`.

4. Core OS UNIX

Come in qualsiasi altro sistema operativo multiplayer, fornendo la protezione dell'utente l'uno dall'altro e la protezione dei dati di sistema da qualsiasi utente non privilegente, vi è un kernel protetto in UNIX, che gestisce le risorse del computer e fornisce agli utenti un set di servizi di base.

La convenienza e l'efficacia delle opzioni moderne per UNIX non significa che l'intero sistema, incluso il kernel, sia progettato e strutturato nel miglior modo possibile. UNIX OS si è sviluppato nel corso degli anni (questo è il primo sistema operativo della storia, che continua a guadagnare popolarità in un'età così matura - più di 25 anni). Naturalmente, le funzionalità del sistema sono aumentate, e, come spesso accade in sistemi di grandi dimensioni, i miglioramenti di alta qualità nelle strutture OS UNIX non hanno dormito per la crescita delle sue capacità.

Di conseguenza, il kernel della maggior parte dei moderni opzioni commerciali per UNIX non è un monolito di grandi dimensioni molto ben strutturato. Per questo motivo, la programmazione presso l'UNIX OS Kernel continua ad essere arte (a meno che non sia la tecnologia scarico e comprensibile per lo sviluppo di driver di dispositivi esterni). Questa tecnologia insufficiente dell'organizzazione del Nucleo OS UNIX non soddisfa molti. Da qui il desiderio di riprodurre completamente l'ambiente UNIX OS con un'organizzazione di sistema completamente diversa.

A causa della massima prevalenza, il kernel Unix System V è spesso discusso (può essere considerato tradizionale).

4.1 Organizzazione generale del tradizionale Comune OS UNIX

Uno dei principali risultati del sistema operativo UNIX è che il sistema ha una caratteristica di alta mobilità. Il significato di questa qualità è che l'intero sistema operativo, incluso il suo kernel, è relativamente semplicemente trasferito a varie piattaforme hardware. Tutte le parti del sistema, senza contare il nucleo, sono completamente indipendenti dalla macchina. Questi componenti sono scritti ordinatamente nella lingua C e per il trasferimento a nuova piattaforma (Almeno nei computer a 32 bit della classe), è necessario ricompilare solo i testi di origine ai codici del computer di destinazione.

Naturalmente, i maggiori problemi sono associati a un nucleo del sistema, che nasconde completamente le specifiche del computer utilizzate, ma stessa dipende da questa specificità. Come risultato della separazione premurosa dei componenti dipendenti dalla macchina e della macchina-indipendente del kernel (apparentemente, dal punto di vista degli sviluppatori di sistemi operativi, questo consiste nel massimo raggiunto degli sviluppatori del sistema nucleare tradizionale UNIX) riuscito a Assicurarsi che la parte principale del nucleo non dipenda dalle caratteristiche architettoniche della piattaforma di destinazione, è scritta interamente nella lingua SI e per il trasferimento a una nuova piattaforma deve solo ricompilare.

Tuttavia, una parte relativamente piccola del nucleo è dipendente dalla macchina e scritta su una miscela del SI e del linguaggio del gruppo del processore di destinazione. Durante il trasferimento del sistema a una nuova piattaforma, è richiesta la riscrittura di questa parte del kernel utilizzando la lingua dell 'assestante e tenendo conto delle caratteristiche specifiche delle apparecchiature di destinazione. Le parti dipendenti dalla macchina del nucleo sono ben isolate dalla parte principale della macchina indipendente dalla macchina, e con una buona comprensione dello scopo di ogni componente dipendente dalla macchina, la riscrittura della parte dipendente dalla macchina è principalmente compito tecnico (anche se richiede elevato Qualifiche di programmazione).

La parte dipendente dalla macchina del core del sistema operativo UNIX tradizionale include i seguenti componenti:

promozione e inizializzazione del sistema ad un livello basso (finora dipende dalle caratteristiche dell'apparecchiatura);

elaborazione primaria di interrupt interni ed esterni;

gestione della memoria (nella parte relativa alle funzionalità del supporto hardware per la memoria virtuale);

passa il contesto dei processi tra le modalità utente e kernel;

caratteristiche correlate della piattaforma di destinazione della parte dei driver del dispositivo.

4.2 Funzioni principali di base

Le funzioni principali del kernel del sistema operativo UNIX sono prese come segue:

(A) L'inizializzazione del sistema è la funzione di avvio e promozione. Il nucleo del sistema fornisce lo strumento Promozione (Bootstrap), che fornisce il kernel completo per caricare il computer e avvia il kernel.

(b) Gestione del processo e del filo - La funzione di creazione, il completamento e il monitoraggio dei processi e dei thread esistenti ("processi" eseguiti nella memoria generale virtuale). Dal momento che UNIX è un sistema operativo multimediale, il kernel fornisce la separazione tra i processi di tempo di esecuzione del processore (o i processori nei sistemi multiprocessore) e ad altre risorse del computer per creare una sensazione esterna che i processi vengono effettivamente eseguiti in parallelo.

(c) La gestione della memoria è una funzione di visualizzare la memoria virtuale quasi illimitata dei processi nella memoria fisica del computer, che ha dimensioni limitate. Il componente corrispondente del kernel fornisce l'uso separato delle stesse aree memoria ad accesso casuale Processi multipli usando memoria esterna.

(d) Gestione dei file: una funzione che implementa l'astrazione del file system è la gerarchia delle directory e dei file. I sistemi di file UNIX supportano più tipi di file. Alcuni file possono contenere dati in formato ASCII, altri corrispondono a dispositivi esterni. Il file system memorizza i file di oggetti eseguiti i file, ecc. I file vengono solitamente memorizzati su dispositivi di memoria esterni; L'accesso a loro è fornito dai mezzi del kernel. Nel mondo dell'UNIX, ci sono diversi tipi di organizzazione dei file system. Le opzioni moderne per UNIX supportano simultaneamente la maggior parte dei file system.

(E) Strumenti di comunicazione: una funzione che fornisce scambio di dati tra i processi che funzionano all'interno di un singolo computer (comunicazioni IPC - inter-processing) tra i processi in esecuzione in diversi nodi della rete dati locale o globale, nonché tra processi e driver di esterni dispositivi.

(f) L'interfaccia di programmazione è una funzione che fornisce l'accesso alle funzionalità del kernel da processi utente in base al meccanismo delle chiamate di sistema, progettato come una libreria di funzioni.

4.3 Principi di interazione con il kernel

Un determinato meccanismo è supportato in qualsiasi sistema operativo che consente ai programmi utente di richiedere i servizi del kernel del sistema operativo. Nei sistemi operativi della macchina computing sovietica più famosa BESM-6, il mezzo appropriato di comunicazione con il nucleo è stato chiamato estratti, in sistemi operativi IBM sono stati chiamati macro sistemici, ecc. In Unix, tali fondi sono chiamati sfide del sistema.

Il nome non cambia il significato del significato dei "comandi speciali" del processore per cui appello alle funzioni del kernel del sistema operativo, quando si esegue un tipo speciale di interruzione interna del processore, che lo traduce nella modalità del kernel (nella maggior parte dei sistemi operativi moderni , questo tipo di interrupt è chiamato trap - trap). Durante l'elaborazione di tali interrupt (decrittografia), il kernel del sistema operativo riconosce che in effetti l'interrupt è una richiesta al kernel da parte del programma utente per eseguire determinate azioni, seleziona i parametri di gestione e l'elaborazione, dopo di che esegue il "ritorno dall'interruzione ", rinnovando la normale esecuzione del programma utente.

È chiaro che i meccanismi specifici di eccitazione delle interruzioni interne sull'iniziativa del programma utente differiscono in diverse architetture hardware. Dal momento che UNIX sta sforzando di fornire un ambiente in cui i programmi personalizzati potrebbero essere completamente mobili, un livello aggiuntivo che nasconde le caratteristiche di un particolare meccanismo per entusiasmanti interrupt interni. Questo meccanismo è assicurato dalla cosiddetta libreria di chiamata di sistema.

Per un utente, la libreria di chiamata di sistema è una libreria convenzionale di funzioni predeterminate del sistema di programmazione della lingua SI. Durante la programmazione nella lingua SI, l'uso di qualsiasi funzione dalla libreria di chiamata di sistema non è diversa dall'utilizzo di qualsiasi funzione SI di qualsiasi o biblioteca. Tuttavia, all'interno di qualsiasi funzione di una specifica libreria di chiamata di sistema contiene il codice che generalmente parla di questa piattaforma hardware.

4.4 Principi di elaborazione di interruzione

Naturalmente, il sistema operativo utilizzato nei sistemi operativi, il meccanismo di elaborazione degli interrupt interni ed esterni dipende principalmente dal quale il supporto hardware per l'elaborazione degli interrupt è fornito da una specifica piattaforma hardware. Fortunatamente, fino ad oggi (e per un bel po 'di tempo), i principali produttori di computer de facto hanno raggiunto un accordo sui meccanismi di interrupt di base.

Se non in modo molto preciso e specifico, l'essenza del meccanismo adottata per oggi è che ogni possibile interruzione del processore (se interruzione interna o esterna) corrisponde a un determinato indirizzo fisico della RAM fisica. Al momento in cui il processore è autorizzato a interrompere a causa dell'esistenza di un'applicazione di interruzione interna o esterna, vi è una trasmissione hardware di controllo sulla cella della RAM fisica con l'indirizzo corrispondente - di solito l'indirizzo di questa cella è chiamato " Vettore di interrupt "(come regola, applicazioni per un'interruzione interna, T .. Le applicazioni che vengono direttamente dal processore sono immediatamente soddisfatte).

Il lavoro del sistema operativo deve essere inserito nelle tariffe appropriate del codice software RAM che fornisce l'elaborazione iniziale di interrupt e avviando l'elaborazione completa.

Fondamentalmente, UNIX OS aderisce a un approccio generale. Nel vettore dell'interruzione corrispondente all'interruzione esterna, I.e. Interrompere da un determinato dispositivo esterno, contiene comandi che impostare il livello del processore (il livello di esecuzione determina quale processore interrupt esterno deve rispondere immediatamente) ed eseguire la transizione al programma di elaborazione di interrupt completo nel driver del dispositivo corrispondente. Per l'interruzione interna (ad esempio, interrompe sull'iniziativa del programma utente in assenza di una pagina necessaria della memoria virtuale nella memoria principale, quando si verifica una situazione eccezionale nel programma utente, ecc.) O Interrupt dal timer nel Interrupt Vector, contiene una transizione al sistema appropriato di Unix OS Core.

5. Gestione input / output

Tradizionalmente, il sistema operatore UNIX ha evidenziato tre tipi di organizzazione I / O e, di conseguenza, tre tipi di driver. L'ingresso / output del blocco è progettato principalmente per funzionare con le directory e i file di file system ordinari che hanno una struttura a blocchi a livello base. A livello utente è ora possibile lavorare con i file, visualizzandoli direttamente nei segmenti della memoria virtuale. Questa funzione è considerata come ingresso / uscita del blocco superiore. Al livello inferiore, l'ingresso / output del blocco viene mantenuto dai driver di blocco. Ingresso / uscita blocco, inoltre, supportato da un buffering del sistema.

L'ingresso / output del carattere è per lo scambio diretto (senza buffering) tra lo spazio degli indirizzi dell'utente e il dispositivo corrispondente. Comune per tutti i driver di supporto del kernel simbolico è quello di garantire le funzioni di trasferimento dati tra gli spazi di indirizzi utente e nucleari.

Infine, l'input / uscita di streaming è simile all'ingresso / uscita del carattere, ma a causa della disponibilità della possibilità di inclusione nel flusso di moduli di lavorazione intermedia ha una flessibilità significativamente maggiore.

5. 1 Principi del sistema di bufferizzazione del sistema I / O

Il modo tradizionale per ridurre i costi generali quando gli scambi di scambi con dispositivi di memoria esterni aventi una struttura a blocchi è un buffering di ingresso / uscita blocco. Ciò significa che qualsiasi unità del dispositivo di memoria esterno viene letta principalmente in alcuni buffer dell'area di memoria principale, denominata il sistema UNIX, e già da lì, completamente o parzialmente (a seconda del tipo di cambio) viene copiata nello spazio utente appropriato.

I principi dell'organizzazione del meccanismo di buffering tradizionale è, in primo luogo, il fatto che una copia del contenuto del blocco si tiene nel buffer del sistema fino a quando non è necessario sostituirlo a causa della mancanza di buffer (viene utilizzata una variazione dell'algoritmo LRU organizzare una politica di sostituzione. In secondo luogo, quando si registra qualsiasi blocco di memoria esterna, viene effettivamente eseguito un aggiornamento (o formazione e riempimento) del buffer della cache. Lo scambio effettivo con il dispositivo viene eseguito quando si preme il tampone a causa della sostituzione del suo contenuto, o quando si esegue una speciale chiamata di sistema di sincronizzazione (o fsync), supportata specificamente per la spinta violenta nella memoria esterna dei buffer della cache aggiornati.

Questo schema di buffering tradizionale incluso in contraddizione con sviluppata nelle versioni moderne degli strumenti di gestione della memoria virtuale UNIX e, in particolare con il meccanismo di visualizzazione nei segmenti di memoria virtuale. Pertanto, un nuovo schema di buffering è apparso in System V versione 4, mentre è utilizzato in parallelo con il vecchio schema.

L'essenza del nuovo schema è che a livello del kernel, il meccanismo di visualizzazione nei segmenti di memoria virtuale è effettivamente riprodotto. Innanzitutto, ricordiamo che il kernel UNIX funziona davvero nella sua memoria virtuale. Questa memoria ha un più complesso, ma fondamentalmente la stessa struttura della memoria virtuale dell'utente. In altre parole, la memoria virtuale del kernel è una pagina del segmento, e insieme alla memoria virtuale dei processi dell'utente è supportata dal sottosistema generale della gestione della memoria virtuale. Da questo segue, in secondo luogo, che quasi tutte le funzioni fornite dal kernel per gli utenti possono essere dotate di un unico componente di kernel per altri componenti. In particolare, questo si applica anche alle possibilità di visualizzare file ai segmenti di memoria virtuale.

Il nuovo sistema di buffering nel sistema nucleare di UNIX si basa principalmente sul fatto che per l'organizzazione del buffering, non puoi fare quasi nulla di speciale. Quando uno dei processi dell'utente apre il file che non si apre fino a questa volta, il kernel forma un nuovo segmento e collega il file a questo segmento. Dopodiché (indipendentemente dal fatto che il processo utente funzioni con il file nella modalità tradizionale utilizzando le chiamate di sistema di lettura e scrittura o collegare il file al segmento della tua memoria virtuale) a livello del kernel, il lavoro sarà fatto con il nucleare segmento a cui il file è collegato al kernel di livello. L'idea principale del nuovo approccio è che il gap viene eliminato tra la gestione della memoria virtuale e il buffering a livello di sistema (sarebbe stato fatto molto tempo fa, poiché era ovvio che il tampimento principale nel sistema operativo dovrebbe Produrre un componente di gestione della memoria virtuale).

Perché non può essere abbandonato dal vecchio meccanismo di buffering? La cosa è che il nuovo schema presuppone la presenza di un indirizzo continuo all'interno dell'oggetto di memoria esterno (deve esserci un isomorfismo tra gli oggetti visualizzati e visualizzati). Tuttavia, quando si organizzano i file system UNIX, è abbastanza difficile distribuire la memoria esterna, che è particolarmente correlata ai nodi i. Pertanto, alcuni dei blocchi di memoria esterni devono essere considerati isolati, e si rivela essere più redditizio per utilizzare il vecchio schema di buffering (anche se, possibilmente, nelle versioni UNIX di domani e sarà in grado di passare completamente a uno schema nuovo unificato) .

5. 2 Chiamate di sistema per l'immissione / uscita

Per accedere (cioè, per ottenere la successiva implementazione delle operazioni I / O) al file di qualsiasi tipo (compresi i file speciali), il processo utente deve eseguire una pre-connessione al file utilizzando una delle chiamate di sistema aperta, in creazione, Dup o tubo.

Sistema Call Force Apri (PathName, Mode) Avanti:

la coerenza dei parametri di input è analizzata (relativa principalmente ai flag in modalità di accesso file);

c'è uno spazio per il descrittore dei file nell'area del sistema del processo (U-Region);

nella regione a livello di sistema si distingue o si trova spazio disponibile Per adattarsi al descrittore del sistema del file (Struttura del file);

una ricerca nell'archivio del file system di un oggetto con il nome "PathName" ed è formato o rilevato dal descrittore del file del file del file system (Vnode nei termini di Unix V System 4);

vnode è configurato con un file di file precedentemente formato.

Aprire e creare chiamate di sistema (quasi) sono funzionalmente equivalenti. Qualsiasi file esistente può essere aperto utilizzando la chiamata di sistema Creazione e qualsiasi nuovo file può essere creato utilizzando la chiamata di sistema Apri. Tuttavia, è importante sottolineare che in caso di uso naturale (per creare un file), questa chiamata di sistema crea un nuovo elemento della directory corrispondente (in base al valore del percorso specificato), e crea anche e inizialmente inizializza un nuovo I -nodo.

Infine, la chiamata del sistema DUP (duplicato - copia) porta alla formazione di un nuovo descrittore già apri il file. Questa chiamata di sistema specifica UNIX è esclusivamente ai fini delle riduzioni I / O). La sua esecuzione è quella di un nuovo descrittore di file aperto contenente un descrittore di file di file appena formato (intero), ma facendo riferimento alla struttura del file di sistema già esistente del file e contenente gli stessi segni e flag che corrispondono allo stesso file di campionamento aperto.

Altre importanti sfide del sistema sono letti e scrivono chiamate di sistema. La chiamata di lettura del sistema viene eseguita come segue:

in una tabella di file a livello di sistema c'è un descrittore del file specificato ed è determinato se l'appello di questo processo è legalmente questa vita nella modalità specificata;

in alcuni (corti) tempo, viene impostato il blocco della sincronizzazione sul Vnode di questo file (il contenuto del descrittore non dovrebbe cambiare nei momenti critici dell'operazione di lettura);

la lettura effettiva viene eseguita utilizzando un vecchio o un nuovo meccanismo di buffering, dopo di che i dati vengono copiati per diventare disponibili nello spazio degli indirizzi utente.

L'operazione di registrazione viene eseguita allo stesso modo, ma cambia il contenuto del buffer del pool tampone.

La chiusura della chiamata di sistema porta al fatto che il driver non riesce con il processo utente corrispondente e (nel caso dell'ultimo tempo di chiusura dell'ora) imposta il "driver del driver è gratuito del sistema".

Infine, per i file speciali è supportato da un'altra chiamata di sistema "speciale" IOCTL. Questa è l'unica sfida di sistema fornita per file speciali e non è fornito per le altre varietà di file. Infatti, la chiamata di sistema IOCTL consente di espandere in modo casuale l'interfaccia di qualsiasi driver. I parametri IOCTL includono un codice operativo e un puntatore su un'area di memoria di processo dell'utente. L'intera interpretazione del codice operativo e i parametri specifici corrispondenti viene eseguita dal driver.

Naturalmente, poiché i conducenti sono principalmente destinati a gestire dispositivi esterni, il codice del programma del conducente deve contenere mezzi appropriati per l'elaborazione degli interrupt dal dispositivo. Chiamare un programma di gestione dell'interruzione individuale nel conducente proviene dal kernel del sistema operativo. Allo stesso modo, l'ingresso "Timeout" può essere annunciato nel driver, a cui viene disegnato il kernel quando il driver temporale ordinato temporale (tale controllo temporaneo è necessario quando si controlla dispositivi non troppo intelligenti).

Il diagramma complessivo dell'organizzazione del guidatore è mostrato nella figura 3.5. Poiché questo disegno mostra, dal punto di vista delle interfacce e dei controlli a livello di sistema ci sono due tipi di driver - simbolici e blocchi. Dal punto di vista dell'organizzazione interna, è allocato un altro tipo di driver - Streaming (streaming) driver. Tuttavia, dalla sua interfaccia esterna, i conducenti di streaming non differiscono dal simbolico.

6. Interfacce e punti di input del conducente

6. 1 blocco driver

I conducenti del blocco hanno lo scopo di mantenere dispositivi esterni con struttura a blocchi (dischi magnetici, nastri, ecc.) E differire da altri dal fatto che sono sviluppati ed eseguiti utilizzando il buffering del sistema. In altre parole, tali conducenti funzionano sempre attraverso un pool di buffer di sistema. Come si può vedere nella figura 3.5, qualsiasi appello al driver del blocco per la lettura o la scrittura passa sempre attraverso la pre-elaborazione, che è un tentativo di trovare una copia del blocco desiderato nel pool del buffer.

Nel caso in cui una copia del blocco richiesta non sia nel pool del buffer o se per qualsiasi motivo è necessario sostituire il contenuto di alcuni buffer aggiornati, il core OS UNIX si riferisce alla procedura di strategia del driver di blocco corrispondente. La strategia fornisce un'interfaccia standard tra il nucleo e il conducente. Utilizzando le subroutine della biblioteca per scrivere i driver, la procedura di strategia può organizzare le code di scambio con un dispositivo, ad esempio, al fine di ottimizzare il movimento delle teste magnetiche sul disco. Tutti gli scambi eseguiti da Block Drive vengono eseguiti con la memoria del buffer. Il censimento delle informazioni richieste in memoria del relativo processo utente è effettuato dai programmi del kernel, i gestori della gestione del buffer

6. 2 Driver simbolici

I conducenti simbolici sono progettati principalmente per mantenere i dispositivi, gli scambi con cui vengono eseguiti prevalgono o file di caratteri alternanti. Un tipico esempio di un dispositivo di caratteri è una semplice stampante che richiede un carattere per uno scambio.

I conducenti simbolici non usano il buffering del sistema. Copiano direttamente i dati dalla memoria del processo utente quando si eseguono operazioni di registrazione o nella memoria del processo utente durante l'esecuzione delle operazioni di lettura utilizzando il proprio buffer.

Va notato che è possibile fornire un'interfaccia di caratteri per un dispositivo di blocco. In questo caso, il driver di blocco utilizza le funzionalità aggiuntive della procedura di strategia che consente di scambiare senza l'uso del buffering del sistema. Per un conducente con blocchi e interfacce simboliche, due file speciali, blocco e simbolo vengono avviati nel file system. Ogni circolazione, il conducente riceve informazioni su quale modalità è usato.

6. 3 Driver di streaming

Lo scopo principale del meccanismo del flusso (flussi) è quello di aumentare il livello di modularità e flessibilità dei driver con logica interna complessa (la maggior parte di tutto ciò si riferisce ai conducenti che implementano sviluppati sviluppati protocolli di rete). Le specifiche di tali driver sono che la maggior parte del codice del programma non dipende dalle caratteristiche del dispositivo hardware. Inoltre, è spesso vantaggioso combinare diverse parti del codice del programma in modo diverso.

Tutto ciò ha portato alla comparsa di architettura in streaming dei driver, che sono moduli di elaborazione del trasportatore bidirezionale. All'inizio del trasportatore (più vicino al processo utente) c'è un'intestazione del flusso a cui viene applicato l'uso dell'iniziativa dell'utente. Alla fine del trasportatore (più vicino al dispositivo) c'è un driver di dispositivo regolare. Nell'intervallo, può essere posizionato un numero arbitrario di moduli di elaborazione, ciascuno dei quali viene emesso in conformità con l'interfaccia di streaming obbligatoria.

7. Teams and Utilities

Con il lavoro interattivo nell'ambiente OS UNIX, utilizzare varie utilità o comandi di lingue di shell esterni. Molte di queste utilità non sono meno programmi complessi che l'interpretatore di comando stesso (e attraverso il modo, l'interprete di comando della shell è una delle utilità che può essere chiamata dalla riga di comando).

7. 1 Organizzazione dei comandi in UNIX

Per la creazione nuova squadra Hai solo bisogno di seguire le regole di programmazione nella lingua C. Ogni programma SI correttamente decorato inizia la sua esecuzione dalla funzione principale. Questa funzione "semi-symi-system" ha un'interfaccia standard che è la base dell'organizzazione dei comandi che possono essere chiamati nell'ambiente shell. I comandi esterni vengono eseguiti dall'interprete della shell utilizzando il bundle di chiamata del sistema della forcella e una delle opzioni di esecuzione. I parametri di chiamata di sistema Exec includono un set di stringhe di testo. Questo set di stringhe di testo viene trasmesso all'ingresso della funzione principale del programma è iniziato.

Più precisamente, la funzione principale riceve due parametri - ARGC (numero di stringhe di testo trasmesse) e ARGV (puntatore alla matrice di puntatori alle stringhe di testo). Il programma che si applica al suo utilizzo come comando Shell deve disporre di un'interfaccia esterna definita con precisione (i parametri vengono solitamente inseriti dal terminale) e devono controllare e smontare correttamente i parametri di input.

Inoltre, per abbinare lo stile di shell, tale programma non deve sovrascrivere i file corrispondenti all'ingresso standard, all'output standard e all'uscita standard standard. Quindi il comando può normalmente reindirizzare l'ingresso / uscita e può essere incluso nei trasportatori.

7. 2 Reindirizzamento I / O e organizzazione del trasportatore

Come si può vedere dall'ultima frase del punto precedente, per garantire le possibilità di reindirizzare I / O e organizzazione del trasportatore, quando la programmazione dei comandi non ha bisogno di fare nulla di speciale. È sufficiente semplicemente non toccare i tre descrittori di file iniziale e lavorare correttamente con questi file, vale a dire, per visualizzare il file con il descrittore di stdout, immettere i dati dal file STDIN e visualizzare i messaggi di errore sul file STDERROR.

7. 3 comandi integrati, biblioteca e personalizzati

I comandi integrati fanno parte del codice del programma Interpret Interpreter Command. Sono eseguiti come subroutine dell'interprete, e non possono essere sostituiti o ridefiniti. La sintassi e la semantica dei comandi incorporati sono definiti nella lingua di comando appropriata.

I team di biblioteche costituiscono parte del sistema software. Questo è un insieme di programmi eseguiti (utilità) forniti con il sistema operativo. La maggior parte di questi programmi (come VI, Emacs, Grep, Trova, Make, ecc.) Sono estremamente utili nella pratica, ma la loro considerazione è al di fuori di questo corso (circa gli editori di VI e Emacs e l'utilità di integrità esistono i file software. Libri spessi).

Il comando dell'utente è qualsiasi programma eseguito, organizzato in conformità con i requisiti indicati in questo modo, qualsiasi utente UNIX OS può espandere illimitata il repertorio dei comandi esterni della lingua dei comandi (ad esempio, è possibile scrivere il proprio interprete di comando).

7. 4 Programmazione sul linguaggio di comando

Qualsiasi dei linguaggi della shell menzionata in linea di principio può essere utilizzato come linguaggio di programmazione. Tra gli utenti UNIX ci sono molte persone che scrivono su programmi piuttosto seri. Per la programmazione è meglio utilizzare i linguaggi di programmazione (SI, C ++, Pascal, ecc.), E non lingue di comando.


8. Interfaccia grafica media

Sebbene molti programmatori professionisti che lavorano nel sistema operativo UNIX, oggi preferiscono utilizzare l'interazione della linea tradizionale con il sistema, i terminali grafici a colori relativamente economici con una qualità ad alta risoluzione hanno portato al fatto che in tutte le versioni moderne di UNIX, le interfacce utente grafica con il sistema sono supportato. E gli utenti sono forniti agli strumenti degli strumenti per lo sviluppo di interfacce grafiche con i loro programmi sviluppati. Dal punto di vista dell'utente finale, gli strumenti di interfaccia grafica supportati in diverse versioni di UNIX OS, e in altri sistemi (ad esempio MS Windows o Windows NT), circa lo stesso nel loro stile.

Innanzitutto, in tutti i casi è supportata la modalità multi-colore dell'operazione con la schermata del terminale. In qualsiasi momento, l'utente può formare una nuova finestra e associarla al programma desiderato che funziona con questa finestra come terminale separato. Le finestre possono essere spostate, modificare le loro dimensioni, temporaneamente chiudere, ecc.

In secondo luogo, in tutte le varietà moderne dell'interfaccia grafica, il controllo del mouse è supportato. Nel caso di UNIX, spesso risulta che la solita tastiera del terminale utilizza solo quando si passa all'interfaccia della linea tradizionale (anche se nella maggior parte dei casi, almeno una finestra del terminale funziona a uno degli interpreti della famiglia Shell).

In terzo luogo, una tale diffusione dello stile del lavoro "Mouse" è possibile attraverso l'uso del supporto di interfaccia basato sulle icone (icone) e sui menu. Nella maggior parte dei casi, un programma in esecuzione in una finestra offre all'utente di selezionare qualsiasi funzione che ha eseguito lo eseguito visualizzando il set di immagini simboliche di possibili funzioni nel set di immagini simboliche (pittogrammi) o fornitura menu multilivello. In ogni caso, per ulteriore selezione, si scopre che controlla sufficientemente il cursore della finestra corrispondente utilizzando il mouse.

Infine, le moderne interfacce grafiche hanno una "amicizia rispetto all'utente", fornendo la possibilità di ottenere immediatamente un suggerimento interattivo per ogni occasione. (Probabilmente sarebbe più corretto dire che un buon stile di programmazione utilizzando interfacce grafiche è uno stile in cui tali suggerimenti sono effettivamente forniti.)

Dopo aver trasferito tutte queste proprietà comuni dei moderni strumenti di interfaccia grafica, può verificarsi una domanda naturale: se ci sono tali uniformi nel campo delle interfacce grafiche che possono essere particolarmente indicate sulle interfacce grafiche nell'ambiente UNIX? La risposta è abbastanza semplice. Sì, l'utente finale davvero in qualsiasi sistema di oggi ha affrontato lo stesso set di funzionalità di interfaccia, ma in diversi sistemi, queste funzionalità sono ottenute in modi diversi. Come al solito, il vantaggio del sistema operativo UNIX è la presenza di tecnologie standardizzate che consentono di creare applicazioni mobili con interfacce grafiche.

8. Principi di protezione

Dal momento che il sistema operativo UNIX poiché la sua origine è stata concepita come sistema operativo multiplayer, il problema dell'autorizzazione dell'accesso di vari utenti a file di file di file è sempre stato rilevante. Nell'ambito dell'autorizzazione di accesso è le azioni del sistema che consentono o non consentono l'accesso a questo file a questo file in base ai diritti di accesso all'utente e alle restrizioni di accesso installate per il file. Lo schema di autorizzazione di accesso utilizzato in UNIX è così semplice e conveniente e allo stesso tempo così potente che è diventato lo standard effettivo dei moderni sistemi operativi (non reclamando sistemi con protezione multilivello).

8.1 Identificatori utente e gruppo utente

Con ciascun processo eseguibile, l'UNIX è associato all'ID utente reale, l'ID utente corrente e l'ID utente salvato (ID utente salvato) associati con il sistema operativo UNIX (ID utente effettivo). Tutti questi identificatori sono installati utilizzando la chiamata di sistema Setuid, che può essere eseguita solo nella modalità SuperUser. Allo stesso modo, ogni processo è associato a tre identificatori del gruppo utente - ID Gruppo reale, ID di gruppo efficace e ID gruppo salvato. Questi identificatori sono impostati dalla chiamata di sistema Privileged SetGID.

Quando l'utente registra il login del sistema controlla che l'utente è registrato nel sistema e lo sa password giusta (Se è installato), costituisce un nuovo processo e avvia la shell richiesta per questo utente. Ma prima di questo, il login imposta gli identificatori utente e gruppo per il processo appena creato utilizzando le informazioni memorizzate in file / etc / passwd e / etc / gruppo. Dopo il processo di identificatori utente e gruppo sono associati al processo, le restrizioni iniziano ad agire per l'accesso ai file. Il processo può accedere al file o eseguirlo (se il file contiene il programma esecutivo) solo se il file di restrizione di accesso è autorizzato a farlo. Gli identificatori associati al processo vengono trasmessi ai processi creati da loro, diffondendo le stesse limitazioni su di esse. Tuttavia, in alcuni casi, il processo può modificare i propri diritti utilizzando le chiamate di sistema Setuid e SetGID, e talvolta il sistema può modificare automaticamente l'accesso del processo.

Considera, ad esempio, la seguente situazione. Al file / etc / passwd è proibito dalla voce, ad eccezione del superutente (superutente può scrivere a qualsiasi file). Questo file, tra le altre cose, contiene password utente e ogni utente è autorizzato a cambiare la propria password. A disposizione programma speciale / bin / passwd cambia password. Tuttavia, l'utente non può farlo anche con questo programma, poiché è vietata la voce da file / etc / passwd. Nel sistema UNIX, questo problema è consentito come segue. Quando il file viene eseguito, potrebbe essere indicato che quando viene avviato, gli ID utente e / o il gruppo devono essere installati. Se l'utente richiede l'esecuzione di tale programma (utilizzando la chiamata di sistema Exec), l'identificatore utente è impostato sul processo appropriato corrispondente all'identificatore del proprietario del file eseguibile e / o dell'identificatore del gruppo di questo proprietario . In particolare, quando inizia il programma / bin / passwd, il processo riceverà un identificatore di superuser e il programma sarà in grado di registrare al file / etc / passwd.

E per l'ID utente e per l'identificatore del Gruppo, l'ID effettivo è un vero identificatore e l'ID operativo è l'identificativo dell'esecuzione corrente. Se l'ID utente corrente corrisponde al superutente, questo identificatore e identificatore del gruppo possono essere ripristinati a qualsiasi valore delle chiamate di sistema Setuid e SetGID. Se l'ID utente corrente è diverso dall'identificatore del superutente, l'esecuzione delle chiamate di sistema Setuid e SetGID porta a una sostituzione dell'identificatore corrente con un vero identificatore (utente o gruppo, rispettivamente).

8.2 Protezione dei file

Come accettato nel sistema operativo multiplayer, UNIX supporta un meccanismo uniforme per il controllo dell'accesso a file e directory dei file system. Qualsiasi processo può accedere ad alcuni file in quello e solo se i diritti di accesso descritti nel file corrispondono alle funzionalità di questo processo.

La protezione dei file dall'accesso non autorizzato al sistema operativo UNIX è basato su tre fatti. Innanzitutto, con qualsiasi processo che crea un file (o una directory) è associato ad un identificativo utente univoco (identificatore utente UID -, che in futuro può essere interpretato come identificatore del proprietario del file appena creato. In secondo luogo, con ogni processo cercando di ottenere un po 'di accesso al file, è associata una coppia di identificatori, l'ID utente corrente e i suoi identificatori di gruppo. In terzo luogo, ogni file corrisponde definitivamente al proprio descrittore - i-nodo.

Qualsiasi I-nodo utilizzato nel file system definisce sempre uno e un solo file. Il n-nodo contiene molte informazioni diverse (la maggior parte è disponibile per gli utenti attraverso le chiamate di sistema Stat e FSTAT), e tra queste informazioni è parte del quale consente al file system di valutare la Guida di accesso di questo processo a questo file nella modalità desiderata.

Le disposizioni generali sono le stesse per tutte le opzioni di sistema esistenti: le informazioni I-nodo includono l'UID e GID del proprietario corrente del file (immediatamente dopo aver creato un file, gli identificatori del proprio proprietario attuale sono impostati dall'ID Creatore corrente corrispondente, ma In futuro è soggetto a cambiare le sfide del sistema chown e chgrp). Inoltre, il n-nodo del file memorizza la scala in cui è stato notato che l'utente può fare con il file - il suo proprietario, cosa può fare con gli utenti che entrano nello stesso gruppo di utenti come proprietario e cosa può fare con gli altri utenti di file. I piccoli dettagli dell'attuazione in diverse versioni del sistema differiscono.

8.3 OS Prospettiva Supporto Unix Mercoledì

Microicier è la parte minima dell'asta del sistema operativo, che funge da base di estensioni modulari e portatili. Apparentemente, la maggior parte dei sistemi operativi di nuova generazione avrà micronter. Tuttavia, ci sono molte opinioni diverse su come organizzare i servizi del sistema operativo in relazione al microniere: come progettare i driver del dispositivo per ottenere la massima efficienza, ma salvare le funzioni dei conducenti nel modo più indipendente possibile dall'apparecchiatura. Dovrebbe eseguire operazioni che non sono correlate al kernel nello spazio del kernel o nello spazio utente; Vale la pena di tenere i programmi disponibili dei sottosistemi disponibili (ad esempio, UNIX) o è meglio scartare tutto e iniziare da zero.

In un ampio uso di un microker, la società ha introdotto il prossimo, nel sistema operativo di cui è stata utilizzata la Mach Microicher. Un piccolo nucleo privilegiato di questo sistema operativo, attorno a cui sono stati localizzati i sottosistemi eseguiti nella modalità utente, la teoricamente doveva garantire la flessibilità e la modularità senza precedenti del sistema. Ma in pratica, questo vantaggio è stato in qualche modo compromesso dalla presenza di un server monolitico che implementa il sistema operativo UNIX BSD 4.3, che successiva ha scelto come mach Microkernel Shell. Tuttavia, il supporto su Mach ha permesso di abilitare gli strumenti di messaggistica e un numero di funzioni di servizio orientate agli oggetti, in base al quale è stato riuscito a creare un'elegante interfaccia utente finale con la grafica di configurazione della rete, l'amministrazione del sistema e lo sviluppo del software.

Il prossimo sistema operativo Microeer è stato Microsoft Windows NT, in cui il vantaggio chiave dell'uso del microkernel non era solo la modularità, ma anche la tollerabilità. (Si noti che non esiste un'opinione unanime sul fatto che dovrebbe effettivamente attribuire nt al sistema operativo micronico.) NT è stato costruito in modo tale da poter essere utilizzato nei sistemi singoli e multiprocessore basati su processori Intel, MIPS e ALPHA (e coloro che vieni dopo di loro). Dal momento che NT, programmi scritti per DOS, Windows, OS / 2 e sistemi compatibili con gli standard POSIX, Microsoft ha utilizzato un micronomia per creare un micronomia per creare un micronomia alla creazione struttura comune NT, non ripetendo nessuno dei sistemi operativi esistenti. Ogni sistema operativo è emulato come modulo o sottosistema separato.

Successivamente, le architetture di micronucleare dei sistemi operativi sono state annunciate da Novell / USL, Open Software Foundation (OSF), IBM, Apple e altri. Uno dei principali concorrenti NT nel campo del sistema operativo micronucleare è Mach 3.0, un sistema creato presso l'Università di Carnegie Melon, che sia IBM che OSF ha portato a portare a una specie commerciale. (Successivamente come base per il prossimo mentre Mach 2.5 utilizza Mach 2.5 Mach 2.5, ma anche guarda attentamente a mach 3.0.) Un altro concorrente è il Chorus Systems Chorus Systems Microker 3.0, selezionato USL come base di nuove implementazioni OS UNIX. Alcuni microkernel saranno utilizzati in Sun's Springos, un successore orientato all'oggetto del sistema operativo Solaris (a meno che, Sole porterà il lavoro su Springos fino alla fine). La tendenza verso la transizione dai sistemi monolitici ai microerry è ovvia (questo processo non è semplice: IBM ha fatto un passo indietro e ha rifiutato di andare alla tecnologia del micronucleo). A proposito, questa non è la notizia per i sistemi software QNX e le società di Unisys, che hanno già prodotto sistemi operativi microeriali che hanno avuto successo per diversi anni. QNX OS è richiesto nel mercato del mercato in tempo reale e il CTO UNISYS è popolare nel campo del settore bancario. In entrambi i sistemi, la modularità inerente al micronucleo è stata utilizzata con successo.


Conclusione

Le principali differenze di UNIX da altro sistema operativo

UNIX è composta da un kernel con i conducenti inclusi in esso e da utilità (esterni al programma principale). Se si desidera modificare la configurazione (aggiungere un dispositivo, modificare la porta o l'interruzione), quindi il nucleo viene ricostruito (sovraccarico) da oggetti di oggetti o (ad esempio, in FREEBSD) dalla sorgente. Questo non è del tutto vero. Alcuni parametri rimeddero il fuoco senza ricostruzione. Ci sono anche moduli del kernel caricabili.

In contrasto con UNIX, "Windows (se non è specificato, il che significa 3.11, 95 e NT) e OS / 2 quando si caricano i driver collegati effettivamente. Allo stesso tempo, i compatti del kernel assemblato e il riutilizzo del codice totale è un ordine di grandezza inferiore a Unix. Inoltre, con la configurazione del kernel UNIX, il sistema UNIX Kernel è configurato senza alterazione (sarà necessario modificare solo la parte iniziale del BIOS) può essere registrata nella ROM ed eseguire _NE_OBO_ in RAM ed esegui . La compattezza del codice è particolarmente importante, poiché il nucleo e i driver non lasciano mai la memoria operativa fisica, non ubriacarsi sul disco.

UNIX è il sistema operativo più multipiattaforma. WindowsNT sta cercando di imitarlo, ma finora è cattivo - dopo il fallimento di MIPS e Power-PC, W "NT è rimasto solo su due piattaforme - il tradizionale I * 86 e DEC Alpha. La portabilità dei programmi da una versione di UNIX è limitato. Programma scritto da Neaxo, non tenendo conto delle differenze nelle implementazioni UNIX, rendendo le ipotesi irragionevoli della "variabile integro dovrebbe occupare quattro byte" può richiedere una grave alterazione. Ma è ancora un sacco di ordini di ordini più semplici di Ad esempio, Perrrest con OS / 2 su NT.

Scopo di Unix.

UNIX è usato sia come server che workstation.. Nella nomina dei server, MSNT compete con esso, Novell NetWare., IBM OS / 2 Warp Connect, DEC VMS e sistemi operativi mainframe. Ogni sistema ha il proprio campo di applicazione in cui è meglio di altri.

WindowsNT - per gli amministratori che preferiscono interfaccia conveniente Risorse economiche di spesa e alte prestazioni.

NetWare - Per reti dove hai bisogno alte prestazioni Il servizio di file e stampante e altri servizi non sono così importanti. Lo svantaggio principale - sul server NetWare è difficile eseguire applicazioni.

OS / 2 è buono dove è necessario un server applicazione "facile". Le risorse richiedono meno di NT, nella gestione di flessibili (anche se nell'impostazione può e più difficile), e il multitasking è molto buono. L'autorizzazione e la delimitazione dei diritti di accesso non sono implementate al livello del sistema operativo, che è più che pagare a livello di applicazioni applicazioni. (Tuttavia, spesso il sistema operativo rimanente fa lo stesso). Molte stazioni di Fidonet e BBS sono realizzate sulla base OS / 2.

VMS è un potente, non è inferiore a Unix "AM (e in molti aspetti e superior IT) application server application, ma solo per le piattaforme VAX e Alpha Dec.

Mainframe - per mantenere un numero molto elevato di utenti (circa diverse migliaia). Ma il lavoro di questi utenti è solitamente organizzato come interazione del server client, ma sotto forma di terminale host. Il terminale in questa coppia è piuttosto un cliente, ma il server (mondo di Internet, N3 per il 1996th Year). I vantaggi dei mainframe dovrebbero essere attribuiti a una maggiore sicurezza e resistenza ai fallimenti e al prezzo corrispondente a queste qualità.

UNIX è buono per un amministratore qualificato (o chi vuole essere tale), perché Richiede la conoscenza dei principi del funzionamento dei processi che si verificano in esso. La separazione della memoria multitasking e rigida reale garantiscono un'elevata affidabilità del sistema, sebbene NetWare sia inferiore nei servizi di prestazione e stampa dei file UNIX.

La flessibilità insufficiente di fornire i diritti di accesso agli utenti ai file rispetto a WindowsNT rende difficile organizzare i dati _a_eurovna_filene_system_ data_nign (più precisamente ai file), che a mio parere è compensato dalla semplicità di implementazione e quindi dei requisiti più piccoli per l'attrezzatura. Tuttavia, le applicazioni come SQL Server risolvono il problema dell'accesso al Gruppo a tali forze, in modo che la capacità UNIX di proibire l'accesso a _Fyle_ a un utente specifico a mio parere sia chiaramente eccessivo.

Quasi tutti i protocolli su cui Internet si basano su Unix, in particolare la pila di protocollo TCP / IP nell'Università di Berkeley.

Sicurezza UNIX con una corretta amministrazione (e quando non è così?) Né non inferiore a Novell né WindowsTNT.

Un'importante proprietà di UNIX, che la porta a Mainframes, è la sua multi-terminalità, molti utenti possono eseguire simultaneamente programmi su una macchina UNIX. Se non è necessario utilizzare la grafica, è possibile eseguire i terminali di testo economici (specializzati o sulla base del PC economico) collegato lungo le linee lente. Solo i VMS compete con esso. I terminali grafici X possono essere utilizzati quando i processi in esecuzione su macchine diverse sono presenti su uno schermo.

Nella nomination delle workstation con Unix Compete MS Windows *, IBM OS / 2, Macintosh e ACORN RISC-OS.

Windows - per coloro che apprezzano la compatibilità più efficienza; Per coloro che sono pronti ad acquistare un gran numero di memoria, spazio su disco e megahertz; Per coloro che amano non collegati all'essenza, fai clic sul mouse sopra i pulsanti nella finestra. Vero, prima o poi, dovrà anche studiare i principi del sistema e dei protocolli, ma allora sarà troppo tardi - la scelta è fatta. Essenziale il vantaggio di Windows Dobbiamo anche riconoscere l'opportunità di rubare un gruppo di software.

OS / 2 - per gli amanti dell'OS / 2. :-) Sebbene alcune informazioni OS / 2 interagiscano meglio con le mainframe e le reti IBM.

Macintosh - per opere grafiche, editoriali e musicali, nonché per chi piace l'interfaccia chiara e bella e non vuole (non può) comprendere i dettagli del funzionamento del sistema.

RISC-OS, cucito nella ROM, consente di non perdere tempo sull'installazione del sistema operativo e ripristinarlo dopo i guasti. Inoltre, quasi tutti i programmi sotto di esso spendono molto economicamente risorse, grazie a cui non hanno bisogno di un varicello e di lavorare molto rapidamente.

La Unix funziona sia sul PC che nelle potenti workstation con processori RISC, un CAD davvero potente è scritto sotto UNIX e sistemi di geoinformazione. Con la sua scalabilità di UNIX grazie alla sua multipiattaforma, un ordine di grandezza supera qualsiasi altro sistema operativo, secondo alcuni autori.


Bibliografia

1. Tutorial Kuznetsova S.D. "Sistema operativo UNIX" 2003;

2. Polyakov A.D. "Unix 5-th Edition su x86, o non dimenticare la storia";

3. Karpov d.yu. "UNIX" 2005;

4. Fedorchuk A.V. "Abilità di lavoro UNIX", 2006

5. Materiali del sito http://www.citforum.ru/oPerating_systems/1-16;

Ministero dell'istruzione e della scienza della Federazione Russa Agenzia federale per l'istruzione State Educational Istituto di istruzione superiore professionale TAGANROG State State Radio Engineering University of Discipline

introduzione

Cos'è UNIX?

Dove ottenere un UNIX GRATUITO?

Quali sono le principali differenze tra UNIX da altro sistema operativo?

Perché UNIX?

I concetti di base di UNIX

File system.

Interprete di comdium

Manuali - Uomo.

introduzione

Scrivi su UNIX OS è estremamente difficile. Innanzitutto, perché molte cose sono scritte su questo sistema. In secondo luogo, poiché le idee e le soluzioni dell'UNIX hanno avuto un enorme impatto sullo sviluppo di tutti i sistemi operativi moderni, e molte di queste idee sono già descritte in questo libro. In terzo luogo, perché UNIX non è un sistema operativo, ma un'intera famiglia di sistemi, e non è sempre possibile "tracciare" i loro parenti tra di loro e descrivere tutto il sistema operativo, che sono semplicemente impossibili da descrivere questa famiglia. Ciononostante, non possiamo richiedere in nessun modo per completezza, cerca di dare una rapida revisione del "mondo Unix" in quelle aree che ti sembrano interessanti per gli scopi del nostro corso di formazione.

La nascita del sistema operatore UNIX si riferisce alla fine degli anni '60, e questa storia ha già coperto "leggende", che a volte narra sui dettagli di questo evento. Unix è nato presso il Centro di ricerca per laboratori telefonici Bell (Bell Labs), che fa parte di AT & T Corporation. Inizialmente, questo progetto iniziativa per il computer PDP-7 (successivamente - per PDP-11) era un file system, o gioco per computer, sia il sistema di preparazione del testo, o l'altro e il terzo. È importante, tuttavia, il fatto che fin dall'inizio il progetto che si è rivelato alla fine del sistema operativo sia stato concepito come software Uso collettivo. L'autore della prima versione di Unix è Ken Thompson, ma nella discussione del progetto, e in seguito, una grande squadra di dipendenti (D. Ritchchi, B. Kernigan, R. Pike e altri hanno partecipato alla sua attuazione. A nostro avviso, alcune circostanze di nascita felice UNIX hanno determinato il successo di questo sistema per molti anni a venire.

Per la maggior parte dei dipendenti del team, in cui è nata UNIX, questo sistema operativo era il "terzo sistema". C'è un parere (vedi, per esempio) che il programmatore di sistema raggiunge elevate qualifiche solo quando il terzo progetto è soddisfatto: il primo progetto è ancora "studente", nel secondo sviluppatore che cerca di includere tutto ciò che è fallito nel primo, e in La fine risulta troppo ingombrante e solo il terzo è stato raggiunto il necessario equilibrio dei desideri e delle opportunità. È noto che prima della nascita dell'UNIX, ha partecipato il team Bell Labs (insieme a una serie di altre società) nello sviluppo di Multics. Il prodotto End Multics (Bell Labs non ha partecipato alle ultime stadi di sviluppo) indossa tutti i segni del "secondo sistema" e non hanno ricevuto diffuso. Tuttavia, va notato che molte idee e decisioni fondamentalmente importanti sono nate in questo progetto e alcuni concetti che molti considerano nati in UNIX hanno effettivamente il loro progetto sorgente Multics.

Unix era il sistema che è stato fatto "per se stesso e per i suoi amici". Prima di UNIX, non c'era alcun compito di catturare il mercato e la concorrenza con qualsiasi prodotto. Gli sviluppatori di OS UNIX erano anche i suoi utenti, e loro stessi hanno valutato la conformità del sistema alle loro esigenze. Senza pressione delle condizioni di mercato, tale valutazione potrebbe essere estremamente obiettiva.

UNIX OS c'era un sistema realizzato da programmatori e programmatori. Ciò ha determinato la grazia e la lidimità concettuale del sistema - da un lato, e dall'altra, la necessità di comprendere il sistema per l'utente UNIX e il senso di responsabilità professionale per un programmatore di sviluppo del programmatore per UNIX. E nessun tentativo successivo di rendere "UNIX per le teiere" non poteva salvare il sistema operativo UNIX da questa dignità.

Nel 1972-73. Ken Thompson e Dennis Ritchi ha scritto una nuova versione di UNIX. Soprattutto per questo scopo, D. Ritchch ha creato il linguaggio di programmazione C, che rappresenta non è più necessario. Più del 90% del codice software SNIX è scritto in questa lingua e la lingua è diventata parte integrante del sistema operativo. Il fatto che la parte principale del sistema operativo sia scritta nella lingua di alto livello fornisce la possibilità di ricompilare ai codici di qualsiasi piattaforma hardware ed è la circostanza che ha determinato la distribuzione diffusa di UNIX.

Durante la creazione di UNIX, la legislazione antimonopolopolopolopolico degli Stati Uniti non ha dato alla Corporation AT & T la possibilità di entrare nel mercato dei prodotti software. Pertanto, UNIX era non commerciale e distribuito liberamente, prima di tutto - alle università. Ha continuato il suo sviluppo, ed è stato condotto più attivamente nell'Università della California a Berkeley. Allo stesso tempo, è stata creata la distribuzione del software dell'Università della Berkeley, che era impegnata nello sviluppo di un ramo del sistema operativo separato - BSD UNIX. Durante l'intera storia successiva, il ramo principale di UNIX e BSD Unix si sviluppò in parallelo, ripetutamente si arricchiscono reciprocamente.

Come è distribuito UNIX, è diventato un crescente interesse nelle imprese commerciali, che ha iniziato a produrre le proprie versioni commerciali di questo sistema operativo. Nel corso del tempo, è diventato un ramo commerciale e "principale" di UNIX da AT & T, è stata creata una controllata di Unix Laboratorio di sistema per la sua promozione. Il BSD Unix Branch a turno ramificato in BSD commerciale e BSD gratuito. Vari sistemi di Unix Sistemi commerciali e liberamente distribuiti sono stati costruiti sulla base del kernel AT & T Unix, ma hanno anche incluso Proprietà incollate da BSD UNIX, nonché proprietà originali. Nonostante la fonte generale, le differenze tra i membri della famiglia Unix sono state accumulate e alla fine hanno portato al trasferimento di applicazioni da un sistema operativo simile a Unix a un altro è diventato estremamente difficile. Alla iniziativa degli utenti UNIX, è stata spostata una standardizzazione API UNIX. Questo movimento è stato sostenuto dall'organizzazione internazionale degli standard ISO e ha portato allo standard POSIX (esecuzione di interfaccia del sistema operativo portatile), che è attualmente in via di sviluppo ed è lo standard più autorevole per il sistema operativo. Tuttavia, la progettazione di specifiche POSIX come standard ufficiale è un processo piuttosto lento, e non può soddisfare le esigenze dei produttori di software, che ha portato all'emergere di standard industriali alternativi.

Con la transizione di AT & T Unix alla società Nowell, il nome di questo sistema operativo è cambiato su Unixware e i diritti del marchio UNIX si sono spostati nel consorzio X / Open. Questo consorzio (attualmente - Gruppo aperto) ha sviluppato la propria specifica del sistema (più ampia di Posix), nota come specifica singola UNIX. Recentemente, la seconda edizione di questo standard è stata rilasciata, concordata significativamente migliore con POSIX.

Infine, un certo numero di produttori di versioni proprie di UNIX ha formato un consorzio di fondazione del software aperto, che ha rilasciato la versione OSN di UNIX - OSF / 1, effettuata sulla base di Mach Microker. OSF ha anche rilasciato la specifica del sistema OSF / 1, sulla base della quale le aziende membro OSF hanno iniziato a produrre i propri sistemi UNIX. Tra tali sistemi: Sunos Sun Microsystems, AIX iBM., Azienda HP / UX Hewlett-Packard, Digital Unix Compaq e altri.

All'inizio, i sistemi UNIX di queste aziende erano in gran parte basati su BSD UNIX, ma ora la maggior parte dei moderni sistemi Unix Industrial è basata sull'uso (licenza) AT & T System V versione 4 (S5R4) Kernel (S5R4), anche se alcuni Le proprietà BSD Unix sono ereditari. Non ci assumiamo la responsabilità di confrontare i sistemi Commercial Unix, poiché apparendo periodicamente nel confronto della stampa di questo tipo rappresentano spesso risultati completamente opposti.

Nowell ha venduto operazioni di Santa Crous Unix, che ha prodotto il proprio prodotto UNIX - SCO Open Server.. Sco Open Server era basato su più versione iniziale Il kernel (System V versione 3), ma è stato notevolmente debuggato e distinto per alta stabilità. Le operazioni della Crown di Santa hanno integrato il suo prodotto con AT & T Unix e rilasciato Open Unix 8, ma poi ha venduto la Caldera Unix, che è il proprietario del "classico" Unix OS oggi (alla fine del 2001).

La società Sun Microsystems ha iniziato il suo ufficio rappresentativo nel mondo del sistema Unix Sunos creato sulla base del kernel BSD. Tuttavia, ha successivamente sostituito il suo sistema Solaris basato su S5R4. Attualmente, la versione 8 di questo sistema operativo è distribuita (c'è anche V.9 beta). Solaris funziona sulla piattaforma SPARC (processori RISC fabbricati in base alle specifiche del sole) e Intel-Pentium.

Hewlett-Packard offre sistema operativo HP-UX. V.11 sulla piattaforma PA-RISC. HP-UX è basato su S5R4, ma contiene molte proprietà, "eccezionale" la sua origine da BSD UNIX. Naturalmente, HP-UX sarà disponibile sulla piattaforma Intel-Itanio.

Le imprese IBM con AIX OS, l'ultima versione della versione è 5L (sarà anche discusso in anticipo). IBM non ha dichiarato un "Pedigree" Aix, è per lo più lo sviluppo originale, ma le prime versioni erano segni di origine da Freebsd Unix. Ora, tuttavia, Aix è più simile a S5R4. Inizialmente, AIX era disponibile sulla piattaforma Intel-Pentium, ma in seguito (in conformità con la Politica Generale IBM) cessato di essere supportata su questa piattaforma. Attualmente, AIX funziona su server IBM RS / 6000 e altre piattaforme di elaborazione basate su processori PowerPC (compresi i supercomputer IBM).

Le imprese Digital Unix OS sono state l'unica implementazione industriale del sistema OSF / 1. Digital UNIX ha funzionato sui server Alpha RISC da DEC. Quando nel 1998, DEC è stato assorbito da Compaq e Server Alpha e Digital Unix è venuto a Compaq. Compaq ha intenzione di ripristinare la presenza nel mercato del server Alpha e in connessione con questo sviluppa intensamente il sistema operativo per loro. Il nome corrente di questo sistema operativo è Tru64 UNIX (versione corrente - 5.1A), continua ad essere basata sul kernel OSF / 1 e trasporta molti segni di BSD UNIX.

Nonostante il fatto che la maggior parte dei sistemi Unix commerciali si basa su un nucleo e soddisfa i requisiti di Posix, ognuno di essi ha il proprio dialetto API e le differenze tra i dialetti si accumulano. Ciò porta al fatto che il trasferimento di applicazioni industriali da un sistema UNIX è ostacolato a un altro e richiede almeno ricompilazione e spesso - e regolare il codice sorgente. Un tentativo di superare la "pausa" e di fare un singolo UNIX OS è stato intrapreso nel 1998 dall'Alleanza di SCO, IBM e Sequent. Queste aziende sono state unite nel progetto Monterey per creare un singolo sistema operativo basato su Unixware, il cui proprietario in quel momento era SCO, IBM AIX e il SEQUENT DYNIX OS. (Sequent Company occupa una posizione di leadership nella produzione di NUMA Architecture Computer - Asymmetric Multiprocessor - e Dynix è UNIX per tali computer). Monterey era di lavorare sulla piattaforma Pentium Intel a 32 bit, la piattaforma PowerPC a 64 bit e sulla nuova piattaforma Intel-Itanium a 64 bit. Quasi tutti i leader nella produzione di hardware e software intermedio sono stati annunciati sul supporto del progetto. Anche le aziende con cloni nazionali UNIX (eccetto Sun Microsystems) ha annunciato che piattaforme Intel. Supportano solo Monterey. Il lavoro sul progetto è stato richiesto, apparentemente, con successo. Monterey fu tra i primi ad aver dimostrato le sue prestazioni su Intel-Itanio (insieme a Windows NT e Linux) e l'unico che non ricorreva all'emulazione dell'archiuonatura Intel-Pentium Architecture a 32 bit. Tuttavia, un evento fatale si è verificato nella fase finale del progetto: Sco ha venduto il suo compartimento UNIX. In precedenza, Sequent è diventato parte di IBM. L'heir "di tutte le proprietà del sistema operativo del monterio è stato il sistema operativo IBM AIX V.5L. Tuttavia, non tutto. La piattaforma Intel-Pentium non è una direzione strategica per IBM, e su questa piattaforma OS AIX non è disponibile. E poiché gli altri leader del settore informatico non sono separati (o non completamente condivisi) tale posizione IBM, l'idea del Comune OS UNIX non è stata realizzata.

Brevi informazioni sullo sviluppo del sistema operativo UNIX

UNIX OS è apparso alla fine degli anni '60, come sistema operativo per mini-computer PDP-7. Il Kenneth Thomson e Dennis Ritchi accettò la partecipazione attiva allo sviluppo.

Caratteristiche del sistema operativo UNIX: modalità multiplayer, nuova architettura del file system, ecc.

Nel 1973, la maggior parte del core del sistema operativo è stata riscritta nella nuova lingua C.

Dal 1974, UNIX è stata distribuita nelle università statunitensi nei codici sorgente.

Versioni UNIX.

Dall'inizio della distribuzione di Unix, varie versioni del sistema operativo cominciarono ad apparire nelle università americane.

Per ordinare, AT & T nel 1982 combinato diverse versioni a una chiamata Variante del sistema operativo - System III. Nel 1983 è stata rilasciata una versione commerciale - System V. Nel 1993, AT & T ha venduto i suoi diritti alla società Unix Novell, che ulteriore consorzio X / Open e Santa Cruz operation (SCO).

L'altra linea di UNIX - BSD è in fase di sviluppo in California University (Berkeley). Ci sono versioni gratuite di FreeBSD, OpenBSD.

La famiglia OSF / 1 - Open Software Foundation include un consorzio IBM, DEC e Hewlett Packard. Il numero di questa famiglia include - HP-UX, AIX, Digital UNIX.

Versioni gratuite della famiglia Unix

C'è un gran numero versioni gratuite Unix.

FreeBSD, Netbsd, OpenBSD - Varianti sviluppate sulla base del sistema operativo BSD.

La famiglia più popolare dei sistemi UNIX gratuita è un sistema familiare. Linux.. La prima versione Linux è stata sviluppata da Linus Torvalds nel 1991. Attualmente ci sono diverse opzioni. Linux: Cappello rosso, Mandrake, Slackware, SUSE, Debian.

Caratteristiche generali dei sistemi UNIX

Varie opzioni UNIX hanno un numero di caratteristiche comuni:

Elaborazione multiprogramma in modalità di separazione del tempo basata sul multitasking di spostamento;

Supporto per la modalità multiplayer;

Uso di memoria virtuale e meccanismi di scambio;

Sistema system gerarchico;

Unificazione delle operazioni I / O basate sull'uso avanzato del file di concept;

Tolleranza del sistema;

Disponibilità di strumenti di interazione di rete.

Vantaggi dei sistemi UNIX

Per il numero di vantaggi della famiglia Unix includono:



Portabilità;

Effettiva implementazione del multitasking;

Apertura;

Disponibilità e rigorosa conformità degli standard;

Sistema system unico;

Potente lingua di comando;

La presenza di un numero significativo di prodotti software;

Implementazione dello stack del protocollo TCP / IP;

Capacità di lavorare come server o workstation.

Server basati su Unix

Il server è un computer che elabora altri computer nella rete e fornisce le proprie risorse per la memorizzazione, l'elaborazione e la trasmissione dei dati. Il server UNIX può eseguire i seguenti ruoli:

File server;

Server web;

Server email;

Server di registrazione remota (autenticazione);

Server ausiliari del servizio Web (DNS, DHCP);

Internet Access Server Internet

Gestione del computer che esegue Unix

Quando si lavora con un sistema UNIX in modalità server, come regola, viene utilizzata la modalità accesso remoto Usando un programma terminale.

La sessione di lavoro inizia con l'ingresso del nome di registrazione e la password di accesso.

Spesso, per risolvere le attività di gestione del server sono limitate alla modalità di comando di funzionamento. In questo caso, per controllare l'ingresso di comandi speciali alla riga di comando in un formato speciale viene utilizzato. La riga di comando ha un invito speciale, ad esempio:

Vista generale della squadra:

  1. -Bash-2.05B $ comando [Opzioni] [Parametri]

Ad esempio, una chiamata di certificato sul sistema operativo ha il modulo:

  1. -Bash-2.05b $ uomo [tasti] [argomento]
  2. Per chiamare aiuto per utilizzare il comando man, inserire
  3. -Bash-2.05b $ uomo uomo

Interpretazione della riga di comando

Quando si entrano nei comandi, vengono utilizzati i seguenti accordi:

La prima parola sulla riga di comando è il nome della squadra;

Le parole rimanenti sono argomenti.

Tra gli argomenti sono allocate le chiavi (opzioni) - predefinite per ciascun comando Word (simboli) a partire da uno (corto formato) o coppie di trattini (formato lungo). Per esempio:

BASH-2.05B $ TAR -C -F Arch.tar * .C

BASH-2.05B $ TAR - -Create - -File \u003d Arch.tar *.

Quando si specificano le opzioni, possono essere combinate. Ad esempio, i seguenti comandi sono uguali:

BASH-2.05B $ LS -A -L -L

Bash-2.05b $ ls -l -a

Bash-2.05b $ ls -al

Altri argomenti indicano gli oggetti su cui vengono eseguite le operazioni.

Shell variabile

Quando si lavora nel sistema, c'è un modo per trasferire i parametri sul programma, ad eccezione dell'utilizzo dei tasti della shell di comando - l'uso delle variabili di ambiente. Per specificare la variabile di ambiente, utilizzare il comando Set. Formato della squadra:

Bash-2.05b $ set_name_name \u003d valore

Eliminazione della variabile di ambiente viene eseguita dal comando UNSET.

Per fare riferimento al valore variabile, la designazione viene utilizzata $ _NAME_NAME, ad esempio, il comando:

Bash-2.05B $ Echo $ Path

Sarà il valore della variabile del percorso.

La campana.

Ci sono quelli che hanno letto questa notizia prima di te.
Iscriviti per ricevere articoli freschi.
E-mail
Nome
Cognome
Come vuoi leggere la campana
Senza spam