• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Programm als anderer Benutzer, Drag & Drop funktioniert nicht

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Wie ich oben schon schrieb: Die Zwischenablage (Pasteboard) hat nur die Aufgabe, Daten zwischen Programmen desselben Users auszutauschen. Nicht zwischen unterschiedlichen Usern.
Der Pasteboard Server ist jeweils ein User-Prozeß, in dessen Speicher App1 von User A schreibt und aus dem App2 von demselben User A liest. Ein Datenaustausch zwischen User A und User B über den Pasteboard Server, wie pseudonym13 das wollte (Drag & Drop läuft auch über den pbs), ist nicht möglich, weil in dem Fall App1 von User A in den Speicher des Pasteboard Servers von User B schreiben müßte.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Aha, dann nenne mir doch mal den gemeinsamen Vateruser, den ich mit Apfeltalk teile.
__________________


Danke!
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Wie ich oben schon schrieb: Die Zwischenablage (Pasteboard) hat nur die Aufgabe, Daten zwischen Programmen desselben Users auszutauschen. Nicht zwischen unterschiedlichen Usern.
Der Pasteboard Server ist jeweils ein User-Prozeß, in dessen Speicher App1 von User A schreibt und aus dem App2 von demselben User A liest. Ein Datenaustausch zwischen User A und User B über den Pasteboard Server, wie pseudonym13 das wollte (Drag & Drop läuft auch über den pbs), ist nicht möglich, weil in dem Fall App1 von User A in den Speicher des Pasteboard Servers von User B schreiben müßte.

Boah, scheint doch schwierig zu sein. Du spricht von verschiedenen Speichern. Das ist zwar schon falsch, weil es um Datenaustausch, nicht um Speicheraustausch geht. Aber lassen wir dies mal unberücksichtigt.

Es gibt keinen Speicher des Users A und einen Speicher des Users B. Es gibt nur Speicher des Prozesses A und des Prozesses B. Und natürlich können Prozesse untereinander Daten austauschen. Und dazu müssen keinesfalls die Prozesse demselben User gehören. Schau mal auf den Bildschirm, von wem du die Daten gerade liest.

Daher ist die Unterscheidung nach Usern blödsinnig. Einen Sicherheitsaspekt kann ma allenfalls generell zwischen Prozessen sehen. Dann wäre aber bereits die Pasteboard-Kommunikation zwischen Prozessen "gefährlich". Ist sie aber nicht.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Doch, siehe mein erklärendes vorheriges Posting: http://www.apfeltalk.de/forum/p2690504.html

Das ist einfach falsch. Du meinst immer noch, dass zum Datenaustausch ein Speicheraustausch notwendig ist. Das ist nicht der Fall. Man kann Daten zwischen Prozessen, auch verschiedener User, transferieren, ohne auch nur einmal in fremden Speicher schreiben zu müssen. Das geht echt. Macht der Webserver von Apfeltalk ständig mit meinem Safari. Der schreibt nicht in den Speicher von Safari, echt nicht. Müsste auch im Hillegass stehen.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
... Und natürlich können Prozesse untereinander Daten austauschen. Und dazu müssen keinesfalls die Prozesse demselben User gehören. ...

Aber nicht über den pbs. Und pseudonym13 wollte Drag & Drop zwischen Prozessen verschiedener User machen. Und Drag & Drop läuft über den pbs.

Was Du immer mit Deinem Webserver hast? Client-Server-Kommunikation läuft nicht über den pbs. Thema verfehlt! Der pseudonym13 wollte Drag & Drop machen, keine Downloads.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Man kann Daten zwischen Prozessen, auch verschiedener User, transferieren, ohne auch nur einmal in fremden Speicher schreiben zu müssen. Das geht echt.
Das funktioniert bei euch Ferengi dann wohl durch so eine Art Quantenverschränkung auf Subraumebene? Oder durch pure Magie?
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Dann erkläre mir doch mal deine Theorie von der wundersamen Informationswanderung.
Wie funktioniert in deiner Fabelwelt denn die Interprozesskommunikation ohne diese Selbstverständlichkeit?

Prozess A hinterlegt (schreibend) $irgendwo die Daten. Prozess B holt die (lesend) dort ab. Zwischen A und B können beliebig viele Prozesse liegen, die es gleichtun.

Und da Speicher ohnehin auch zwischen den Prozessen desselben Users geschützt ist, tritt dieses Problem schon bei unterschiedlichen Prozessen desselben Users auf. Es spielt dabei nicht die geringste Rolle, ob die Prozesse demselben User gehören.

Eine Rolle spielt das bei IPC über Dateien, da Dateien Rechte für User, aber nicht für Prozesse kennen. Hier kann man unterscheiden, ob schreibender und lesender Prozess demselben User gehören, wenn man will. Braucht man aber auch nicht.

Also, aber wirklich zum letzten Male: Für den Datenaustausch über Hauptspeicher kommt es allein auf die Prozessgrenze, nicht auf die Usergrenze an. Da es aber bereits zwischen Prozessen funktioniert – und zwar völlig ungefährlich –, wäre eine Erweiterung auf User nicht gefährlich. Sie ist nur funktional unerwünscht.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Rasta, du hast gerade eine Pm von mir bekommen:

Wenn du diese Zeilen liest, habe ich gerade in deinen Speicher geschrieben.

ALL YOUR BASES BELONG TO ME!!!!9!!!!!!!!!!8!!!!!!!

Da kannste mal sehen, wie ich drauf bin: Da schreibe ich doch glatt in deinen Speicher.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Wenn der Datenaustausch per Drag & Drop, wie von pseudonym13 gewünscht, geschehen soll, spielt das eine Rolle.

Aber Du diskutierst lieber völlig am Thema vorbei.

Nein, weil Speicher nicht einem User gehört, sondern einem Prozess. Ebenso spielt es eine Rolle, ob Tante Käthe wieder Fußball spielen möchte.

Da aber offenkundig die Erläuterungen nicht bei dir ankommen (seltsamerweise aber meine Beiträge, da schreibe ich wohl in deinen Speicher), hat es keinen Sinn.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Prozess A hinterlegt (schreibend) $irgendwo die Daten.
Pling, in fremden Speicher geschrieben.

Prozess B holt die (lesend) dort ab.
Pling.
(Oh ja, auch jeder Lesezugriff erfordert zunächst mal Schreibzugriffe. Doof, dass das niemals ohne gehen kann, was?)

Zwischen A und B können beliebig viele Prozesse liegen, die es gleichtun.
Pling, pling, pling, pling, ...

Es spielt dabei nicht die geringste Rolle, ob die Prozesse demselben User gehören.
Die Unterscheidung zwischen Benutzern dient dann gleich wieder ... wozu?

Eine Rolle spielt das bei IPC über Dateien, da Dateien Rechte für User, aber nicht für Prozesse kennen.
Und es ist nicht so, dass ein jeder Prozess einem bestimmten Benutzer zugeordnet ist, nein?

Hier kann man unterscheiden, ob schreibender und lesender Prozess demselben User gehören, wenn man will. Braucht man aber auch nicht.
Fein. Du hast aber schon mitbekommen, dass die Zeiten von DOS vorbei sind, oder?

Also, aber wirklich zum letzten Male: Für den Datenaustausch über Hauptspeicher kommt es allein auf die Prozessgrenze, nicht auf die Usergrenze an. Da es aber bereits zwischen Prozessen funktioniert – und zwar völlig ungefährlich –, wäre eine Erweiterung auf User nicht gefährlich. Sie ist nur funktional unerwünscht.
Blafasel. *PLONK*
 

User 50673

Gast
Also wenn ich hier mal eingreifen darf und vielleicht helfen meine Erkenntnisse ja weiter. Herr Tanenbaum hat uns allen ja mal ein paar grundlegende Dinge verklickert:

  1. Ein Prozess benötigt Betriebsmittel (CPU, Speicher, Dateien..) und ist selbst ein Betriebsmittel, das vom OS verwaltet wird. (Erzeugung, Terminierung, Scheduling..)
  2. Prozesse sind gegeneinander abgeschottet. Jeder Prozess besitzt seine eigenen Betriebsmittel wie etwa den Adressraum. Allein das OS sorgt für die Abschottung.

Weiterhin einige Prozesseigenschaften, wodurch also ein Prozess beschrieben wird:

  1. Inhalt seines Stacks
  2. Seine globalen Daten (data section)
  3. Seine allozierten Betriebsmittel (Dateien..)

Wie können jetzt Daten zwischen den offensichtlich gegeneinander abgeschotteten Prozessen ausgetauscht werden?

  1. Über gemeinsame Variablen (gemeinsame Speicherbereiche)
  2. Über Nachrichtenaustausch (Message passing)

Wenn ich also die Diskussion richtig mitverfolgt habe, haben beide Argumentationsseiten recht. Allein die Synchronisierung des Austauschs der Daten übernimmt der Scheduler.

Was jedoch offensichtlich nicht korrekt ist, ist die Tatsache, dass ein Prozess A in den Speicher von Prozess B schreiben darf. Selbst wenn das der Fall sein sollte, ist das sicherlich nicht beabsichtigt.

Was den PBS selbst angeht kann ich leider nichts sagen, da ich die Funktionsweise nicht kenne.

Danke für die Aufmerksamkeit.


PS: Die Listen erheben keinen Anspruch auf Vollständigkeit.
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Pling, in fremden Speicher geschrieben.
Nö, in eigenen.


Pling.
(Oh ja, auch jeder Lesezugriff erfordert zunächst mal Schreibzugriffe. Doof, dass das niemals ohne gehen kann, was?)
Klar doch, wer lesen will, braucht Schreibrechte. Deshalb muss ich auch in deine Beiträge schreiben können, damit ich die lesen kann, nicht wahr?



Pling, pling, pling, pling, ...


Die Unterscheidung zwischen Benutzern dient dann gleich wieder ... wozu?


Und es ist nicht so, dass ein jeder Prozess einem bestimmten Benutzer zugeordnet ist, nein?


Fein. Du hast aber schon mitbekommen, dass die Zeiten von DOS vorbei sind, oder?


Blafasel. *PLONK*

Ich nehme mal an, dass Pling ist das Geräusch einer Kugel, die in deinem Kopf gegen die Innenwand schlägt, nicht wahr?
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Also wenn ich hier mal eingreifen darf und vielleicht helfen meine Erkenntnisse ja weiter. Herr Tanenbaum hat uns allen ja mal ein paar grundlegende Dinge verklickert:

  1. Ein Prozess benötigt Betriebsmittel (CPU, Speicher, Dateien..) und ist selbst ein Betriebsmittel, das vom OS verwaltet wird. (Erzeugung, Terminierung, Scheduling..)
  2. Prozesse sind gegeneinander abgeschottet. Jeder Prozess besitzt seine eigenen Betriebsmittel wie etwa den Adressraum. Allein das OS sorgt für die Abschottung.

Weiterhin einige Prozesseigenschaften, wodurch also ein Prozess beschrieben wird:

  1. Inhalt seines Stacks
  2. Seine globalen Daten (data section)
  3. Seine allozierten Betriebsmittel (Dateien..)

Wie können jetzt Daten zwischen den offensichtlich gegeneinander abgeschotteten Prozessen ausgetauscht werden?

  1. Über gemeinsame Variablen (gemeinsame Speicherbereiche)
  2. Über Nachrichtenaustausch (Message passing)

Wenn ich also die Diskussion richtig mitverfolgt habe, haben beide Argumentationsseiten recht. Allein die Synchronisierung des Austauschs der Daten übernimmt der Scheduler.

Was jedoch offensichtlich nicht korrekt ist, ist die Tatsache, dass ein Prozess A in den Speicher von Prozess B schreiben darf. Selbst wenn das der Fall sein sollte, ist das sicherlich nicht beabsichtigt.

Was den PBS selbst angeht kann ich leider nichts sagen, da ich die Funktionsweise nicht kenne.

Danke für die Aufmerksamkeit.


PS: Die Listen erheben keinen Anspruch auf Vollständigkeit.
Die tatsächliche Implementierung des PBS benötigt das nicht. Der schreibende Prozess stellt seine Daten in seinem Adressraum zur Verfügung. Der PBS holt die sich dann (lesend).

Der Zielprozess liest die Daten ohnehin nur.

Deshalb ist es auch möglich, dass zwischen Prozessen das Pasteboard funktioniert. Denn du sagst es ganz richtig: Der Adressraum ist an einen Prozess gebunden und nicht an einen Nutzer. Wem der Prozess gehört, ist daher erst einmal völlig gleichgültig. Die technische Hürde ist dieselbe wenn man Daten zwischen Prozessen desselben Nutzers transferiert oder wenn man Daten zwischen den Prozessen verschiedener Nutzer transferiert. Nie muss in fremden Speicher geschrieben werden.

+++

Es sei noch abschließend erwähnt, dass der Kernel logisch Message-Channels verwendet, die allerdings in der tatsächlichen Implementierung nichts anderes als gemeinsame Speicherbereiche sind. Das ist eine OS-X-tyspezifische Implementierung. War jedenfalls bis etwa .3 so.