Flashback: CP / M en het begin van de microcomputer tijdperk

Er was een tijd lang, lang geleden, in een plaats ver, ver weg toen ik woonde dag en nacht, dag en nacht in een zogenaamde CP / M. CP / M was een van de meest invloedrijke vroege besturingssystemen van de microcomputer tijdperk.

Een opname van “Oh, zeg zie je door de dageraad vroege …” zou gebruiken al het RAM in een CP / M machine van 1980.

In vergelijking met de besturingssystemen van vandaag, de CP / M van de late jaren 1970 was nauwelijks een bestand controller. Er waren geen API. Er was nauwelijks een command-line interpreter (hoewel als je weet wat een A: prompt is, heb je CP / M te danken).

Maar CP / M was een game changer. Introduceerde het concept van een BIOS dat de hardware-specifieke elementen van een computer afgescheiden door het besturingssysteem code, en waardoor een hoofdcode base worden uitgevoerd op vele verschillende combinaties van hardware.

CP / M was MS-DOS voor MS-DOS was MS-DOS.

In feite, CP / M was het model voor MS-DOS. Ik zal u niet door de apocriefe verhaal van hoe Digital Research (makers van CP / M) verloren aan Microsoft voor de eerste IBM PC-besturingssysteem, maar het feit is, MS-DOS voelde als CP / M aan de buitenkant, maar hadden verschillende code intern.

Veel bekende namen van de jaren 1980, zoals WordStar (ja, ik herinner me nog de commando sleutels!), DBase, en zelfs AutoCAD is ontstaan ​​op CP / M en werden voor het eerst verkocht voor computers die CP / M liep.

Laten we dit in perspectief, zullen we? CP / M ontving een 8080-klasse microprocessors. De Z80 Zilog 8080-kloon (Zilog was toen Intel als AMD is naar Intel-processors vandaag) ondersteund tot 64K RAM.

Star Trek: 50 jaar van positieve futurisme en gedurfde sociaal commentaar, Microsoft’s Surface all-in-one PC zei aan de kop van oktober hardware te lanceren; Hands on met de iPhone 7, nieuwe Apple Watch, en AirPods; Google koopt Apigee voor $ 625.000.000

Laat me hier duidelijk zijn. We praten 64K. Kilobytes. Niet megabytes. Niet gigabytes. Niet terabytes. Kilobytes. 64K RAM was 64 keer 1024 bytes.

Hier is een andere manier om dit in perspectief te plaatsen. Een leger MP3, bestaande uit een band spelen en een koor zingen de Star Spangled Banner klokt in op 1.6 megabytes. De hele 64K CP / M-adresruimte is 1 / 25e van de Star Spangled Banner. Een opname van “Oh, zeg zie je door de dageraad vroege …” zou gebruiken al het RAM in een CP / M machine van 1980.

Zelfs zo, ik woonde in CP / M. Het moederbord op mijn eerste CP / M machine werd vastgeschroefd op een stuk groen triplex overgebleven van iemands kerstviering. Ik had S-100 kaarten opgestapeld op het bord, een front panel dat bestaat uit honderden kleine draden en schakelaars, en, uiteindelijk, een set van gigantische 8-inch floppy disk drives.

Ik had ook een C-compiler. Dat is juist. Ik was in staat om samen te stellen en te bewerken C-code (en uitvoeren) in 64K. Dat laat zien hoe een groot deel van de taal C is de taal en hoeveel van de taal van vandaag is echt API’s en interfaces.

MKB; GoDaddy koopt WordPress management tool ManageWP, MKB; Video: 3 waardevolle tips van bekende tech ondernemers, MKB; Video: 3 tips voor het huren Millennials, Enterprise Software, nieuwe business model van Microsoft voor Windows 10: betalen om te spelen

Daarentegen, Microsoft zegt Visual Studio Express 2013 vereist een minimum van 1 GB RAM-geheugen uit te voeren. Dat is 15.625 keer meer RAM dan ik nodig had om terug in 1980. Natuurlijk compileren C, dat gig RAM-geheugen is ook een heel stuk goedkoper vandaag dan 64K was toen. Dus, je weet wel, de wet van Moore voor de overwinning.

Net als alle besturingssystemen van de tijd, CP / M was een eigen besturingssysteem, met de broncode nauw beschermd door de makers. Zelfs zo, door middel van oordeelkundige pre-Internet networking op de universiteit-centric Arpanet, was ik in staat om mijn handen te krijgen op een reverse-engineered dump van de CP / M broncode.

In feite is de CP / M broncode is wat inspireerde mij om dit artikel te schrijven vandaag. Ter ere van de 40ste verjaardag van de eerste build van CP / M, het Computer History Museum is het vrijgeven van dumps van een paar verschillende versies van CP / M source code, inclusief de reverse engineered vermelding vond ik zo waardevol voor mijn werk.

Ah, ja. Mijn werk. De reden dat ik woonde in CP / M zo intens was ik bezig met mijn technische school proefschrift, dat een project genaamd The Hope System betrokken. Voor alle doeleinden, The Hope System was een vervanging command-line shell voor CP / M.

CP / M had een zeer, zeer rudimentaire command-line shell noemen CCP voor Console Command Processor. Het had slechts een paar commando’s, het zag er niet veel van een batch-taal, het niet geschiedenis, het had niet commando-aanvulling, is het nog niet wist over de uitvoering paden, en het had niet eens veel van een command-line editor. Delete was alles wat je hebt.

Mijn project was om de CCP te vervangen door een zeer rekbaar en uitermate veelzijdig batch taal (CP / M alleen toegestaan ​​een lijst van commando’s om te draaien in een SCHRIJF-bestand, zonder flow control), en vervang de command line processor met een die opgenomen commando-aanvulling, geschiedenis, meerdere commando directories, en andere convenience UI functies.

De uitdaging was natuurlijk dat 64K RAM. Ik moest laden en uitvoeren Hoop in hetzelfde geheugen footprint als de CCP, maar Hope was enorm ingewikkelder. Om het af te trekken, moest ik de code in dynamische paging en van voorbijgaande aard modules om het allemaal te laten werken.

The Hope systeem bestond uit drie hoofdonderdelen: de Hope Taal, de Hope Shell en de Hope Loader. De loader was de reden dat ik heb leren kennen CP / M broncode zo goed. Met het oog op de CP / M CCP vervangen, moest ik patchen CP / M aan mijn loader plaats laden. Mijn loader nam toen over, wist alle programma-laden, en deed een ton van geheugenbeheer. Vergeet niet, dit was terug in 1980 – en mijn aantekeningen laten zien dat ik was eigenlijk in staat om het gehele systeem te draaien in 48K RAM-geheugen.

The Hope Shell werd gevorderd voor 1980, maar zou vrij primitief lijken ons vandaag. Toch is de mogelijkheid opdrachtregel voltooiing en geschiedenis nemen, samen met een batchtaal was ongebruikelijk voor de tijd – vooral van zo geringe RAM-voetspoorsysteem.

Maar waar Hope was uniek was de taal. Tot op de dag, kan ik niet denken aan een andere taal die structureel uitbreidbaar tijdens runtime waren. Laat me een minuut om uit te leggen wat er is 18 maanden de tijd om terug te ontwerpen neem dan. Mijn idee (en dit was de kern van het proefschrift) was dat computertalen hebben geen behoefte aan een vaste syntaxis hebben.

Door het creëren van een structureel uitbreidbare taal, kunt u de programmeur syntax beslissingen te nemen op de vlieg, helemaal naar beneden om de manier waarop u uw code te blokkeren, hoe parameters werken, enzovoort.

Denken over dit na 30 jaren van ervaring in de tech business, het idee van een structureel uitbreidbare taal syntax geeft me de rillingen. Het handhaven van het – en vooral – het ondersteunen van het zou een nachtmerrie zijn.

Maar, in 1980, hebben we niet echt veel van een standaard. CP / M was de enige cross-vendor besturingssysteem er was. We waren echt niet zeker hoe deze machines zouden worden gebruikt, en het idee van een taal die kan worden aangepast aan de specifieke behoeften leek de beperkingen die computergebruikers gewenning aan voor die tijd verwijderen.

Het was goed werk. Ik studeerde cum laude af en ontving de Sigma Xi Research Award in de ingenieurswetenschappen van de Hope-systeem (met name het structureel uitbreidbare aard van de taal).

Totdat ik ging zitten om dit te schrijven, had ik niet keek naar mijn thesis sinds 1982 of zo. Wat me opviel over het lezen van het nu is hoe elementen van het werk dat ik deed dan heb onbewust hun weg gevonden naar het werk dat ik heb gedaan de afgelopen jaren.

ZENPRESS, de CMS bouwde ik in 1998 naar Zatz lopen, bijvoorbeeld, deelt veel van de taal uitbreidbaarheid, tokenizing en abstraheren aspecten ontwikkelde ik voor Hoop – ook al heb ik geen herinnering van het denken van Hoop terwijl het opbouwen van ZENPRESS.

Natuurlijk, de ander ding dat mij verrast was toen ik omkeek, is hoe weinig RAM we hadden om in te werken – en hoeveel we in staat waren om gedaan te krijgen.

Maak gebruik van de release van het Computer History Museum en graven op via de CP / M broncode. U zult kijken terug op een aantal van de meest vormende regels code ooit geschreven.

By the way, ik doe meer updates op Twitter en Facebook dan ooit tevoren. Zorg ervoor dat u om mij te volgen op Twitter op @DavidGewirtz en op Facebook op Facebook.com/DavidGewirtz.

GoDaddy koopt WordPress management tool ManageWP

Video: 3 waardevolle tips van bekende tech ondernemers

Video: 3 tips voor het huren van Millennials

nieuw business model van Microsoft voor Windows 10: betalen om te spelen