Autor Thema: Cygwin unter Win7  (Gelesen 14297 mal)

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« am: 23. April 2010, 14:23 »
Ich bekomme morgen oder Montag ne Festplatte und wollte dann eigentlich Win7 auf meinem Laptop installieren (momentan noch XP).

Da ich aber eigentlich nur am Laptop programmieren, muss Cygwin funktionieren. Ich habe auf meinem Desktop Rechner Win7 x64 und da läuft Cygwin nicht wirklich, d.h. es läuft, aber arsch langsam. Ich meine ich brauche dort (mit nem Q9550 auf 3.4GHz) alleine für das Configure-Script von den binutils so lange wie auf meinem Laptop (mit nem T7200-Merom) für das Kompilieren von binutils+gcc!

Von daher wäre es nicht schlecht zu wissen ob jemand Cygwin auf Win7 erfolgreich betreibt!?

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 23. April 2010, 14:38 »
Ist Cygwin nicht immer arschlangsam? ;)

Ich gehe mal davon aus, dass du mit einer neuen Platte genug Platz hättest - warum also nicht parallel ein Linux (oder BSD oder...) zum Entwickeln installieren?
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

DaRealHustler

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 23. April 2010, 15:05 »
Cygwin ist vor allem bei Bash-Scripten echt abnormal langsam, da kannste nix machen - leider! Mit Win7 hat das aber nichts zu tun, bei mir läufts auf jeden Fall auf XP Home und Win7 x64 genauso schnell.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 23. April 2010, 15:41 »
Da unter Linux Prozesse mit fork()/exec() gestartet werden und beide Aufrufe stark optimiert sind, werden diese Funktionen auch exzessiv genutzt.

Cygwin emuliert die mit CreateProcess, welches IIRC mehrere Größenordnungen langsamer ist. Es ist einfach lahm.

Und configure-Scripte führen in kurzer Zeit sehr, sehr viele Prozesse aus...

Ich weiß nicht, wie kompatibel es ist, aber coLinux hat mal gut funktioniert. Und bei einem Prozessor mit Hardwarevirtualisierung ist auch das eine gute Alternative für Linux oder BSD, wenn du kein Umbooten nicht magst.

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 23. April 2010, 16:32 »
Zitat von: taljeth
warum also nicht parallel ein Linux (oder BSD oder...) zum Entwickeln installieren?
Naja, ich stell mir das so vor, gut habe Lust was zu proggen, dauert 30mins, ah Mails nachgucken, umbooten, Mails nachgeguckt war nichts, wieder umbooten, dann weitere 30mins proggen, ach keine Lust mehr, spiele ich mal wieder was, umbooten, während des Spielens fällt mir mit einmal die Lösung für das Proggproblem ein (das ist leider immer so ;) ), wieder umbooten.

Also das ist nicht wirklich eine Lösung für mich. Außerdem mag ich Linux nicht wirklich (auch wenn ich die tools gerne nutze ;) ).

Zitat von: DaRealHustler
Mit Win7 hat das aber nichts zu tun, bei mir läufts auf jeden Fall auf XP Home und Win7 x64 genauso schnell.
Tja, bei mir ist das aber anders. Ich meine ich vergleiche hier nen Laptop mit 2GHz DualCore mit dem Desktop Rechner 3.4GHz QuadCore und der Desktoprechner ist so arsch langsam, da könnt ich in der Zeit das Makefile auch selber eintippen, nachdem ich alles mit Hand getestet habe, was das Configurescript so macht ;)

Zitat von: Svenska
Da unter Linux Prozesse mit fork()/exec() gestartet werden ...
Das versteh ich bis heute nicht, warum die das so machen und warum das so toll sein soll. Im Endeffekt ist das doch wie Threads die als Prozesse ausgeführt werden. In meinem (unerfahrenen und nicht erleuchteten Augen ;) ) totaler Schwachsinn. Aber ich lasse mich auch hier gerne eines besseren belehren.

Also ist mein Fazit bisher, einfach ausprobieren und wenn Cygwin dann wieder so langsam ist, einfach XP behalten.

Ich guck mal nebenbei noch ob coLinux was für mich wär. Ich brauche ja ansich nur binutils, gcc, sed, grep, make und ne bash shell. Bei MingW hab ich das mit dem gcc kompilieren nicht hinbekommen (aber das letzte Mal hab ich das auch vor Jahren probiert).

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #5 am: 23. April 2010, 16:42 »
Naja, ich stell mir das so vor, gut habe Lust was zu proggen, dauert 30mins, ah Mails nachgucken, umbooten, Mails nachgeguckt war nichts, wieder umbooten, dann weitere 30mins proggen, ach keine Lust mehr, spiele ich mal wieder was, umbooten, während des Spielens fällt mir mit einmal die Lösung für das Proggproblem ein (das ist leider immer so ;) ), wieder umbooten.
Das mit den Spielen lasse ich gelten (wenngleich ich kein Verständnis dafür habe :wink:), aber zu Mails kann ich nur sagen, dass Linux eine GUI (bzw. mehrere) hat und auch volle TCP/IP-Unterstützung (sowie von HTTP, POP3, SMTP, ...). Es soll auch Webbrowser und E-Mail-Clienten geben. :wink:

Zitat von: Svenska
Da unter Linux Prozesse mit fork()/exec() gestartet werden ...
Das versteh ich bis heute nicht, warum die das so machen und warum das so toll sein soll. Im Endeffekt ist das doch wie Threads die als Prozesse ausgeführt werden. In meinem (unerfahrenen und nicht erleuchteten Augen ;) ) totaler Schwachsinn. Aber ich lasse mich auch hier gerne eines besseren belehren.
Das Schöne daran ist, dass man den neuen Prozess gleich modifizieren kann. Zum Beispiel kann man Standardstreams umlenken, bevor man sich selbst überschreibt – das finde ich persönlich ziemlich elegant (wird auch für Pipes genutzt).

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 23. April 2010, 16:48 »
Zitat von: XanClic
... aber zu Mails kann ich nur sagen, dass Linux eine GUI (bzw. mehrere) hat und auch volle TCP/IP-Unterstützung (sowie von HTTP, POP3, SMTP, ...). Es soll auch Webbrowser und E-Mail-Clienten geben. wink
Ja, genau wegen dem Mail-Clienten müsste ich ja wechseln. Ich weiß nicht in wie fern Thunderbird und FireFox aus Linux mit den Daten aus Windows klarkommen und selbst wenn dann müssten beide auf die selben Daten zugreifen und ich denke mal dass das nicht möglich ist.

Was ich als größten Nachteil von Linux zähle sind die ganzen Distributionen. Wenn ich schon ein OS habe was so toll sein soll, dann will ich nicht für jede Distribution nen extra Download haben und dann gibts ja noch unterschiedliche GUIs und unterschiedliche WindowManager. Das ist mir insgesamt zu viel. Da mag ich viel lieber das gute alte BeOS, das habe sogar ich von Anfang an verstanden ;)

AGGROStar1991

  • Beiträge: 29
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 23. April 2010, 17:44 »
thunderbird und Firefox kommen damit klar, davon is auszugehen.
Warum sind die vielen Distris ein nachteil? ich seh als grossen vorteil das sich jeder das herunterladen kann was die richtige software um den Kernel packt und alles zusammenbringt was man braucht.
Der unterschied is wirklich nur die Software, ich kann also wenn ich masochistisch veranlagt bin auch mein Debian zu nem Gentoo umbauen.Und das es mehrere Windowmanager gibt ist doch gerade gut. Wenn ich rechenpower hab nehm ich halt KDE mit den Tollen Plasmoids und so, wenn nich halt Gnome oder XFCE


insofern kann ich deine Argumente nich verstehen.

mgf AGGRO

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 23. April 2010, 18:09 »
Zitat von: AGGROStar1991
insofern kann ich deine Argumente nich verstehen.
Ich meine damit, das wenn du ein Programm verteilen willst, eine Version für die Distro, eine für die Oberfläche und das selbe mit den Treibern.

Die müssten sich halt alle mal auf einen Standard einigen, dann wäre das alles net so schlimm.

Aber lieber wieder back to topic ... Ich will halt kein Linux und muss daher damit leben, das cygwin nicht so schnell ist und eventuell weiterhin mit XP arbeiten.

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #9 am: 23. April 2010, 18:42 »
Zitat von: AGGROStar1991
insofern kann ich deine Argumente nich verstehen.
Ich meine damit, das wenn du ein Programm verteilen willst, eine Version für die Distro, eine für die Oberfläche und das selbe mit den Treibern.
Das mit den Treibern (und wohl auch der Oberfläche) stimmt erstmal nicht.

Zweitens kann ich immer den Quellcode verteilen, dieser sollte auf jedem System kompilierbar sein und sich dabei an die dortigen Gegebenheiten anpassen.

On-Topic: Wieso nimmst du nicht MinGW?

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 23. April 2010, 19:29 »
Bei MingW hab ich das mit dem gcc kompilieren nicht hinbekommen (aber das letzte Mal hab ich das auch vor Jahren probiert).
Die Situation hat sich schon vor einiger Zeit gebessert.
Dieser Text wird unter jedem Beitrag angezeigt.

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 23. April 2010, 20:15 »
Zitat von: XanClic
Ich weiß nicht, was deine Strukturen machen sollen, aaaber wie wärs hiermit:
Dann verstehe ich es nicht wieso man immer zw. verschiedenen Distros wählen muss, wenn man was runterläd.

Zitat von: XanClic
Zweitens kann ich immer den Quellcode verteilen, dieser sollte auf jedem System kompilierbar sein und sich dabei an die dortigen Gegebenheiten anpassen.
Ähm, ich bin zwar nicht ganz unfit was Linux betrifft, aber hallo. Ich meine du Kannst nicht von irgend einer Oma, die gerade den PC soweit bedienen kann das sie weiß wie sie Kochrezepte im Internet findet, verlangen dass sie weiß wie man Programme kompiliert! Dann kommen noch die ganzen Dependencies dazu, die müssen auch erstmal aufgelöst (also verschiedene Libraries besorgt) werden. Von Treiberinstallation (ich weiß nicht ob man die Treiber von ATI und nVidia immernoch kompilieren muss, damit sie auf dem System laufen) will ich gar nicht erst anfangen. Dann kommt noch hinzu das Linux noch immer zu Konsolenlastig ist, aber ich schweife schon wieder ab.

Um die Sache mal zu beenden, jedem das seine und ich will kein Linux.

Zitat von: PorkChicken
Die Situation hat sich schon vor einiger Zeit gebessert.
Na dann werd ich das doch gleich mal ausprobieren, hab MingW hier auch drauf, weil Bochs sich damit besser kompilieren lässt.

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 23. April 2010, 22:55 »
So bin gerade dabei GCC 4.5.0 unter MingW zu kompilieren.

Dann wäre da nur noch eine Frage, lohnt es sich auf nem Laptop mit nem T7200 und 2GB RAM Win7 x64 drauf zu packen oder mache ich mir da wieder das Leben mit MingW schwer?

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #13 am: 23. April 2010, 23:04 »
Um die Sache mal zu beenden, jedem das seine und ich will kein Linux.
Zweites: OK, erstes: Nein, das mit der Oma kann ich nicht unkommentiert stehen lassen. :-D

Ähm, ich bin zwar nicht ganz unfit was Linux betrifft, aber hallo. Ich meine du Kannst nicht von irgend einer Oma, die gerade den PC soweit bedienen kann das sie weiß wie sie Kochrezepte im Internet findet, verlangen dass sie weiß wie man Programme kompiliert!
Von der verlang ich das auch nicht, aber die möchte erstens keine Programme benutzen, die so wenig verwendet werden, dass die Distribution nicht selbst fertige Pakete bereitstellt und zweitens verlang ich von der auch gar nicht, dass sie Linux verwenden soll. Du bist aber keine Oma, die Kochrezepte im Internet sucht. Deshalb hinkt der Vergleich ganz leicht. :wink:

PS: Entschuldige, das mit MinGW hatte ich übersehen (dass du es schon probiert hattest).

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 23. April 2010, 23:17 »
Zitat von: XanClic
Von der verlang ich das auch nicht, aber die möchte erstens keine Programme benutzen, die so wenig verwendet werden, dass die Distribution nicht selbst fertige Pakete bereitstellt und zweitens verlang ich von der auch gar nicht, dass sie Linux verwenden soll. Du bist aber keine Oma, die Kochrezepte im Internet sucht. Deshalb hinkt der Vergleich ganz leicht. wink
Also darauf muss ich sagen, 1. du sagst nicht wirklich das ich unrecht habe mit den verschiedenen Distros (nur das die das gefälligst selber zur Verfügung stellen sollen, aber die können doch nicht jedes x-beliebige Programm im Angebot haben) und 2. dann sollen doch bitte endlich mal alle zugeben, das Linux eben nicht Einsteiger-freundlich ist. Man muss schon ganz schön was auf dem Kasten haben um mit Linux leben zu können. Und auch ich als Programmierer bin faul ;)

@all

Mensch GCC ist fast durch und das ist ja nochmal schneller als mit cygwin, dann brauch ich mich damit auch nicht mehr rumquählen und die Shell sieht inzwischen auch genauso aus :D
« Letzte Änderung: 23. April 2010, 23:33 von FlashBurn »

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #15 am: 23. April 2010, 23:58 »
Also darauf muss ich sagen, 1. du sagst nicht wirklich das ich unrecht habe mit den verschiedenen Distros (nur das die das gefälligst selber zur Verfügung stellen sollen, aber die können doch nicht jedes x-beliebige Programm im Angebot haben)
Völlig sicher nicht. Aber ganz so schlimm ist es nun auch wieder nicht, man kann wirklich damit leben (und bei Windows muss man halt akzeptieren keine Wahl zu haben und wirkliche OS-Updates gibts halt nur alle paar Jahre – da kann man sich jetzt aussuchen, was schlimmer ist).
2. dann sollen doch bitte endlich mal alle zugeben, das Linux eben nicht Einsteiger-freundlich ist.
Also, ich hab das sicher nie behauptet. :wink:
Aber:
Man muss schon ganz schön was auf dem Kasten haben um mit Linux leben zu können.
Find ich jetzt wiederum nicht, wenn man die Standardelemente einer GUI mit Namen benennen kann, dann sollte es auch möglich sein, mit Linux zu arbeiten. Das große Problem ist eigentlich der Umstieg – und Linux kann ja nichts dafür, dass die meisten Leute mit Windows anfangen.
Eigentlich sind die Distributionen ja dafür da, einem komplett die Arbeit mit Paketen und so abzunehmen und eigentlich ist es so sogar einfacher als mit Windows, Software zu installieren: Auf Windows muss ich mir die Sachen im Internet suchen, mit einer guten Distro gehe ich halt in das zentrale Paketmanagementprogramm und wähle das aus, was ich installieren will (und nach der Installation sollten schon alle wichtigen Programme für „die ältere Dame auf der Suche nach Kochrezepten“ installiert sein :-D).

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 24. April 2010, 03:10 »
Warum wird fork()/exec() genutzt... nun, was ist denn der Sinn von Threads? Ein gemeinsamer Adressraum, damit man den Adressraum beim Neuerzeugen von Prozessen nicht komplett aus dem Nichts erzeugen muss - also sind Threads nur beschränkte Prozesse, damit sie schneller starten.

Wenn man nun aber ne MMU hat, dann lässt sich ein fork() sehr effizient implementieren, du erzeugst einfach einen neuen Task, markierst alle Pages des aktuellen Tasks als read-only und wenn jemand dorthin schreiben möchte, dann kopierst du die Page. Copy-on-Write, sehr schnell.

Threads sind entstanden, weil Windows eben ein furchtbar langsames CreateProcess() hat. Unter Linux sind sie nicht nötig.

Und zur Oma: Dann soll sie Ubuntu nehmen. Du hast schließlich auch die Wahl zwischen Windows XP oder Vista oder Seven, in Home, Professional, Home Basic, Home Professional und was weiß ich noch. Die Oma nimmt Home Basic, denn alles andere interessiert sie nicht. Oder Starter, das reicht auch hin.

Ich empfehle http://bulk.fefe.de/scalable-networking.pdf . Der Text benennt fork() als nicht skalierbar, aber man möge bitte beachten, dass fork() unter Linux 2.6 der Klasse O(1) angehört. Ansonsten ist es eine nette nebenher-Lektüre.

Gruß,
Svenska

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 24. April 2010, 08:38 »
2. dann sollen doch bitte endlich mal alle zugeben, das Linux eben nicht Einsteiger-freundlich ist. Man muss schon ganz schön was auf dem Kasten haben um mit Linux leben zu können. Und auch ich als Programmierer bin faul ;)
Glaube ich nicht, dass man das zugeben muss. Es wird nur dein Windows-Vorwissen entwertet, was für dich persönlich halt etwas schade ist.

Dass du dich über die Binärpakete für unterschiedlichen Distributionen beschwerst, zeigt sehr schön, wie du in deinen Windows-Gewohnheiten feststeckst. Ich muss praktisch nie nach Software "irgendwo im Internet" suchen, weil die relevante Software eben in der Distribution vorhanden ist (und wenn es mal was ganz exotisches sein soll, nehme ich Source-Tarballs, nicht Binärpakete). Ich glaube, das einzige nicht selbstentwickelte Programm, das in meiner Installation nicht von der Distribution kommt, ist qemu (weil ich da immer die aktuelle git-Version statt der stabilen Version der Distribution benutzen möchte).

Threads sind entstanden, weil Windows eben ein furchtbar langsames CreateProcess() hat. Unter Linux sind sie nicht nötig.
Ich behaupte mal, dass es einen klitzekleinen Unterschied gibt, ob der Code im selben Adressraum läuft oder nicht. Sogar unter Linux. ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

FlashBurn

  • Beiträge: 844
    • Profil anzeigen
Gespeichert
« Antwort #18 am: 24. April 2010, 08:44 »
Ich habe auch mal Ubuntu "genutzt", weil etwas wofür Linux wirklich gut ist, ist Hardwareprobleme finden! Ich meine Meldungen die ich unter Linux bekomme, wird es bei Windows wahrscheinlich nicht mal für die Entwickler geben ;) (ich musste damals verifizieren das USB auf meinem Mainboard im Arsch ist und nur noch 1.1 fährt und dafür war Linux perfekt).
Ich weiß nicht mehr wieso, aber ich brauchte "sudo" und ganz ehrlich, für ein OS was auch für "allgemeine" User sein soll ist die Konsole ein absolutes NoGo! Meine Freundin z.B. ist eigentlich ganz fit mit dem PC, sie kann auch das ein oder andere Treiberproblem oder sonstige Problem lösen, aber sie weiß nicht mal was eine Konsole ist und wenn man dann für bestimmte Sachen ne Konsole braucht, hast du die alle verloren!

Auch Windows ist nicht perfekt, aber da es nunmal mehr genutzt wird, gibt es halt mehr Treiber und alles läuft "meistens" ein wenig runder bzw. ist einfacher zu erledigen (ich erinnere mich immer wieder gerne daran, wenn Studenten im 1. Semester Informatik meinen sie sind cool weil sie Linux nutzen und wollen dann ihren Laptop an den Beamer anschließen und es funktioniert nicht, obwohl das auch unter Windows manchmal ein ganz schöner Akt ist ;) ).

Zitat von: Svenska
Warum wird fork()/exec() genutzt... nun, was ist denn der Sinn von Threads? Ein gemeinsamer Adressraum, damit man den Adressraum beim Neuerzeugen von Prozessen nicht komplett aus dem Nichts erzeugen muss - also sind Threads nur beschränkte Prozesse, damit sie schneller starten.
Und ich dachte immer, damit man wenn man Code hat der parallel laufen kann, sich den ganzen Kommunikationsaufwand sparen kann. Denn der große Nachteil ist doch, das mit dem Ändern des PageDirs auch der TLB gelöscht wird und das kostet halt auch Performance.

@Off-Topic

Noch mal zu so´ner Oma. Ich habe bei mir im Bekanntenkreis nun auch mal wieder erleben dürfen wie stur der durchschnitts User sein kann. Eine Bekannte nutzt auf Arbeit Office XP und auf ihrem neuen Laptop ist halt noch kein Office drauf. Anstatt OpenOffice zu nehmen und Geld zu sparen, muss sie sich unbedingt Office 2010 kaufen und das obwohl ich ihr gesagt habe das sie sich da auch neu einarbeiten muss. "Nein, das was ich machen will funktioniert mit dem Ding nicht", sagt sie ohne es auch mal benutzt zu haben! Da kann ich auch nur den Kopf schütteln, vorallem geizig ohne Ende aber Geld für Office ausgeben nur weil sie halt stur ist.

@taljeth

Hat mit meinem Windows "Vorwissen" nicht so viel zu tun, aber wie gesagt, der Zwang bei bestimmten Sachen (ich weiß jetzt nicht welche es sind, aber halt "sudo") sind ein absolutes NoGo!

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 24. April 2010, 09:06 »
Ich habe auch mal Ubuntu "genutzt", weil etwas wofür Linux wirklich gut ist, ist Hardwareprobleme finden! Ich meine Meldungen die ich unter Linux bekomme, wird es bei Windows wahrscheinlich nicht mal für die Entwickler geben ;) (ich musste damals verifizieren das USB auf meinem Mainboard im Arsch ist und nur noch 1.1 fährt und dafür war Linux perfekt).
Ich weiß nicht mehr wieso, aber ich brauchte "sudo" und ganz ehrlich, für ein OS was auch für "allgemeine" User sein soll ist die Konsole ein absolutes NoGo!
Du brauchst sudo auf der Konsole, um Dinge zu tun, die unter Windows gar nicht gehen? Ich glaube du hast mich überzeugt, Linux ist Mist.

Zitat
Noch mal zu so´ner Oma. Ich habe bei mir im Bekanntenkreis nun auch mal wieder erleben dürfen wie stur der durchschnitts User sein kann. Eine Bekannte nutzt auf Arbeit Office XP und auf ihrem neuen Laptop ist halt noch kein Office drauf. Anstatt OpenOffice zu nehmen und Geld zu sparen, muss sie sich unbedingt Office 2010 kaufen und das obwohl ich ihr gesagt habe das sie sich da auch neu einarbeiten muss. "Nein, das was ich machen will funktioniert mit dem Ding nicht", sagt sie ohne es auch mal benutzt zu haben! Da kann ich auch nur den Kopf schütteln, vorallem geizig ohne Ende aber Geld für Office ausgeben nur weil sie halt stur ist.
Richtig, subjektiv und objektiv macht eben doch manchmal einen Unterschied. Und genau dasselbe Problem diagnostiziere ich bei dir in Hinsicht auf Betriebssysteme. ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen