Hallo zusammen, werde dieses Jahr im Datenverarbeitungs Unterrich sowie im Elektrotechnik Unterricht einen Prozessor der 8086er Familie Programmieren. Da ich mit diesem einen kleinen Computer bastel möchte stellt sich auch die Frage eines Passenden Betriebssystems. Mir ist da ein Unix sehr sympathisch, jedoch habe ich dahingehend kaum, wenn nicht keine Erfahrung wie ich dies realisieren soll... Kann mir hier jemand helfen, bzw. Tipps geben. Möchte diesen "Rechner" gerne via Telnet steuern können... Hat hier schon jemand Erfahrung damit sammeln können??? Tobias
Vom (Cross-)Compiler her kannst Du z.B. bcc unter Linux verwenden (http://linux.die.net/man/1/bcc), dazu gibt's mit as86/ld86 Assembler und Linker. Beide sind z.B. unter Debian fertig als Pakete (als "bcc" und "bin86") verfügbar. Der bcc versteht mittlerweile wohl auch ANSI-C. Neben dem schon erwähnten Minix sollte man mit erträglichem Aufwand auch 6th Edition Unix portieren können, da gibt's mit xv6 schon eine Portierung auf "größere" x86-CPUs (>= 80386): http://en.wikipedia.org/wiki/Xv6 Telnet ist dann natürlich nochmal ne andere Klasse, da braucht's (klar) nen TCP/IP-Stack für. Da wäre vielleicht lwIP von Adam Dunkels (http://savannah.nongnu.org/projects/lwip/) für den 8086 passend. Viel Spaß :-), Michael
> Neben dem schon erwähnten Minix sollte man mit erträglichem Aufwand auch > 6th Edition Unix portieren können, da gibt's mit xv6 schon eine > Portierung auf "größere" x86-CPUs (>= 80386): Wenn der Threadstarter wirklich einen 8086 meint, dann dürfte das ein Ding der Unmöglichkeit sein. Ein 8086 kann 1 MiB RAM adressieren, aber nur mit Segment-Krampf und ist ein reiner 16-Bit-Prozessor. Der im IBM XT verbaute 8088 ist vom nur 8 Bit breiten Businterface abgesehen praktisch identisch.
> ...einen Prozessor der 8086er Familie...
Kann auch ein Pentium etc. sein, wer weiß?
Rufus t. Firefly schrieb: >> Neben dem schon erwähnten Minix sollte man mit erträglichem Aufwand auch >> 6th Edition Unix portieren können, da gibt's mit xv6 schon eine >> Portierung auf "größere" x86-CPUs (>= 80386): > > Wenn der Threadstarter wirklich einen 8086 meint, dann dürfte das ein > Ding der Unmöglichkeit sein. Ein 8086 kann 1 MiB RAM adressieren, aber > nur mit Segment-Krampf und ist ein reiner 16-Bit-Prozessor. Hm, was meinst du, was die ersten Unix-Versionen für 8086 waren? (z.B. Xenix 8086 von Microsoft oder IDRIS)? Richtig, ein portiertes 6th Edition Unix, teilweise ein 7th Edition. Ohne Paging und solche Späße... > Der im IBM XT verbaute 8088 ist vom nur 8 Bit breiten Businterface > abgesehen praktisch identisch. Das ist mir wohl bewusst. Und das 6th Edition Unix auf der PDP11 konnte auch nur 64kB Adressraum pro Prozeß (128kB mit split I/D space), das ist nicht wesentlich anders als die Segmente des 8086. Und mit 1 MB RAM konnte man 6th Edition Unix auch schon ganz gut fahren. Ist halt ein Kernel aus den 70ern :-). -- Michael
Rufus t. Firefly schrieb: > Wenn der Threadstarter wirklich einen 8086 meint, dann dürfte das ein > Ding der Unmöglichkeit sein. Minix läuft bis V2 noch auf XTs, also 8088.
Oh, nochwas, Linux 8086 aka ELKS: http://elks.sourceforge.net/FAQ-English.html Spaßprojekt von Alan Cox und Co... -- Michael
>> Wenn der Threadstarter wirklich einen 8086 meint, dann dürfte das ein >> Ding der Unmöglichkeit sein. > > Minix läuft bis V2 noch auf XTs, also 8088. Minix ja, ich bezog mich auf den Vorschlag, irgendwelche Unixe zu portieren.
Ich habe auch noch 2 DDR "PC" A7150 mit installiertem MUTOS1700, diese Dinger sind allerdings an verschiedenen Ecken sehr speziell, es handelt sich um ein Modulare Systeme mit dem MMS16 Bus (Siemens AMS), also VME-Bus-artige Karten, einzelne Subsysteme für Festplatten und Floppy, sowie Grafik bzw. Display allgemein. (Z80A). Der Hauptprozessor ist aber ein 8086 mit Co. MUTOS ist ein Unix, IMHO Etwas System III - artiges.... Venix und Xenix auf 8086ern kenne ich auch noch. Gruß, Holm
Hallo zusammen und Danke für die vielen Antworten. Das Projekt soll wirklich mit einem 8086er realisiert werden... wobei ich Prinzipiell auch nicht dagegen hätte einen Zilog Z80 zu benutzen. Da wir allerdings den 8086er im Unterricht benutzen würde ich gerne diesen nehmen. Das 6th Edition Unix welches Michael erwähnte scheint dies zu sein welches ich verwenden würde. Minx hört sich auch nicht schlecht an... aber da wir dies als Projekt bauen müssen, muss ich auch eine Dokumentation beilegen... d.h. ich muss ebenfalls das Betriebssystem ( vor allem in diesem Fall ) beschreiben. Und da reicht es leider nicht aus auf den Kernel zu verweisen... sondern ich muss schon erklären können welcher Teil des Quelltextes in Form des Komilierten BS beim Betrieb des "Computers" wie abgearbeitet wird etc... von daher sollte es nicht allzu komplex sein... von daher ist die Version aus den 70ern wohl echt passend. Die frage ist nun, wie sollte ich das Projekt angehen?? Wie baue ich mir ein Programmiermodul für den 8086er bzw. falls nicht wirklich möglich für den Z80? Woher bekomme ich die Software für das selbige? Wie realisiere ich im endeffekt die geasamte Hardware bzw. wo bekomme ich Anregungen dafür?? Danke Grüße Tobias
>Wie baue ich mir ein Programmiermodul für den 8086er bzw. falls nicht >wirklich möglich für den Z80? Gar nicht, die können nicht programmiert werden. Also das volle Programm: Externer Speicher: paralles EPROM/Flash EPROM/Flash Brenner kaufen oder Epromsimulator usw.
Einen 8086-Einplatinen-Computer zum Selbstbau hat vor Äonen mal die c't als EPAC86 veröffentlicht.
Wirklich 8086??? Mir ist bekannt, daß von vielen Ausbildern 8085 Prozessoren verwendet werden. Die sind verbesserte 8080 und dem Z80 sehr ähnlich, wennn auch lange nicht so leistungsfähig.
Route_66 schrieb:
> Wirklich 8086???
Yep. Tatsache.
Aber so wie der Threaderöffner frägt, bin ich nicht sicher, ob man ihm
mit so etwas einen Bärendienst erweist.
"Möchte auf einem 8086 ein Unix laufen lassen, notfalls geht auch ein
Z80" zeugt meines Erachtens nicht wirklich davon, dass man einigermassen
weiß, was man da tut.
"Möchte kein Minix, weil ich sonst alles weitere ausser dem Kern
dokumentieren müsste". Da scheint die alte Story vom rudimentären
Kernel, der sich dank Internet zum Linux gemausert hat, durchzuschlagen.
Auch dürfte ihm nicht ganz klar sein, dass Hardware-Bauen,
Kernel-Programmieren, etc. bis zum ersten mal ein rudimentäres "Hello
world" auf einem Terminal erscheint eine Aufgabe ist, die er nicht in
einem Schuljahr nebenher packen wird. Und von da weg ist es noch ein
weiter Weg, bis er das "Hello world" auch über Telnet am anderen Ende
der Welt sieht.
Jepp wirklich ein 8086er... wobei dieser wie gesagt im Unterricht behandelt wird... eine Z80 währe für das Projekt auch denkbar. Es ist auch keine Betriebliche Ausbildung... es handelt sich hierbei um eine Vollzeit Schulische Ausbildung bei der man parallel das ABI bekommt... oder die Ausbildung... jenachdem wie man es dreht und wendet. Daher kommt auch der Praktische Teil zu kurz... kommt mir zumindestens so vor. Also ein Eprom habe ich, da würde ich einfach die Motorola der C-Control nehmen und Sie im Board lassen... dafür existiert die Programmierumgebung schon. Fals die überhaupt in Kombination mit dem 8086er klappt. Zitat: Einen 8086-Einplatinen-Computer zum Selbstbau hat vor Äonen mal die c't als EPAC86 veröffentlicht. Zitat ende. Dies währe sicherlich als Anschauungsobjekt und Ideengeber sehr vom Vorteil... habe mal Google befragt, bis auf einen Wikipedia Eintrag ist nicht allzuviel dabei... Ob ich nun den 8086 oder die Z80 für das Projekt nehme ist noch nicht sicher! Auch noch nicht ob ich ein Xv6 oder Xv7 nehme... Fakt ist jedoch, dass ich mich in die Materie einarbeiten muss... darum frage ich hier ja nach Anregungen... und nicht nach Lösungen! Ich denke jeder wird einmal klein angefangen haben, ob ich nun wenig oder viel Aufwand habe ist mir Jacke wie Hose, ich will halt etwas lernen und mir dies gleichzeitig Praktisch veranschaulichen. Ob ich nun eine Doku Schreibe die 10 oder 100 Seiten lang ist, ist mir IMHO auch egal, den Lehrern wird es nur weh tuhen wenn Sie mehr als 20 Seiten lesen müssen... von daher ist in diesem Fall auch mehr gleich mehr ( Spass für mich, wenn ich bei Abgabe der Doku deren Gesicht sehe ;-) )... Ich denke, dass ich am besten mit dem Schematischen Aufbau eines Einplatinen-Computers anfange.... Von dort aus stellt sich halt nur die Frage wie so ein System aufgebaut ist... da er ja nicht wirklich mit einem Aktuellen PC vergleichbar ist... gibt es dazu einführende Literatur oder dergleichen, am besten Online und kostenlos... Danke und Grüße Tobias
>Also ein Eprom habe ich, da würde ich einfach die Motorola der C-Control Da wird wohl ein Linux nicht reinpassen. >Spass für mich, wenn ich bei Abgabe der Doku deren Gesicht sehe >;-) Spass für mich, wenn ich dein Gesicht sehe(n könnte) falls du einen Schaltplan findest ;)
Ins Eprom muß auch nicht das komplette Linux reinpassen, sondern nur ein Bootloader oder was ähnliches. Der meiste Code wird dann wohl auf einer HD oder ggf. auch einer Speicherkarte sein. Als CPU den Z80 zu nehmen wird dann doch etwas eng, da hat man nur 64 KBytes an Adressraum und müßte wohl mit einer Unixversion vom PDP11 oder so anfangen. Da ist 1 MB bein 8086 schon deutlich besser.
Das von mir erwähnte c't-Selbstbauprojekt ist entweder noch in den 80ern oder in den frühen 90ern veröffentlicht worden; das ist noch deutlich in der "vor-Internet"-Zeit* gewesen, so daß Artikel darüber nur schwer zu finden sein dürften. Die alten c't-Ausgaben seit 1984 aber gibt es im PDF-Format als DVD (bei emedia) zu kaufen, darin sollten sich die Schaltungsunterlagen des 8086-Systems finden lassen. Allerdings halte ich das für vergebliche Liebesmüh, da es einerseits schwierig sein dürfte, die benötigten Bauteile noch zu bekommen und da andererseits das erworbene Wissen auch bereits vor dem Erwerb veraltet ist. Zwar ist es mit einigem Aufwand sicherlich möglich, so ein System zusammenzubasteln, aber zu sehr viel mehr als einem "Hello world" als "proof-of-concept" taugt das nicht. Der Lern- und praktische Nutzeffekt dürfte größer sein, wenn mit einem noch käuflich zu erwerbenden Microcontroller auf ARM-Basis gearbeitet wird. Dafür sind einerseits neuzeitlichere Entwicklungssysteme verfügbar, der Personenkreis, der bei Problemen befragbar ist, ist erheblich größer (hier im Forum haben schon etliche mit ARMen und auch ucLinux gearbeitet, aber die Anzahl derer, die mit einem 8086 herumgebastelt haben und daran noch aktive Erinnerungen haben, dürfte vergleichsweise gering sein) und es existiert mit ucLinux auch ein ausreichend unixoides Betriebssystem.
http://www.flite.co.uk/flite-flt-86-8086-training-system.htm Da kann man mal so ein Minimal-Trainingsboard sehen. Unglaubliche 16kB RAM und Eprom. Die beiden 8255 braucht man wohl nicht. Fehlt eigentlich nur noch die Netzwerkkarte. Buhaha.
Schon mal nachgeschaut wo du die Bauteile vor allen den 8086 noch bekommst. Die ueblichen Verdaechtigen haben den schon lange nicht mehr im Lieferprogramm. Besser waere es das ganze auf eine aktuelle ARM CPU aufzusetzen. Auch wenn die Schule noch auf CPUs setzt die schon lange im Museum sind. Es ist ja nicht nur mit dem Prozessor getan. Da gehoert auch noch Speicher, Periferie etc. dazu. Gruss Helmi
Und das ist es ja, ich muss neben dem Unix System auch Wissen woraus ein solcher Rechner taugt... Was ist denn das mit diesem ARM's?? Sind die von Atmel?? Von den Atmels habe ich hier eineige herumfliegen und könnte diese mit einem nachgebauten Programmierboard und Pony proggen... Als Speicher dachte ich an eine SD-Karte oder einen USB-Stick... ansonsten wollte ich schon immer mal daten auf eine alte hörkassette ( wie Amiga /C64 ) bringen... müsse via soundaus und eingang funktionieren... Aber ist momentan nicht wichtig... Zumindestens bin ich nun schlauer... ich müsste neben dem 8086er einen EEprom als "Externen" Speicher nutzen. Daneben bräuchte ich einen Speicher ( SD-Karte ) wenn ich dies habe fällt mir gleich das Thema flüchtiger Speicher ein... also RAM... kann ich alte EDO's nutzen?? oder sollte ich lieber direkt auf die SD schreiben?? Perepherie... ja da dachte ich an LPT zwecks Nadeldrucher zur DEMO und RS232 für serielle Schaltungen oder solche Spielereien... Netzwerk für das Terminal natürlich da ich keine Tastatur oder Monitor verwenden möchte... Ist das zuviel für den 8086?
>Ist das zuviel für den 8086?
Für den 8086 nicht, aber für dich!
Du übernimmst dich gnadenlos.
Ich glaube kaum das dein Mikroprozessor Kurs auch nur
irgendwas mit C oder Unix zu tun hat. Das wird
vermutlich stur in ASM laufen. Sonst könnte der Kurs
ja auch mit einem handelsüblichen PC durchgeführt werden.
Der Kurs läuft sowohl in C als auch in ASM. ASM jedoch nur im ansatz... aber mit UNIX hast du vollkommen recht, da dies nicht bei uns behandelt wird... zumindestens nicht in diesem Umfang...
>Der Kurs läuft sowohl in C als auch in ASM.
Na gut, dann läuft da wohl irgendein altes DOS drauf.
Aber mal im Ernst, vergiss das mit dem selberbauen.
Dafür brauchst du wesentlich mehr Erfahrung als man aus deinen
bisherigen Posts erkennen kann. Das wird ne Totgeburt.
>Was ist denn das mit diesem ARM's?? >Sind die von Atmel?? Teilweise ja , gibst aber auch von vielen anderen Hersteller >Von den Atmels habe ich hier eineige herumfliegen und könnte diese mit >einem nachgebauten Programmierboard und Pony proggen... Du wirst wohl einige AVR rumfliegen haben. Die ARM CPUs von Atmel heisen SAMxx >Als Speicher dachte ich an eine SD-Karte oder einen USB-Stick... SD könntes du nehmen. Bei USB must du einen USB Host Kontroller aufbauen. >ansonsten wollte ich schon immer mal daten auf eine alte hörkassette ( >wie Amiga /C64 ) bringen... müsse via soundaus und eingang >funktionieren... >Aber ist momentan nicht wichtig... Das Thema ist schon seit einem 1/4 Jahrhundert abgehackt >Zumindestens bin ich nun schlauer... ich müsste neben dem 8086er einen >EEprom als "Externen" Speicher nutzen. Daneben bräuchte ich einen >Speicher ( SD-Karte ) Als Arbeitsspeicher viel zu langsam >wenn ich dies habe fällt mir gleich das Thema flüchtiger Speicher ein... >also RAM... kann ich alte EDO's nutzen?? oder sollte ich lieber direkt >auf die SD schreiben?? Dazu must du einen D-RAM Kontroller aufbauen. Bleib besser bei statischem RAM der ist einfacher anzuschliessen. >Perepherie... ja da dachte ich an LPT zwecks Nadeldrucher zur DEMO und >RS232 für serielle Schaltungen oder solche Spielereien... Das ist noch das einfachste bei deinem Projekt >Netzwerk für das Terminal natürlich da ich keine Tastatur oder Monitor >verwenden möchte... Dann must du eine Ethernetkontroller anschliessen und dir eine TCP/IP Stack programmieren
8086-CPUs gibt es noch bei der NASA. Die haben händeringend weltweit alle Reste aufgekauft, um Ersatzteile für ihre Space-Shuttle zu haben.
Ob die NASA welche abgibt wenn die demnaechst ihre Shuttles verschrotten ?
Der auch sonst immer wieder für museales Inventar verdächtige Kessler hat noch NEC V30 Exemplare rumliegen, die sind kompatibel zum 8086 (in CMOS).
Wenn es unbedingt ein altes System sein soll, welches 'konventionell' aufgebaut ist, würde ich ein Z80 System nehmen. EPROM und Speicher sollten damit noch (bezahlbar) zu bekommen sein und der Lerneffekt ist sicherlich noch da, wie das alles funktioniert. Auch dynamischer Speicher ist kein Problem, die Z80 hat einen entsprechenden Controller eingebaut. Allerdings kanst du dir dann ein UNIX abschminken, aber irgendwo müsste sich ein CP/M 2.2 noch auftreiben lassen, für welches man ein BIOS bauen kann. Anstelle von Floppys müsste ein SD-Stick auch einbindbar sein (denke ich mal), die Frage ist nur: wie kriegt man das CP/M auf den Stick. Wenn man die 'Disk-Paramater' des Sticks hat, sollte das aber mit einem PC-Programm, welches den Stick direkt anspricht und Sektoren schreibt aber machbar sein. Serielle Schnittstelle, parallele Schnittstelle (du wirst dich wundern wie schwer es ist, heutzutage noch einen Drucker aufzutreiben der einfach nur eine ordinäre Centronics-ASCII-Schnittstelle hat. Mit einfach mal in den Mediamarkt gehen und kaufen ist da schon lange nichts mehr) sollten auch mit CP/M kein Problem sein. Netzwerk wird so nicht gehen. Aber: Das ganze ist überschaubar! Oder aber da baust dir eine Experimentierplatine mit einem AVR. Hardwaremässig ist das schnell gemacht und mit ein wenig Peripherie drumherum (Taster, LED, UART, auch Drucker, Summer, Lichtschranke, ...) ist viel Spass garantiert. Dort steht das "Was mache ich damit" im Vordergrund und nicht das 'Wie baue ich es auf und was muss ich erst mal an rudimentärer Betriebssystem-Software schreiben, bis ich das erste mal überhaupt irgendetwas sehe'
IBM hat für seine Komputer sehr detaillierte Handbücher rausgebracht. Da sind nicht nur die Schaltpläne, sondern auch eine Funktionsbeschreibung incl. Bioslisting dabei. Such mal nach der IBM 5160 technical reference, das war der olle XT. Das schwirrt digitalisiert als PDF im Netz herum. Lies dich da mal ein, so bekommst du eine ungefähre Vorstellung was in so einer Kiste drinsteckt.
>Auch dynamischer >Speicher ist kein Problem, die Z80 hat einen entsprechenden Controller >eingebaut. Vorsicht der Z80 kann nur 7 Bit Refreshaddressen ob das mit neueren D-Rams geht ??? >Allerdings kanst du dir dann ein UNIX abschminken, aber irgendwo müsste >sich ein CP/M 2.2 noch auftreiben lassen, für welches man ein BIOS bauen >kann. Hier gibts das sogar mit Source Code. http://www.cpm.z80.de/source.html
Helmut Lenzen schrieb: >>Auch dynamischer >>Speicher ist kein Problem, die Z80 hat einen entsprechenden Controller >>eingebaut. > > Vorsicht der Z80 kann nur 7 Bit Refreshaddressen ob das mit neueren > D-Rams geht ??? :-) Dazu kann ich wenig sagen (mein Gedächtnis ist schon schwach). Mit 4164 gibts auf jeden Fall keine Probleme. ABer hier habe ich etwas gefunden http://www.sxlist.com/TECHREF/mem/dram/slide1.html was sich der Problematik anscheinend annimmt. Ist ev. auch für den TO interessant um mal zu sehen, was da eigentlich alles auf ihn zukommt :-) Die meisten Leute heutzutage denken ja, einen Computer designed und baut man, indem man Platinen zusammensteckt.
Helmut Lenzen schrieb: > Vorsicht der Z80 kann nur 7 Bit Refreshaddressen ob das mit neueren > D-Rams geht ??? Aber natürlich geht das. Zwingt dich ja niemand dazu, alle möglichen Adressleitungen auch zu verwenden, zumal ein Z80 schon mit 32MB Hauptspeicher leicht überfordert sein könnte. Abgesehen davon dürften doch wohl heutige DRAMs mit eigenen Refreshadressen arbeiten können?!
>:-) >Dazu kann ich wenig sagen (mein Gedächtnis ist schon schwach). Mit 4164 >gibts auf jeden Fall keine Probleme. Ich hatte mitte der 80er den CPM Rechner aus der CT nachgebaut. Da musste man aufpassen die richtigen RAMS zu erwischen. Es waren sowohl welche mit 7 aber auch mit 8 Bit Refershaddressen im Handel. >Die meisten Leute heutzutage denken ja, einen >Computer designed und baut man, indem man Platinen zusammensteckt. Wie wahr. >Abgesehen davon dürften doch wohl heutige DRAMs mit eigenen >Refreshadressen arbeiten können?! Heutige D-Ram haben den Counter integriert. Stimmt. Aber gibt es den noch normale D-Rams zu kaufen ? (Und jetzt keine musealen Stuecke) Das meiste ist doch heute DDRx RAM oder SD-RAM. Und da duerfte der Z80 wohl Probleme mit haben.
Helmut Lenzen schrieb: > Das meiste ist doch heute DDRx RAM oder SD-RAM. > Und da duerfte der Z80 wohl Probleme mit haben. DDR sicherlich nicht. Bei einfachem SDRAM bin ich nicht so sicher. Anders als bei RAMBUS sind die Signale grundsätzlich ähnlich, nur eben bezogen auf einen Takt. Was sich wahrscheinlich mit einem kleineren Gatter/Registergrab abbilden liesse. Eine Mindesttaktfrequenz habe ich im erstbesten Datasheet keine gefunden Schwieriger könnte es sein, eine NMOS-Z80 dazu zu überreden, die maximal 1,2ns rise/falltime einzuhalten ;-). Und das herzallerliebste abweichende Timing vom M1-Zyklus könnte sich als störend erweisen.
SD-RAM hat ein Konfiguartionsregister. Da muss man erst was sinnvolles reinschreiben. Koennte man machen. Duerfte allerdings in einem Gatterbergwerk ausarten. Waere ein Fall fuer ein FPGA. Da koennte man doch glatt auf die Idee kommen die CPU mit in FPGA zu setzen. Wobei man dann wieder darueber nachdenken koennte ob Z80 / 8086 oder eventuell eine 68000 CPU . Am einfachsten ist es allerdings sich ein 512KByte statisches Ram zu besorgen und das zu nehmen. Dann koennte man ein Bankumschaltlogik implementieren und CPM 3.0 fahren.
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.