Wo UNIX herbekommen?

  • Als erstes, dass ich nur OSe mit GUI gut finde stimmt nicht, war nur ein Scherz. :D
    Als zweites, MIMIX ist also für mich am besten?
    Als drittes, ich möchte auf UNIX C lernen, warum auch immer. (Weiß ich selbst nicht.)
    Als viertes, mein Vater sagte; UNIX sei auch vor 15-16 Jahren kostenlos und C basierend.
    Als fünftes, welcher PC von mir (siehe Post #1) ist am besten dafür?
    Als sechstes, wie bekomme ich es am besten auf die HDD? (Mit Bootloader-Eintrag)

    Blue-Fox

  • [pre]
    >Als erstes, dass ich nur OSe mit GUI gut finde stimmt nicht, war nur ein >Scherz. :D
    So aufeinamal?
    >Als zweites, MIMIX ist also für mich am besten?
    Minix ist halt relaativ beschränkt und nur unixoid
    >Als drittes, ich möchte auf UNIX C lernen, warum auch immer. (Weiß ich >selbst nicht.)
    komisch
    >Als viertes, mein Vater sagte; UNIX sei auch vor 15-16 Jahren kostenlos >und C basierend.
    C basierend war unix schon immer. Das mit dem Kostenlos mag ich bezweifeln. Vllt. wars ne Lizenz vom arbeitgeber o.ä.
    >Als fünftes, welcher PC von mir (siehe Post #1) ist am besten dafür?
    der schnellste
    >Als sechstes, wie bekomme ich es am besten auf die HDD? (Mit >Bootloader-Eintrag)
    linux ist hier mit grub am komofrtabelsten
    was andere unixoide OSe so an booloader bieten weiß ich nich

    Blue-Fox
    [/pre]

  • MINIX ist dann geeignet, wenn du herausfinden willst, wie ein Betriebsystem gebaut wird. Einfach zum C programmieren kannst du alles nehmen. Von mir aus auch MS-DOS.
    Am einfachsten für Einsteiger dürfte aber nach wie vor eine Linux-Distribution wie Debian oder Ubuntu oder SuSE sein.

    Wenn dein Vater meint, dass UNIX damals kostenlos war, dann stimmt das nur zum Teil. Wie du hoffentlich begriffen hast (falls nicht, kehre zurück an den Anfang) gibt es nicht ein UNIX. Es gibt ein Meer von UNIX-Abkömmlingen, -Varianten, -Klone und -Kopien. Vor 15 Jahren gab es sicherlich kostenlose UNIXe, aber auch solche die Geld kosteten. Und ein Betriebsystem basiert nicht auf C, es ist höchstens damit geschrieben. Basieren kann man auf einem Framework. Ist C aber nicht.

    Geeignet dürfte jeder Rechner sein. Solange er ne unterstützte CPU hat (da alles x86er fällt das gleich wieder weg). Weil du aber kompilieren willst, nimm den schnellsten.

    Für deine letzte Frage gibts die Dokumentation des Betriebsystems für das du dich entschieden hast.

  • Ich finde MS-DOS oder freeDOS was auch immer (gibt ja mehrer Dos'es) am Besten.
    Da wie auch in meinen LernBuch beschrieben mit DOS hat man vollen Eingriff auf die Hardware (für C auch sehr wichtig) und anderm was man unter Windows oder Linux(teilweise) nit hat. Für DOS gibt es auch einen C/c++ GUI Complimierer.

    Es ist besser nicht zu moderieren als falsch zu moderieren

  • Zitat von Blue

    Ich glaub unter Linux hast du mehr Hardwarezugriff als unter Windows oder DOS lol..


    Öh.. nein. Absolut nicht.

    DOS erlaubt es dir wirklich direkt mit der Hardware zu sprechen. Unter Linux/Windows geht das in der Regel nur über Abstraktionssschichten, ohne dass das System durcheinander kommt.

  • Zitat von gandro


    DOS erlaubt es dir wirklich direkt mit der Hardware zu sprechen. Unter Linux/Windows geht das in der Regel nur über Abstraktionssschichten, ohne dass das System durcheinander kommt.

    Ist es nicht so, dass viele Systeme (z.B. manche Kassensysteme) deshalb unter DOS-Laufen, weil man damit direkter an die Hardware rankommt und vor allem zuverlässiger und stabiler?

    @Topic

    Was versprichst Du dir von einem "reinen" UNIX - was soll das für einen Vorteil haben, dass Du das verwenden möchtest.
    Was hat es für Eigenschaften, die Du unbedingt benötigst?

    EDIT: nur mal als kurzer Nachtrag:
    Bei uns an der Uni wird "Grundlagen der Informatik (C-Programmierung)" unter Ubuntu unterrichtet. ;)

    zum Rechner: wie Gandro schon sagte - den schnellsten, da alle die Anforderungen erfüllen, die Du brauhcst. Aber ej schneller, desto mehr Spaß macht der Spaß^^

  • Zitat von klemmi


    Ist es nicht so, dass viele Systeme (z.B. manche Kassensysteme) deshalb unter DOS-Laufen, weil man damit direkter an die Hardware rankommt und vor allem zuverlässiger und stabiler?



    Die heuten Betriebssysteme unterbinden den direkten Zugriff auf die Hardware, damit die Resourcen verwaltbar sind und sich Applikationen nicht gegenseitig beeinflussen und zum Absturz führen. Darum bezweifle ich jetzt, dass unter DOS dies zuverlässiger und stabiler laufen soll. (Zudem ja DOS allgemein als zuverlässig und stabil gilt.) Und ob es wirklich einfacher ist Hardware direkt anzusteuern als über definierte Schnittstellen und APIs zu gehen? Könnte es vielleicht nicht eher sein, dass die Systeme welche du meinst schlicht und einfach veraltet sind, was aber niemand wirklich stört (ausser vielleicht ein paar arme Techniker welche die Dinger noch supporten müssen) solange alles Reibungsfrei funktioniert und läuft?

  • Gilt DOS wirklich als zuverlässig und stabil? Ich wage es zu bezweifeln. Voller Hardwarezugriff bedeutet, die Anwendungsprogramme sind verantwortlich. Wenn die scheisse sind und abstürtzen, hängt halt der ganze Rechner.

    Dafür ist es unter DOS für die damaligen Schnittstellen einfacher zu programmieren als heutzutage. Ein USB-Anschluss ist für definierte Schnittstellen und APIs konzipiert, das geht mit mondernen OS natürlich einfacher. Aber ein Paralellport zum Bleistift ist dafür gedacht, dass er sich direkt über den Speicher Bit für Pin ansteuern lässt - ich schreibe ein Bit an eine bestimmte Stelle, der entsprechende Pin bekommt Strom.

    Dementsprechend braucht man nur noch nen Lämpchen oder nen Kassenschloss an den Pin zu hängen und ihn nur mit einem Bit steuern.
    Ich kann mir vorstellen, dass damalige Kassensysteme meist Spezialanfertigungen waren, also auch Pin für Pin gesteuert wurden.
    Eine derartige Steuerung lässt sich mit modernen Betriebsystemen nur schwer ermöglichen, man will ja nicht, dass sich zwei Programme um einen Pin streiten. Oder den falschen Pin ansteuern und damit Hardware kaputt machen. Das erklärt, warum viele Spezialgeräte noch immer an DOS Rechnern hängen.

  • Der Hauptgrund, aus dem DOS sich im Embedded-Bereich wie bei Kassen wohl noch einer so großen Beliebtheit erfreut, ist die Simplizität des Systems.
    Da sind keine Abstraktionsschichten, keine unnötigen Treiber oder sonstige fehleranfällige Systemkomponenten, die so ein System zum Absturz bringen können.
    Die Multitasking-Fähigkeiten Moderner Betriebsysteme sind in dem Einsatzgebiet total irrelevant, da eine Kasse ja nur eine einzige Anwendungen ausführen muss.

  • Zitat von klemmi


    Ist es nicht so, dass viele Systeme (z.B. manche Kassensysteme) deshalb unter DOS-Laufen, weil man damit direkter an die Hardware rankommt und vor allem zuverlässiger und stabiler?

    Das hat einen ganz anderen Grund. Sie laufen seit sehr vielen Jahren stabil und es gibt schlicht keinen Grund auf etwas neues zu setzen. Ob die Stabilität vom BS abhängt weiss ich nicht.... diese Programme haben aber meisst eine sehr lange Entwicklungszeit hinter sich, so dass wirklich alle Kinderkrankheiten ausgemerzt sind.... naja DOS ist auch weniger komplex und ist evtl. dadurch stabiler?

    Mich nerven Verschwörungstheoretiker

    Wer Rechtschreibfehler findet, darf sie behalten!

  • gandro und alles: Das echte, originale Unix ist schon kostenlos, läuft allerdings auch nur auf PDP-11s :D

    wenn du nicht einfach nur ein anderes windows willst, dann nimm ein System, wo du mit konsole arbeiten musst

    mein Tipp wäre vermutlich ein BSD (ich nehm vorwiegend NetBSD =))
    arch läuft nur ab i686, d.h. das wird nix auf deinen Rechnern

  • Das ist ja nicht so, dass ich keine coolen PCs zur Verfügung habe, nur auf mein Notebook will ich ungerne noch ein UNIX bzw. Arch Linux haben. (Wenn ihr mich vom Gegentei überzeugen könnt, gerne. :D)

    Blue-Fox

  • Zitat von oreissig


    arch läuft nur ab i686, d.h. das wird nix auf deinen Rechnern

    Arch ist für i686+ CPUs compiliert, klar. Aber wir befinden uns hier in der Opensource Welt. Nichts hält dich davon ab deine CFLAGS auf was kleineres zu setzen und makeworld durchlaufen zu lassen. Und schon hat man Arch für i486 oder whatever.

    DOS ist übrigens garnicht mal so sehr verbreitet in Kassensystemen. Die Programme mögen zwar wie welche die unter DOS laufen aussehen, aber in Wirklichkeit laufen sie unter OS/2(oh ja, ziemlich verbreitet), Linux oder irgendner Eigenentwicklung. Je nach Hersteller und Herstellungsjahr.
    Trotz allem läuft auch heute noch DOS auf vielen Systemen, was einfach daran liegt das Kassensysteme im Allgemeinen lange halten. Die Teile wurden mal gekauft, da hingestellt und machen bis heute was sie tun sollen. Fällt doch mal eine Maschine aus wird nochmal so ein altes Gerät beschafft, weil die Systeme in der Regel sehr stark ineinander verzahnt und, wie sollte es auch anders sein, inkompatibel zueinander sind.

    Ich halte es für sehr gewagt für ein kaum benutztes Betriebssystem zu programmieren. ANSI-C hin oder her, am Ende ist man doch plattformabhängig und schreibt sich irgendwelchen Abstraktionskram um dann überall zu laufen.
    Es bringt alles nichts wenn man irgendwelche Wrapper benutzt damit man einmal ne GUI schreibt, die dann auf QT, GTK und Windows-Zeugs übersetzt wird und am Ende das Programm auf allen Plattformen gleich scheiße Aussieht. Das wurde mal u.a. bei Firefox probiert, und es war einfach elendig. Es war keine Gnome Anwendung, es war keine Mac Anwendung, es war keine Microsoft Windows Anwendung. Es war irgendwas dazwischen. Es bediente sich zwar auf jedem System gleich, aber auf jedem System anders als der ganze Rest. Das ist auch noch heute teilweise so.
    Meiner Meinung nach ist der beste Weg um Plattformunabhängigkeit zu erreichen die Kernfunktionalität in ne Library zu packen(welche dann auch auf jedem System compiliert), und dann für jedes System einzeln ein Frontend zu schreiben. Ein gutes Beispiel dafür sind alle Browser die aus Gecko, der Engine von Firefox, entstanden sind. Es gibt Epiphany für Gnome, Camino für Mac, K-Meleon für Microsoft Windows, und noch 500 andere. Ein anderes Beispiel wäre Pidgin. Da liegt die ganze Funktionalität in libpurple. Davon ausgehend gibt es Pidgin für quasi alles, Adium für Mac, Finch für die Konsole, ...
    Ich denke dieser Strategie gehört die Zukunft. Die Oberfläche war nur ein Beispiel, aber gleichzeitig ein sehr gravierendes. Zumindest für mich ist es sehr wichtig das mein gesamtes System einheitlich aussieht. Ich kann zwar mit gtk-qt-engine Gimp QT benutzen lassen, es bedient sich aber trotzdem komplett anders als meine ganzen KDE Anwendungen.

    Ich persönlich würde dir zu einem Linux System raten. Solaris is nett und hat ZFS(Killerfeature!), aber kaum benutzt und frisst Ressourcen ohne Ende. FreeBSD ist klasse, hat auch ZFS und besonders das Handbuch von FreeBSD(ja, es ist _das_ Handbuch) hat mir sehr gefallen. Auch an der Tatsache das alles aus einem Guss ist kann man Gefallen finden. Aber mir gefällt die Lizenz nicht(Glaubensfrage) und ich finds ein bisschen umständlich zu bedienen. Ob die anderen BSDs was für dich sind musst du selbst schauen, da hab ich nicht so die Erfahrung.
    Mac OSX ist nett. Hat viel bling-bling und bei jungen Leuten toll zum Angeben. Abgesehen davon hat es relativ viele Features, voll über GUI bedienbar und genießt kommerzielle Unterstützung. Aber unfrei(wobei der Kern, Darwin, unter BSD Lizenz steht) und Arschteuer.
    Minix benutzt nen Microkernel(manche mögens, manche nicht. Ich finds schwachsinnig=>ebenfalls Glaubensfrage), scheitert aber daran das es noch viel weniger benutzt wird als Solaris. Da fehlts schon an sowas wie Treibern.
    DOS ist aus meiner Sicht völliger Schwachsinn. Veraltetes Systemdesign, kein Speicherschutz, blah blah.

    Bei Linux Systemen bist du ziemlich flexibel. Ich denke auch das alles nicht aus einem Guss kommt ein Vorteil ist(auch Glaubensfrage, ich mag nich flamen). Ich selbst benutze Arch Linux seit langer Zeit, und halte das Design des Systems für ziemlich geil. Das beste aus Debian, Gentoo und (Free)BSD unter einem Hut. Arch Linux ist aber für den durchschnittlichen Microsoft Windows Klicker auf Anhieb unbedienbar. Und das meine ich auch so. Du wirst höchstwahrscheinlich beim Setup schon scheitern, und wenn da nicht dann nach dem ersten Boot. Bei Arch Linux ist es wichtig zu verstehen wie es funktioniert. Es reicht nicht zu wissen "Aha, wenn ich diese lange Zeile eingebe passiert das was ich will." Du musst wissen warum es das macht was du willst, sonst wirst du beim nächsten Problem scheitern.
    Wenn du bereit bist dir viel Zeit zu nehmen und zu verstehen wie das System funktioniert, dann willst du Arch Linux. Alternativen zu Arch Linux wären z.B. Gentoo, Debian oder FreeBSD. Belohnt wirst du mit einem sehr flexiblen System, welches dir nicht im Weg rumsteht.
    Falls das nicht der Fall ist, nimm ne 08/15 klickbunt Distribution wie Ubuntu, openSUSE oder Fedora. Aber auch da wirst du dich ein wenig mit deinem System auseinander setzen müssen, wie bei Mac OSX und Microsoft Windows auch.

    Doch das ganze ist nur die halbe Miete. Jetzt hast du vielleicht ein System das du benutzen willst, aber C gelernt hast du immernoch nicht. C per Definition ist erstmal nur der Syntax + libc. Das ist auf allen Systemen mehr oder minder gleich. Es ist unwichtig ob du das nun auf Linux, BSD, Solaris, Minix, Mac OSX oder Microsoft Windows machst. C lernen kannst du auch ohne Computer. Allerdings willst du ja auch was Sinnvolles machen, und da gehts los. Bei freien Betriebssystemen wie Linux, BSD, OpenSolaris oder Minix hast du den unschätzbaren Vorteil das auch der größte Teil der restlichen Software welche darauf läuft frei ist. Du kannst daraus lernen oder sie modifizieren. Ich mache beides regelmäßig. Irgendne Software hat nen Bug? Kein Problem! Source runtergeladen, gefixt, patch geschickt, und die Welt ist um einen Bug ärmer. Das ist ein riesen Vorteil gegenüber allen unfreien Systemen. Und das kannst nicht nur du, sondern die ganze restliche Welt auch. Oder wie funktioniert eigentlich X genau? Wie sieht ne gute Implementierung von Jabber aus? Kann man sich alles ansehen. Ein anderer Vorteil ist das du deine Software idr. auch unter eine freie Lizenz stellen wirst(meist GPL oder sowas, jenachdem was üblich ist und welche Libraries du verwendet hast). Jeder kann über deinen Quellcode rübergucken. Jeder kann von dir lernen. Jeder kann deine Software verbessern. Und das wird ziemlich sicher passieren.
    Ein "Nachteil" ist das du deine Software auch idr. unter eine freie Lizenz stellen musst, und das heisst: Quellcode raus. Falls du zu den Leuten gehörst die sagen "Aber aber aber...das ist MEIN Quellcode! Den kriegt ihr nicht!1!", lass es.
    Bei unfreien Systemen bist du als Programmierer gelinde gesagt in den Arsch gekniffen. Du hast irgendwelche ominösen Librarys die irgendwas tun. Sehr oft haben die auch Bugs. Diese Bugs sind in vielen Fällen bekannt, werden aber absichtlich nicht gefixt weil andere Programmierer vor dir schon auf diesen Bug gestoßen sind und einen Weg gefunden haben drumherum zu Arbeiten(der sog. Workaround). Würde man den Bug fixen würden die Anwendungen nicht mehr funktionieren, sie verlassen sich darauf dass der Bug existiert. Und so geht das die ganze Zeit. Die Dokumentationen sind idr. mittelmäßig bis miserabel(jaja, es gibt Ausnahmen). Je älter das System ist, destso schlimmer wird das Problem. Der "Vorteil" aber ist dass du deine Software verkaufen kannst. Du kannst damit tatsächlich Geld verdienen. Aber für deinen Lebensunterhalt wirds höchstwahrscheinlich nicht reichen. Auch bei freien Systemen kannst du deine Software verkaufen, aber da muss es schon was richtig tolles sein damits sich überhaupt mal jemand anguckt.

    Ich würde dir raten erst unter einem freien System zu lernen, und dann später wenn du das denn unbedingt willst ein unfreies dazu lernen.
    Man beachte dass das nur meine subjektive Meinung ist. Andere Leute werden dir was anderes sagen. Am Ende kommts darauf an selbst nachzudenken.

  • Zitat von eiffel56

    Arch ist für i686+ CPUs compiliert, klar. Aber wir befinden uns hier in der Opensource Welt. Nichts hält dich davon ab deine CFLAGS auf was kleineres zu setzen und makeworld durchlaufen zu lassen. Und schon hat man Arch für i486 oder whatever.


    Wenns denn so einfach wär :(

    (*Arch i386 mit uclibc haben will*)

    Zitat von eiffel56

    DOS ist aus meiner Sicht völliger Schwachsinn. Veraltetes Systemdesign, kein Speicherschutz, blah blah.


    Nana. DOS unter den Aspekten eines modernen, abstrakten Betriebsystems zu beurteilen bringt herzlich wenig. Speicherschutz ohne Multitasking ist relativ nutzlos, beispielsweise.
    DOS ist _das_ auf Intel x86 ausgerichtet Betriebsystem. Leider hat die x86-Architektur in den letzten Jahren einige Neuerungen erfahren, so dass DOS auf neuen Rechnern mangels Herstellerunterstüzung nicht mehr brauchbar ist, aber für ältere Kisten sehe ich DOS als am geeignesten an, wenn es um hardwarenahe Anwendungen mit klassischen Schnittstellen geht.


    Ansonsten, zumindesten grössten Teils, meine Zustimmung.

  • So viele Beiträge und so wenig Ahnung, sehr geil. :D

    Meine Empfehlung wäre Sun Solaris 10 zusammen mit Sun Studio 12:
    Solaris Operating System - Get Solaris 10
    Sun Studio Downloads

    Das ist ein modernes und dennoch traditionsreiches Unix, mit einem professionellen Hintergrund und einer guten Community. Und ein kostenloses Komplettpaket.

    Im Gegensatz zu OpenSolaris ist das "richtige" Solaris ein wenig wählerisch bei der Hardware, aber das kann man im Vorfeld prüfen.

    Alternativ kannst du dir natürlich auch eine RISC Maschine von HP oder IBM bei eBay kaufen, aber da gibt es weder den Compiler noch das OS für umme.

    Gruß,Ebbi
    __________________________________________
    Hol Dir dieses Posting als Klingelton auf Dein Handy!
    Sende IDIOT an 0815.
    9,99 €/SMS, 10 SMS erforderlich.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!