Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Betriebssystem in C geschrieben: Wie kann das funktionieren?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
23.08.2003, 20:55 Uhr
~Litte-OS-Programmer
Gast


Hallo!

Ich habe im Internet einmal nach dem Sourcecode eines sehr einfachen "Betriebssystems" gesucht (war eigentlich kein OS, sondern einfach nur ein Programm, das selbstständig vom Master-Boot-Record aus starten kann). Ich wollte einfach einmal wissen wie so ein Bestriebssystem intern ungefähr ausschaut.
Habe das Programm heruntergeladen, mit einem speziellen Tool in den Master-Boot-Record einer Diskette geschrieben und es hat wirklich funktioniert.

So, nun zur eigentlichen Frage: Auf der Seite, wo ich das Programm runtergeladen habe hat der Autor geschrieben, dass er das Programm eigentlich in C++ schreiben wollte, dann aber doch Assembler nehmen musste, da C(++)-Programme immer an ein Betriebssystem gebunden sind und ohne dieses nicht funktionieren.
Andererseits ist aber angeblich auch Windows selbst in C++ geschrieben. Wenn C-Programme an ein Betriebssystem gebunden sind, wie kann Windows dann funktionieren? Während Windows startet ist ja noch kein Betriebbsystem vorhanden.

Kann mir das mal jemand genauer erklären?

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.08.2003, 23:04 Uhr
~Anfänger00
Gast


Schon mal was von dos gehört?
soweit ich weiß wurde dos in assembler programmiert.Dann hat man c für dos entwickelt und diese Sprache dann weiterentwickelt(c++).Damit wurde dann Windows programmiert. (Wenn das hier nicht stimmt kann mich ja ein Wissender belehren )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.08.2003, 00:11 Uhr
virtual
Sexiest Bit alive
(Operator)


Lustige Theorie. (Sowohl die von Little-OS-Programmer, daß Windows funktionieren würde alsauch die, daß C für DOC entwickelt wurde).

C wurde tatsächlich dafür entwickelt, um ein Betriebssystem zu entwickeln, das hieß aber nicht DOS, sondern UNIX. So gegen 1970 war das (DOS kam erst sehr viel später auf den Markt). C verdankt seinen namen übrigens tatsächlich dem Umstand, daß es bereits die Sprachen A und B gab, welche Vorläufer des heutigen Cs waren.

Und da C dafür entwickelt wurde, um Betriebssysteme zu entwickeln, hat man auch genau das getan. Nicht nur UNIX, sondern eben auch später Windows. Allerdings wurde bei keinem dieser Systeme alles in C geschrieben, ein gewisser Teil (<=5% etwa) wurde in Assembler verfasst.

Im Unetrschied zu manch anderen Programmiersprachen der damaligen Zeit (zB COBOL) aber auch der heutigen Zeit (zB Java) war C immer eine Sprache, die eine programmierung ziemlich "nah an der Maschine" erlaubt. Wenn eine Programmiersprache zum Programmieren von Betriebssystemen geeignet ist, ist das nach wie vo noch C.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.08.2003, 00:25 Uhr
Pablo
Supertux
(Operator)


@Anfänger00: nein, nein, nein!

C wurde nicht für DOS (schlechte UNIX Shell Kopie) entwickelt und ich glaube kaum, dass DOS in Assembler geschrieben wurde.

C wurde (wenn ich mich nicht irre) von Ken Thompson, Dennis Ritchie und Brian Kernighan (und ich glaube auch AT&T) in den späteren 60gern Jahren entwickelt, zusammen mit UNIX. (Auch AT&T)
C++ wurde von Bjarne Strousrup (ich glaube 1985). C verdankt seinen Namen von A und B und BCPL.

Zitat:

Bjarne Stroustrup, Die C++ Programmiersprache, Kap. 1.3

C++ wurde für den Gebrauch ein einer traditionellen Übersetzungs- und Laufzeitumgebung, der C-Programmierumgebung unter UNX, etnworfen. Glückglicherweise war C++ damit jedoch nicht auf UNIX beschränkt. Es benutze einfach UNIX und C als Modell für die Beziehungen zwischen Sprache, Bibliotheken, Compilier, Binderm Laufzeit-Umgebung usw.


Kap 1.6
C wurde als Basissprache für C++ gewählt, weil C
1. vielseitig kurz und bündig sowie verhältnismäßig low-level ist,
2. für die meisten Systemprogarmmieraufgaben angemessen ist,
3. überall und auf der Hardware läuft und
4. in die UNIX-Programmierumgebung paßt*.




(*) deshalb passen C, C++ mit UNIX und Linux sehr gut zusammen.

Es gab schon hier die heiße Diskussion, ob Windows in C oder C++ geschrieben wurde, ich kann mich nicht erinnern, ob es C oder C++ war.
@Litte-OS-Programmer: was verstehst du unter Betriebssystem gebunden? Ich verstehe nicht, was du damit meinst? Dass es nicht portabel ist?

@virtual: du warst schneller als ich!

@Flo: ich glaube, es fehlt uns ein Smile mit NEIN, NEIN, NEIN!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 24.08.2003 um 00:30 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.08.2003, 00:48 Uhr
~Anfänger00
Gast


Danke leute,ich hab mir das bis jetzt immer so vorgestellt und meine vorstellung einfach mal aucf den Tisch gelegt. Hätte ja so seien können..
Ich halt einfach in Zukunft meine Klappe wenn ich keine Ahnung hab
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.08.2003, 01:21 Uhr
Pablo
Supertux
(Operator)


Musst du nicht! Aber man sollte von Anfang an sagen: das ist meine Vermutung, also es könnte falsch sein!

Mach dir keine Sorgen, als ich angefangen hab, mit VC++ (vor langer Zeit) zu porgg. dachte ich auch, dass C++ von Microsoft war und extra für Windows war. Ich weiß nicht wieso ich das geglaubt hab aber später hab ich die Wahrheit erfahren und fühlte mich so verarscht. Damals war ich von Windows besessen und dachte dass winodws das einzge gute war. Zum Glück hab ich die Augen geöffnet.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 24.08.2003 um 01:22 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.08.2003, 04:41 Uhr
~bloeb
Gast


hehe, du klingst wie nen sektenfuehrer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.08.2003, 10:55 Uhr
Oliver
S2-Pixelgeneral


Für Pablo und 0xdeadbeef gilt :


C++:
#include <iostream>

#define BW_SCHLECHT 0
#define BW_GUT         1

struct Produkt
{
char Hersteller[100];
int wasweissich;
};

Produkt XBox = {"Microsoft"};
Produkt Windows = {"Microsoft"};
Produkt MSDOS = {"Microsoft"};
Produkt Visual_Cpp = {"Microsoft"};

int bewerteProdukt(const &Produkt pro)
{
if(pro.Hersteller=="Microsoft") return BW_SCHLECHT;
else return BW_GUT;
}

int main()
{
// Produkte bewerten, überall wird 0 zurückgegeben
//...

return 0;
}




--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 24.08.2003 um 10:57 Uhr von Oliver Müller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.08.2003, 11:11 Uhr
Pablo
Supertux
(Operator)


@Oli:
Dein Code hat einen kleinen Fehler:

C++:
if(pro.Hersteller=="Microsoft")



Hersteller ist ein char* und dann kannst du nicht mit == nach Gleichheitprüfen, sondern mit strcmp, oder war das deine Absicht, dass wenn Hersteller Micr$oft ist, BW_GUT zurückgeliefert wird?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
24.08.2003, 11:14 Uhr
Oliver
S2-Pixelgeneral


Hab ihn ja nur mal schnell von Hand geschrieben, da passieren die einen oder anderen Fehler
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: