Warum nutzen Programmierer Linux?

10 Antworten

Nur mal kurz zu Punkt zwei:

Windows ist ein fertiges BS, und dabei auch noch in vielen Bereichen unlogisch (... ich sehe im Explorer ein Verzeichnis Benutzer, dass es auf Konsolenebene gar nicht gibt - dort heisst es Users - was soll das?? ...oder mir wird vorgegaukelt ich sei Administrator kann aber als solcher diverse Ordner nicht sehen, weil mir die Rechte fehlen...)

In LINUX kann ich "nur" mit perfekten (LPIC 1 - LPIC 3)-Administrationskenntnissen (also keinerlei Programmierkenntissen) mir immer meinen eigenen Kernel nach meinen Bedürfnissen und Systemanforderungen kompillieren - in Windows undenkbar, da geheim.

Dazu kommt, dass LINUX und alle Anwendungen kostenlos sind, und ich keine Anwendung von Windows kenne, die ein guter Linux-Admin nicht mit besserer Performance auf Linux realisieren kann.

Kurushiyama  24.01.2012, 05:44

Ähm, ich hab meinen ersten Kernel kompiliert, da war an LPIC noch nicht zu denken.

Aber ein paar Anwendungen gibt es schon: Unterhaltungsanwendungen möchte ich sie mal nennen ;), Photoshop et al, AVID. Ja, ich weiß, das dies proprietäre Programme sind, aber es gibt halt nicht nur ISO-Standards, sondern auch de-facto-Standards.

1
HerzVonHessen  24.01.2012, 12:55
@Kurushiyama

Hallo Kurushiyama,

Ähm, ich hab meinen ersten Kernel kompiliert, da war an LPIC noch nicht zu denken.

Aber dennoch gab es diese Fähigkeiten bereits. Das Zertifikat wurde ja aus dem Grund eingeführt das man einen international anerkannten Standard hatte weil sich sonst jeder "Depp" Administrator nennen könnte der mal ein Script gebaut hat.

es gibt halt nicht nur ISO-Standards, sondern auch de-facto-Standards.

Das ist leider wahr :-)

lieben Gruß aus Zuhaus

1

Hallo moccajoghurt,

  1. Warum ist Linux unter Programmierern so beliebt?

Weil es ein openSource-System ist, das bedeutet das der Programmiercode jedes Programms (Sei es nun der Apache-Server, der Web-Browser oder der Paketmanager oder wasauchimmer) ist frei verfügbar, jeder der die Programmiersprache kann, kann den Code einsehen, bearbeiten, verändern, nutzen und das veränderte veröffentlichen. Man kann daraus lernen wie was umgesetzt werden kann und erweitert durch die Nutzung sein Wissen immer weiter.

dass Linux sehr anpassungsfähig ist und man das Betriebssystem so formen kann, wie man es braucht und möchte.

Das ist so, weil man absolut jede Kleinigkeit selbst bestimmen kann. Hier mal ein guter Link wie ein Kernel konfiguriert werden kann:

http://www.thomashertweck.de/kernel26.html

Ich kann mit einem Konfigurationsprogramm den Kernel so exakt an eine einzige Hardware anpassen das dieser dann nur dort, dafür aber mit voller Unterstützung aller Komponenten läuft und das in einer Geschwindigkeit die ein "All-Around-Kernel" gar nicht zu leisten vermag.

  • In einem Standard-Kernel sind Treiber für nahezu alle Hardwaregeräte vorhanden die bis dato unterstützt werden.
  • Aber warum sollte ich bei einem Uralt-PC (wie meiner, <8 Jahr alt) die Treiber für USB3.0 oder PCIe oder S-ATA , Bluetooth und Infrarot-Treiber, W-Lan und Firewire mit im Kernel lassen wenn es diese Dinge in meiner Konstellation gar nicht gibt?
  • Das spart mir Zeit beim kompilieren des Kernels weil ich nur die Fähigkeiten hineinbringen muss die für explizit diese Hardware benötigt werden.
  • Es spart logischerweise auch Bootzeit weil nicht erst alle unnötigen Treiber ausprobiert werden müssen sondern direkt das benötigte gestartet wird.
  • Hardwareabfragen werden auf das aller nötigste beschränkt.
  • So kann ich meinen Kernel so klein machen das ich es schaffe in 10 Sekunden oder sogar darunter meinen Computer zu booten. Vergleich mal mit Spashtop oder UEFI-Boot, das ist im Prinzip nichts anderes als eine extrem Hardware-nahe Programmierung mit maximaler Effizienz.

Was glaubst Du wohl wie es MacOS-X macht, die Hardware kommt von genau einem Hersteller und der macht auch das OS, also passt er das OS an die Hardware an und alles ist gut.

Aber nicht nur das Betriebssystem sondern auch die tausende von Programmen arbeiten in der Regel nach dem KISS-Prinzip "Keep it small and simple" oder "Ein Programm für eine Sache - die aber richtig".

lieben Gruß aus Zuhaus

Entschuldigung, aber alle vorher gegebenen Antworten haben kaum etwas mit dem eigentlichen Grund zu tun, da es nicht im Geringsten um Preis, Performance oder offenen Quellcode geht. Alle diese Eigenschaften sind unmittelbare oder unwesentliche Nebeneffekte der Hauptursache, weshalb Programmierer GNU/Linux verwenden. Das GNU-Betriebssystem wird von Entwicklern bevorzugt, weil es freie Software ist! Die ursprünglichen Programmierer dieses Betriebssystems und sämtlicher freier Software haben ihren Quelltext einer freien Software-Lizenz unterstellt, die sowohl rechtlich als auch technisch 4 essentielle Freiheiten jedermann gewährt, solange ein Lizenznehmer dem Empfänger bei Distribution dieselben Rechte ebenfalls gewährt, welche sind:

  • Programmausführung für jeden beliebigen Zweck.
  • Erlaubnis, den Quellcode eines Programms studieren und modifizieren zu dürfen (der Quellcode zum Kompilat muss zugänglich gemacht werden).
  • Erlaubnis, das Programm unverändert weiterzugeben (Kopien).
  • Erlaubnis, Veränderungen am Programm oder das veränderte Programm insgesamt weiterzugeben (Quelltext muss zugänglich gemacht werden).

Wenn jemand also die Software erhält, erhält er diese Rechte automatisch mit, und kann seinerseits beliebig mit der Software verfahren (rechtlicherseits). Wenn die Weitergabe binär als Kompilat erfolgte, muss der Quelltext zugänglich gemacht werden (technischerseits).

Auf diese Weise ist das Betriebssystem und freie Software an sich die ideale Plattform, mithilfe welcher Entwickler in ethisch korrektem Umgang mit dem Benutzer ihre Macht nicht missbrauchen (sozusagen freiwillig weitreichende Rechte einräumen) und ihrerseits vom korrekten Umgang anderer Entwickler profitieren. Daraus resultieren natürlich auch zahlreiche technische Vorteile, wie etwa eine gigantische Code-Basis, die der Allgemeinheit gehört und auf die man beliebig zurückgreifen kann, oder eben stets selbst in die Lage versetzt ist, sich und anderen völlig unabhängig von anderen Leuten zu helfen. Letztendlich handelt es sich aber um einen Gegenentwurf gegen unfreie, proprietäre Software, deren Funktionsweise ein Geheimnis ist, dem Benutzer evtl. versehentlich oder absichtlich Schaden zufügt und eine Bindung beispielsweise an ein Unternehmen erzwingt, die die Abhängigkeit kommerziell oder politisch ausnutzen kann. Jeder Entwickler also, der durch seine Tätigkeit Rechte an seinen Quelltexten erwirbt, sollte sich bei der Lizenzierung gut überlegen, eben eine freie Lizenz zu wählen, um seine Software in die Community vieler anderer freundlicher Programmierer zu geben und auch von deren Entwicklungen im Austausch zu profitieren, worin das GNU-Betriebssystem mit Linux-Kernel am häufigsten anzutreffen ist (wie es alternativ aber auch z.B. BSD gibt). Der Linux-Kernel wegen seiner heute weitreichenden Unterstützung, historischen Gründen und monolithischem Design (im Gegensatz zu anderen Kernels unter freier Lizenz), GNU als Standard-Tool-Umgebung mit POSIX-Umfeld und ausgezeichneten Programmierwerkzeugen. Nicht nur bringt die Lizenzpolitik überhaupt die Möglichkeit, sinnvolle Entwicklung zu tun, sondern mit dem bisherigen Stand der Technik ist das auch noch sehr angenehm möglich, obwohl letzteres wie gesagt nicht das Hauptaugenmerk der Bemühungen ist.

Der Unterschied der Betriebssysteme liegt in der Motivation mit der sie entwickelt wurden:

  • Windows wurde entwickelt um möglichst viel Geld damit zu verdienen.
  • Linux wurde entwickelt um Rechner möglichst optimal zu betreiben.

Beide Systeme erfüllen den mit ihnen verfolgten Zweck sehr gut.

  • Bill Gates ist einer der reichsten Männer der Welt.
  • Der Großteil der Top 500 und Embedded-Rechner der Welt läuft unter Linux

http://en.wikipedia.org/wiki/File:Operating_systems_used_on_top_500_supercomputers.svg

Es muss also jeder selbst überlegen welches Ziel er unterstützen möchte :-)

Programmierer nutzen Linux, wenn sie etwas für Linux programmieren und sie benutzen Windows, wenn sie etwas für Windows programmieren. Daher kann man keinesfalls sagen, dass Programmierer grundsätzlich Linux benutzen, oder irgend ein System bevorzugen!

Nur Grundsätzlich läuft jedes Programm unter Linux wesentlich schneller als unter Linux, natürlich vorausgesetzt, dass es sich um die gleiche Hardware handelt!

Auch das Argument, was vielfach angeführt wird, dass es darauf ankommt, was man machen mochte, jedes System seine Vorteile hat gilt so nicht! Der ein zigste Vorteil von Windows ist, dass es mehr Software zu kaufen gibt, als es unter Linux kauf bare Software gibt.

Allerdings gibt es unter Linux ein vielfaches mehr an kostenloser Software als unter Windows. Wobei die kostenlose Software unter Linux oft noch besser ist, als die teure Software unter Windows.

Auch das Argument, das Windows zum spielen besser geeignet ist stimmt so nicht. Windows ist nicht besser geeignet, sondern meistens wird das Spiel für ein Linuxsystem nicht hergestellt, da die Kundschaft fehlt. Und was der Markt verlangt, wird von der Industrie produziert. Egal ob es dafür andere bessere Lösungen gibt oder nicht.

Auch ein anderer sehr großer Vorteil eines Linuxsystems ist, dass es gegen Viren,Trojaner und das ganze Ungeziefer nicht so anfällig ist, da es vom Aufbau her schon grundlegend anders gestaltet ist. So braucht man keine teuren Antiviren Programme kaufen und das System wird auch nicht langsamer wenn man viel installiert hat oder die Installation alt ist.

Es gibt noch unzählige Gründe, was jedes Linuxbassierte Betriebssystem besser macht als Windows. Vieles davon kannst du hier auf deutsch nachlesen:

http://whylinuxisbetter.net/index_de.php?lang=de

guenterhalt  16.02.2012, 14:13

Hallo alexBL, "Programmierer nutzen Linux, wenn sie etwas für Linux programmieren und sie benutzen Windows, wenn sie etwas für Windows programmieren."

dieser Aussage muss ich (etwas) widersprechen. Es gibt genügend Programmierer, die schreiben und testen C, C++ oder auch Tcl -Programme unter Linux und portieren dann. Das spart Unmengen Zeit, die beim ständigen Booten benötigt werden. Bei Linux reicht da oft ein ^C , kill -9 oder tput restart .

1
NoHumanBeing  16.01.2013, 00:45

Muss ebenfalls widersprechen. Durch Cross-Compiler muss man schon lange nicht mehr auf der Plattform entwickeln, für die später der Code erzeugt werden soll.

Das mit dem Geschwindigkeitsvorteil von Linux stimmt so auch nicht unbedingt. Linux verfügt über eine viel komplexere und umfassende Hardwareabstraktionsschicht als Windows, über wesentlich komplexere Dienste und, bedingt durch die dezentrale Entwicklung, auch über wesentlich mehr Schnittstellen (APIs). Das kostet an sich einiges an Performance. Ein "voll ausgestattetes" GNU/Linux sollte daher tendenziell eher träger sein, als ein vergleichbares Windows-System. Allerdings kann man Linux sehr stark optimieren und "abspecken" und dann kann es wesentlich performanter werden und auch wesentlich schlanker, sodass es dann beispielsweise auf leistungsschwachen Embedded-Systemen mit wenig Speicher laufen kann.

Linux "arbeitet" also bei einem Systemaufruf in der Regel mehr, als Windows. Wenn es dabei dann trotzdem noch schneller ist (was ohne Zweifel häufig der Fall ist), dann ist das umso erstaunlicher und zeigt, welch enormer Zeitaufwand in die Optimierung der Systemkomponenten geflossen ist.

1