Etikett: Unix

  • Emacs – textredigeraren som blev ett helt universum

    Emacs är en av datorvärldens mest långlivade och mytomspunna textredigerare. Född på 1970-talet i akademiska datorsalar har den vuxit från ett tekniskt hjälpmedel till ett helt ekosystem för skrivande, programmering och informationshantering. För vissa är Emacs bara ett verktyg – för andra är det en livslång arbetsmiljö, formad efter användarens egna idéer och behov.

    Om du någon gång har hört uttrycket att vissa textredigerare känns som “ett helt operativsystem”, så är chansen stor att det handlade om Emacs. Emacs är inte bara ett program för att skriva och redigera text – det är en hel familj av redigerare som förenas av en idé: att användaren ska kunna bygga om verktyget efter sin egen hjärna.

    Det kan låta överdrivet, men Emacs har i årtionden lockat programmerare, forskare, skribenter och teknikentusiaster just för att det inte nöjer sig med att vara “lagom”. Emacs vill vara formbart.

    Från 1970-talets terminaler till dagens datorer

    Emacs föddes i mitten av 1970-talet i en miljö som i efterhand nästan blivit mytisk: MIT AI Lab. Där arbetade man på stordatorer (som PDP-10) och använde en äldre textredigerare som hette TECO. TECO var inte som moderna redigerare där du bara skriver och ser texten direkt. I stället växlade man mellan olika lägen: ett för att skriva text och ett för att ge kommandon.

    Det var i denna värld som David A. Moon och Guy L. Steele Jr. 1976 skapade de första Emacs-varianterna – som en samling makron för TECO. Namnet EMACS kom från “Editor MACros” (eller “Editing MACroS”, beroende på vilken källa man följer). Idén var enkel men kraftfull: om du ändå sitter och hackar ihop makron hela tiden, varför inte göra en redigerare där det är normalt att bygga ut den?

    “Det extensibla” som blev identiteten

    Det som skiljer Emacs från många andra redigerare är att den inte bara låter dig ställa in färger och genvägar. Den låter dig lägga till helt nya funktioner som om de alltid hade funnits där.

    Därför brukar Emacs beskrivas som extensibel, anpassningsbar, självdokumenterande och en redigerare där ändringar syns direkt på skärmen när de görs.

    Lisp: hjärnan i Emacs

    Emacs är starkt kopplad till Lisp. I moderna Emacs-implementationer finns en Lisp-dialekt (i GNU Emacs heter den Emacs Lisp) som gör att användaren kan definiera nya kommandon, ändra befintliga och bygga små “appar” i redigeraren.

    Poängen är att Emacs inte bara har plugins som ett extra lager. Många av dess funktioner är skrivna i Lisp, vilket gör att gränsen mellan redigerare och programmeringsmiljö suddas ut.

    Kommandon, makron och muskelminne

    Emacs har tusentals kommandon, och användare kan dessutom spela in sina egna arbetsflöden som tangentbordsmakron: du gör något en gång, spelar in, och låter Emacs upprepa det.

    Det finns också ett särskilt sätt att “prata” om tangenttryckningar, där Ctrl och Meta (ofta Alt) skrivs som korta prefix. Det är därför Emacs-kulturen ibland låter som magiska formler.

    Fönster är inte fönster

    En klassisk Emacs-detalj är att den använder ord på ett annorlunda sätt än moderna gränssnitt. Det som många program kallar fönster kan Emacs kalla frames, och det som många kallar paneler/splitar kan Emacs kalla windows.

    Det är en rest av historien, men också ett tecken på hur Emacs alltid byggts på sina egna begrepp.

    Emacs som livsmiljö

    Många använder Emacs till långt mer än kod: filhantering, fjärrredigering över SSH, e-post, anteckningar och planering, Git, RSS – och även spel som Tetris.

    Det finns ett gammalt skämt: Emacs är ett bra operativsystem, men det saknar en bra textredigerare. Skämtet är orättvist, men fångar känslan av att Emacs kan bli en hel arbetsmiljö.

    Editor wars och “Kyrkan Emacs”

    Emacs är, tillsammans med vi, en av de två stora symbolerna i de klassiska “editor wars”. Konflikten är mest på skoj, men den har blivit en del av datorkulturen.

    Richard Stallman har också drivit med detta genom “Church of Emacs”, en parodireligion där man skojar om vi som “editorn av odjuret”. Mest humor – men också ett exempel på hur Emacs är mer än bara teknik.

    Varför lever Emacs fortfarande?

    Emacs är gammalt, men inte föråldrat. Det lever vidare eftersom grundidén fortfarande är modern: verktyget ska kunna växa med användaren.

    När många program idag är strömlinjeformade och stängda, är Emacs motsatsen: ett verktyg som säger “du bestämmer hur jag ska fungera”.

    Emacs är inte bara en textredigerare. Det är en redigerare som låter dig bygga din egen redigerare.

    Emacs sida på wiki.linux.se

    https://wiki.linux.se/index.php/Emacs

    Faktaruta: Emacs
    Typ
    Familj av textredigerare (med fokus på extensibilitet)
    Ursprung
    MIT AI Lab, mitten av 1970-talet
    Första Emacs
    TECO-makron (1976), av David A. Moon och Guy L. Steele Jr.
    Kändaste variant
    GNU Emacs
    Styrka
    Extensibel och anpassningsbar med Emacs Lisp
    Typiska användningsområden
    Programmering, textredigering, anteckningar (Org-mode), Git (Magit), fjärrredigering (TRAMP)
    Kuriosa
    Känd från “editor wars” (Emacs vs vi) och “Church of Emacs” som parodisk kulturreferens
  • VT100 – terminalen som gav datorer ett gemensamt språk

    I slutet av 1970-talet stod datorvärlden inför ett problem som i dag kan verka osynligt: datorer kunde inte ”tala samma språk” när det gällde text på skärm. Varje terminal hade sina egna regler för hur markören flyttades, hur skärmen rensades och hur text formaterades. När Digital Equipment Corporation lanserade VT100 år 1978 förändrades detta i grunden. Terminalen blev inte bara en försäljningssuccé – den lade grunden för den standard som än i dag styr hur terminalfönster fungerar i moderna operativsystem.

    När vi i dag öppnar ett terminalfönster i Linux, macOS eller Windows och skriver kommandon, flyttar markören eller ändrar textens utseende, bygger allt detta på teknik som är över fyra decennier gammal. En av de viktigaste orsakerna till detta är DEC VT100, en datorterminal som lanserades 1978 och som kom att forma hur människor kommunicerar med datorer än i dag.

    Från glasteletyp till smart terminal

    Under 1960- och 70-talen användes datorer främst via enkla textterminaler. Många fungerade i praktiken som elektroniska skrivmaskiner: texten skrevs ut rad för rad och kunde knappt redigeras. Dessa kallades ibland för ”glasteletyper”. Mer avancerade system, som IBM:s terminaler, hade fler funktioner men krävde dyra styrenheter och speciallösningar.

    Digital Equipment Corporation (DEC) valde en annan väg. Med terminaler som VT50 och VT52 visade företaget att en relativt billig terminal kunde vara ”smart” – den kunde själv hantera skärmen, flytta markören och rulla text. VT100 tog detta koncept ett stort steg vidare.

    ANSI-koder – ett gemensamt språk för textterminaler

    Den stora revolutionen med VT100 var stödet för den nya standarden ANSI X3.64. Standarden definierade så kallade escape-sekvenser: korta kontrollkoder som kunde styra hur text visades på skärmen. Med dem kunde program flytta markören, rensa delar av skärmen, byta textstil och mycket mer.

    Tidigare hade nästan varje terminaltillverkare sina egna styrkoder, vilket gjorde program svåra att flytta mellan system. VT100 visade att ANSI-standarden gick att implementera i billig hårdvara. Resultatet blev att ANSI snabbt blev de facto-standard – och samma principer används fortfarande i moderna terminalemulatorer.

    En terminal med egen processor

    VT100 var tekniskt avancerad för sin tid. Den innehöll en Intel 8080-mikroprocessor, eget RAM och ROM samt icke-flyktigt minne för inställningar. Terminalen var alltså inte bara en ”dum” skärm, utan en liten dator i sig.

    Detta möjliggjorde funktioner som:

    • 80 kolumner × 24 rader som standard
    • 132-kolumnsläge för bred text
    • Mjuk rullning, där texten gled istället för att hoppa
    • Textattribut som fet stil, understrykning, blinkning och omvänd video
    • Specialtecken för boxar och formulär

    All konfiguration skedde via menyer direkt på skärmen, vilket var ovanligt användarvänligt för slutet av 1970-talet.

    En enorm kommersiell framgång

    VT100 och dess efterföljare blev en stor försäljningssuccé. Särskilt modeller som VT102 spreds snabbt i universitet, forskningsmiljöer och företag. DEC blev under flera år världens ledande tillverkare av datorterminaler.

    Totalt såldes över sex miljoner terminaler i VT-serien, en anmärkningsvärd siffra för en produktkategori som i dag nästan helt har försvunnit.

    En hel familj – och mer än bara terminaler

    VT100 blev också grunden för en hel produktfamilj. DEC tog vara på det rymliga chassit och byggde varianter med extra funktioner:

    • enklare och billigare modeller
    • terminaler med tidig grafik
    • terminaler med formulär- och blockläge
    • till och med kompletta minidatorer inbyggda i terminalhöljet

    I vissa fall suddades gränsen helt ut mellan terminal och dator.

    Ett arv som fortfarande lever

    Även om de fysiska VT100-terminalerna sedan länge är museiföremål lever deras arv kvar. Nästan alla moderna terminalprogram efterliknar fortfarande VT100 eller dess efterföljare. Kommandon som ls, top, vim och emacs förutsätter i praktiken ett VT100-liknande beteende.

    VT100 var mer än en produkt – den blev ett gemensamt språk mellan människa och dator.
    Det är därför en terminal från 1978 fortfarande påverkar hur vi arbetar vid datorer i dag.

    Filmer på youtube om DEC VT100

    VT100 – Faktaruta
    Tillverkare
    Digital Equipment Corporation (DEC)
    Typ
    Dator-/videoterminal
    Lanserad
    1978 (augusti)
    CPU
    Intel 8080
    Skärm
    12″ CRT, 80×24 eller 132×14 tecken
    Tangentbord
    83-tangenters, löstagbart (högtalare i tangentbordet)
    Anslutning
    RS-232 seriell (tillval: 20 mA strömslinga)
    Minne
    3 KB RAM, 8 KB ROM, 175 byte NVRAM
    Föregångare
    VT50 (VT52-familjen)
    Efterföljare
    VT220 / VT200-serien (från 1983)
    Varför viktig?
    Tidigt, brett stöd för ANSI escape-koder – blev grund för modern terminalstandard.
  • ABC 1600 – Sveriges Unix-dröm i supermikroformat

    ABC 1600 var inte bara en dator – den var ett djärvt svenskt tekniksprång. När den lanserades 1985 presenterades den som en avancerad arbetsstation med Unix-stöd, kraftfull grafik och multitaskingförmåga långt före sin tid. Med Motorola 68008-processor, sofistikerad minneshantering och vridbar högupplöst monokrom skärm riktade den sig mot ingenjörer och professionella användare. Trots imponerande teknik blev den aldrig någon försäljningssuccé, men har i efterhand fått kultstatus som ett av de mest ambitiösa svenskutvecklade datorprojekten någonsin.

    När ABC 1600 lanserades 1985 var det inte bara ännu en dator. Det var en svensk ingenjörsdröm om framtiden – en Unix-baserad arbetsstation som skulle ta upp kampen mot amerikanska jättar. Med kraftfull Motorola 68008-processor, avancerad minneshantering och monokrom grafik med vridbar skärm riktade den sig mot professionella användare inom teknik och industri. Datorn var både sofistikerad och före sin tid, med finesser som blitterkrets för snabba grafiska operationer och ett fönstersystem utvecklat vid universitetet.

    Trots sin tekniska briljans blev ABC 1600 aldrig en kommersiell succé. Målet var 5 000 sålda enheter för lönsamhet, men verkligheten landade på cirka 400 exemplar. Visionen om svenska Unix-arbetsstationer dog när Nokia tog över Luxor – och med den avslutades ett av de mest ambitiösa datorprojekten i svensk industrihistoria.

    Men än idag fascinerar ABC 1600 entusiaster. Den visar hur långt fram svensk datorteknik kunde vara – och hur stor skillnaden kan vara mellan teknisk innovation och marknadens behov.

    Teknisk fakta – ABC 1600

    • Tillverkare: Luxor (i samarbete med Dataindustrier)
    • Lanseringsår: 1985
    • Processor (CPU): Motorola 68008, 16-bitars kärna med 8-bitars databuss
    • Minne: 1 MB RAM (med MAC – Memory Access Controller för minnesskydd och multitasking)
    • Adressrymd: Utökad till 2 MB (primärminne + grafikminne + minnesmappad I/O)
    • Minneshantering: Segment om 32 kB och sidor om 2 kB, 16 olika processområden (task 0–15) med hårt minnesskydd
    • DMA: 3 × Zilog Z8410 DMA-kontrollers (expansionsbuss/floppy, serieportar, hårddisk)
    • Kommunikation / I/O-kretsar: Zilog Z8536 CIO (timers + I/O), Zilog Z8530 SCC (synkron seriell kommunikation), Zilog Z80A DART (asynkron seriell kommunikation)
    • Grafik: Monokrom, 768 × 1024 pixlar, skärm vridbar mellan porträtt/landskap
    • Grafikminne: 128 kB dedikerat VRAM
    • Grafikstyrning: UMC UM6845E CRT-kontroller + hårdvarublitter (“mover”)
    • Blitter: Hårdvaru-flytt av rektangulära områden, fönsterhantering och teckenkopiering från “osynligt” grafikminne, ca 26 megapixlar/s i snitt
    • Operativsystem: ABCenix (OEM-variant av D-NIX, Unix-liknande OS)
    • Lokal grafikmiljö: Eget fönstersystem utvecklat i samarbete med Linköpings tekniska högskola
    • Lagring: Floppystation(er) + hårddisk (styrd via egen DMA-kanal)
    • Expansionsbussar: 4680-buss och ABC-buss för externa kort och systemexpansion
    • Typ: Enanvändar-arbetsstation / supermikro med Unix-stöd
    • Cirka pris vid lansering: ~47 000 kr (1985 års penningvärde)
    • Producerad volym: runt 400 exemplar totalt