GELÖST Windows Programmierung

Diskutiere Windows Programmierung im Programmierung Forum im Bereich Software Forum; Mit welcher sprache wurde Windows Programmiert?
M

minder

Gast
Mit welcher sprache wurde Windows Programmiert?
 
Mike

Mike

i7-6700HQ
Team
Mitglied seit
21.09.2006
Beiträge
24.377
Standort
in der Nähe eines Rechners
Schätze mal in einigen unterschiedlichen aber sicher mit hohem Anteil von Assembler und C++
 
T

Tobias28

Mitglied seit
21.09.2005
Beiträge
853
Hier der komplette Windows 2000 Source Code :)
Code:
* Source Code Windows 2000 */

#include "win31.h"
#include "win95.h"
#include "win98.h"
#include "workst~1.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#include "monopoly.h"
#include "backdoor.h"
#define INSTALL = HARD

char make_prog_look_big(16000000);
void main()
{
  while(!CRASHED)
  {
    display_copyright_message();
    display_bill_rules_message();
    do_nothing_loop();

    if (first_time_installation)
      {
      make_100_megabyte_swapfile();
      do_nothing_loop();
      totally_screw_up_HPFS_file_system();
      search_and_destroy_the_rest_of-OS2();
      make_futile_attempt_to_damage_Linux();
      disable_Netscape();
      disable_RealPlayer();
      disable_Lotus_Products();
      hang_system();
      } //if
    write_something(anything);
    display_copyright_message();
    do_nothing_loop();
    do_some_stuff();

    if (still_not_crashed)
    {
    display_copyright_message();
    do_nothing_loop();
    basically_run_windows_31();
    do_nothing_loop();
    } // if
  } //while

  if (detect_cache())
    disable_cache();

  if (fast_cpu())
    {
    set_wait_states(lots);
    set_mouse(speed,very_slow);
    set_mouse(action,jumpy);
    set_mouse(reaction,sometimes);
    } //if

  /* printf("Welcome to Windows 3.1");    */
  /* printf("Welcome to Windows 3.11");   */
  /* printf("Welcome to Windows 95");     */
  /* printf("Welcome to Windows NT 3.0"); */
  /* printf("Welcome to Windows 98");     */
  /* printf("Welcome to Windows NT 4.0"); */
  printf("Welcome to Windows 2000");

  if (system_ok())
    crash(to_dos_prompt)
  else
    system_memory = open("a:\swp0001.swp",O_CREATE);

  while(something)
    {
    sleep(5);
    get_user_input();
    sleep(5);
    act_on_user_input();
    sleep(5);
    } // while
  create_general_protection_fault();

} // main
 
T

TheBigy

Mitglied seit
21.02.2007
Beiträge
965
Alter
25
Standort
Im Schwabenländle
Hier der komplette Windows 2000 Source Code :)
Code:
* Source Code Windows 2000 */

#include "win31.h"
#include "win95.h"
#include "win98.h"
#include "workst~1.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#include "monopoly.h"
#include "backdoor.h"
#define INSTALL = HARD

char make_prog_look_big(16000000);
void main()
{
  while(!CRASHED)
  {
    display_copyright_message();
    display_bill_rules_message();
    do_nothing_loop();

    if (first_time_installation)
      {
      make_100_megabyte_swapfile();
      do_nothing_loop();
      totally_screw_up_HPFS_file_system();
      search_and_destroy_the_rest_of-OS2();
      make_futile_attempt_to_damage_Linux();
      disable_Netscape();
      disable_RealPlayer();
      disable_Lotus_Products();
      hang_system();
      } //if
    write_something(anything);
    display_copyright_message();
    do_nothing_loop();
    do_some_stuff();

    if (still_not_crashed)
    {
    display_copyright_message();
    do_nothing_loop();
    basically_run_windows_31();
    do_nothing_loop();
    } // if
  } //while

  if (detect_cache())
    disable_cache();

  if (fast_cpu())
    {
    set_wait_states(lots);
    set_mouse(speed,very_slow);
    set_mouse(action,jumpy);
    set_mouse(reaction,sometimes);
    } //if

  /* printf("Welcome to Windows 3.1");    */
  /* printf("Welcome to Windows 3.11");   */
  /* printf("Welcome to Windows 95");     */
  /* printf("Welcome to Windows NT 3.0"); */
  /* printf("Welcome to Windows 98");     */
  /* printf("Welcome to Windows NT 4.0"); */
  printf("Welcome to Windows 2000");

  if (system_ok())
    crash(to_dos_prompt)
  else
    system_memory = open("a:\swp0001.swp",O_CREATE);

  while(something)
    {
    sleep(5);
    get_user_input();
    sleep(5);
    act_on_user_input();
    sleep(5);
    } // while
  create_general_protection_fault();

} // main
RÖFL :rofl1 einfach geil:D
 
S

singh

Mitglied seit
19.09.2007
Beiträge
724
Alter
28
Standort
%windir%
Hallo minder,

Wie MikeK es schon sagte, würde Windows in weiten Teilen mit Assembler und C++ geschrieben.
Ich glaub der Bootvorgang (Bootmanager etc.) wurde in Assembler geschrieben..

Mfg
Singh
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Solange Microsoft den Quellcode nicht freigibt, lässt sich ja nur darüber spekulieren.

Aber C, C++ und Assembler sind aber wohl sicher die naheliegensten Annahmen. Speziell im Kernel und den meisten Systemkomponenten wurde sicher nichts anderes verwendet.
 
B

BitKiller

Mitglied seit
18.07.2007
Beiträge
365
Standort
Paderborn
eigentlich hätten die das ruhig in c# schreiben können, dann hätten sie ihren mfc-mist gleich mal nutzen können, und denen wäre vielleicht aufgefallen, was sie da verzapfen. ist ja fast wie java mit sonem zeichentool nutzen, um ein paar jframes zu erzeugen :mad

ps: der kern wird assembler sein (kernel, bootloader, etc). der rest definitiv nicht. da wird eher c/c++ genutzt worden sein. alles, was mit grafik zu tun hat, auf jeden fall c++ oder c#
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
C#? Das ist aber nicht wirklich dein Ernst, oder? :D

C# ist erstmal nicht der Nachfolger von C++, wenn du das jetzt glaubst und außerdem gibt es C# erst ein paar Jahre.

Außerdem kann man im Nachhinein immer sagen, man hätte auch alles anders machen können. Das M$ sich leichter getan hat, weil sie genau sehen konnten wo Java Probleme hat, ist ja klar. Die ganzen .NET-Sprachen sind aber dennoch keine direkte Konkurrenz zu Java. ;)

Der Kernel von Windows ist übrigends viel zu groß um nur in Assembler geschrieben zu sein. Wer schon mal mit Assembler programmiert hat wird wissen wie aufwändig, kompliziert und vor allem fehleranfällig so ein System sein müsste. Sowas liese sich niemals richtig warten.
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.053
Vor allem sind wesentliche Bestandteile von Windows so alt (auch wenn die bei fast jeder Version umgeschrieben werden), da gab es noch nicht einmal einen Entwurf von C#.
 
S

singh

Mitglied seit
19.09.2007
Beiträge
724
Alter
28
Standort
%windir%
Hallo Zusammen,

Wie kompliziert Assembler überhaupt ist zeigt das berühmte Programm Hello World das bei anderen Sprachen sehr leicht zu verstehen ist.

Hello World in Assemblersprache (MS-DOS):

DATEN SEGMENT ;- Beginn des Datensegments
Meldung db "Hello World" ;- Die Zeichenkette "Hello World"
db "$" ;- Endzeichen der Zeichenkette
DATEN ENDS ;- Ende des Datensegment
CODE SEGMENT ;- Beginn des Codesegements
ASSUME CS:CODE,DS:DATEN ;- Dem Assembler die Segmente mitteilen
Anfang: ;- Label für den Anfang des Programmes
mov ax, DATEN ;- das Daten...
mov ds, ax ; ...segment laden
mov dx, offset Meldung ;- den Text in das Datenregister laden
mov ah, 9 ;- dem Betriebssystem mitteilen, was wir wollen
int 21h ;- diesen Befehl ausführen (hier Ausgabe des Texts)
mov ah, 4Ch ;- dem Betriebssystem wieder mitteilen, was wir wollen
int 21h ;- diesen Befehl wieder ausführen
CODE ENDS ;- Ende des Codesegments
END Anfang ;- dem Assembler das Ende des Labels Anfang mitteilen

Hello World in Assemblersprache (Jasmin):

; HelloWorld.j

.bytecode 50.0
.source HelloWorld.java
.class public HelloWorld
.super java/lang/Object

.method public <init>()V
.limit stack 1
.limit locals 1
aload_0
invokespecial java/lang/Object/<init>()V
return
.end method

.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc "Hello World!"
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method
Quelle: http://de.wikipedia.org/wiki/Assemblersprache#Hello_World_in_Assemblersprache

Mfg
Singh
 
D

dlonra

Mitglied seit
19.10.2005
Beiträge
1.149
Also ich sag ganz frech

Visual Basic :D

C++ ist zu kompliziert :aah

Auf Wikipedia hab ich mal gelesen was C# sein soll.
Es ist ein Weiterentwicklung von Java.
Also C# läuft in einer Virtuellen Maschine...
Aber der Witz zu C# ist das es keine Virtuelle Maschine für Linux gibt.
Dazu muss man sagen das es fleisige Hacker gibt, die
die C# Maschine auseinader genommen haben.
Das Projekt nennt sich MONO (Linux).
Ich hab nur darüber gelesen!!!
Mit C# kann ich nichts anfangen, ich bin schon froh, dass Java den
gleichen Synthax hat wie C++ hat. (zu 90% jedenfalls)
Den Synthax von C# möchte ich mir nicht reinpfeifen, da
ich nur als Hobby ein wenig programmiere...
Da gibt es ja schließlich Profis.

@DiablerNoir
Wenn du dieses noch ließt, sag doch mal kurz was C# besser, wie Java kann.
Oder liege ich mal wieder komplett verkehrt und C# hat nichts mit Java gemein.
Ist der Synthax mit einer ander Hochsprache ähnlich?
Danke Dir ;)
 
D

dlonra

Mitglied seit
19.10.2005
Beiträge
1.149
Hallo,

Folgende Zittate von http://de.wikipedia.org/wiki/.Net

Entstehungsgeschichte

Die Entwicklung der .NET-Plattform war einerseits notwendig, um die in die Jahre gekommenen Technologien von Windows durch neue Technologien zu ersetzen, jedoch andererseits das Ergebnis des Rechtsstreits von Microsoft mit Sun über Java. Microsoft adaptierte die von Sun entwickelte Java-Technologie und erweiterte sie nach den eigenen Bedürfnissen, was die Plattformunabhängigkeit von Java-Applikationen beeinträchtigte. Als Sun dies unter anderem durch Gerichtsverfügung unterband, wechselte Microsoft die Strategie. Zudem war es Microsoft bis zur Erfindung von .NET nicht gelungen, im lukrativen Markt für mobile Kleingeräte Fuß zu fassen.

Es hatten sich zudem mit der Zeit verschiedene, zueinander inkompatible Softwaresysteme für Windows entwickelt. Die drei für Windows meistverwendeten Programmiersprachen C++, Visual Basic sowie die Microsoft-Implementierung einer Java-Syntax, J++, waren zueinander nicht kompatibel und die Zusammenarbeit über verschiedene Brücken erwies sich als sehr mühsam.
Plattformunabhängigkeit

Die angestrebte Plattformunabhängigkeit ist unter .NET theoretisch vollständig gegeben, da einerseits Microsoft selbst eine abgespeckte .NET-Variante namens Rotor für Mac und FreeBSD zur Verfügung stellt, andererseits sich Open-Source-Projekte einer Implementierung auf Grundlage des ECMA-Standards angenommen haben.

Die beiden wohl am weitesten Entwickelten Projekte sind Mono, das vom Hersteller Ximian initiiert wurde, und das dotGNU-Projekt, welches an einer Portable.NET genannten Laufzeitumgebung arbeitet. Beide Implementierungen sind jedoch noch nicht auf dem Entwicklungsstand von heutigen .NET.
Der reiz von Java ist, dass Sun für alle Betriebsysteme eine
virtuelle Maschine entwickelte. Ziel war es eine Programmiersprache
zu entwickeln, die auf jedem Betriebssystem funktioniert!!
Um zum Beispiel aus dem I-Net heraus mit dem ein und dem Selben
""SCRIPT""" auf jedem System zu gelangen.

Microsoft legen neue Stadarts fest und schließen etaplierte Systeme aus!!!
Und wohl gemerkt, Windows ist vom ANSI - Standpunkt her Linux unterlegen.
Man könnte auch böses denken, wenn man behauptet Microsoft möchte
mit dem .Net Zeug etwas vernüftiges über sich stülpen :D


Ich hab hald ein alten Borland c++ (mal günstig geschenkt bekommen)
Bei dem ganzen Microsoft Zeug kann und will ich preislich nicht mitgehen.
PS: auf der MONO Seite steht, das sich Microsoft weiterhin weigert den
Source-Code herauszurück ?? (((4. Oktober)))
(ich drücke das als Frage aus ;) )

Grüsse + Guten Morgen
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
@dlonra:

Hmmm...eigentlich sollte das mal wehr ändern. .NET ist weder ein Nachfolger von Java, noch strebt es Systemunabhängigkeit an.

Ziel von .NET war/ist einerseits auf lange Sicht das Ersetzen der klassischen Windows API durch ein objektorientiertes Modell und vor allem das Zusammenführen von Programmiersprachen.

Dass .NET dadurch theoretisch (bzw. Mono erlaubt bereits VB-/C#-Programmen das Ausführen unter Linux und Windows ohne Neukompilierung) plattformunabhängig ist, ist letztendlich nichts anderes als ein Nebeneffekt. Das liegt eben daran, dass die Programme nicht mehr direkt auf Betriebssystemfunktionen zurückgreifen müssen und das Framework einen Layer bildet. Theoretisch reicht es wenn ein Betriebssystem diesen Layer bietet.

Außerdem: .NET-Programme laufen anders als JAVA-Programme NICHT in einer VM. (Gerade weil plattformunabhängigkeit nicht das Ziel ist) Sie werden über einen Just-in-Time Compiler von MSIL in nativen Code bei der Ausführung übersetzt. Java kann sich wegen der VMs keiner speziellen Optimierung bedienen. Das ist halt der Preis der Plattformunabhängikeit.


Wegen des Preises: Die Compiler sind alle kostenlos im .NET Framework SDK enthalten. Also bräuchte man nur mehr Notepad oder einen Editor mit Syntax-Highlighting wie zB Notepad++ zum Schreiben von .NET-Programmen.

Natürlich braucht man bei komplexeren Anwendungen dann schon eine IDE. Visual Studio 2005 Express ist aber auch kostenlos von Microsoft herunterladbar.

Außerdem gibt es da ja auch noch die Alternative SharpDevlop. Die IDE ist auch kostenlos.


Ich würde aber sagen, wenn du dich mehr dafür interessierst, dann mach einen eigenen Thread auf...denn es geht hier eigentlich nicht um .NET.
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.053
Erinnerung

Hallo Leute, die ursrüngliche Frage des Themenstarters war
"Mit welcher sprache wurde Windows Programmiert?"
 
D

dlonra

Mitglied seit
19.10.2005
Beiträge
1.149
@Danke NiableNoir :up
Hab schon gedacht du antwortest nicht.
Vielleicht werde ich mir auch so ein Buch mit CD/DVD kaufen um
ein bisschen mit c# zu spielen. (obwohl mir die API32 reicht)
Für einen "Quereinsteiger" ist es schon happig erstmal den Wiki Text zu
verstehen.

@automatthias
Ihr habt hier mit C# angefangen.
Ich wollte nur sagen das es nicht C# gewesen sein kann.
Oder doch :unsure Muss erst meine Theorie überdenken.

Also grob kann man sagen (XP!) alle Programm, die im system32 Ordner
mit Bildchen sind, wurden mit Visual Basic programmiert.
Die Programme ohne Bildchen mit Assembler.
Die DLL's mit C++.
Das ist meine Theorie, aber wie DiableNoir schon gesagt hat rückt
Microsoft keinen Code heraus. ;)
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
@dlrona:

C# sicher nicht. Genauso wenig VB. Programme die Icons haben sind noch lange keine VB-Programme. (Was nicht einmal technisch möglich wäre, denn die VB-Runtimes bzw. Controls sind ja gar nicht standardmäßig im System integriert.) Genauso wenig sind Programme ohne Icons automatisch in Assembler geschrieben.

Programme ohne Icons sind meist schlicht und einfach Konsolenprogramme, weil sie eben keine Icons brauchen. So gut wie alles wurde in Windows mit C bzw. C++ geschrieben.

Teile des Kernels bzw. des Bootloaders müssen natürlich zwangsläufig in Assembler geschrieben worden sein. Aber sicher nicht alles.
 
D

dlonra

Mitglied seit
19.10.2005
Beiträge
1.149
@DiableNoir

Ganz ehrlich:
Es ist für mich immer wieder erstaunlich, wie wenig man eingentlich
wissen muss, wie es die Entwicklungsumgebung mit dem compilierten
Programmcode letzlich zusammen bindet (linkt).
Und eine exe daraus macht.
Mag ja sein das .Net eine Tolle Sache ist, aber letztendlich liegt es
nicht in unserer Hand, wie es Microsoft im Hintergrund anstellt.

Ich gehe natürlich von mir aus, da ich kein Studium (offiziell) mache.

Mit meinem Borland bin ich sehr zufrieden.
Ich hab mal in anderen Foren Code angeschaut über Visual C++.
Ich als Laie und Borland verwöhnter kann es nicht verstehen wieso man
API Funktionen nochmals deklarieren muss usw..
Microsoft hat einen riesen genialen Schachzug vor ca. 5 Jahren gemacht.
Microsoft hat nämlich den Entwicklungschef (und...oder) von Borland abgeworben.
Seit dieser Zeit weisen die Microsoftentwicklungsumgebungen deutlich
Borland Merkmale auf.
Das ärgert mich!!!!!!!! Borland war besser! und noch.

Die viel Gelobte MFC (klassen-Modell) ist zu kompiziert und
konnte es nicht mit er VCL bzw. RAD von Borland aufnehmen.
Ich arbeite viel lieber mit der VCL, da ich auch die MFC nicht kenne.
Hab aber natülich Code im Internet gesehen, für die MFC.

Grüsse
 
S

Smilodon

Mitglied seit
26.07.2007
Beiträge
1.627
Alter
33
Standort
hinterm Deich
VB .NET und C++, C# will ich noch lernen. Aber noch mal ne andere Frage: Welche Software nutzt Ihr derzeit zum Programmieren??? Ich nutze derzeit das Visual Studio 2008 Team System BETA 2. Aber ich finde, dass es nicht viel neues gibt seit dem 2005er.

MFG Smilodon
 
Thema:

Windows Programmierung

Sucheingaben

in welcher sprache ist windows geschrieben

,

in welcher sprache ist windows programmiert

,

in welcher sprache ist windows 10 geschrieben

,
mit welcher programmiersprache wurde windows programmiert

Windows Programmierung - Ähnliche Themen

  • Windows 10 - PIN-Anmeldung funktioniert nicht mehr / PIN zurücksetzen oder ändern.

    Windows 10 - PIN-Anmeldung funktioniert nicht mehr / PIN zurücksetzen oder ändern.: Hallo, meine PIN-Anmeldung bei meinem Windows 10 PC funktioniert aus unerklärlichen Gründen nicht mehr. Jetzt wollte die PIN über die...
  • Windows 10 Mail Programm öffnet sehr langsam

    Windows 10 Mail Programm öffnet sehr langsam: Windows 10 Mail Programm öffnet sehr langsam.
  • Windows 10 pro Datensicherung auf externer Festplatte

    Windows 10 pro Datensicherung auf externer Festplatte: Datensicherung auf externer Festplatte. Funktioniert wie angegeben nicht, da Beschreibung Windows 7 ist. Ich finde keine Möglichkeit, wo ich...
  • Windows 10 konnte nicht installiert werden. 0xC1900101 x 0x30004

    Windows 10 konnte nicht installiert werden. 0xC1900101 x 0x30004: "Die Installation war nicht erfolgreich. In der Phase FIRST_BOOT ist während des Vorgangs INSTALL_RECOVERY__ENVIRONMENT ein Fehler aufgetreten."...
  • Voraussetzung für Windows 8 App Programmierung

    Voraussetzung für Windows 8 App Programmierung: Hallo Was ist alles nötig um erfolgreich eine Windows 8 App zu programmieren? Bei Apple im Appstore benötigt man ja z.B. einen extra...
  • Ähnliche Themen

    Oben