segments

___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ qstnhdr ___ Segmente innerhalb eines ausführbaren C-Programms ___ tag123memorymanagement ___ Prozess des dynamischen Zuweisens und Freigebens von Teilen des physischen Speichers, um auf Programmanforderungen mit, wenn möglich, Fairness und ohne Verhungern unter den Anforderern zu antworten. ___ qstntxt ___

Ich habe über Abschnitte und Segmente gelesen. Anscheinend könnten Sie die Zuordnung zwischen Abschnitten und Segmenten wie folgt auflisten.

%Vor%

Meine Fragen,

  1. Ich konnte nicht verstehen, was die Header des Programms bedeuten. Wie hängen sie mit Segmenten zusammen?
  2. Abschnitt zu Segment-Zuordnung ist klar. Aber könnte jemand es benennen? Ich sehe nur Zahlen. Ich identifizierte den Code seg (03), Daten seg (02) und Stack (07).
___ tag123linux ___ LINUX FRAGEN MÜSSEN PROGRAMMIEREN VERWANDT SEIN. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf das Programmieren mit Linux-APIs oder das Linux-spezifische Verhalten bezieht, nicht nur, weil Sie Ihren Code unter Linux ausführen. Wenn Sie Linux-Unterstützung benötigen, können Sie https://unix.stackexchange.com oder https://askubuntu.com ausprobieren ___ tag123segmente ___ hilf uns dieses Wiki zu bearbeiten ___ tag123memorymapping ___ Eine Technik, bei der Computer-Peripheriegeräte angesprochen werden können, als ob sie Teil des Hauptspeichers des Computers wären ___ answer11885424 ___

Programmkopfzeilen in einer ELF-Binärdatei beschreiben, wie die Binärdatei ausgeführt werden soll. Die interessanten Teile sind die LOAD-Header, die einen Teil der Binärdatei an verschiedene Stellen im Speicher laden. Es könnte eine fast beliebige Anzahl von LOAD-Headern in einer Binärdatei geben, aber normalerweise stellt der Linker alles, was nur lesbar und ausführbar ist, in eins und alles liest / schreibt in ein anderes. Es gibt Betriebssysteme, die schreibgeschützte Daten LOAD-Header, Lese-Schreib-Daten und schreibgeschützten ausführbaren Code für etwas erhöhte Sicherheit haben.

Segmente hier bedeuten nur Teile der Binärdatei, die an verschiedenen Stellen im Speicher geladen sind. Also im Grunde die verschiedenen Lade-Header.

In Sections werden die Daten während der Verknüpfung organisiert. Aus verschiedenen Gründen möchten Sie eine bessere Granularität haben, um Dinge zu organisieren, als nur Daten / Code. Einige Daten sind schreibgeschützt, in Ihrem Beispiel ist sie ".rodata". Der Code befindet sich in ".text", initialisierte Daten befinden sich in ".data", während Daten in Variablen, die beim Programmstart auf Null gesetzt werden, in ".bss" sind.

Die "Abschnitt zu Segment-Zuordnung" sagt Ihnen, welche Abschnitte in welchen Segmenten sind (verschiedene LOAD-Header). So befinden sich ".text" und ".rodata" im ersten LOAD-Header (der dritte Programmheader) und ".data" befindet sich im zweiten LOAD-Header (vierter Programmheader).

Der Stack ist etwas, das Ihnen das Betriebssystem bei der Ausführung gibt, und es wird nicht von einer ELF-Binärdatei beschrieben.

    
___ answer11888810 ___

Um die Ausgabe von %code% zu verstehen, hilft es Ihnen, das Format einer %code% -Datei zu verstehen. Bitte lesen Sie dieses Dokument

Soweit zu verstehen, wie man die Ausgabe von %code% interpretiert, verlinke diesen Link kann hilfreich sein.

Was Ihre Frage 2 betrifft, beschreibt diesen Link die Segmente. Suchen Sie in diesem Dokument nach "Verschiedene Abschnitte enthalten Programm- und Steuerinformationen:", um den Bereich zu finden, in dem die Segmentnamen beschrieben werden.

Dieses Dokument beschreibt die Segmente wie folgt:

Verschiedene Abschnitte enthalten Programm- und Steuerinformationen:

%Vor%     
___
3
Antworten

Segmentiere eine Liste in Python

Ich suche nach einer Python-eingebauten Funktion (oder Mechanismus), um eine Liste in erforderliche Segmentlängen zu segmentieren (ohne die Eingabeliste zu mutieren). Hier ist der Code, den ich bereits habe: %Vor%     
02.08.2009, 12:14
2
Antworten

Segmente innerhalb eines ausführbaren C-Programms

Ich habe über Abschnitte und Segmente gelesen. Anscheinend könnten Sie die Zuordnung zwischen Abschnitten und Segmenten wie folgt auflisten. %Vor% Meine Fragen, Ich konnte nicht verstehen, was die Header des Programms bedeuten. Wie hänge...
09.08.2012, 13:33