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)
DOS ist war einen Möglichkeit, aber meiner Meinung nicht mehr wirklich Zeitgemäß.
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
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.
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
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.
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
@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
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"
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
@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
@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
@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ß!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.