Ich kann natürlich "/bin/sh" in den Puffer auf dem Stack schreiben, aber leider ist die Speicheradresse jedes Mal anders und ich kenne sie vorher nicht.

Welche Adresse ist jedes mal anders?

Du könntest vielleicht '"/bin/sh" auf dem Stack ablegen und kennst die Position zum Basepointer, sodaß Du mit dessen Hilfe eine Adresse konstruieren kannst?

...zur Antwort

Es ist nicht so, daß eine Allokation zwingend zu einem OOM führt, die Lage ist deutlich komplexer. Der OOM-Killer wird, wenn es notwendig erscheint, einen oder mehrere Prozesse auf Basis des oom score killen.

Hier mal ein Überblick:

https://www.kernel.org/doc/gorman/html/understand/understand016.html

P.S.: Du solltest natürlich schauen,, daß Du entsprechende Doku für die heutige Situation findest, insbesondere wie der oom score genutzt und berechnet wird.

...zur Antwort
Wie bekomme ich es hin das eine Python Datei Automatisch gestartet wird auf dem Raspberry Pi5?

Ich habe Raspberry PiOS 64-Bit und versuche schon lange wie ich meine Python Datei "Autostarten" kann. Das Script schaut in einem Loop nach MQTT Nachrichten und führt befehle aus, wenn eine Bestimmte Nachricht eintrifft. Daher braucht es ja auch Internet zugriff usw. .

Ich habe schon vieles versucht wie "crontab -e" und eine Zeile mit "@reboot python3 /home/user/Openhab_Mqttv2.py &" hinzugefügt hat aber nicht geklappt und jetzt sitze ich daran es mit "systemd" zu probieren. Jedoch klappt es auch nicht und ich kriege nur Fehlermeldungen. Ich verstehe auch nicht ganz wie das "systemd" funktioniert. Außer dass ich eine ".service" Datei in "/etc/systemd/system" brauche damit etwas ausgeführt wird.

sudo nano /etc/systemd/system/Openhab_Mqttv2_Autostart.service

[Unit]
Description=Openhab Mqtt working  Autostart
After=network.target


[Service]
TimeoutStartSec=2min
ExecStart=/home/richard/Openhab_Mqttv2.py
Restart=always


[Install]
WantedBy=multi-user.target

Status:

x@raspberrypi:~ $ systemctl status Openhab_Mqttv2_Autostart.service
× Openhab_Mqttv2_Autostart.service - Openhab Mqtt working  Autostart
     Loaded: loaded (/etc/systemd/system/Openhab_Mqttv2_Autostart.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Tue 2024-04-02 23:51:00 CEST; 5s ago
   Duration: 1ms
    Process: 75239 ExecStart=/home/richard/Openhab_Mqttv2.py (code=exited, status=203/EXEC)
   Main PID: 75239 (code=exited, status=203/EXEC)
        CPU: 1ms


Apr 02 23:51:00 raspberrypi systemd[1]: Openhab_Mqttv2_Autostart.service: Scheduled restart job, restart counter is at 5.
Apr 02 23:51:00 raspberrypi systemd[1]: Stopped Openhab_Mqttv2_Autostart.service - Openhab Mqtt working  Autostart.
Apr 02 23:51:00 raspberrypi systemd[1]: Openhab_Mqttv2_Autostart.service: Start request repeated too quickly.
Apr 02 23:51:00 raspberrypi systemd[1]: Openhab_Mqttv2_Autostart.service: Failed with result 'exit-code'.
Apr 02 23:51:00 raspberrypi systemd[1]: Failed to start Openhab_Mqttv2_Autostart.service - Openhab Mqtt working  Autostart. 

journalctl:

x@raspberrypi:~ $ sudo journalctl -u Openhab_Mqttv2_Autostart.service
Apr 02 21:49:44 raspberrypi systemd[1]: Started Openhab_Mqttv2_Autostart.service - Mein Service.
Apr 02 21:49:45 raspberrypi python3[958]: Traceback (most recent call last):
Apr 02 21:49:45 raspberrypi python3[958]:   File "/home/richard/Openhab_Mqttv2.py", line 417, in <module>
Apr 02 21:49:45 raspberrypi python3[958]:     client.connect( "192.168.0.182", 1883, 60)
Apr 02 21:49:45 raspberrypi python3[958]:   File "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 914, in connect
Apr 02 21:49:45 raspberrypi python3[958]:     return self.reconnect()
Apr 02 21:49:45 raspberrypi python3[958]:            ^^^^^^^^^^^^^^^^
Apr 02 21:49:45 raspberrypi python3[958]:   File "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1044, in reconnect
Apr 02 21:49:45 raspberrypi python3[958]:     sock = self._create_socket_connection()
Apr 02 21:49:45 raspberrypi python3[958]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 02 21:49:45 raspberrypi python3[958]:   File "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
Apr 02 21:49:45 raspberrypi python3[958]:     return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
Apr 02 21:49:45 raspberrypi python3[958]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 02 21:49:45 raspberrypi python3[958]:   File "/usr/lib/python3.11/socket.py", line 851, in create_connection
Apr 02 21:49:45 raspberrypi python3[958]:     raise exceptions[0]
Apr 02 21:49:45 raspberrypi python3[958]:   File "/usr/lib/python3.11/socket.py", line 836, in create_connection
Apr 02 21:49:45 raspberrypi python3[958]:     sock.connect(sa)
Apr 02 21:49:45 raspberrypi python3[958]: OSError: [Errno 101] Network is unreachable
Apr 02 21:49:45 raspberrypi systemd[1]: Openhab_Mqttv2_Autostart.service: Main process exited, code=exited, status=1/FAILURE
Apr 02 21:49:45 raspberrypi systemd[1]: Openhab_Mqttv2_Autostart.service: Failed with result 'exit-code'.
Apr 02 21:49:45 raspberrypi systemd[1]: Openhab_Mqttv2_Autostart.service: Scheduled restart job, restart counter is at 1.

Was genau kann ich an dem "/etc/systemd/system/Openhab_Mqttv2_Autostart.service" File ändern damit es endlich klappt, dass die Python Datei im Loop läuft und was genau habe ich falsch gemacht?

Mit ChatGPT versucht und es hat mir für die ".service" Datei gesagt, dass ich auch "/usr/bin/python3" zwischen "ExecStart=" und "/home" hinzufügen sollte. Habe es versucht und in der Fehlermeldung steht drin, dass man nicht mehr als einen setting in "ExecStart=" rein machen darf und auch mehrere "ExecStart=" gehen auch nicht.

...zur Frage
Mit ChatGPT versucht und es hat mir für die " .service" Datei gesagt, dass ich auch " /usr/bin/python3" zwischen " ExecStart=" und " /home" hinzufügen sollte. Habe es versucht und in der Fehlermeldung steht drin, dass man nicht mehr als einen setting in " ExecStart=" rein machen darf und auch mehrere " ExecStart=" gehen auch nicht.

Ist Deine .py denn ausführbar und hat ne SheBang? Dann sollte die Angabe des Pythoninterpreters nicht nötig sein.

Wenn Du es aber doch mti Interpreter starten möchtest, dann wäre die Dokumentation die erste Anlaufstelle, aber im Grunde sollte es ein:

ExecStart=/usr/bin/python3 /home/richard/Openhab_Mqttv2.py

eigentlich tun.

Nochmal direkt hier, da ich zunächst nicht drauf geachtet hatte:

#After=network.target #nicht das hier
After=network-online.target

network-online stellt typischerweise sicher, daß Kommunikation mit der Außenwelt möglich ist, während ersteres nur dafür sorgt, daß zumindest der IP-Stack aktiviert wurde und ggf. die entsprechendne Module geladen sind.

Alternativ könntest (und solltest) Du Dein Skript reparieren, denn sowas wie daemons sollten robust ggü. entsprechenden Fehlern sein, insbesondere falls der Zustand nur temporär ist.

...zur Antwort
Die Stromwandler funktionieren anders z.B. Hallfeldmessung

Da wir uns im DC-Abschnitt befinden wäre es wegen des fehlenden Wechselfeldes gerade kein Stromwandler (a la Stromzange), sondern eben das Pendant für DC-Spannungen (Ob nun Hall- oder Kompensationstyp sei mal egal).

Ich habe die zweite Option gewählt, da ich dem Macher des Videos keine Unkenntnis unterstellen will, sondern er es vielleicht schlichtweg der Einfachheit halber so genannt hat, weil es eben funktional ähnlich ist. (Oder halt ein freudscher Versprecher)

Kleiner NAchtrag/Korrektur, anscheinend nennt man die Gleichspannungstypen der Einfachheit heute auch Stromwandler, auch wenn das Meßprinzip abweicht.

...zur Antwort

Es gibt zweihäusige Pflanzen, d.h. eine Pflanze hat ein Geschlecht und Du brauchst natürlich beide Geschlechter, damit es zur Befruchtung kommen kann.

Es gibt aber auch Pflanzen, die trotz beider Geschlechter selbststeril sind, oder annähernd selbststeril. Dann braucht es je nach Pflanze eine andere Sorte, oder wahlweise eine andere Sorte oder andere Art (mit ausreichendem genetischen Verwandschaftsgrad), damit die Befruchtung klappt bzw. eine deutlich bessere Befruchtungsrate entsteht.

Bezüglich des Erhaltes - eine gewisse genetische Distanz verhindert Inzucht und Degeneration, es kann für den Erhalt also durchaus sinnvoll sein, wenn generativ ausreichend starke Mutation durch Kreuzung stattfindet und so neue Abkömmlinge, die besser mit den Rahmenbedingungen zurechtkommen.

Dazu kommt, daß viele unserer Kulturpflanzen (und -sorten) das Produkt von Jahrhunderten/-tausenden von forcierter Zucht durch den Menschen sind und das eben auch nicht immer spurlos bleibt ;-).

Es gibt tatsächlich auch parthenokarpe Exemplare.

...zur Antwort

Vergleiche:

rm erzeugt eine Liste von zu löschenden Objekten und führt dann für jedes Objekt ein unlink() o.ä. aus.

WinSCP erzeugt eien Liste der zu löschenden Objekte, muß dann für jedes Objekt auf Protokollebene ein Lösch-Kommando übermitteln, der Server muß ein unlink() ausführen und den Status rückübermitteln, bevor WinSCP das nächste Objekt löschen kann. Man hat bei sFTP auf Kommandovarianten für multiple Objekte verzichtet (Siehe zum Vergleich mdelete, mget etc. bei ftp).

...zur Antwort

Im Zweifelsfall: Weil es eben genau so konfiguriert wurde.

Bei einem bekannten Hersteller ist ein SVI die virtuelle Schnittstelle eines VLANs, die mit der IP-Routing-Engine verbunden ist.

Wenn ich das gleich Pseudointerface aber mit der IP-Schnittstelle der Management CPU verbinde (die ja auch eine Routign Engine haben kann), dann hängt halt die Management Schnittstelle am SVI, ohne daß zwischen VLANS geroutet werden kann.

(Es gibt übrigens Hersteller, da kann sowohl der Switch-IC als auch die Management-CPU routen)

Und wenn ich ohnehin die gleiche Hardware (für L2/3) nutze (häufig der Fall), dann konfiguriere ich einfach fest, daß es ein VLAN für die Management-Schnittstelle gibt, verbinde das SVI mit der Routingengine und gebe eine statische Routingtabelle vor, sodaß die Management-CPU erreichbar ist.

Aber im Endeffekt hängt das von der konkreten Hard- und Softwarearchitektur ab.

...zur Antwort
# apache2ctl -t -D DUMP_MODULES

Taucht php_module auf?

Wenn nein, dann httpd neu starten, andernfalls schauen, ob auch ein SetHandler (et. al.) in der Config vorhanden ist.

...zur Antwort

https://de.wikipedia.org/wiki/Oberleitungsmast#Betonmaste

Hier finden sich einige Infos. Beton scheint der neue Standard zu sein.

Vielleicht noch eine Anmerkung, weil vielleicht nicht so offensichtlich: Beton ist verwindungssteifer. Das ist vor allem bei hohen Geschwindigkeiten von Belang, denn die Schwingung des Fahrdrahtes überträgt sich trotz gedämpften Auslegers. Und die Luftverwirbelungen übertragen sich auch auf den Mast - Da ist ein steiferer Mast einfach von Vorteil.

...zur Antwort

Wärme ist ausreichend vorhanden?

Eigentlich keimt Pinus Pinea relativ einfach. 2 Monate sind relativ lang, wenn ich so zurückdenke.

Der Samen darf halt nach Beginn der Keimung nicht trockenfallen, aber auch nicht faulen.

P.S.: Hast Du den Samen stratifiziert, bzw. war er stratifiziert? Pinus Pinea brauch etwa 1-2 Monate Kühlschrank (Mittelmeerwinter).

...zur Antwort
Wie erweitere ich einen Eintaktprozessor richtig?

Gehen wir davon aus, dass wir einen Eintaktprozessor haben. Nun soll der Eintaktprozessor so erweitert werden, dass er nach der Erweiterung auch einen neuen bestimmten Befehl ebenfalls ausführen kann. Dafür muss ich verstehen, wie all diese Komponenten zusammenhängen, um genau zu wissen, wo ich meinen neuen "Baustein" für den neuen Befehl hinzufügen kann.

Zum Beispiel kann dieser Eintaktprozessor die "add"-Operation ausführen, da er über Register-Dateien, einen Addierer, eine ALU, einen Multiplexer usw. verfügt. Da der Datenpfad für die "add"-Operation, die Operanden von den Registern zum Addierer leitet, das Ergebnis durch die ALU berechnet, und schließlich das Ergebnis in das Zielregister zurückführt...

Nun habe ich eine Beispiel-Aufgabe mit einer Lösung, bin mir aber unsicher, wie man zu dieser Lösung gelangt. Könnte mir jemand das erklären?

In dieser Aufgabe sollen Sie den dargestellten MIPS-Eintaktprozessor erweitern, sodass der neue Befehl Read Word Until Zero (rwuz) unterstützt wird. Der abgebildete Prozessor unterscheidet sich leicht von dem Ihnen bekannten Eintaktprozessor.
rwuz unterscheidet sich von anderen MIPS-Befehlen dadurch, dass er von dem Prozessor automatisch mehrfach ausgeführt werden soll, solange das gelesene Datenwort nicht null war.
rwuz soll ein Befehl im I-Format sein.
Für rwuz soll der Opcode 0x11 verwendet werden.
Der Direktoperand (immediate) soll zu dem rs-Register hinzuaddiert werden. Das Ergebnis dieser Operation soll im rt-Register gespeichert werden.
Das rt-Register soll gleichzeitig als Adresse für einen Lesezugriff auf den Datenspeicher verwendet werden.
Solange der gelesene Wert aus dem Speicher nicht null ist, soll der selbe rwuz-Befehl im nächsten Taktzyklus erneut ausgeführt werden (PC bleibt gleich). Falls der gelesene Datenwert null ist, soll die nächste Instruktion ausgeführt werden (PC um 4 erhöhen).
Das aus dem Speicher gelesene Datenwort soll nicht in einem Register abgelegt werden.
Tipp: Das Signal rZero zeigt an, ob das aus dem Speicher gelesene Datenwort null ist

Selbst wenn niemand in der Lage ist, mir dies genau zu erklären, kann mir jemand Quellen, Videos oder Bücher empfehlen, damit ich ein besseres Verständnis dafür entwickeln kann?

...zur Frage

Folgende Überlegung:

Die Spezifikation des neuen Befehls sagt, daß der PC über mehrere Takte konstant (0) bleiben muß und wenn eine 0 gelesen wird, um 4 erhöht wird. D.h. Du brauchst anstatt der fixen 4 an Stelle A etwas, das entweder die 4 oder eine 0 liefert, also einen MUX, der von dem entsprechenden Steuersignal angesteuert wird.....

Bzw. solltest Du merken:

Ich habe je nach Situation eine 4 oder eine 0, die auf den PC addiert wird, eine 4 für Alle ISNs außer der neuen, wenn die neue ISN ausgeführt wird je nach Situation 0 oder 4 in Abhängigkeit eines (weiteren) Steuersignals.

Also wirst Du einen MUX für die beiden Fälle der neuen ISN benötigen, der in Abhängigkeit des erreichens der 0 eine 4 ausgibt und mit einem weiteren MUX, der zwischen dieser ISN und allen ANDEREN (fixe 4) umschaltet.

Insofern kommen nur noch 3+4 in Frage, wobei nicht zu sehen ist, welche Aufgabe der Shifter hat (Wenn überhaupt könnte man mit diesen nach Bedarf eien 4 zu ner 0 shiften anstatt zu muxen - wäre aber auch ein wenig drüber).

----------

Unbesehens der konkreten Aufgabe (ist ja nicht Deine erste Frage), kannst Du mal nach Vorlesungsskripten zum Thema schauen (einen Link hast Du schon). Ferner würde ich mir mal anschauen, wie eine FSMD (Finite State Machine with Datapath) so aussieht. Diese ist quasi um die freie Programmierbarkeit beraubt, sodaß man sich erstmal besser die grundlegende Funktionsweise von Datenpfaden und deren Ansteuerung anschauen kann.

Der endliche Automat kodiert das feste Programm.

...zur Antwort

Der PC wird vom Leit- bzw. Steuerwerk verwaltet und von diesem manipuliert.

Überleg Dir einfach mal wie das aussehen würde, wenn das Steuerwerk für die Erhöhung des PC auf das Addiernetz der ALU zurückgreifen würde und welche Folgen das hätte.

...zur Antwort

ChatGPT arbeitet im Prinzip sogar zeichenorientiert. Man könnte natürlich die Generation abwarten und dann das Ergebnis aus einem Puffer einmalig übertragen.

Man hat sich für Wort als Einheit entschieden, das hat den Vorteil, daß die Wartezeiten bis zur Ausgabe nicht zu lang werden, man aber eben auch nicht für jedes Zeichen eine einzelne schwergewichtige Übertragung vornehmen muß.

Das sich das wie ein TTY anfühlt ist vielleicht ein willkommener Nebeneffekt.

...zur Antwort

Angelegt könnte definiert meinen, wenn also ein Speicherort allokiert wurde.

Freigegeben, wenn dieser Speicherort nicht mehr verfügbar ist.

Typisches BEispiel:

void f(){ int a;}

a wird auf dem Stack abgelegt/erzeugt, indem beim Einsprung der Stackpointer entsprechend gesetzt wird. Beim Rücksprung geht der BEreich des Stacks dann verloren.

...zur Antwort
Bundesstaat "Armed Forces Europe"

Das ist für die heimische Post in den USA, damit sie weiß, daß das Paket/die Sendung in die Transportlogistik des Militärs zu überstellen ist.

Die US-Basen hier sind Teil des normalen US-Postsystems, Sendungen zwischen Basen und dem Rest der USA gelten als inländische Post.

...zur Antwort

Neben den bereits gezeigten Möglichkeiten:

uptime|cut -d' ' -f2

Ferner könnte man direkt /proc/upotime auslesen und das gerade selbst umrechnen.

...zur Antwort
Meine Meinung dazu:

Magma als Fluid ist nicht so wirklich statisch. Will ich die Magmakammer eines aktiven Vulkans anboren und ggf. so zu einem vorzeitigen Ausbruch beitragen? Und was ist, wenn die Kammer sich verformt/verlagert?

Wir haben eine Alternative dazu, es nennt sich Geothermie und zeichnet sich dadurch aus, daß in entsprechenden Regionen eine ausreichend große Nähe zu Magma hergestellt wird, um die möglichen Ungünstigen Auswirkungen vorzugsweise zu vermeiden und doch ausreichend viel thermische Energie zu nutzen.

Bevor man also solche Stunts abzieht sollte man sich eher Gedanken machen, wie man die Erschließungskosten bei tiefer Goethermie deutlich senken kann.

...zur Antwort

Du wirst um eine aktuellere Version des Browsers nicht herumkommen, denn neben einem halbwegs aktuellen Stammzertifikatssatz braucht es vor allem halbwegs aktuelle TLS-Implementierungen.

...zur Antwort

Erdbeben entstehen am häufigsten an Plattenrändern und sonstigen Verwerfungszonen.

Bei Japan treffen halt eurasische, nordamerikanisch und phllippinische Platte zusammen.

...zur Antwort