Forum: Mikrocontroller und Digitale Elektronik WIN oder Linux


von Tom (Gast)


Lesenswert?

Hallo zusammen....

mal stelle sich vor man möchte bei einen alten PC die Hartware
programmieren. (Bischen auf den ISA-Bus ,LPT, COM schreiben(lesen).

Jetzt stellt sich mir mur die Frage unter welchem OS kommt man
schneller zum Ziel wenn man in C(++) programmiert.

P.s.
Das ganze soll eigendlich nur als Spielerei gedacht sein, um zu sehen
wie man soetwas macht.


(Zum Rechner
Pentium I
32MB Ram
1,2GB HD
10 MBit-LAN)

von Sascha Weitkunat (Gast)


Lesenswert?

DOS

von Tom (Gast)


Lesenswert?

DOS ist war einen Möglichkeit, aber meiner Meinung nicht mehr wirklich
Zeitgemäß.

von Philipp Hoffmann (Gast)


Lesenswert?

BEOS

von Markus Kaufmann (Gast)


Lesenswert?

Nimm Linux, da läuft auch ein aktuelles System (ohne grafische
Oberfläche) noch auf der alten Hardware. Außerdem bekommt man da fast
alle Treiber im Sourcecode, was insbesondere für den Zugriff auf die
ISA-Karte wichtig ist.

Markus

von thkais (Gast)


Lesenswert?

Warum ist DOS nicht zeitgemäß?
Es kommt darauf an, was Du machen willst.
Möchtest Du
- nette Bildchen mit der Maus rumschieben
- Videos bearbeiten
- Pseudo-Multi-Tasking programmieren
usw.,usw. - dann nimm Windows. Ist aber wohl nicht Dein Ernst, auf
einem Pentium I das "zeitgemäße" XP zu installieren.

Möchtest Du
- wirklich richtigen Zugriff auf die Hardware
- unkompliziertes Handling mit der Bildschirmausgabe
- einfache Funktionen für Betriebssystemzugriffe
usw. usw. dann nimm DOS. Oder, wenns schon grafisch werden soll: DOS
mit aufgesetztem WIN3.11. Sollst mal sehen, was so ein Pentium I in der
Lage zu leisten ist, wenn er nicht von "aktueller" Software aus
Redmond ausgebremst wird.
Die Trennung von Betriebssystem und grafischer Oberfläche hat enorme
Vorteile - die auch Linux hat. Linux wäre wohl das Beste, denn hier hat
man echte Kontrolle über das System, man muß sich aber auch ein wenig
mit der Materie beschäftigen.

von Tom (Gast)


Lesenswert?

Sorry ich wollte dir nicht auf den Schlipps treten! Natürlich ist Dos
ein "schön" "schmales" Betriebssystem. Und warscheinlich kann man
mit Dos eine Performens erreichen, welchen kein anderes OS erreicht.
Aber das ist nicht der "springende" Punkt.

Das einzieg wirklich überzeugende Argument für Dos ist meiner Meinung
nach die kurze Ladezeit.

Wie auch immer, werde mir deine Anmerkungen noch mal durch den Kopf
gehen lassen.

XP war eigendlich nicht geneint, aber vieleicht Win95b

von Pete (Gast)


Lesenswert?

Wo ist beim direkten Hardwarezugriff der Unterschied zwischen Win95,
Win98 und DOS. Beide Win Systeme setzen auf DOS auf erlauben also auch
direkte Hardwarezugriffe. Wogegen alle Windows Versionen die auf OS2
aufsetzen (WinNt Win2000 WinXP) keine direkten Hardwarezugriffe
erlauben sondern nu noch über Treiber. So viel ich weis ist das auch
unter Unix so, dass keine direkten Hardwarezugriffe erlaubt sind und
man eigene Treiber programmieren muss.

von Andreas Haimberger (Gast)


Lesenswert?

Meine Meinung dazu:

1.)
Hat das Thema wenig bis gar nix mit Mikrocontrollern zu tun.

2.)
Win95b ist genausowenig "zeitgemäß" wie DOS.

3.)
Wenn du wirklich Hardware-nahe programmieren willst, ist DOS viel
besser geeignet als alle Windows-Clone, speziell dann, wenn es um
zeitkritische Anwendungen oder sogenannte "Echtzeit"- Anwendungen
geht. Eine grafische "Klicki-Bunti"-Oberfläche wie bei Windows ist
dann halt nicht mehr drin. Dafür hast du vollen unbeschränkten Zugriff
auf alle Interrupts und Hardware-Ports des PC.

4.)
Moderne "zeitgemäße" Windows-Versionen (Win2000, WinXP) verbieten
sowieso direkte Hardware-Zugriffe. Unter diesen Betriebssystemen kommt
man nur mehr indirekt über Treiber an die Hardware heran. Wenn du
zeitkritische Anwendungen ("Echtzeit-Anwendungen") programmieren
willst, kannst du alle modernen ("zeitgemäßen") Windows-Versionen
vergessen, die sind dafür völlig ungeeignet.

Grüße, Andy

von Markus Kaufmann (Gast)


Lesenswert?

@Pete:
Seit wann setzen denn WinNT und Nachfolger auf OS/2 auf? Da hast Du
irgendwas falsch verstanden.

Unter Unix braucht man eigentlich schon Treiber, allerdings sind bei
Linux ja sehr viele Beispiele dabei, die man nur noch abzuwandeln
braucht und außerdem kann man als root auch direkt auf die Hardware
zugreifen. Das bekannteste Beispiel dafür ist der XServer.

Markus

von thkais (Gast)


Lesenswert?

Neeee - hab mich doch nicht aufn Schlips getreten gefühlt.

von Pete (Gast)


Lesenswert?

WinNT und Win2000 setzen sehr wohl auf OS2 auf, die Lizenz wurde
irgendwann von Mister Gates gekauft und durch ufsetzen einer grafischen
Benutzeroberfläche "verbessert"

von Markus Kaufmann (Gast)


Lesenswert?

Pete:
Da hast Du was gründlich mißverstanden. IBM und Microsoft haben OS/2
zusammen entwickelt. Aus der Zeit gibt es auch noch Zitate von Bill
Gates, in denen er OS/2 in den Himmel lobt.

Irgendwann haben sie sich dann gestritten, in welche Richtung die
Entwicklung gehen sollte und beide sind eigene Wege gegangen.

Aber das gehört nicht hierher.

Markus

von Tom (Gast)


Lesenswert?

@Andreas Haimberger
Doch das Thema hat etwas Mikrocontrollern zu tun, auch wenn man das
durch die Abschweifung von Win-Fachgesimpel nicht mehr auf den ersten
blick sieht(nicht böse gemeint :-) ).



1.)
Mir ging es eigendlich nur darum welches OS besser geeignet ist für
Hartware-Programmierung. "Punkt"

2.)
Es wird auf keinen Fall WinNT, Win2K, oder WinXP zum einsatz kommen.
Darum bitte keine weiteren Artikel dazu!

3.)
Was das Thema mit Mikrocontrollern zu tum hat:
            - mir geht es darum schnell mal einen Chip anzusteuern um
              zu verstehen was im Datenblatt für mich nicht zu
              versteghen war.

            - µC-Programmierung ist nach meiner Meinung für soche
              Aufgaben ein bischen zu langwierig. Darum der PC

von Markus Kaufmann (Gast)


Lesenswert?

@Tom:

Aber gerade wenn Du einen Chip zu Testzwecken ansteuern willst ist das
Timing sehr wichtig. Und gerade dann empfiehlt sich DOS. Bei allen
neueren "normalen" Betriebssystemen (Win3.1 und aufwärts, Linux usw.)
kannst Du nicht vorhersagen, wie oft Dein Task drankommt. Da schreibt
das Betriebssystem im Hintergrund mal den Cache auf Platte und Du hast
deswegen plötzlich einen Aussetzer von 50ms in Deiner Anwendung.

Da stellt sich vielmehr die Frage, ob ein Microcontroller dafür nicht
doch besser geeignet ist, insbesondere, weil manche ja bereits I2C, SPI
und dergleichen in Hardware machen.

Markus

von christ (Gast)


Lesenswert?

@Tom: ...am besten gar kein OS!
Wozu braucht man eigentlich ein OS? Um (Kurzliste!!!)
- ein Entwicklungstool (Compiler etc.) laufen zu lassen
- Ergebnisse auf einem Massenspeicher abzulegen (Stichwort:
Filesystem)
- Programme vom Massenspeicher ins RAM zu laden und zu starten
(Stichwort: Bootstrap)
Was soll das OS NICHT tun???
- Systemressourcen fressen (hallo Bill Gates...)
- Speichermanagement durcheinander bringen (s. oben...)
- zeitliche Abläufe beeinflussen, falls mein Programm in Echtzeit
laufen muss (Stichwort: Time-Sharing, M$-Multitasking etc.)
Theoretisch dürfte auch ein BIOS für die o.g.Aufgaben ausreichend sein;
zu Z80-CPM-Zeiten und davor gab es noch sog. "PROM-Monitore", die
genau die Funktionalität haben, die man hier benötigt; als
W95-geschädigter ist man aber mit etwas mehr Komfort gewöhnt, deswegen
ein Betriebssystem.
Ich würde das sog. FreeDOS empfehlen: freeware, auf SuSE-CDs erhältlich
(Boot-Diskette-Image), stellt die Funktionalität ohne Ballast zur
Verfügung. Wegen zeitgemäß: im Unterschied zu MSDOS, das bis zum Ende
ein 16-Bit-OS war, ist FreeDOS 32-Bit-tauglich (zwar uninteressant, da
hardwarenah am OS vorbei programmiert wird), aber immerhin... Wird
übrigens von vielen Unternehmen im Embedded-Bereich eingesetzt.

viel Spaß!

von Matthias (Gast)


Lesenswert?

Hallo,

das beste Betriebssystem für hardwarenahe- und Echtzeit- programmierung
ist "QNX".

Es ist ein 32bit Multitasking Echtzeit Betriebssystem, welches
POSIX/Unix/Linux kompatibel ist !

einge Vorteile:
- sehr gute Dokumentation/Hilfe
- Mikrokernel Architektur
- kein Unterschied zwischen System Prozessen und "user-written"
Prozessen, System Prozesse können zur Laufzeit gestartet und gestopt
werden
- Funktionen / Librarys für PCI-Bus, TCP/IP, USB, .................
- QNX existiert seit 20 Jahren mit erfolg!
...

Bei QNX besteht aber auch wie bei Linux eine gewisse Einarbeitungszeit
...

QNX6 (Codename: Neutrino/Momentics) gibt es in einer kostenlosen
nichtkommerziellen Version, welche unter www.qnx.com heruntergeladen
werden kann.

Leider läuft die aktuelle Version nicht auf einem alten Pentium I.


>Hat das Thema wenig bis gar nix mit Mikrocontrollern zu tun.
Es hat sehr viel mit Mikrocontrollern zu tun, wenn man einen PC ohne
M$-Windoze nutzt und hardwarenah programmiert !!!

Ich würde mich über PC-Hardware Projekte hier im Forum freuen, und
auch mitwirken !

Gruß Matthias

von Ratber (Gast)


Lesenswert?

Kinders,sind wir schon bei der Missionierung angelangt ?

@Tom

Werd dir erstmal klar was du eigentlich willst.

Also definierst du zuerst was für dich am Wichtigsten ist und dann
kannste dir ein System aussuchen was deinen Ansprüchen am nächsten
kommt.


>mal stelle sich vor man möchte bei einen alten PC die Hartware
>programmieren. (Bischen auf den ISA-Bus ,LPT, COM schreiben(lesen).


Was soll ich mir darunter vorstellen ?
Einwenig LC-Display am Parport ?
Einwenig LED-Schieberegister am Serport ?
Einwenig Sonstwas am Isa Slot ?

Definiere das mal anhand einer Projektbeschreibung.

Zudem hast du bis jetzt verschwiegen ob den P1 mit
60/66/75/90/100/120/133 oder sonstwelchen Mhz Arbeitet.

Aber das ist auch uninteressant.

Alle Schnittstellen die du angesprochen hast lassen sich schon mit nem
75er mehrfach voll ausreizen so das das OS eher uninteressant ist
solange es den Hardwarezugriff zuläßt und es ne C++
Entwicklungsumgebung dafür gibt.

Also kannste von CP/m über Dos,Linux,W9x und einigen die mir jetzt
nicht einfallen spgut wie alles nutzen.



PS:Ob das hier ins Forum gehöhrt bin ich mir nicht sicher da du nicht
sagtst was de vorhast (Ist bestimmt nen Staatsgeheimnis ;)  )

Aber da stellt sich die Frage wo die Rubrik "Sonstiges" oder
"Offftopic" bleibt ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.