"Windowsprogrammiersprache"

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Eric
Beiträge: 303
Registriert: 05.09.2004 09:50
Wohnort: Göttingen

Beitrag von Eric »

Kyoko12 hat geschrieben:Also ich denke, dass Windows in C geschreiben ist, und nciht in C++, da man ein mit C++ kompiliertes Programm nicht einfach als OS verwenden kann, das muss man noch modifizieren.
So lange man nichts c++ spezifisches verwendet, ist das kein Problem.
Und sonst muss man noch Konstruktor- und Destruktor-Aufrufe, new, delete
und noch n paar Sachen implementieren, damit es funktioniert.
El_Choni_work: cant't you just spit the binary data to sqlite, as you would spit a hamster into a microwave oven?
* Fangles falls off the chair laughing
Bild
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Kyoko12 hat geschrieben:Sollte jemand ein OS schreiben wollen, empfehle ich ihm, alles in ASM zu machen, ist zwar aufwendig, aber dafür ist das OS dann, wenn man alles gut gemacht hat, extrem stabil und schnell.
Bootloader -> ASM(schön klein)
Kernel -> C(einfacher)

Das mit dem "stabil" und "schnell" ist ein Gerücht. Der User wird wohl kaum bemerken wenn etwas nun 1/10 Sekunden oder 1/9 Sekunden dauert. Außerdem liegt es ja auch am Menschen der das ganze programmiert, d.h. wahrscheinlich ist C die erste wahl denn es ist übersichtlicher. Wenn man nun ein 30 Kopf Team hat kann man darüber nachdenken ASM zu nehmen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Nik
Beiträge: 132
Registriert: 04.02.2005 19:57

Beitrag von Nik »

Mann kann sich aber auch nur nen Linux Kernel selbst programmieren das is für die meisten DAUs schwer genug^^ Und ja ich denke das Windows in C geschrieben ist und dafür gibt es sogar stichhaltige Hinweise und zwar die API dort ist alles C typisch und nicht im geringsten Objektorientiert jedenfall in den älteren teilen. Und ja man kann ich ein OS selber schreiben, allerdings würde ich den Bootloader net selber machen wozu gibt es schließlich GRUB der springt dir dann in deinen Code und fertig, den rest muss man sich selber schreiben wozu ich persönlich c oder c++ benutzen würde wobei man bei c++ eben new, delete usw selbst schreiben muss. Vorher sollteman sich allerdings angucken wie sowas geht und da der Monoelithische Linux kernel mit seinen mehreren millionen zeilen doch ein bischen grop (und verdammt veraltet von der Struktur her) ist nimmt man da am besten den NewOS Kernel von Haiku, oder noch kleiner den L4/Fiasco aus Dresden da muss man sich nur durch 20 000 zeilen Kernelcode quälen der rest sind dann eh nur noch Server für den Micro kernel, will man allerdings wirklich was erreichen sollte man wohl bei was bestehendem mit machen und sich vll dem haiku team anschlißen, die Programmieren ja auch alles in OOP C++ (nach dem SVN zu urteilen auch in sehr gut lesbarem Stil wenn ich mir da so den task Shedular angucke^^)
www.KoMaNi.de
Eine kleine Gruppe von Hobby Programmierern, die gerade einen Instant Messenger natürlich in PureBasic schreiben.
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

Nein es ist kein Gerücht dass es mit ASM schneller und stabiler ist, das kann ich aus eigener Erfahrung sagen, Der User merkt vllt. nicht unbedingt, wenn etwas um 1/10 schneller ist, aber de User bemerkt die Meisten dinge, die der Kernel macht, eben auch nicht. Für das System selbst macht 1/10 mehr oder weniger sehr viel aus!

Und ja, man kann C+ ohne modifikation verwendne, wenn man die C++ spezifischne Sachen weglässt, aber was hats einem dann gebracht, C++ zu verwenden?

mfg,
Maximilian Mayerl
Hallo, ich bin eine Sig...(ENDE DER DEMOVERSION, BITTE VOLLVERSION KAUFEN!)

PB 3.92
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

@Kyoko12:

das ist unsinn, es gibt auch C++ raw kompiler. Windows NT 4.0/2k/XP ist in C++ geschrieben, vieleicht nicht Win9X. Das läßt sich auch relativ einfach nachweisen, da viel über den geleakten Sourcecode geschrieben wurde.

Bei einem C Kompiler sind die Probleme beim OS schreiben genau die selben wie beim C++ compiler, so einfach hier und da mal auf funktionen zurückgreifen, die die fertige speicherverwaltung eines darunter laufenden Betriebsystems voraussetzen ist da auch nicht möglich, zumindest nicht beim grundlegendsten Kernel.

Assembly Programme sind nur solange schneller, solange sie auch optimaler geschrieben sind. Da Assembly extrem unübersichtlich und schwer wartbar ist, haben reine assembly programme tatsächlich die tendenz schlechter und damit langsamer zu sein, es sei denn es ist ein triviales Programm. Deswegen setzt man Assembly auch fast nur noch ein, um einzelne, in einer anderen sprache geschriebene funktionen zu ersetzen, also zum optimieren einzelner zeitkritischer Funktionen, nicht zur entwicklung ganzer Praogramme.
Benutzeravatar
Kyoko12
Beiträge: 45
Registriert: 22.11.2004 20:56

Beitrag von Kyoko12 »

Ich sagte ja, wenn man das Programm sauber geschreiben hat!
Und das Windows in C++ geschreiben ist glaub ich dir gern, ich hab ja gesagt, ich VERMUTE dass es nicht in C++ ist, dass ich etwas anderes weiß, habe ich nie gesagt.

Du kannst C.Code sehr wohl einfach als OS verwenden, natürlich OHNE die Bibliathektsfunktionen, aber C++ geht auch nicht einfach so, wenn du nur die "Standartsyntax" verwendest! Du musst die Compilierte *.o-Datei noch ein wenig im Hex-Editor bearbeiten! Wenn du C nimmst musst du das nicht! Um C im Kernel zu verwenden brauchst du nur ein kleines Zwischenprogramm zwischen Bootloader und Kernel, das mit dem C-Kernel gelikt wird, und in dem nix steht ausser dass der Folgende Code 32 Bit hat, also [BITS 16], und dann der Sprung zum Main-Laben, also call _main, und dann noch hlt! Dass brauchst du aber bei C++ auch.

mfg,
Maximilian Mayerl
Hallo, ich bin eine Sig...(ENDE DER DEMOVERSION, BITTE VOLLVERSION KAUFEN!)

PB 3.92
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Auf welchen C++ Compiler beziehst du dich da? Das wird nicht überall gleich gehandhabt.

Wenn man zb ein WinCE Kernel anpasst, welcher ebenfalls in C++ verfasst ist (da ist der SourceCode für Lizenznehmer und Universitäten verfügbar) sind keine Hexeditor-späßchen nötig. Da ist eine version des MSC++ compiler beim CE Devkit bei.
MARTIN
Beiträge: 454
Registriert: 08.09.2004 14:03
Wohnort: Kiel

Beitrag von MARTIN »

@Kyoko12
Was ist das für Quark was du da schreibst ?
Natürlich kann man in C++ ein OS scheiben.
Amilo 1667|Suse Linux 10.1_64bit/WinXP |PB 4.00/3.94
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Windows 98 wurde mit:
5% Assembler
80% C
und weitere (auf keinen fall VB)
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Leonhard hat geschrieben:Windows 98 wurde mit:
5% Assembler
80% C
und weitere (auf keinen fall VB)
Verb?
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Antworten