BSD-Sockets für Windows?



  • Echt Spitzenklasse! Einfache Frage: Gibt es eine lib, die die Linux-BSD-Sockets in Windows bereit stellt auch außerhalb von Cygwin?

    Die Leute brauchen 5 Seiten um das zu kapieren und behaupten noch du seist der Idiot. Respekt, Herr Spieler, dass sie so eine Geduld und Ruhe an den Tag legen. 😃

    Mir ist sowas auch nicht bekannt, es scheint wohl jeder mit Cygwin zufrieden zu sein. Rein für ein paar inkompatible Netzwerkfunktionen ist das ziemlich fett, aber dir bleibt dann wohl nichts über, als Cygwin komplett zu nutzen, die Teile aus dem Cygwin Code zu extrahieren, oder selbst etwas zu implementieren.



  • Totaler Mist, er fragte nicht nach Linux-BSD-Sockets sondern nach allgeimein BSD-Sockets und die nutzt definitiv Windows auch und die sind auch sehr stark kompatibel untereinander. Mann muss nix besonderes machen um BSD-Sockets unter Windows zu nutzen.

    Dann wollte er unbedingt sowas wie cygwin aber ohne cygwin nutzen zu wollen, das wird schwer, was er nicht einsah.

    Die Möglichkeiten die er hat wurden ihm aufgezeigt und so langsam müsste ihm klar sein das es keine cut&paste Lösung dafür gibt, sprich er müsste programmieren können oder die cygwin.dll nutzen. Beides kann oder will er nich also is das Projekt gestorben.

    Der Typ is der Hammer, sowas habe ich noch nich gelesen.



  • Beste Unterhaltung! schrieb:

    Mir ist sowas auch nicht bekannt, es scheint wohl jeder mit Cygwin zufrieden zu sein. Rein für ein paar inkompatible Netzwerkfunktionen ist das ziemlich fett, aber dir bleibt dann wohl nichts über, als Cygwin komplett zu nutzen, die Teile aus dem Cygwin Code zu extrahieren, oder selbst etwas zu implementieren.

    Es ging eben nich nur um ein paar Netzwerkfunktionen du Nase.



  • iknowit schrieb:

    Warum liest du nicht einmal nach, was Cygwin genau ist: http://www.cygwin.com/ 🙄

    Dann wüsstest du, dass es sich bei Cygwin nicht um einen Emulator handelt, sondern um genau das, was du schon die ganze Zeit suchst. Einfach eine Library die POSIX für Windows wrapt.

    A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.

    # Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.

    Wenn du nun immer noch kein Cygwin willst, dann kannst du dir ja MKS für ein paar k€ kaufen 🙄.

    Wozu die Posix Wrappen unter Windows, wenn Windows schon die Posix im Kernel hat ?
    Vista/W7/W2k8/W2k3 -> Software Subsystem für Unix aktivieren und Tools runterladen von MS, da ist GCC, K/C und S5K Shell und XClient bei, sowie alle Shell Tools nach Posix Standart. Die olle OS2 Api schlummert da auch irgendwo noch rum.



  • Du Nase, und jeder soll sich dann die POSIX Erweiterung installieren der das nutzen will???

    Is doch derselbe Mist als wenn sich jeder Java, das neuste .NET oder ne Interpreter installieren muss um die Software zu nutzen. Ein User will runterladen anklicken fertig, alles andere is crap.



  • viel schlimmer ist dass das Subsystem for UNIX-based Applications nicht mehr weiterentwickelt wird.



  • --- schrieb:

    Du Nase, und jeder soll sich dann die POSIX Erweiterung installieren der das nutzen will???

    Is doch derselbe Mist als wenn sich jeder Java, das neuste .NET oder ne Interpreter installieren muss um die Software zu nutzen. Ein User will runterladen anklicken fertig, alles andere is crap.

    Du findest also eine Lösung wo mann erst Cygwin irgendwo runterladen dann installiert und dann auf die WIN 32 API Wrappert komfortabler und besser als unter Windowsprogramme den Klick bei Unix Subsystem zu machen und übernehmen zu drücken ? OK scheint da unterschiedliche Auffassungen zu geben von "einfach" und Funktionalität.

    Dot Net sollten eigentlich über Windowsupdates sich automatisch updaten sowie Java über Javaupdate.

    Aber ich wie vermutlich viele andere währen auch froh darüber, wenn mann nur ne exe ausliefern müßte und sich um gar nix kümmern müßte und das auf allen Plattformen läuft und das ohne eine Virtuelle Maschiene.

    @ MrCygwin
    Nicht mehr weiterentwickelt oder wird in künftigen Distris deaktiviert ?



  • Da kannst du einfach die Cygwin.dll mit liefern die sich dann entpackt oder statisch gelinkt ist oder sonst was. Dann bleibt es beim runterladen anklicken fertig. Wegen dem Unix tools da solltest du dich mal bei Wikipedia informieren auf jeden Fall ist es nicht gut auf ne Software zu setzen die keine Zukunft hat, du Nase.



  • --- schrieb:

    Da kannst du einfach die Cygwin.dll mit liefern die sich dann entpackt oder statisch gelinkt ist oder sonst was. Dann bleibt es beim runterladen anklicken fertig. Wegen dem Unix tools da solltest du dich mal bei Wikipedia informieren auf jeden Fall ist es nicht gut auf ne Software zu setzen die keine Zukunft hat, du Nase.

    Es ging ja hier in dem Fall darum das ein Programm was für UNIX entwickelt wurde unter Windows zu kompilieren und zum laufen zu bekommen ohne Änderungen vor zu nehmen.
    Und in dem Fall ist es mit Sicherheit einfacher das UNIX Subsystem zu aktivieren und zu nutzen als sich einen Wrapper incl. Ide zu installieren.

    Und bei dem Subsystem handelt es sich nicht um ein Tool oder Wrapper sondern um eine vollständige Posixapi im Kernel, Ring 0 und 3. Mann könnte sich jetzt mit Vermutungen aus dem Fenster lehnen und behaupten das unter der Win32 API sich eigentlich ein Unix befindet, so abwegig ist das nicht. Zumindest das Filesystem sieht da so aus : /dev/fs/c oder /dev/fs/d und noch andere Dinge die darauf hinn deuten.

    Und wenn das immer noch zu kompliziert ist, Virtual Box instalieren -> Unixoides System ( z.b. Linux, Sun, SystemV oder OpenBSD ) und da die Software kompilieren und nutzen.

    Das UNIX keine Zukunft hat glaub ich mal nicht so ganz ^^, das das UNIX Subsystem nicht weiterentwickelt wird ist nicht gleichbedeutend mit wird in zukünftigen Distributionen nicht mehr verfügbar sein. Wobei mir die INFO neu ist, das das nicht mehr weiterentwickelt wird.

    Zum Thema Software runterladen und anklicken, die IT Welt ist ja kein Selbstbedienungsladen.
    Finde das ja bewundernswert wenn Leute Wochenlang Arbeit und Zeit investieren um ihre Software als Opensource im Netz frei anbieten. Verstehen kann ich es allerdings nicht. Und von Software aus dem Esel halte ich mal gar nix.

    Eine Software sollte für die enstprechende Plattform kompiliert sein oder man nimmt Java oder .net. Software für Unix zu kompilieren und mit Wrapper für MS auszuliefern halte ich nicht gerade die saubere Lösung. Aber wie schon erwähnt handelt es sich hier nicht um fertige SOftware sondern um Quelltext der für ein andere Plattform als MS entwickelt wurde und kompiliert werden soll.



  • Man NES-Spieler mit unregistriertem Nick, da fällt mir nix mehr zu ein. Das tut schon körperlich weh, was du alles falsch verstehst geht auf keine Kuhhaut mehr, dich sollte man als Tester einsetzten, denn wenn du es kapierst, kapiert es jeder Andere auch. Du bist wirklich der DAU in Person.



  • http://de.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX

    und zum Thema wird nicht weiterentwickelt, laut Wiki wird es bald nicht mehr zum Download angeboten für Systeme wo es nicht Out of the Box verfügbar ist, siehe Link:

    Offizielle Versionen [Bearbeiten]
    Die aktuelle Version von SFU trägt die Nummer 3.5. Als Veröffentlichungsdatum wird der 21. September 2006 angegeben. Die aktuelle Version des SUA ist 6.0.

    Windows Server 2003 R2 enthält die meisten der SFU-Komponenten, insbesondere Microsoft Services for Network File System (NFS), Subsystem for UNIX-based Applications (Interix) und Identity Management for UNIX.[2]

    Windows Vista Enterprise und Ultimate enthalten ebenfalls Komponenten der Services for Unix.

    Microsoft hat nicht vor, weitere separat installierbare Versionen von SFU zu erstellen. Es soll aber bis 2009 zum freien Herunterladen verfügbar sein.[3] Allgemeine Kundenunterstützung soll bis 2011 gewährleistet sein, eine erweiterte Unterstützung bis 2014.[4] Das SUA hingegen wird voraussichtlich auch in künftigen Windows-Versionen verfügbar sein.

    Offizielle Microsoft-Bezeichnung alternativ (Interop Systems) unterstützte Betriebssysteme
    Services for Unix 3.5 Interix 3.5 Windows XP, Windows Server 2003 (jeweils nur 32-Bit-Version)
    Subsystem for UNIX-based Applications 5.2 Interix 5.2 Windows Server 2003 R2 (nur 64-Bit-Version)
    Subsystem for UNIX-based Applications 6.0 Interix 6.0 Windows Server 2008, Windows Vista (Enterprise und Ultimate)

    Von der aktuellen Version unterstützte Betriebssysteme [Bearbeiten]
    Microsoft Windows Services for UNIX kann auf den Windows-Varianten Server oder Professional installiert werden, eine Installation auf den Home-Varianten wird weder zur Verfügung gestellt noch unterstützt.

    Windows 2000 Server oder Professional mit Service Pack 3 oder neuer
    Windows XP Professional mit Service Pack 1 oder neuer
    Windows Server 2003 R2
    Windows Vista, Windows Server 2008: In Vista wurden die Microsoft Windows Services for UNIX umbenannt in „Subsystem for UNIX-based Applications“ und sind in den Varianten Enterprise und Ultimate enthalten.
    Nicht unterstützte Betriebssysteme [Bearbeiten]
    Windows Small Business Server 2003
    Windows XP (64-Bit-Version)
    Windows Server 2003 (64-Bit-Version vor R2)

    Und hier nochmal der Unterschied:

    welches im Gegensatz zu Cygwin unmittelbar auf dem NT-Kernel aufsetzt. Dadurch sind fork()/exec() erheblich schneller als bei Cygwin
    .
    .
    .
    Mehr als 350 Unix-Hilfsprogramme, wie vi, ksh, csh, ls, cat, awk, grep, kill
    Den GCC-3.3-Compiler, Include-Dateien und Bibliotheken (wobei die libc Microsoft-spezifisch ist)
    Einen cc-ähnlichen „Wrapper“ für die Kommandozeilen-Versionen der Compiler in Microsoft Visual Studio
    Den GNU Debugger
    NFS-Server und -Client
    Diverse X11-Hilfsprogramme und Bibliotheken
    Ein Programm, das, in Verbindung mit Microsofts Active Directory, eine NIS-Server-Funktion übernehmen kann
    Einige Windows- und Unix-Programme zur Synchronisierung von Kennwörtern und Zugriffsrechten



  • --- schrieb:

    Man NES-Spieler mit unregistriertem Nick, da fällt mir nix mehr zu ein. Das tut schon körperlich weh, was du alles falsch verstehst geht auf keine Kuhhaut mehr, dich sollte man als Tester einsetzten, denn wenn du es kapierst, kapiert es jeder Andere auch. Du bist wirklich der DAU in Person.

    Ich glaub du verwechselst da was, NES-Spieler ist ein registrierter Nutzer, welcher nix mit mir zu tun hat.

    Im gesamten scheint er aber das gleiche Niveau wie du zu haben^^.

    Nu wird mir das aber echt zu blöd, eine Idee zu Lösung einzubringen und dann noch von dritten angeflammed zu werden.......



  • Das SUA hingegen wird voraussichtlich auch in künftigen Windows-Versionen verfügbar sein.

    Es ist also nicht sicher das es verfügbar sein wird, du Nase.



  • Hallo ihr Nasen (wollte mich Eurem Umgangston mal anpassen).

    vor vielen Jahren (deutlch vor 2010) habe ich mal eine libvasprintf irgendwo gefunden und in ein eigenes Projekt integriert. Die Implementation war nicht sonderlich effizient, dafür aber einfach: Man nehme besorge sich ein Stückchen Speicher, und benutze vsnprintf mit der Puffer-Größe. Wenn der Puffer zu klein war, verdopple man ihn (realloc) und probiere erneut. Solange, bis der Puffer groß genug ist. Zum Schluss kann man die ungenutzten Bytes des Puffers mit realloc wieder freigeben.

    Ein Problem dabei ist, dass Microsofts printf und POSIX printf nicht 100%ig kompatibel sind. Manchmal reicht das aber trotzdem aus.

    Falls wieder mal solche Diskussionen auftauchen: Setzt der Funktion einfach als Suchwort „autoconf“ hinzu. Mit etwas Glück findet sich ein Projekt, das das Problem schon gelöst hat.


Anmelden zum Antworten