Welche Programmiersprache für ein Betriebssystem?

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo, habe mich etwas in Java eingelesen und immer wieder gelesen, dass C Libraries aufgerufen werden, die zum BS gehören. Deswegen meine Frage direkt zu C. C/C++ wird immer mehr durch andere Sprachen ersetzt. C wird durch C++ ersetzt oder System C. C++ mehr und mehr durch Java/.Net...
Auf lange Sicht kann doch aber C/C++ nicht aussterben. Denn die BS Routinen müssen doch überwiegend in hardwarenahem, schnellen C/C++ geschrieben werden, oder? Aber wird heute noch ein so großes BS (bzw. der Kern) wie Vista oder Xp mit C/C++ geschrieben?



L-ectron-X hat diesen Beitrag am 21.05.2008 um 21:52 Uhr editiert.
Titel des Themas angepasst.
 

thE_29

Top Contributor
Was für ein Topic...

Manchmal frage ich mich, ob Topics nicht bald am besten abgeschafft werden sollten, wenn sowieso keiner was sinnvolles einträgt..
 

AlArenal

Top Contributor
Es wird irgendwie immer mehr zur Seuche. Auch beim E-Mail Verkehr stelle ich gehäuft das Vorkommen von Betreff-Verweigerern fest. Vielleicht sollte man sich mal fragen, ob man auch Zeitschriften und Bücher mit leeren / nichtssagenden Umschlägen kaufen und lesen würde...
 

Wolfram

Mitglied
Hi,

vielleicht hilft diese Sicht. Es gibt immer "low-level" und "mainstream" Programmmierung. "low-level" programmiert man, wenn man hardwarenah programmieren muss (Treiber z.B.) oder besondere Geschwindigkeitsanforderungen bestehen. "mainstream" seien der große Haufen an Applikationssoftware, der so tagtäglich geschrieben wird.

Über die Zeit wird das, was mal "mainstream" war, zur "low-level"-Programmierung, d.h. die Kategorien ändern sich über die Zeit. C war eine lange Zeit lang die Standardsprache, die auch zur Programmierung von normalen Applikationen eingesetzt wurde, und zwar hauptsächlich aus Geschwindigkeits- und Platzgründen. Eine Effizienz eines Bytecodeinterpreters (java virtual machine) von selbst 50% im Vergleich zu C wäre vor noch 10 Jahren für viele Applikationen nicht akzeptabel gewesen. Und erst eine Java Virtual Machine für ein kleines Kommandozeilentool laden zu müssen, hätte bedeutet, dass niemand dieses Tool benutzt.

Deswegen hat man "normale Applikationen" früher in C geschrieben, hat sich damit natürlich aber auch die ganzen C-spezifischen Probleme eingehandelt, speziell das Speichermanagement war lange Zeit ein echtes Problem. Dieses Problem taucht bei Java nicht auf (automatische Freigabe von Speicher), wie auch diverse andere Probleme nicht, weshalb Java viel sicherer zu programmieren ist. Für "mainstream"-Programme ist Java daher momentan die Sprache der Wahl.

C ist deshalb inzwischen zur "low-level"-Sprache "degradiert", und hat die Rolle, die früher Assembler hatte. Es wird also dort eingesetzt, wo hardwarenah programmiert werden muss oder besondere Geschwindigkeitsanforderungen bestehen, und denk dabei nicht nur an Treiber oder Videocodecs, denk auch an langsamere Chips in Handys, PDAs etc.

Ich persönlich glaube, dass C diese Rolle auch weiterhin beibehalten wird, weil es unter den "low level"-Sprachen diejenige ist, für die es für jede Prozessor/Betriebssystem-Kombination einen Compiler gibt. Assembler hingegen programmiert man heutzutage eigentlich gar nicht mehr, auch weil es relativ einfach ist, einen C Compiler (die "toolchain") für einen neuen Prozessor zu schreiben, weil nur noch das sog. "backend" angepasst werden muss.

Die Zukunft? Java wird "low level", und Web 2.0 zum Mainstream. Oder ich täusche mich komplett und Java stirbt einfach aus. ;)

Grüße,
Wolfram
 
G

Guest

Gast
In was werden eigentlich Betriebssysteme entwickelt? Die Kerne sind ja auch sehr hardwarenah bzw. die ganze Threadverarbeitung muss sehr schnell ablaufen. Also wird wohl C++ nie aussterben. Ebenso die Treiberprogrammierung, da diese ja möglichst effizient sein müssen, werden diese auch immer in C++ geschrieben, oder?
 

ms

Top Contributor
lhe hat gesagt.:
Bald? VM in der VM gibts schon lange...
Screenshot
:)
Ich teste meine Java-Webapps mit Tomcat in einer Linux-Virtual Environement (Centos mit OpenVz) deren Host-OS wieder rum in VmWare auf MacOSX läuft.

Man sollte C und C++ nicht in einen Topf werfen.
Glaube nicht, dass bei der Treiber und OS-Entwicklung objektorientiert entwickelt wird.

ms
 

moormaster

Top Contributor

Wolfram

Mitglied
Anonymous hat gesagt.:
In was werden eigentlich Betriebssysteme entwickelt? Die Kerne sind ja auch sehr hardwarenah bzw. die ganze Threadverarbeitung muss sehr schnell ablaufen. Also wird wohl C++ nie aussterben. Ebenso die Treiberprogrammierung, da diese ja möglichst effizient sein müssen, werden diese auch immer in C++ geschrieben, oder?

In der Allgemeinheit gestellt, ist die Antwort wohl C, und zwar ohne irgendwelche Sonderzeichen dran :) Das hat allerdings nicht mit mangelnder Objektorientierung zu tun - objektorientiert kann man auch in C programmieren, nur muss man die ganze schicke Funktionalität objektorientierter Sprachen halt von Hand ausprogrammieren. Nicht umsonst haben die ersten C++ Compiler nach C compiliert, nicht Maschinensprache (oder P-Code). Wenn sich an Datenstrukturen in Betriebssystemen eine Reihe von Zeigern auf Funktionen finden, handelt es sich um so etwas: Objektorientierte Programmierung in einer nicht-objektorientierten Sprache. Aber das nur am Rande.

Etwas weniger allgemein, ein Betriebssystem hat sehr unterschiedliche Aufgaben, und entsprechend dieser Aufgaben sind die Programmiersprachen und -umgebungen gewählt. Der Kern und die Treiber werden wohl fast ausschließlich in C programmiert, vielleicht mit ein paar eingestreuten Assembler-Anweisungen, so dass z.B. besondere Prozessoreigenschaften ausgenutzt werden können. Aber es gibt auch das große "Randgebiet" außerhalb dieser Schauplätze, Code, der mit Sicherheit Betriebssystemcode ist, aber weder hardwarenah ist noch besonders schnell sein muss.

In welcher Programmiersprache programmiert man am besten den "Datei öffnen"-Dialog?

Wenn Du Windows benutzt, hast Du vielleicht schon mal festgestellt, dass es 3 (oder so?) vom Betriebssystem zur Verfügung gestellte "Datei öffnen"-Dialoge gibt. Es gibt überhaupt keinen Grund, warum so ein Standarddialog in C oder C++ oder irgendwas anderem programmiert werden müsste. Wichtig ist nur, dass es eine bestimmte Methode gibt, diesen Dialog in ein eigenes Programm einzubinden, also nur eine Schnittstelle zu dieser Betriebssystemfunktion. In Windows ist dies die .DLL, die dynamic link library. Es gibt viele Programmiersprachen, die Programmfunktionen mit dieser (oder vergleichbaren, für andere Betriebssysteme) Schnittstelle erzeugen können, und also auch viele Sprachen, in denen "Betriebssysteme" geschrieben werden können.

Diese "Randfunktionen" von Betriebssystemen werden wohl in Zukunft eher weniger in C, und mehr in "managed code"-Sprachen implementiert werden.
 

L-ectron-X

Gesperrter Benutzer
thE_29 hat gesagt.:
Was für ein Topic...

Manchmal frage ich mich, ob Topics nicht bald am besten abgeschafft werden sollten, wenn sowieso keiner was sinnvolles einträgt..
Und ich frage mich, wozu du Modrechte hast, wenn du nicht mal den Beitrag editierst und einen passenden Titel setzt?
 

hansz

Aktives Mitglied
Gast hat gesagt.:
Hallo, habe mich etwas in Java eingelesen und immer wieder gelesen, dass C Libraries aufgerufen werden, die zum BS gehören. Deswegen meine Frage direkt zu C. C/C++ wird immer mehr durch andere Sprachen ersetzt. C wird durch C++ ersetzt oder System C. C++ mehr und mehr durch Java/.Net...
Auf lange Sicht kann doch aber C/C++ nicht aussterben. Denn die BS Routinen müssen doch überwiegend in hardwarenahem, schnellen C/C++ geschrieben werden, oder? Aber wird heute noch ein so großes BS (bzw. der Kern) wie Vista oder Xp mit C/C++ geschrieben?



L-ectron-X hat diesen Beitrag am 21.05.2008 um 21:52 Uhr editiert.
Titel des Themas angepasst.


Zur Enwicklung eines komplexeren Systems werden immer verschiedene Programmiersprachen verwendet. Ein gutes Beispiel ist z.B. das neu entwickelte "Handy-Betriebssystem" Google-Android.

code.google.com/android/what-is-android.html

Die Architektur der Plattform enthält einige C/C++ - Bibliotheken. Anwendungen für dies Plattform werden aber ausschließlich in Java programmiert. Von jeder Programmiersprache wird also "das Beste" verwendet. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
L Welche Methode? Java Basics - Anfänger-Themen 7
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
B Welche Java-Installation ist aktiv? Java Basics - Anfänger-Themen 2
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
U Welche Seite für Anfänger Java Basics - Anfänger-Themen 11
K Welche Entwicklungsumgebung für Einsteiger? Java Basics - Anfänger-Themen 16
S Webapplikation welche alternative zu gwt? Java Basics - Anfänger-Themen 2
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
S Welche Methode in JFrame überschreiben? Java Basics - Anfänger-Themen 12
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
Z Welche IO-Klasse verwenden? Java Basics - Anfänger-Themen 2
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
H Welche PDF Biblothek? Java Basics - Anfänger-Themen 6
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
K Welche Exception? Java Basics - Anfänger-Themen 6
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G welche Teile der api sind wichtig? Java Basics - Anfänger-Themen 3
K Welche methoden gibt es in Java um Zahlen von der Java Basics - Anfänger-Themen 11
G welche Java-Technologie für JDBC geeignet Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben