Ein paar verständnisfragen

Dieses Thema im Forum "Member Talk & Offtopic" wurde erstellt von Jehova1, 02.11.2006.

  1. #1 Jehova1, 02.11.2006
    Jehova1

    Jehova1 Routinier

    Dabei seit:
    22.08.2006
    Beiträge:
    333
    Zustimmungen:
    0
    Ort:
    Wo die wilden Kerle wohnen
    Ich weiß zwar auf der Desktop-Ebene ganz gut bescheid und habe auch keinerlei Probleme, mich von hier aus nach oben zu arbeiten, jedoch mangelt es bisher noch sehr an Wissen über die darunter liegenden Ebenen. Deshalb mache ich diesen Thread auf und hoffe, dass sich irgendein erhabener Geek dazu erbarmt mir meine Fragen zu beantworten. Sollte irgend sonst jemand ähnliche Fragen haben darf er diese gerne auch hier hinein schreiben... Also
    1. Was ist ein Kernel?? Dass so ein ding der Grundstein eines OS ist ist mir schon klar, aber bis jetzt stelle ich mir das vor wie nen Haufen Dateien und Verzeichnisse!? Wie ist so ein Teil aufgebaut und was muss da drin sein?
    2. Was ist mit Binär-Dateien? Logisch wäre für mich, dass ich wenn ich eine binäre Datei mit einem Texteditor öffne dann lauter einsen und nullen zu sehen bekomme. Ist aber nicht so!? Warum sagt mir das teil dann nicht einfach, dass ich das nicht als textfile öffnen kann, sondern zeigt mir lauter sonderzeichen?
      Sind Bilddateien etwa auch binär?
    3. Kann man aus einem compilierten Code nachvollziehen, was er bewirkt ohne ihn auszuführen? Kann man erkennen, in welcher Sprache der Quelltext geschrieben wurde?
    4. Ist flash compiliert? oder binär? oder beides? Und wenn ja warum brauch es dann einen Interpertor?
    Villeicht kommen später noch mehr Fragen.:think:
     
  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. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    1. http://linuxger.irc-land.de/index.php/Kernel <- einfach erklärt
    2. Ja, viele Bilder sind auch Binär-Dateien. Allgemein werden Dateien als Binärdateien bezeichnet, wenn sie "nicht von Menschen lesbare" Inhalte enthalten. Sogenannte Binärdateien werden grundsätzlich von Maschinen erstellt/generiert.
    3. Ja, mit einem Hexeditor kann man teilweise ermitteln, was in einem compilierten Code eingebracht ist, aber eben nur teilweise. Ausserdem kann man bei den meisten kompilierten Programmen herausbekommen, gegen welche Bibliotheken sie gelinkt sind und daraus Rückschlüsse auf die verwendete Sprache ziehen. Einige Sprachen hinterlassen auch eindeutige Kennzeichen in den kompilierten Programmen (meist Sprachen, die Bytecode verwenden, wie z.B. Java).
    4. Ja, Flash ist kompiliert und braucht keinen Interpreter, sondern einen Viewer, der den Output realisiert.
     
  4. #3 Mµ*e^13.5_?¿, 02.11.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Ich versuche es mal nach bestem Wissen zu beantworten.
    Also ich stelle mir den Kernel als einen grossen ausführbaren Klops im Hauptspeicher vor.
    Wenn ich als armes kleines Programm was von dem Kernel will (er soll mir zum Beispiel eine Datei öffnen), dann muss ich einen syscall machen und der Kernel öffnet mir dann diese Datei. Der Kernel muss also bestimmte Funktionen für die Programme bereitstellen. Nomalerweise benutzt man die aber nicht unmittelbar, sondern zum Beispiel über die libc.
    Ausserdem muss der Kernel mit Treibern eine schnittstelle zur Hardware bereitstellen, einmal weil sich sonst das Sicherheitskonzept nicht durchsetzen liesse (wenn z.B. ein Programm direkt auf die Festplatte zugreifen könnte, ohne den Umweg übers Dateisystem machen zu müssen), und zweites, damit nicht jedes Programm seinen eigenen Treiber für alles mögliche braucht (unter DOS damals war es ja nicht unüblich direkt auf die Hardware zuzugreifen).
    Ausserdem kümmert sich der Kernel noch um so Aufgaben, wie die Verwaltung des Speichers, Entscheiden, welches Programm jetzt auf dem Prozessor läuft, und, dass nach dem Booten init gestartet wird.
    Zeichen kann man auch binär darstellen (z.B. a = 01100001), folglich kann man auch binäre Daten als Zeichen darstellen.
    Das der Text, den man da herausbekommt keinen Sinn ergibt äussert sich an den Sonderzeichen.
    Bilddateien sind auch Binär.
    Compilierter Code ist sehr schwierig zu verstehen, mit dem Sourcecode hat man es viel einfacher. Wenn man gut ist, kann man den Code aber einigermassen nachvollziehen, auch wenn man dafür etwas länger braucht.
    Ich denke man kann auch erkennen in welcher Sprache der Sourcecode geschrieben wurde, weil die meisten Compiler ein unterschiedliches Application Binary Interface haben. Ich könnte sowas allerdings nicht erkennen.
    Ich glaube schon.
    Und auch nullen und einsen kann man problemlos interpretieren, warum also nicht.
    Ausserdem ist Flash haupsächlich als Browserplugin genutzt. Ich fände es etwas risikoreich, wenn ich auf eine Internetseite gehe und dort eine Flashdatei ohne Einschränkung auf meinem Prozessor läuft (Java-Applets laufen ja auch in einer abgeschirmten Umgebung), ausserdem wäre Flash dann nicht mehr systemunabhängig. Flash läuft ja z.B. auch auf den alten ppc-macs, obwohl die eine ganz andere Prozessorachitektur haben.
     
  5. #4 Jehova1, 02.11.2006
    Zuletzt bearbeitet: 02.11.2006
    Jehova1

    Jehova1 Routinier

    Dabei seit:
    22.08.2006
    Beiträge:
    333
    Zustimmungen:
    0
    Ort:
    Wo die wilden Kerle wohnen
    Danke für die schnellen Antworten, manche Sachen werfen jedoch noch mehr fragen auf:
    1. - Verstanden
    2. Kompiliert == Binär ? immer? Und warum sind bilder denn Kompiliert? Wenn ich ein Bildformat erfinden sollte würde ich in eine Textdatei sowas wie ffcc00,ffffff,00ff00,342f3a schreiben und das für jeden pixel. Sind kompilierte Dateien zwangsläufig kleiner? Logisch wäre es ja, wenn das Format mit mehr Zeichen kleiner würde...
    3. Und warum stellt ein Hex-Editor binäre Dateien ausgerechnet in hexa-dezimalen da, nicht in einsen und nullen?
    4.
    Für mich waren Interpreter immer eine art echtzeit-compiler!? Wieso sollte man aber bereits compilierten Code nochmals interpretieren müssen?
    Was bedeutet das schon wieder?

    Und falls ihr mit meinen Fragen noch nicht genug zu tun habt liefere ich noch gleich Nachschub:

    5. Ein Bekannter erzählte mir einmal, Linux ginge viel "sanfter" mit Festplatten um und würde viel seltener als Windows die Festplatte beschreiben. ?? Wenn ich eine Datei bearbeite und speichere ist das doch ein Festplattenzugriff. Wie kann ein solcher Vorgang dann Festplatten-schonend durchgeführt werden?
    ---
     
  6. caba

    caba GESPERRT!

    Dabei seit:
    13.08.2002
    Beiträge:
    351
    Zustimmungen:
    0
    Gab durchaus schonmal studien darüber, das Notebook Akkus unter Linux ein bisschen länger laufen (Paar Minuten) als unter Windows, da Linux weniger auf die Festplatte zugreift. Allerdings war das vor 6-7 Jahren. Wie das Heute ist, keine ahnung, ehrlich gesagt. Aber das Linux ein sehr gutes Speichermanagment hat ist klar.
    Musst mal ein bisschen Googlen.

    Ob Interpreter Code (wie z.b. perl, php etc.) kompiliert werden oder nur Interpretiert oder doch ein bisschen kompiliert ist heute noch bestandteil tiefer Religiöser Diskussionen....

    Naja, ein Viewer ist wie z.b. Dein Programm mit dem du Bilder anschaust.
    Das selbe hast du bei Flash auch.
     
  7. #6 Mµ*e^13.5_?¿, 02.11.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Nein, Binär muss nicht immmer Kompiliert bedeuten, kompiliert bedeutet eigentlich nur, dass es sich um etwas handelt, das von einem Kompiler erzeugt wurde.
    Dein Bildformat wäre ziemlich ineffektiv.
    Ein zeichen verbaucht ein Byte, das sind 8 Bit, ein Pixel verbraucht also 48 Bit.
    Da du dich auf die Zeichen 0 bis f beschränkst kannst du in diesen 48 Bit aber maximal 16^8 Zustände speichern.
    Würdest du aber sämtliche Bits ausnutzen könntest du in den gleichen 48 Bit 2^48 Zustände speichern, bzw. du bräuchtest weniger Bits um die gleiche Menge Zustände zu speichern, ergo hast du Speicherplatz vergeudet mit deinem Format.
    Ein hex-Editor zeichnet sich nunmal dadürch aus, dass er die Daten hexa-dezimal anzeigt, was soll man sonst bei dem Namen erwarten?
    Kompilieren muss nicht immer bedeuten, dass man ein Programm in ein Format bringt, dass vom Prozessor ausgeführt wird, es kann auch bedeuten, dass man es einfach in ein anderes Format bringt.
    Bei Java ist es auch so. Man kompiliert den Sourcecode zu class-files und die werden dann in der java-vm ausgeführt (und dieses Programm kann man mit einem Interpreter vergleichen, wenn man mal so Sachen wie den JIT ausser acht lässt).
    Vorteile davon sind Plattformunabhängigkeit und trotzdem eine höhere Geschwindigkeit, als wenn der Sourcecode direkt interpretiert werden würde.
     
  8. #7 Jehova1, 03.11.2006
    Zuletzt bearbeitet: 03.11.2006
    Jehova1

    Jehova1 Routinier

    Dabei seit:
    22.08.2006
    Beiträge:
    333
    Zustimmungen:
    0
    Ort:
    Wo die wilden Kerle wohnen
    Danke, die Antworten waren sehr einleuchtend, vor allem die Erkenntnis dass kompiliert nicht unbedingt binär bedeuten muss war aufschlussreich.
    Ein hex-editor darf Dateien ruhig hexa-dezimal darstellen, ein Binär-Dateien-Betracher solltes diese jedoch imho auch binär darstellen... Warum denn ausgerechnet hexa-dezimal?
    Die Antwort auf Punkt 5 reicht mir noch nicht so ganz, vielleicht weiß ja jemand was genaueres darüber... (irgendwie bin ich zu doof zum googeln)
    6. Btw was für ne sprache kann denn so übergebene Parameter auswerten? "http://linuxger.irc-land.de/index.php/Kernel" - (Das ist doch ein Parameter, oder gibts da nen Ordner namens index.php ???

    mfg Jehova1
     
  9. #8 Mµ*e^13.5_?¿, 03.11.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    hexa-dezimal bietet einen guten Kompromiss.
    Wenn man Daten binär eingibt, dann dauert das ewig, es ist zu viel zum Tippen.
    Nimmt man dagegen einen "Texteditor" so kann man zwar mit einem Tastendruck gleich 8 Bit eingeben, allerdings sind auch Zeichen dabei, die nicht auf der Tastatur sind (Steuerzeichen oder kryptische Sonderzeichen), ist also auch unpraktisch.
    Mit Hexa-dezimal dagegen muss man auch nicht viel Tippen und hat einen überschaubaren Zeichensatz.
    Oktal ist auch nicht unüblich, da ists genauso.

    php.
     
  10. #9 Jehova1, 03.11.2006
    Jehova1

    Jehova1 Routinier

    Dabei seit:
    22.08.2006
    Beiträge:
    333
    Zustimmungen:
    0
    Ort:
    Wo die wilden Kerle wohnen
    Das mit dem Hex-Editor wäre somit auch geklärt aber
    ??? Normalerweise sehen per mehtod="get" übergebene Paramerter "datei.php?variable1=Wert1&variable2=Wert2" so aus... Kurzschreibweise? Andere mehtod? sowas hab ich noch nirgens gesehen -.-
    Danke für die Gedult
     
  11. #10 Mµ*e^13.5_?¿, 03.11.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Ich glaube es landet einfach alles im QUERY_STRING, ich bin mir aber auch nicht sicher.
    Warum schaust du nicht einfach im Sourcecode nach, wenn es dich interessiert, das MediaWiki ist ja Opensource.
     
  12. Vegeta

    Vegeta Tripel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    187
    Zustimmungen:
    0
    zu 5: "sanfter" würde ich nicht sagen,allerdings sind die Schreibzugriffe von Windows ntfs umfangreicher.
    Das liegt an der MFT und die hat nur Windows ntfs.

    Vegeta
     
  13. #12 Jehova1, 03.11.2006
    Jehova1

    Jehova1 Routinier

    Dabei seit:
    22.08.2006
    Beiträge:
    333
    Zustimmungen:
    0
    Ort:
    Wo die wilden Kerle wohnen
    Thx, MFT wäre eine Erklärung und somit dürfte 5 nun auch geklärt sein. Das mit php ist nicht so wirklich wichtig, wie gesagt nach oben kann ich mich ganz gut selber hocharbeiten. Damit dürfte vorerst alles geklärt sein.
     
  14. Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    nachgelegt

    Halt, anders herum.... Es gibt Binärdateien, einige davon wurden von einem Compiler erzeugt. Ich sage noch mal ein paar Worte dazu, obwohl sich kleinigkeiten wiederholen könnten...

    Genau genommen sind *alle* Dateien binär, auch Texte - der Computer kann kein "t" speichern oder ein "a", die werden nur so dargestellt, weil ein bestimmtes Programm, das du dazu benutzt, weiß, daß bestimmte Strukturen einen Text darstellen - und den zeigt es dann an. Das ist unter Windows nicht anders, öffne mal ein GIF-Bild in Notepad.

    Ein Bildbetrachter ist dementsprechend ein Programm, daß von der Struktur des GIF-Bildes erwartet, ein Bild zu sein und stellt es so dar. Texte kapiert es nicht, es kommt gar nicht so weit zu sehen, daß es ein Text ist, weil es Texte nicht kennt.

    Binärdateien müssen nicht ausgeführt werden oder ausführbar sein, sondern die können das *Objekt* sein, das von einem Programm geladen wird (Word-Dokument in Word oder Open Office, GIF-Bild im Betrachter..)

    "pile" ist engl. -> Stapel, Haufen. "compile" heißt "aufstellen, aufhäufen" oder sowas in der Art. "Kompilieren" ist ein ganz bestimmter Vorgang, nämlich der, Sourcecode in eine maschinenlesbare Form zu überführen, so daß sie Anweisungen enthält, die die Maschine ausführt so, wie der Sourcecode des Menschen das verlangt hat. Binär-Dateien, die so entstanden sind, sind "kompiliert" - andere Binärdateien, die anders entstanden sind (Einscannen eines Fotos und speichern als Jpeg) sind binär, aber eben nicht kompiliert - sie waren ja auch nie Source-Code und mußten nicht aus solchem in ein binäres Format übersetzt werden.

    So erklärt sich auch deine Flash-Frage:
    Ein Programm erzeugt eine Flash-Animation und speichert diese. Das Ergebnis ist eine Binär-Datei. Aber die ist nicht ausführbar - wie auch, sie "weiß" ja nicht, auf welcher Hardware-Architektur und dort unter welchem Betriebssystem sie angeschaut werden soll.

    Nun muß man für alle Hardwareplattformen (PC, Mac, ...) und deren Betriebssysteme Programme schreiben (und kompilieren), die dann starten, die Animation laden und anzeigen können. Sonst müßtest du jede Animation in unterschiedlichen binären Formaten je nach Zielsystem erzeugen. So nur verschiedene Anzeigeprogramme (oder halt Plugins für weitere Programme wie Webbrowser) und alle können den Inhalt, die Flash-Animation, anzeigen.

    (Kompiliertes) binäres Programm -> (binäres) Objekt -> Aktion -> Ergebnis (z.B. Anzeige am Monitor)

    Du siehst also, daß ein Interpreter etwas ist, das selber ausführbar ist und dann ein Objekt "interpretiert" und damit was tut. Dieses Objekt kann auch binär sein (Flashplayer -> Animation), muß es aber nicht (Perl -> Perlscript, Browser -> Javascript). Am Ende gibt der Interpreter der Maschine wieder binäre Anweisungen, die er selber aus seinem Objekt abgeleitet hat ("Interpretation des Objektes" - ob dieses nun ein Text war oder was anderes).

    Sorry, daß ich nach dem langen Thread dazu nochmal ein so langes Posting nach lege, aber ich war mir nicht sicher, ob das deutlich geworden war und der (scheinbare) Widerspruch sich aufgelöst hat...
     
  15. Anzeige

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

    dmaphy Routinier

    Dabei seit:
    16.04.2004
    Beiträge:
    482
    Zustimmungen:
    0
    Ort:
    Hamburg
    Code:
    http://linuxger.irc-land.de/index.php/Kernel
    
    Es gibt ein Modul namens "mod_rewrite" für den Apache Webserver,
    das wandelt die Information vorher erst wieder in eine "index.php?view=Kernel" oder sowas aus, und das kann PHP ja dann verarbeiten.

    http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
     
  17. caba

    caba GESPERRT!

    Dabei seit:
    13.08.2002
    Beiträge:
    351
    Zustimmungen:
    0
    dmaphy
    genau so ist das....
     
Thema:

Ein paar verständnisfragen

Die Seite wird geladen...

Ein paar verständnisfragen - Ähnliche Themen

  1. Sicherung der Systempartition inkl. Bootloader + ein paar Verständnisfragen

    Sicherung der Systempartition inkl. Bootloader + ein paar Verständnisfragen: Hallo, ich habe 2 Mediacenter-PC im Wohn- und Schlafzimmer in denen jeweils Ubuntu auf einer SSD installiert wurde. Einer läuft mit einem Bios,...
  2. Ein paar Verständnisfragen zu Gentoo

    Ein paar Verständnisfragen zu Gentoo: Hallo :) So, ich hab gestern Gentoo nun zum dritten mal installiert. Nicht weil ich zu blöd bin, sondern weil mir am Samstag die Festplatte...
  3. LUKS Verschlüsselung ein paar Fragen - entschlüsseln beim Boot ohne Passwortabfrage

    LUKS Verschlüsselung ein paar Fragen - entschlüsseln beim Boot ohne Passwortabfrage: Ich habe mich schon hier und da belesen, sehe aber noch nicht so richtig durch. Mein System ist ein aktuelles CentOS 6.2 mit 3 mdraid...
  4. Proxy einrichten, ein paar Fragen

    Proxy einrichten, ein paar Fragen: Hi. Ich möchte einen Caching Proxy einrichten, der auch das "Accountig" übernimmt. Am liebsten wäre mir, wenn es ein transparenter Proxy mit...
  5. Ein paar Fragen zu Linux Mint

    Ein paar Fragen zu Linux Mint: Hallo, ich würde gerne folgendes erfahren. Beinhaltet das Setup von Linux Mint Debian LVM und CryptFS? Falls ja, gilt das auch für die Linux...