UNIX-Systemarchitektur - 0.Einleitung
  
  
  
  
  
                       UNIX-Schnittstelle
                       ==================
  
  
  
  
  
                     0. UNIX und Standards
                     =====================
  
  
  
  
  
  
  
  
  
  
  
  




nextback          2017 - 1





  
  Alle Beispiel-Quellen mittels SVN unter:
  
      https://svn.informatik.hu-berlin.de/svn/unix-2014/Einleitung
  
  
  
  
  	Was ist UNIX?
  
              	Ein Betriebssystem.
  
  
  	Was ist ein Betriebssystem?
  
  	    Philosoph:
  
  		Menge von manuellen oder automatischen
  		Prozeduren, die es einer Menge von Personen
  		ermöglichen einen Rechner geteilt oder
  		gemeinsam zu nutzen.
  
  	    Praktiker:
  
  		Die Gesamtheit aller Programme, die sich zu
  		einem bestimmten Zeitpunkt in einem 
  		Rechnersystem befinden.



nextback          2017 - 2





  
  	Entwicklung des Betriebssystems UNIX
  	------------------------------------
  
  Kurzer geschichtlicher Abriss
    http://www.levenez.com/unix/unix_a4.pdf  (27 DIN A4 Seiten)
  
  1965-1969 Multics
  1969/70   UNIX für PDP-7  (Version 1)
  1970      Entstehungsjahr
  
            in Bell Laboratorien (Anfang der Arbeiten 1962)
            Die Pioniere:
                 Ken Thompson
                 Douglas Mcllroy
                 Dennis Ritchie
            auf DEC PDP-11/20  
                  64 KByte Haupspeicher, 4 Platten a 2,5 MB
                  Fernschreibmaschinen für die Kommunikation
            Ziel: Kleines Dialogsystem für die Programmentwicklung
                  für ein kleines Team.
            System: leistungsfähiges Filesystem + kleines Betriebssystem 
     
            UNIX Programmer's Manual, Version 2, Juni 1972:
               "Es gibt zur Zeit zehn UNIX Installationen,
                mehr sind zu erwarten."
  
            Philosophie: einfache Programme, die eine kleine Aufgabe
                         perfekt realisieren und die man dynamisch zu grossen
                         Werkzeugen verbinden kann.
nextback          2017 - 3





  
  1973      UNIX für PDP-11 (Version 3 vollständig in C)
            Erster Kernel in C!!!!
  
  1975      UNIX Version 6      (letzte einheitliche Version)
                erste Portierungen auf nicht PDP-Architekturen
                  (Dauer: 6 Monate)
  1977      500 UNIX-Systeme im akademischen Bereichen
               1. nicht PDP-Maschine unter UNIX (Interdata 8/32)
  1979      UNIX Version 7 (letzte einheitliche Version)
  1979/80            AT&T                    BSD
                                  (Berkeley System Distribution)
                                        PDP-11     VAX
                 System III             BSD 2      BSD 3 
                                        BSD 2.1    BSD 4.0 
  
  Nun beginnt das Chaos:
  
  1980      XENIX    UNIX Version 7     BSD-UNIX Version 1
               Kommerzielles: DG/UX, IX/379, MUNIX, HP-UX
  
  1983           System V.0             BSD 2.8    BSD 4.1 
                                         (UNIX Version 8)
  
  1984           System V.2             BSD 2.9    BSD 4.2 
                                      Signalbehandlung, IPC,
                                      schnelles Dateisystem



nextback          2017 - 4





  
  1985      UNIX System VR2  UNIX Version 8     BSD-UNIX Version 4.2
               Kommerzielles: SunOS, Ultrix, SCO-UNIX, Venix
  
            Grafische Oberfläche Windows (MIT)
            Kommuniktation  über Sockets ("Internet")
  1986           System V.3                BSD 4.3 
                (UNIX Version 8)          (UNIX Version 9)
  
  1987           System V.3.1              BSD 2.10  
  
  1988           System V.3.2              BSD 4.3 Tahoe
  
  1990      UNIX System VR4, UNIX Version 10, BSD-UNIX Version 4.3, OSF/1
               Kommerzielles: SUNOS, AIX, Ultrix, HP-UX, SCO-UNIX
               Akademisches: MINIX
  
  1995      UNIX SYSTEM VR5, BSD-UNIX Version 4.4
               Kommerzielles: SUNOS 4.1, AIX, Digital UNIX, HP-UX
               Akademisches: Linux
  
  2003      UNIX System VR5, Open BSD, Linux 2.4/2.6
               Kommerzielles: Solaris 2.9, AIX, HP-UX, Compaq-UNIX, SGI-UNIX, ..
               Akademisches: Linux, OpenBSD
  
  2005      UNIX System VR5, Open BSD, Linux 2.4/2.6
               Kommerzielles: Solaris 2.10, AIX, HP-UX, SGI-UNIX, ....
               Akademisches: Linux, Open BSD, FreeBSD


nextback          2017 - 5





  
  Kommerzielle UNIX-Systeme:
  
       UNIX Version 7:
  	     MUNIX, ULTRIX-11, HP-UX 1.0, VENIX, ZEUS
       BSD 4.2:
  	     ULTRIX-32, ULTRIX, SUN-OS, Solaris 1.0, 
       System V.2:
   	     XENIX 5.0, Interactive V.2
       System V.3 + BSD 4.2:
  	     HP-UX 8.0, Sinix, AIX
       System V.4:
  	     HP-UX 10.0, Solaris 2.11, SINIX V.4, Interactive V.4
       OSF/1:
  	     DEC OSF/1 AXP Version 3.2   (1996)















nextback          2017 - 6





  
  		Standards
  		---------
  1989
     XPG3
        (X/Open Portability Guide, Issue 3)
        Zusammenschluss von Firmen
        Basis ist IEEE 1003.1 von 1988
                  (Institute of Electrical and Electronical
                   Engineers)
        Standardisiert wurde:
  		Betriebssystemschnittstellen
  
     ANSI-C  
        (American National Standards Institute)
        ANSI Standard X3.159-1989
        Identisch mit ISO/IEC 9899  von 1990
        Standardisiert wurde:
                  Syntax und Semantik von C
  		Bibliotheksfunktionen von C
        UNIX-Systeme:
             System V.3.3
             System V.4	
             BSD  Net1 (386)
             UNIX Version 9 





nextback          2017 - 7





  
  1988  
     POSIX.1
        (Portable Operating System Interface for
         Computer Environments)
        Besteht aus mehreren IEEE-Standards
        Standardisiert wurde:
           Operating System Interface  (IEEE 1003.1 - 1988
           Shells and Utilities (IEEE 1003.2 - 1988)
           Systemadministration (IEEE 1003.7 - 1989)
        kleiner gemeinsamer Teil der existierenden UNIX-Systeme
  
  1993
     XPG 4
  1994
     X/Open Foundation
        Spec 1170  bassieren auf System V
        relativ grosse Differenzen zu POSIX.1
  
  1998
       Gründung der Austin Group bestehend aus Teilnehmern
       der X/Open Group, von IEEE POSIX und  dem 
       ISO/IEC Joint Technical Commitee
       Ziel: Schaffung eines einheitlichen UNIX-Standards unter
             Berücksichtigung der Microsoft-Welt
  
  2002 
       Verabschiedung von IEEE Std. 1003.1-2001 - POSIX
            4 Teile: Base Definitions, Shell and Utilities,
                     System Interfaces,  Rationale
nextback          2017 - 8





  
  Aktuelles POSIX
  
  Es gibt in den realen Systemen verschiedenste Versionen
  von POSIX. Außerdem gibt es noch ca. 50 Erweiterungen.
  
  genauere Informationen erhält man
  
    für Linux aus:
  
      /usr/include/unistd.h  --> /usr/include/bits/confname.h
  
    für Solaris aus:
  
      /usr/include/unistd.h  -->   /usr/include/sys/unistd.h 
  
            z.B.  _POSIX_VERSION
  
                     199506L   -  Solaris 2.9
                     199506L   -  debian - Woody 3.0-r2, 2.4.18
                     198808L   -  Mac OS 10.2
                     199212L   -  OpenBSD 4.3
                     200112L   -  SuSE 9.1 - 11.1, Solaris 2.10
                     200809L   -  SuSE 11.4
  
    Programm:   getconf -a
                getconf <Variablenname>
                getconf _POSIX_VERSION


nextback          2017 - 9





  
  Zum POSIX gibt es definierte Zusätze, die bei einem System 
  vorhanden sein können oder nicht. Das System ist in jedem
  Fall POSIX-Konform.
  
  Einige mögliche POSIX-Zusätze (Beispiele)
        (ca. 50)
  
       POSIX  Bedeutung                   Solaris 9   Linux    MAC OS
       Code                                           2.4.18    10.2
  
       AIO   Asynchrone input and output     +          +        -
       CD    C-Language dev. utilities       +          +        +
       CS    Clock section                   +          +        +
       CX    Extension ISO C standard        +          +        +
       FSC   Filesynchronization             +          +        +
       ML    Process memory lock             +          +        +
       MPR   Memory protection               +          +        +
       MSG   Message passing                 +          +        +
       RTS   Realtime signals extension      +          +        -
       PS    Processing sheduling            +          +        +
       SEM   Semaphore                       +          +-       +-
                                                      unnamed    named
       SHM   Shared Memory                   +          +        +
       THR   Threads                         +          +        +
       TSA   Thread Stack address Attribute  -          -        -
       TSF   Thread Safe Functions           +          +-       +
       


nextback          2017 - 10





  
  Bestimmung der Fähigkeiten eines UNIX-Systems mittels des Systemrufes 
  "sysconf".
  
      #include <unistd.h>
      long sysconf(int name)     
  
      main(int argc,char **argv);
      { 
         printf( "OPEN MAX: %ld\n", sysconf(_SC_OPEN_MAX));
         printf( "_SC_THREADS: %ld\n", sysconf(_SC_THREADS));
      }
  
  Beispiele:
  
    _SC_THREADS               - Threads vorhanden
    _SC_SHARED_MEMORY_OBJECTS - Shared Memory vorhanden
    _SC_ARG_MAX               - Maximaler Platz für Argumente
    _SC_MEMLOCK               - Process Memory Locking
    _SC_SEMAPHORES            - Semaphore vorhanden
    _SC_FSYNC                 - File Synchronisation
    _SC_TRACE                 - Trace möglich
    _SC_TIMERS                - Timer vorhanden







nextback          2017 - 11





          Standardisierte Headerfiles
          ---------------------------
  
             XPG3  Headerfiles 
             -----------------
  
  dirent.h	-	Directoy entry
  fcntl.h		-	Filesteuerung
  ftw.h		-	File-Baum-Struktur
  grp.h		-	"/etc/group"-File
  langinfo.h	-	Sprachinformationen
  nl_types.h	-	nationaler Nachrichtenkatalog
  pwd.h		-	"/etc/passwd"-File
  regex.h		-	reguläre Ausdrücke
  search.h	-	Tabellen suchen
  termios.h	-	Terminal E/A
  ulimits.h	-	Nutzerlimits
  unistd.h	-	Symbolische Konstanten
  utime.h		-	Zeitstempel in Files
  
  sys/ipc.h	-	Interprozesskommunikation
  sys/msg.h	-	IPC Messages
  sys/sem.h	-	IPC Semaphore
  sys/shm.h	-	IPC Shared Memory
  sys/stat.h	-	Filestatus
  sys/times.h	-	Prozesszeiten
  sys/types.h	-	Systemdatentypen
  sys/utsname.h	-	Systemname
  sys/wait.h	-	Prozessteuerung

nextback          2017 - 12





  
                ANSI-C Headerfiles
                ------------------
  
  assert.h	-	Fehlerprüfung
  ctype.h		-	char-Typen
  errno.h		-	Fehlerkodes
  float.h		-	Gleitkommakonstanten
  limits.h	-	Implementationskonstanten
  local.h		-	lokale Konstanten
  math.h		-	mathematische Konstanten
  setjmp.h	-	Sprung
  signal.h	-	Signalbehandlung
  stdarg.h	-	Argumentenübergabe
  stddef.h	-	Standarddefinitionen
  stdio.h		-	Standard E/A
  stdlib.h	-	Hilfsfunktionen
  string.h	-	Stringfunktionen
  time.h		-	Datum und Uhrzeit
  
  









nextback          2017 - 13





  
                POSIX Headerfiles
                -----------------
  cpio.h		-	cpio-Archivstruktur
  dirent.h	-	Directoy entry
  fcntl.h		-	Filesteuerung
  grp.h		-	"/etc/group"-File
  tar.h		-	tar-Archivstruktur
  termios.h	-	Terminal E/A
  unistd.h	-	Symbolische Konstanten
  utime.h		-	Zeitstempel in Files
  sys/stat.h	-	Filestatus
  sys/times.h	-	Prozesszeiten
  sys/types.h	-	Systemdatentypen
  sys/utsname.h	-	Systemname
  sys/wait.h	-	Prozessteuerung
  
  		"Quasi"-Standards
  		-----------------
  
  	System V Release 3    (SVR3)
          System V Release 4    (SVR4)
  	BSD 4.3
  	BSD 4.4
  	"Linux"
  
  	In der Vorlesung benutzt:
  
  		XPG4, ANSI-C, POSIX, Linux, Solaris

nextback          2017 - 14





              Filesystemübersicht SUN Solaris 2.10
              ====================================
  
     /bin            - Link auf /usr/bin
     /boot           - Bootloader Solaris
     /cdrom          - Mountpunkt für CDROM-Laufwerk
     /devices        - Physische Geräte
         /devices/pci@1c,600000, /devices/pci@1d,700000, /devices/pseudo
     /dev            - Gerätedateien
         /dev/cfg, /dev/cua, /dev/dsk, /dev/md, /dev/md/dsk, /dev/md/admin,
         /dev/md/rdsk, /dev/md/shared, /dev/pts, /dev/rdsk,
         /dev/rmt, /dev/sad, /dev/swap, /dev/term, /dev/usb
     /etc            - Files für Systemverwaltung
         /etc/acct, /etc/apache2, /etc/certs, /etc/cron.d, /etc/default,
         /etc/dfs, /etc/dhcp, /etc/dt, /etc/fonts, /etc/fs, /etc/ftpd, /etc/gconf, 
         /etc/gnome /etc/gtk, /etc/inet, /etc/init.d, /etc/lib, /etc/lp, 
         /etc/lvm, /etc/mail, /etc/net, /etc/nfs, /etc/opt, /etc/opt/licenses,
         /etc/rc0.d      - Files zur Herstellung des Systemzusandes 0
         /etc/rc1.d, /etc/rc2.d, /etc/rc3.d, /etc/rcS.d
         /etc/saf        - Files für Terminalinitialisierung
         /etc/security   - Sicherheitsbereich
         /etc/sfw        - OpenSource
         /etc/ssh        - ssh-Bereich
         /etc/svc        - SMF
         /etc/uucp       - uucp-Konfiguration
         /etc/xml, /etc/zfs, /etc/zones
     /export
         /export/exec, /export/exec/kvm, /export/home, /export/share
     /home           - Homedirectoies

nextback          2017 - 15





     /kernel         - Kernel-Module
         /kernel/drv, /kernel/exec, /kernel/fs, /kernel/misc,
         /kernel/sched, /kernel/strmod, /kernel/sys
     /lib            - wichtige Libraries
     /mnt            - allgemeiner Mountpoint
     /net
     /opt            - optionale Software
          /opt/SUNWconn, /opt/SUNWdat, /opt/SUNWsdocs, /opt/csw
     /platform       - Plattformabhängige Software
         /platform/sun4u, /platform/sun4u/kernel 
         /platform/SUNW,Sun-Fire-880, /platform/SUNW,Sun-Fire-V240
     /proc           - Prozess-Filesystem
     /rpool          - Mountpoint für ZFS
     /sbin           - System-Binaries
     /system         - System
     /tftpboot       - Homedir für TFTP
     /tmp            - temporäre Files
     /usr            - Systemfiles für Nutzer
         /usr/X
         /usr/X11
         /usr/X11R6
         /usr/4lib       - Libraries
         /usr/5lib       - Libraries
         /usr/adm        - ../var/adm
         /usr/apache2
         /usr/apserver
         /usr/bin        - Binaries
         /usr/ccs, /usr/demo, /usr/dt 
         /usr/games, /usr/gnome
         /usr/include    - Headerfiles
nextback          2017 - 16





         /usr/java
         /usr/jdk
         /usr/j2se
         /usr/kernel     - Kernelmodule
         /usr/kvm
         /usr/lib        - Libraries und Konfigurationsfiles
            /usr/lib/acct, /usr/lib/adb /usr/lib/autofs
            /usr/lib/cpu, /usr/lib/devfsadm, /usr/lib/firmware, /usr/lib/font
            /usr/lib/fs, /usr/lib/glib-2.0, /usr/lib/help, /usr/lib/localedef
            /usr/lib/lp, /usr/lib/inet, /usr/lib/krb5, /usr/lib/mail, /usr/lib/netsvc
            /usr/lib/nfs, /usr/lib/nis, /usr/lib/patch, /usr/lib/pkgconfig
            /usr/lib/secure, /usr/lib/security, /usr/lib/smartcard, /usr/lib/snmp
            /usr/lib/term, /usr/lib/uucp, /usr/lib/vold
         /usr/local       - locale Files
         /usr/mail
         /usr/net
              /usr/net/servers
         /usr/news
         /usr/openwin     - Openwin
         /usr/patch
         /usr/perl5       - Perl 5
         /usr/platform
             /usr/platform/sun4m, /usr/platform/sun4u, SUNW,Sun-Fire-880, ..
         /usr/proc
            /usr/proc/bin, /usr/proc/lib
         /usr/pub         - Zeichensätze
         /usr/sadm        - Systemadministration
            /usr/sadm/admin, /usr/sadm/bin, /usr/sadm/install, /usr/sadm/lib,
            /usr/sadm/mof, /usr/sadm/smc, /usr/sadm/sysadm, /usr/sadm/updates

nextback          2017 - 17





  
         /usr/sbin
             /usr/sbin/install.d, /usr/sbin/static, /usr/sbin/sparcv7, /usr/sbin/sparcv9
         /usr/sfw         - OpenSource Software
            /usr/sfw/bin, /usr/sfw/sbin, /usr/sfw/lib, /usr/sfw/share, ...
         /usr/share
            /usr/share/doc, /usr/share/lib, /usr/share/man, /usr/share/src, 
         /usr/snadm
            /usr/snadm/bin, /usr/snadm/classes, /usr/snadm/etc, /usr/snadm/lib
         /usr/spool         - Spool-Directory
         /usr/src           - Quellen
         /usr/sunvts
         /usr/tmp           - Temporäre Files
         /usr/ucb           - SUNOS-Programme
         /usr/ucbinclude
             /usr/ucbinclude/sys, /usr/ucbinclude/ufs
         /usr/ucblib
         /usr/xpg4
             /usr/xpg4/bin, /usr/xpg4/include, /usr/xpg4/lib
         /usr/xpg6
     /var                  - veränderbare Systemfiles
         /var/adm, /var/apache, /var/audit, /var/crash, /var/cron, /var/log
         /var/lp, /var/mail, /var/news, /var/nfs /var/nis, /var/ntp
         /var/opt, /var/preserve, /var/sadm, /var/saf, /var/samba, /var/snmp
         /var/spool              - Spool-System
         /var/statmon
             /var/statmon/sm, /var/statmon/sm.bak
         /var/tmp
         /var/uucp              - UUCP

nextback          2017 - 18





  
         /var/yp                - NIS
            /var/yp/binding, /var/yp/informatik
     /vol                   - Mountpoint Automounter
     /volumes               - Volumemanager (/vol)
     /xfn                   - cache
























back               2017 - 19

Zurück zur Gliederung
Mittwoch, 5. Februar 2020 um 11:10:07 Uhr CET J-P Bell