AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Einfache VPN Verbindung

Ein Thema von RedShakal · begonnen am 3. Apr 2011 · letzter Beitrag vom 6. Apr 2011
 
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#12

AW: Einfache VPN Verbindung

  Alt 5. Apr 2011, 06:51
Also irgendwie hast du mich missverstanden oder ich habe es nicht genau genug erklärt was ich meine.
Ich nehme als Beispiel WinSock mit den handlebasierten Funktionen (connect, listen, bind, socket, usw.).
Eine Anwendung, die diese Funktionen aufruft landet in den DLLs des Betriebssystem.
Ja klar es gibt Möglichkeiten um Hooks oder LSPs in WinSock einzuschieben, aber das ist recht aufwendig.
Jetzt stelle man sich vor, WinSock würde durch ein Interface ersetzt werden:
Delphi-Quellcode:
IWinSock2=Interface(IUnknown)
['xxxx-....xxxx']
  function connect(...);
  function listen(...);
  ....
end;
Die Anwendung bekommt schon beim Start einen Interfacezeiger übergeben.
Anstatt die WinSock-DLL zuladen, wird einfach nur dieses Interface benützt (vereinfacht, wir brauchen mehrere Interfaces).
Die Anwendung funktioniert genau gleich wie vorher, nur mit dem Unterschied, dass das Betriebssystem seine
API-Dienste anbietet anstatt dass die Anwendung festgelegte APIs aufruft.
siehe: Inversion of Control.
Jetzt kommt eine weitere Host-Anwendung, die genau das Interface implementiert und alle Aufrufe zunächst einmal 1:1 an das Interface, das sie seinerseits bekommen hat weiterreicht.
Würde nun diese Host-Anwendung eine andere Anwendung starten, dann würde sie sämtliche WinSock-Aufrufe mitbekommen.
Jetzt wäre es ein Leichtes, wenn die Host-Anwendung alle Netzwerkaufrufe tunneln würde.
Somit wurde die WinSock-API virtualisiert, weil die ursprüngliche Anwendung gar nicht merkt, dass seine Aufrufe abgefangen und verändert werden.

Dieses Prinzip könnte man auch auf viele andere APIs anwenden und so viele APIs des Betriebssystem virtualisieren.
So könnte man z.B. die API für die serielle Schnittstelle über ein Netzwerk umleiten.
Dinge, die bisher nur über Systemtreiber möglich sind, könnten so dem Anwendungsprogrammierer zugänglich werden.
Oder man denke nur an Softwaretests und die Möglichkeiten einfach so Mock-Objekte für Windows-API-Aufrufe zu erstellen.

Würde es dieses utopische Betriebssystem geben, dann wäre es einfach, alles mögliche umzuleiten und zu verändern.
Der Trend geht ganz klar in Richtung Virtualisierung und so darf ruhig ein bisschen darüber nachdenken was denn wäre, wenn alle APIs virtuell wären.
(und ohne virtuelle Pflänzchen gleich argumentativ niederzuknüppeln)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz