Unix-Kernel + Unix-Shells: Ein paar Grundfragen

Dieses Thema im Forum "Unix Derivate & sonst. Unix Fragen" wurde erstellt von mech_animal, 07.12.2007.

  1. #1 mech_animal, 07.12.2007
    Zuletzt bearbeitet: 07.12.2007
    mech_animal

    mech_animal Mitglied

    Dabei seit:
    27.11.2007
    Beiträge:
    44
    Zustimmungen:
    0
    Hallo,

    wie schon am Thema abzulesen, will ich euch heute mit ein paar Grundfargen zum Unix-Kernel und Unix-Shells auf den Geist gehen. :D

    Ich habe mich jetzt etwas intensiver in die Materie hineingelesen und grundlegend auch alles verstanden.
    Nur beim Systematisieren stoße ich manchmal auf kleine Probleme, weil mir dazu einerseits wohl das grundlegende Informatikwissen fehlt und ich andererseits auch keine Spezialkenntnisse zu diesen Dingen vorweisen kann.


    Als erstes zum Kernel:

    Der ist ja für eine Reihe von Dingen zuständig, darunter auch Speichermanagement.
    Wenn ich das richtig verstanden habe bedeutet Speichermanagement nichts weiter als die Verwaltung bzw. Zuweisung v. realem und virtuellem Speicher an Prozesse, richtig?
    Und gehe ich richtig in der Annahme, dass sich virtueller Speicher und Speicherschutz nur auf den Arbeitsspeicher beziehen? (Tja, hier haben wir schonmal das Problem des Grundwissens...)
    Ich hab mir zu diesen Dingen auch schon Texte durchgelesen, aber teilweise nur Bahnhof verstanden.

    Ein weiterer Punkt ist beim Kernel das Prozessmanagement. Ich habe gelesen, dass der Kernel auch Mittel bereit hält, um das System zu starten (das wusste ich auch schon vorher...).
    Es kommt mir nur komisch vor, dass das in dem Schriftstück extra betont wurde.
    Im Endeffekt gehört der Systemstart doch auch zum Prozessmanagement, weil der Systembetrieb nichts weiter ist als das Durchlaufen von Prozessen, richtig?

    Nun noch zu dem Punkt, der im Englischen immer als network management bezeichnet wird.
    Man könnte das natürlich einfach als Netzwerkmanagement übersetzen und Schluss. Aber den Begriff finde ich irgendwie nicht sehr aussagekräftig.
    Ich kann das aber auch nicht wirklich anders übersetzen, weil ich eben nicht genau weiß, was damit gemeint ist.
    Fakt ist ja, dass moderne Kernel "die Netzwerkunterstützung stellen". Das seh ich ja im Kernel-Menü.
    Aber wie kann man das mal schön und vor allem richtig zusammenfassen? Heißt: Was wird da alles gestellt oder kann gestellt werden?


    Nun zur Shell:

    Für mich sind bezüglich der Shell noch 2 grundsätzliche Fragen zu klären:

    1. Wozu wird die Shell eingesetzt?

    2. Welche Funktionen bietet die Shell?

    Dazu möchte ich kurz noch etwas erläutern, weil man evtl. meinen könnte, dass die beiden Fragen auf die selben Antworten hinauslaufen.
    Also bei 1. geht es mir eher um die abstraktere Ebene, bei der nicht so genau darauf eingegangen wird, was eigentlich passiert.
    Bei 2. geht es dann mehr darum, welche Funktionen die Dinge, die in 1. benannt wurden, ermöglichen.

    Mal ein lustiges Praxisbeispiel:
    Wenn ich einen Orangensaft-Automat vor mir habe, würde ich bei 1. notieren, dass er dazu eingesetzt wird um auf Knopfdruck frisch gepressten Orangensaft bereitzustellen.
    Bei 2. würde dann vielleicht stehen, dass der Automat die Orange zertielt oder ausquetscht und besonders schnell neue Becher bereitstellen kann. Ich kenn mich auf dem Gebiet leider nicht so genau aus.

    Unter dem, wozu die Shell eingesetzt wird, findet sich bei mir folglich:

    - Manipulation des Dateisystems
    - Ein-/Ausgabeumleitung
    - Job Control (nutzerseitige Prozessverwaltung)
    - allgemein: Lösen komplexer Aufgaben durch Kombination von Kommandos (Shell-Scripting)

    Man kann die Shell aber auch zur Textverarbeitung nutzen. Sollte ich das also mit erwähnen?
    Wenn ja, gehört das zur Manipulation des Dateisystems?

    An Funktionen, die die Shell mit sich bringt, habe ich aus den unterschiedlichen Quellen folgendes zusammengetragen:

    - Ausführen von Kommandos
    - Stoppen und Starten von Prozessen
    - Starten von mehreren Prozessen (Verkettung über Pipes)
    - Prozesse im Vorder- und Hintergrund starten
    - Verschieben von Prozessen in Vorder-/Hintergrund

    Ist das vollständig?
    Dinge wie completion system, command line editing und command history habe ich in einer extra Rubrik unter dem Namen "Zustanfunktionen" eingegliedert, weil sie eigentlich nicht von absolut zentraler Bedeutung sind, sondern nur den Komfort erhöhen.
    Darüber kann man sich jetzt natürlich auch streiten. Ich seh es erstmal so.

    So, zum Abschluss noch eine Frage:

    Welche Shell benutzt ihr und warum?
    Ich finde ja die zsh ganz interessant. Da kann man den Prompt auf die rechte Seite setzen und solche Scherze.
    Hat damit jemand Erfahrung?


    Vielen Dank schonmal für eure Antworten!
    Gebe mich auch mit Links zufrieden.

    P.S.: Das ist kein Hausaufgaben-Thread! Ich interessiere mich einfach für Unix und brauche eben manchmal ein Echo zu dem, was ich mir als vermeintlich richtig erarbeitet habe. Ich hoffe auf euer Verständnis!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 07.12.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Hrhr, lustiges Posting.......:D

    Na, dann versuch ich mich doch mal:

    IMHO ja.

    Ja, ganz grob vereinfacht sieht es so aus:

    Bootloader lädt Kernel -> Kernel startet die init-Prozesse.

    Da allerdings alle anderen Prozesse von den init-Prozessen abhängen, bringt der Kernel "alleine" nicht viel.

    Der TCP/IP-Stack + Hilfsmittel zur Bearbeitung (z.B. iptables)

    Ich finde alles außer bash schrecklich, liegt wohl an der Gewohnheit...:)

    So, hoffe mal ich hab keinen Bullshit erzählt.....8)
     
  4. #3 tr0nix, 07.12.2007
    Zuletzt bearbeitet: 07.12.2007
    tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Nicht ganz, da ist natürlich noch vieles drumum. Paging, Swapping, Algorithmen die dies managen, TLB verwalten etc. Möglicherweise hast du das gemeint nur nicht erwähnt :). Wikipedia kennt die Begriffe (SWAP, Page).

    Nein, virtueller Speicher = Arbeitsspeicher + Swap (Auslagerungspartition bzw. Datei). Dabei wird frisch fröhlich bei Bedarf ein- und ausgelagert (suche mal nach "Pagefault").

    Wenn du ein System aufstartest, führt es die Daten im Master Boot Record (MBR) aus -> meistens einen Bootloader. Dieser lädt dann das eigentliche System (Kernel) und init, welches dann für den Systemstart zuständig ist. Prozessmanagement hast du, sobald der Kernel aktiv ist.

    Guck dir mal das OSI-Modell an, dort siehst du, was der Kernel alles mit Networking meint (Beispiel Kartentreiber -> Ethernet -> IP -> Routing -> TCP -> Firewall ...).

    Systemschnittstelle Mensch/Maschine sag ich mal ganz salopp. Triffts wohl auf den Punkt.

    Das Bedienen und Verwalten des Betriebssystem.

    Du machst in der Shell im Prinzip nur eines: du startest Programme. Viel gröber würde ich gar nicht unterscheiden, wenn du es abstrakt halten willst.

    Nein, Manipulation des Dateisystemes ist alles, was:
    - Dateien erstellt / löscht
    - Dateiinformationen verändert (Berechtigungen, Namen, Links etc.)

    Der Hauptzweck eines Textprogrammes ist nicht die Manipulation des Dateisystemes, sondern die Erstellung von Daten (die letztenendes natürlich das Dateisystem verwenden). Aber Permissions ändern machst du normalerweise mit anderen Tools :).

    Ein Wort dafür? Prozessverwaltung :).

    KSH und Bash. Bash weil sie auf (praktisch) allen Linux Systemen vorhanden ist, ksh weil ichs auf Solaris immer hatte auch, als bash noch nicht im Standardbuild hier dabei war. Zudem kann man sie mit vi-Kommandos benutzen was richtig rockt :).

    Gruess
    Joel
     
  5. #4 mech_animal, 08.12.2007
    mech_animal

    mech_animal Mitglied

    Dabei seit:
    27.11.2007
    Beiträge:
    44
    Zustimmungen:
    0
    Danke für die hilfreichen Antworten!
    Werde mir das in Ruhe zu Gemüte führen und evtl. nochnmal Rückfragen stellen.
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Unix-Kernel + Unix-Shells: Ein paar Grundfragen