Warum Windows?



  • ;fricky schrieb:

    hustbaer schrieb:

    Ich hab Java erwähnt, weil Java IMO die einzige Sprache, mit der man wirklich gut plattformübergreifend programmieren kann. Ohne viele Fallstricke, ohne viele kleine Unterschiede auf die man achten muss etc.

    womit du völlig richtig liegst. wenn ich nur in Java programmieren würde und ausschliesslich Java-basierte software nutzen würde, dann wär's total egal, ob windows oder linux. aber (leider?) gibts zu viel zeug, wofür windows ein muss ist. ich wette, selbst der grösste linux-fan und m$-hasser hat irgendwo heimlich eine windows-installation am laufen. und sei es nur, um die neuesten ballerspiele zu zocken, die es für linux nicht gibt.
    🙂

    Ich denke mann kann auch unter C++ gut Systemunabhängig programmieren. Man muss nur Qt, boost oder andere Bibliotheken benutzen.

    Das einzige "muss" sind eben die Programme, die nicht für Linux programmiert werden. Da kann Linux nichts dagegen machen.



  • ich muss gestehen, dass ich eine Windows Installation (winpx per MSDNAA bekommen, um mal bisschen zu zocken) auf der zweiten Festplatte habe. Dieses Windows habe ich aber seit 2007 nicht mehr gebootet und werd wahrscheinlich auch nie wieder booten 😉



  • ;fricky schrieb:

    und warum dieser umweg? gibts dafür 'nen grund?
    🙂

    Ja, ich will vielleicht nicht mehr als eine Kopie. Wenn ich mehr will, dann muss ich halt mehr machen. Meist will ich aber nicht mehr machen. Berechnung etc. auf mehrere Prozesse verteilt, ein weing IPC etc. ... Da brauche ich mir keine Gedanken ueber Pfade machen, auch (globale) Variablen und so werden einfach mitgenommen und koennen weiter benutzt werden.



  • knivil schrieb:

    ;fricky schrieb:

    und warum dieser umweg? gibts dafür 'nen grund?
    🙂

    Ja, ich will vielleicht nicht mehr als eine Kopie. Wenn ich mehr will, dann muss ich halt mehr machen. Meist will ich aber nicht mehr machen. Berechnung etc. auf mehrere Prozesse verteilt, ein weing IPC etc. ... Da brauche ich mir keine Gedanken ueber Pfade machen, auch (globale) Variablen und so werden einfach mitgenommen und koennen weiter benutzt werden.

    naja, mag sein dass prozesskopien manchmal genau richtig sind, aber eigentlich ist sowas doch ein sonderfall. was macht eine linux-shell, wenn ich über sie ein anderes programm starten will? erstmal eine kopie von sich selbst? das glaub' ich nicht, sowas wäre ja ziemlich albern. es gibt bestimmt eine möglichkeit, beliebige prozesse ohne selbstkopiererei zu starten.
    🙂



  • das glaub' ich nicht, sowas wäre ja ziemlich albern.

    Warum ist das albern? Es kostet sehr, sehr, sehr ... wenig. Ich habe vor geraumer Zeit selbst im Source nachgeschlagen, die bash macht es so. Auch sagt man nicht umsonst, dass init der Vater aller Prozesse ist.

    aber eigentlich ist sowas doch ein sonderfall.

    Nein, z.B. Server werden so programmiert ... nimm Verbindung entgegen, forke, Child verarbeitet eingehende Daten vom socket und stirbt. Wichtig: kein Umweg ueber das Dateisystem, Prozessinformationen sind schneller kopiert als neu erstellt. Das Hauptprogramm kann die Dateideskriptoren fuer die naechste eingehende Verbindung neu belegen. Finde ich recht einfach.



  • knivil schrieb:

    Warum ist das albern? Es kostet sehr, sehr, sehr ... wenig.

    weil's nicht einsehbar ist, dass ein programm erst sich selbst duplizieren muss, um dann ein völlig anderes programm zu starten. wenn du ein leeres blatt papier brauchst, schiebstes ja auch nicht erst durch einen kopierer und machst auf die rückseite was drauf. wahrscheinlich gabs irgendwann mal, in der unix-urzeit, tatsächlich einen grund dafür, dass es nicht besser ging, aber den kennt heute wohl niemand mehr.

    aber eigentlich ist sowas doch ein sonderfall.

    Nein, z.B. Server werden so programmiert ... nimm Verbindung entgegen, forke, Child verarbeitet eingehende Daten vom socket und stirbt.
    [/quote]
    naja, server sind spezialfälle von programmen und multithreaded-server sind spezialfälle von servern, jetzt wird mir jedenfalls klar, warum viele sagen, dass linux ein tolles server-OS ist, wegen 'fork' *fg*
    🙂



  • weil's nicht einsehbar ist, dass ein programm erst sich selbst duplizieren muss, um dann ein völlig anderes programm zu starten. wenn du ein leeres blatt papier brauchst, schiebstes ja auch nicht erst durch einen kopierer und machst auf die rückseite was drauf.

    1. Das passiert ja auch gar nicht.
    2. Es passiert vergleichsweise selten, das neue Programme gestartet werden (jedenfalls nicht im Sekundentakt).
    3. Fuer Windows programmiert man anders als fuer Unix.

    Auch hinkt dein Beispiel sehr. Normalerweise nimmt man ein beschriebenes Blatt, radiert alles weg und schreibt neu drauf. Aber auch das ist ein schlechter Vergleich. Warum: Radieren ist sehr zeitaufwendig. Nicht aber so bei Speicher. Falls ein neuer Prozess gestartet wird, so brauchen auch nur einige kleine Felder ausradiert werden. Zugriffsrechte, Benutzer, offene Dateien etc. bleibt ja alles gleich.

    linux ein tolles server-OS ist

    Zeig mir ein besseres. Und komm mir bloss nicht mit Windows, das nicht mal mit mehreren Benutzern klar kommt.



  • knivil schrieb:

    Das passiert ja auch gar nicht.

    doch, da stehts: --> http://en.wikipedia.org/wiki/Fork_(Unix)

    When a fork() system call is issued, a copy of all the pages corresponding to the parent process is created, loaded into a separate memory location by the OS for the child process. But this is not needed in certain cases.
    ...
    In such cases, a technique called copy-on-write (COW) is used. With this technique, when a fork occurs, the parent process's pages are not copied for the child process. Instead, the pages are shared between the child and the parent process.

    btw, wenn unter windows ein prozess gestartet wird, von dem schon ein oder mehrere exemplare laufen, geschieht dies auch per 'copy on write'. allerdings ist das unter win trotzdem kein 'forken' (wie unter linux).

    knivil schrieb:

    linux ein tolles server-OS ist

    Zeig mir ein besseres. Und komm mir bloss nicht mit Windows, das nicht mal mit mehreren Benutzern klar kommt.

    ich sag ja nix dagegen. hab' noch nichts negatives mit unixoiden servern erlebt, aber windosen kommen sehr wohl mit mehreren benutzern klar. wie kommste darauf, dass sie's nicht können?
    🙂



  • allerdings ist das unter win trotzdem kein 'forken' (wie unter linux)

    Sag ja auch niemand. Forken ist der Unixweg. Einheitlich fuer alle und deswegen konsistent. Dabei ist copy-on-write nur eine Optimierung. Wobei fork mittlerweile auch nur ein Wrapper fuer clone ist (dem auch einige Flags mitgegeben werden koennen).

    wie kommste darauf, dass sie's nicht können?

    Mein XP kann es nicht von Haus aus. Hier eine Frickelloesung: Windows XP Multiuser Remote Desktop.

    Tja ich koennte auch die Servervariante kaufen. Auch das stoert mich, man muss es kaufen. Und man muss noch viel mehr bezahlen, wenn man was Vernuenftiges machen will.



  • fork oder nicht, ist doch vollkommen egal. was bedeutet das schon? nur daß einige dinge (bei wind00f heißts PEB, bei linux kA) kopiert werden und die pagetable einträge und so. dank copy on write muss ja sonst nix kopiert werden. ist also echt sehr billig, so ein fork. seid ihr euch sicher daß der wind00f kernel das nicht auch so macht? ich weiss daß wind00f sehr wohl forken kann, weil das posix subsystem es so macht. beim wind00f subsystem bin ich mir ned ganz sicher, müsste ich sonst mal nachschauen, aber hab ich grad keine lust.



  • weil das posix subsystem es so macht

    Windows hat ein POSIX-Subsystem?



  • ja, wind00f hatte sogar mal nen OS/2 subsystem. allerdings musst du das posix subsystem mittlerweile gesondert installieren, im default install ist es nicht mehr enthalten.



  • hack0r schrieb:

    ja, wind00f hatte sogar mal nen OS/2 subsystem.

    aber richtig brauchbar waren diese subsysteme nie. das hat ms damals als zusätzliches verkaufsargument in win-NT reingebastelt. die dos-emulation (ntvdm.exe + dos-programme wie command.com, debug.com usw.), war wohl noch das beste davon.
    🙂



  • ya das stimmt, aber die idee der subsysteme war eigentlich ganz cool. genauso wie die verfügbarkeit für verschiedene plattformen, das hat m$ ja leider so ziemlich alles eingestampft 👎



  • hack0r schrieb:

    ya das stimmt, aber die idee der subsysteme war eigentlich ganz cool. genauso wie die verfügbarkeit für verschiedene plattformen, das hat m$ ja leider so ziemlich alles eingestampft

    auch die mips und PPC-versionen von windows wurden eingestampft. ms ist nun mal ein wirtschaftsunternehmen, d.h. alles was mehr aufwand als umsatz generiert wird gnadenlos gekickt. was ms z.b. sehr nervt ist, dass sie ältere windows-versionen so lange supporten müssen. die totgeburt vista z.b. kauft keine sau mehr, wollte selbst keiner haben als sie neu war, muss aber noch einige zeit künstlich am leben gehalten werden.
    🙂


  • Mod

    ;fricky schrieb:

    was ms z.b. sehr nervt ist, dass sie ältere windows-versionen so lange supporten müssen. die totgeburt vista z.b. kauft keine sau mehr, wollte selbst keiner haben als sie neu war, muss aber noch einige zeit künstlich am leben gehalten werden.
    🙂

    Was mich nervt ist, dass sie ältere windows-versionen nicht so lange supporten. Das (vergleichsweise) gute XP z.B. wurde bis vor kurzem noch verkauft, wollte jeder haben, muss aber 2010 sterben damit Windows 7 verkauft werden kann.


  • Mod

    Nunja, 9 Jahre professionellen Gratis-Support gibt es afaik kaum sonstwo, oder?

    MfG SideWinder


  • Mod

    SideWinder schrieb:

    Nunja, 9 Jahre professionellen Gratis-Support gibt es afaik kaum sonstwo, oder?

    MfG SideWinder

    Naja, XP wurde letztes Jahr immer noch für Netbooks verkauft, da finde ich das schon ein bisschen dreist.

    Und für MS ist das ein Windows Rechner weniger. Bisher hatte ich nämlich meinen Spielerechner noch mit XP, aber da die directX Unterstützung in der Linux-Emulation mitlerweile fast genauso gut ist wie in XP (und demnächst bestimmt besser, da es für XP ja kein directx > 9 geben wird), habe ich das kürzlich umgestellt.

    (Erfahrungsbericht: Ist bei manchen Spielen etwas frickelig. Aber wenn es erstmal läuft dann mit deutlich spürbar besserer Performance. Also insgesamt gemischtes Urteil. Dafür habe ich keine Arbeit, ein neues Windows administrieren zu müssen 👍 )



  • Also ich finde XP sollte man für ein modernes System nicht mehr einsetzen, weil es z.B. kein TRIM beherrscht!



  • dank copy on write muss ja sonst nix kopiert werden. ist also echt sehr billig, so ein fork.

    es muss auf jeden fall für jede page die geshared werden soll irgendwo ein vermerk gemacht werden. copy on write ist toll, wenn der andere prozess die pages auch wirklich braucht. wenn er sie nicht braucht, ist es aber einfach nur verschwendung.

    seid ihr euch sicher daß der wind00f kernel das nicht auch so macht?

    ganz sicher


Anmelden zum Antworten