kostenloser Webspace werbefrei: lima-city


Wit welcher Programmiersprache werden Betriebssysteme programmiert?

lima-cityForumHeim-PCBetriebssysteme

  1. l*****u

    Die antwort dadrauf ist ganz einfach:
    0100100101100011011010000010000001101011011000010110111001101110001
    0000001100100011000010111001100101110000011010000101001010101011011
    1001100100001000000110010001110101001000000110000101101110011100110
    1100011011010000110010101101001011011100110010101101110011001000010
    0000011000010111010101100011011010000010110000100000011000010110110
    0011100110110111100100000011100110110001101101000011011110110111000
    1000000110110101100001011011000010000001101101011010010110111001100
    1000110010101110011011101000110111001110011001000000111101001110111
    0110010101101001001000000011101100101001000011010000101000001101000
    0101001010111011001010110111001101110001000000110010101110011001000
    0001101010011001010110010001101111011000110110100000100000011011100
    1101001011001010110110101100001011011100110010000100000011011000110
    0101011100110110010101101110001000000110101101100001011011100110111
    0001000000110001001101001011011100010000001101001011000110110100000
    1000000111011101101111011010000110110000100000011001000110010101110
    0100010000001100101011010010110111001111010011010010110011101100101
    001011100010111000101110

    (edit: ich war mal so freundlich und hab absätze gemacht, eigentlich wird es aber in einer Zeile geschrieben ;))

    mal sehen wer es lesen kann ;)



    Wer mal etwas mehr Assemblernah programmieren will kann ja auf alle schleifen verzichten und nur mit if und goto arbeiten.
    Aber zeigt den Code am besten keinem, goto wird nicht gerne gesehen ;)

    Beitrag geändert: 15.2.2008 16:13:53 von laberlu
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage


  3. Hallo,

    mein Programmieren-Lehrer behauptet schon immer, dass Betriebssysteme nur in C programmiert werden. Kann mir jemand sinnvollle Argumente geben um ihn zu überzeugen, dass es nicht so ist?

    Weil er unrecht hat. Commodore C64 und Amiga 500 weiß ich 10000%ig in Assembler geschrieben. Warum ich das weiß. Weil ich selbst ein Entwickler aus dieser Branche bin. Außerdem kann Ihr dies auch immer noch direkt auf diesen Systemen nachlesen. C nimmt man z.B. für die Anbindung der Treiber oder für diese selbst. C++ spielt dort noch keine Rolle. Erst auf Applikationsebene ändert sich dies mehr oder weniger je nach OS und GUI.

    Davido

    Inhalt des 2. Posts:



    Assembler-Programme sind zwar oft schneller als ihre C-Varianten, aber dafür ist Assembler um ein vielfaches anspruchsvoller als C.


    das ist nett formuliert *G*

    wie viele menschen gibt es auf der welt, die die bot sprache beherrschen?
    5? vil. 6? ^^

    lg
    Sincer

    PS: 0101010010100101010101010110101010101010101000000000000010111110101010010101010101010100101010101010100101


    So ähnlich. :D

    PS: Auf dem C64 von Commodore haben die früher alles mögliche in Assembler geschrieben.
    Dieser Assembler ist zu 75% identisch mit dem x86-Assembler.
    Und was die aus der Kiste rausgeholt haben, war einfach nur herrlich. Vor allem hat man da die deutliche Geschwindigkeitssteigerung merken können. Heute stellt man sich einfach eine schneller Kiste hin und gut ist. ;) :D


    Beitrag geändert: 15.2.2008 15:52:35 von sovietcars

    Ich nicht, schreibe immer noch in Assembler. Zeiteinsatz ist mir egal. Ich mag halt Qualität. :) Auf jedenfall herrlich, ja das stimmt.

    Davido

    Editiert von moritzpeuser: Doppelpost zusammengefasst. Bitte unterlasse zukünftig Doppelposts!

    Beitrag geändert: 25.2.2008 11:57:28 von moritzpeuser
  4. mein Programmieren-Lehrer behauptet schon immer, dass Betriebssysteme nur in C programmiert werden.


    Informatik-Lehrer? Also ist er per Definition inkompetent. :biggrin: Dem musst du nichts glauben. Lerne einfach auswendig, was er predigt, damit du gute Zensuren bekommst. Aber glaube nicht alles, was er erzählt -- das ist wie im Religionsunterricht. ;-)

    Kann mir jemand sinnvollle Argumente geben um ihn zu überzeugen, dass es nicht so ist?


    http://www.henning-thielemann.de/CHater.html##CvsM3_RangeCheck

    Ich würde ihn ja mal fragen, wie er die Abfrage einer Zahlenbereichsüberschreitung bei einer simplen Addition in C programmiert. Wenn er das wirklich kann, dann ...

    Aber das wird nicht passieren -- er ist ja Informatik-Lehrer: \"He who can, does. He who can\'t, teaches!\" (George Bernhard Shaw)


    Mit welchen Programmiersprachen werden eigentlich Betriebssysteme programmiert?

    Die meisten in C, die schlechten Betriebssystem möglicherweise auch in C++. Und (zeitkritische) Teile von richtigen Betriebssystemen werden auch in Maschinensprache erstellt, sprich: mit einem Assembler.

    Allerdings ist die Definition von \"Betriebssystem\" nicht so eindeutig/einseitig, wie dir vielleicht vorschwebt. So ist eine Java-Laufzeit-Umgebung auch ein Betriebssystem (zumindest für eine Java-Applikation), und die ist üblicherweise zum großen Teil in Java geschrieben.

    Es gibt auch Programmiersprachen, die tragen quasi ihr eigenes Betriebssystem und die IDE mit sich rum. Googele mal nach Oberon, LISP, Scheme oder Smalltalk.

    Moderne BIOSe können auch in FORTH geschrieben sein:
    http://de.wikipedia.org/wiki/Extensible_Firmware_Interface

    Das klassische AmigaOS wurde aus einem Konglomerat von BCPL (die DOS-Library IIRC), C und Assembler zusammengehackt. Später ersetzte man die BCPL-Teile durch C. Und die modernen PowerPC-Versionen dürften wohl zum allergrößten Teil auf C setzen, obwohl ich mir durchaus vorstellen kann, dass es Spaß macht, einen Prozessor mit so vielen Universal-Datenregistern in Assembler zu traktieren.

    Aber das, was der Volksmund üblicherweise unter Betriebsstem versteht, also Windoze, MacOS, diverse Unixe basiert allergrößtenteils auf C- und C++-Quälcode und entsprechend crappy sind die auch alle ... ;-)


    Und mit welchen Plattformen (Software)?

    Falls du damit IDEs meinst: Je nach Vorliebe des Programmierers. Zumindest wüsste ich nicht, warum sich ein guter Programmierer das vorschreiben lassen sollte. ;-)

    1. Mit C und C++ kann man doch auch Windows und Linux Anwendungen schreiben. Wie soll ich mir die beiden Programmiersprachen vorstellen?
    Kann man mit diesen Sprachen so viel machen?

    Ja kann man. Weil beides unglaublich primitive Sprachen sind (die c-Fanboys nennen das \"hardwarenah\"). C stellt nur einen kleinen Satz an Grundbefehlen und Programmablaufstrukturen zur Verfügung. Aus denen baut man dann Schritt für Schritt immer komplexere Programme zusammen. Die Teile, die unter Windoze DLLs heißen, sind so genannte Libraries (Bibliotheken) mit Unmengen an Funktionen, die ein Programm nutzen kann. Stell dir das mehrfach übereinandergestapelt vor: eins.dll stellt für zwei.dll wichtige Grundfunktionen zur Verfügung. zwei.dll wiederum liefert für drei.dll Funktionen. ... Am Ende der Kette steht dann ganz_komplexes_anwenderprogramm.exe, bspw. ein Grafikprogramm.

    2. Wie, glaubt ihr, kriegen die es hin, solche Graphischen Oberflächen einzubauen? Müssen die die auch schreiben? Das muss
    doch irre schwer sein, weil man nicht das \"Bild\" was man macht vor sich hat.

    Der Programmierer der eine Anwendung mit GUI (\"grafische Benutzerschnittstelle\") programmiert, klickt nur ein paar Elemente zusammen.

    Der Programmierer, der die Funktions-Bibliothek für die GUI programmiert, setzt nur fertige Betriebssystemfunktionen ein, die von anderen Bibliotheken zur Verfügung gestellt werden. Sowas wie: \"zeichne_Rechteck()\" oder \"war_MouseKlick_im_aktuellen_Erfassungsbereich()\".

    Und die Programmierer dieser Bibliotheken machen das gleiche. Sie greifen auf Bibliotheken zurück, die sich Driver (oder dämlich ins Deutsche übersetzt: \"Treiber\") nennen: Da stehen dann Funktionen drin wie: \"zeichne_Bildpunkt(Koordinate_X, Koordinate_Y, Farbe)\" oder \"liefere_Mauszeigerkoordinaten()\".

    Naja, und die \"Treiber\"-Programmierer sind natürlich in den A**** gekniffen. Die müssen dann mit HexEditor, Datenport-Analysator und Assembler bewaffnet rausfinden, in welchem Hardwareregister sich was wie ändert, wenn der Benutzer oder irgendein Peripheriegerät was tut.

    ... und in Wirklichkeit ist das alles noch viel komplizierter. Kannst dir ja mal mithilfe von Google oder Wikipedia ein Schichtenmodell eines modernen Betriebssystems anschauen. ;-)


    3. Der Kernel ist doch der Kern des Systems. Was macht der eigentlich genau?

    Kommt drauf an. Irgendwie muss er das System von Null auf einen bedienfähigen Zustand hochfahren. Das nennt man Booten. Für den Teil ist in einem OS daher der Bootloader zuständig. Und das oben erwähnte Betriebssystem des C64 ist tatsächlich auch nicht mehr als ein Bootloader.

    In einem richtigen OS kommt dann noch ein bisschen Grundfunktionalität dazu. Das oben ebenfalls erwähnte AmigaOS hatte im Kernel neben der Multitasking-Verwaltung gleich noch die Grafik-Ausgabe und das Fenstersystem eingebaut (inkl. Maustreiber) und ein paar Treiber für Festplatte, Diskette und Sound eingebaut. In (je nach Version) 256 oder 512 KBytes. :cool:

    Bei Linux ist doch bei allen Distributionen der Kernel derselbe, ...

    Neee, gerade bei Linux ist es doch Mode, dass jeder seinen eigenen Kernel kompiliert.

    ...
    aber trotzdem gibt es doch kleine bis sehr entscheidende Unterschiede zwischen den Distributionen.

    Sprich: ganz kleine bis ganz große. Deswegen ist Windoze immer noch so erfolgreich. Die alten Römer nannten das \"divide et impera\".

    @sovietcars:
    Ich kann kein C64-taugliches Assembler, wage aber zu behaupten, dass der C64-Hauptprozesser 6502 (im Orginal von Motorola) mit lediglich zwei Datenregistern wohl kaum ähnlichen Maschinencode verstanden hat wie ein 8086 und seine Nachfolger. Also werden auch die Assembler-Mnemonics anders ausgesehen haben.

    @davido: 1000-prozentig und doch daneben, du arbeitest ernsthaft als Entwicker in der Branche ...? ;-)

    Editiert von moritzpeuser: Doppelpost zusammengefasst. Bitte unterlasse zukünftig Doppelpostings!

    Beitrag geändert: 25.2.2008 12:01:39 von moritzpeuser

    Ja dankeschön -- obwohl das nie ein Doppelpost werden sollte, sondern ein Edit des ersten Posts. Daher hab ich jetzt das erste weggekürzt. Sonst steht ja der halbe Unsinn doppelt da.


    Beitrag geändert: 25.2.2008 20:26:58 von alopex
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!