• Hur skulle världen se ut utan öppen källkod?

    Föreställ dig att din mobiltelefon, din TV, din router och stora delar av internet plötsligt måste byggas om från grunden. Inte därför att tekniken har försvunnit, utan därför att ingen längre får dela med sig av programkod.

    Tänk dig att du var tvungen att åka tillbaka till 90-talet, där du bara kunde spela ”Snake” på din Nokia-telefon och där telefonens mjukvara var mer stängd än Nordkoreas gränser.

    Eller tänk dig att du var tvungen att åka tillbaka till 70-talet, där du bara kunde se sovjetisk dockteater som Drutten och Krokodilen , eller knäpp dårar som satt och lekte att de var vilse i en pannkaka som barnprogram. Det fanns bara statlig skit-TV att titta på. Att kunna välja valfritt innehåll på din smart-TV var bara att glömma.

    Bilden ovan är inspirerad av Kalle Anka-filmen Der Fuehrer’s Face.

    Det låter kanske som ett tankeexperiment långt från vardagen. Men en stor del av den digitala värld vi använder varje dag bygger just på idén att programmerare, företag och universitet kan dela programkod med varandra.

    Det är det som brukar kallas öppen källkod, eller open source.

    De flesta tänker kanske först på Linux. Någon kanske föreställer sig en dator med ett lite ovanligt skrivbord och en terminal full av kommandon.

    Men Linux på en vanlig PC är bara en liten del av historien.

    Öppen källkod finns i mobiltelefoner, smart-TV-apparater, routrar, webbservrar, bilar, nätverksutrustning, datacenter och mängder av elektroniska apparater.

    Ofta märker vi det inte alls.

    Linux finns redan i din ficka

    Den som använder en Androidtelefon använder i praktiken Linux varje dag.

    Android bygger nämligen på Linuxkärnan.

    Kärnan är den del av ett operativsystem som arbetar närmast själva hårdvaran. Den sköter exempelvis minnet, processorn, lagringen och kommunikationen mellan olika delar av datorn eller telefonen.

    När du startar en app, ansluter till ett trådlöst nätverk eller tar ett fotografi finns det därför Linuxkod långt nere i systemet som hjälper till att få allt att fungera.

    Det betyder inte att Android och Linux är samma sak. Android består av många fler delar, varav Google och andra företag har utvecklat en stor del.

    Men längst ned i systemet finns Linux. Det är en ganska anmärkningsvärd utveckling.

    Ett operativsystem som började som ett hobbyprojekt i början av 1990-talet kom så småningom att bli en av grundstenarna i världens mest använda mobilplattform.

    TV:n är egentligen en dator

    Den moderna TV-apparaten har också förändrats dramatiskt.

    Förr tog en TV emot en signal och visade en bild. I dag är en smart-TV i praktiken en dator med stor bildskärm.

    Den har processor, arbetsminne, lagring, nätverkskort, grafikkrets, appar och ofta en webbläsarmotor.

    Och bakom kulisserna finns ofta Linux och andra open source-komponenter.

    När du startar SVT Play, Netflix eller YouTube på en TV kan programvaran alltså vila på samma typ av teknisk grund som en webbserver eller en Androidtelefon.

    För konsumenten spelar det kanske ingen större roll vilket operativsystem som finns inuti apparaten.

    För tillverkaren spelar det desto större roll.

    Att utveckla ett komplett operativsystem från början är ett mycket omfattande arbete.

    Genom att använda Linux kan en TV-tillverkare börja med en redan fungerande kärna och koncentrera sig på det som gör den egna produkten speciell.

    Routern i hallen innehåller mer programvara än man tror

    Samma sak gäller den lilla routern som står hemma i hallen.

    Den kanske ser ganska enkel ut, men den måste klara förvånansvärt mycket.

    Den ska bland annat hantera:

    • trådlösa nätverk
    • Ethernet
    • IP-adresser
    • DNS
    • DHCP
    • brandvägg
    • IPv4
    • IPv6
    • webbgränssnitt för inställningar

    Dessutom ska allt fungera stabilt dygnet runt.Det finns onda makte

    Många routrar bygger därför på Linux och små open source-program som exempelvis BusyBox.

    BusyBox kan beskrivas som en verktygslåda med många klassiska Unix-kommandon i ett mycket kompakt format. Det gör programmet användbart i små apparater där minne och lagringsutrymme är begränsade.

    Så när internetanslutningen hemma fungerar som den ska kan en betydande del av arbetet utföras av öppen källkod utan att användaren någonsin ser det.

    Internet byggdes inte av ett enda företag

    Öppen källkod har kanske haft allra störst betydelse för internet.

    När man besöker en webbplats ser man bilder, text, menyer och formulär.

    Bakom sidan finns däremot ofta en lång kedja av program.

    Servern kan köra Linux eller FreeBSD.

    Webbservern kan vara Apache eller Nginx.

    Webbplatsen kan vara skriven i PHP eller Python.

    Informationen kan lagras i MariaDB, MySQL eller PostgreSQL.

    Kommunikationen kan skyddas av kryptografiska bibliotek som bygger på öppen källkod.Det innebär att en mycket stor del av den moderna webben har kunnat byggas utan att varje företag först behövt köpa ett helt paket av proprietär serverprogramvara.

    Det förändrade spelreglerna.

    Plötsligt kunde en vanlig PDet finns onda makteC bli en server

    Under 1980-talet och början av 1990-talet var Unix ofta förknippat med stora och dyra arbetsstationer från företag som Sun, HP och IBM.

    Sedan kom Linux och de fria BSD-systemen.

    Plötsligt kunde en ganska vanlig persondator fungera som en riktig Unix-liknande server.

    En student kunde installera Linux eller FreeBSD och använda datorn som:

    • webbserver
    • e-postserver
    • DNS-server
    • router
    • brandvägg
    • filserver
    • databasserver

    Det var betydelsefullt av två skäl. För det första blev tekniken billigare. För det andra blev den tillgänglig för människor som ville lära sig.

    Man behövde inte längre arbeta på ett universitet eller ett stort företag för att få tillgång till ett avancerat fleranvändarsystem med nätverk, programmeringsverktyg och serverprogramvara.

    En gammal PC hemma kunde bli ett komplett laboratorium för internet.

    Det skapade en generation programmerare och systemadministratörer som kunde experimentera på egen hand.

    FreeBSD – den mindre kända släktingen

    Linux får ofta mest uppmärksamhet, men det finns andra fria Unix-liknande system som också har haft mycket stor betydelse.

    Ett av de viktigaste är FreeBSD.

    FreeBSD har sina historiska rötter i BSD, Berkeley Software Distribution, som utvecklades vid University of California, Berkeley.

    BSD kom att spela en viktig roll i Unixhistorien och i utvecklingen av nätverksteknik.

    Än i dag används FreeBSD och BSD-baserad teknik i servrar, lagringssystem, nätverksutrustning och konsumentprodukter.

    BSD-systemen använder dessutom licenser som gör det relativt enkelt för företag att använda koden i egna kommersiella produkter.

    Det har bidragit till att BSD-teknik ibland finns på platser där användaren aldrig ser namnet BSD.

    Till och med Apple står på Unixgrund

    Apple brukar knappast förknippas med öppen källkod på samma sätt som Linux.

    Ändå finns där tydliga kopplingar.

    macOS och iOS bygger på Darwin, som innehåller teknik med rötter i bland annat BSD och Unix.

    Apple har naturligtvis utvecklat stora mängder egen programvara ovanpå denna grund.

    Men det illustrerar en viktig poäng:

    Öppen källkod och kommersiell programvara är inte motsatser.

    De existerar ofta tillsammans. Ett företag kan använda öppen teknik längst ned i systemet och bygga en egen produkt ovanpå. Det är ungefär som att bygga ett hus.

    Det är sällan ekonomiskt rimligt för varje byggföretag att börja med att uppfinna sitt eget tegel, sina egna skruvar och sin egen betong.

    På samma sätt behöver inte varje teknikföretag skriva en egen nätverksstack, kompilator eller operativsystemkärna.

    Molnet består också av vanliga datorer

    Vi talar ofta om ”molnet” som om det vore någon abstrakt plats där information svävar omkring. I verkligheten består molnet av enorma mängder fysiska servrar i datacenter. Och en stor del av dessa servrar kör Linux.

    När du använder en app i mobilen kan något ganska intressant därför hända. Telefonen kör Android ovanpå Linux. Den ansluter till en router som kanske också kör Linux. Trafiken passerar nätverksutrustning som kan innehålla öppen programvara. Till slut når den en server i ett datacenter som mycket väl också kör Linux. Linux kan alltså finnas i flera steg i samma kommunikation utan att användaren någonsin ser det.

    En viktig anledning till internets snabba utveckling

    På 1990-talet och 2000-talet blev en särskild kombination av program mycket vanlig på webbservrar:

    • Linux
    • Apache
    • MySQL
    • PHP

    De fyra begynnelsebokstäverna gav namnet LAMP.

    Det var en enkel men kraftfull idé. Man kunde bygga en komplett webbplattform utan att först betala stora licensavgifter. Det gjorde det möjligt för små företag, föreningar, studenter och privatpersoner att starta webbtjänster med mycket små ekonomiska resurser. En idé kunde provas på en gammal dator. Fungerade den kunde verksamheten växa.

    Misslyckades den hade man åtminstone inte lagt stora summor på programlicenser. Detta bidrog till den snabba experimentlusta som kännetecknade internets utveckling.

    Verktygen bakom programmen är också öppna

    När man talar om öppen källkod är det lätt att bara tänka på färdiga program. Men minst lika viktiga är verktygen som används för att skapa program. Kompilatorn GCC har exempelvis spelat en central roll i utvecklingen av fria operativsystem.

    LLVM har senare blivit en annan mycket viktig kompilatorplattform.

    Programspråk som Python, PHP och Ruby har gjort programmering tillgänglig för miljontals människor.

    Och Git har förändrat hur programmerare samarbetar. Git skapades ursprungligen för utvecklingen av Linuxkärnan. I dag används det av företag och utvecklare över hela världen.

    Ett verktyg som skapades för ett öppet projekt blev alltså en standardteknik i stora delar av programvaruindustrin.

    Databasen du använder utan att veta om det

    En annan nästan osynlig open source-produkt är SQLite.

    SQLite är en mycket liten databas som kan byggas direkt in i ett program. Den behöver ingen separat databasserver och är därför lämplig i mobiltelefoner, webbläsare och andra program.

    Det gör SQLite till ett av de tydligaste exemplen på hur öppen källkod kan bli så framgångsrik att användaren slutar märka den.

    Man kanske aldrig installerar SQLite själv. Man kanske aldrig ser dess namn. Ändå kan flera program på datorn eller telefonen använda den varje dag.

    Öppen källkod handlar egentligen om att dela kunskap

    Det är lätt att beskriva open source som ”gratis program”. Men priset är egentligen inte den mest intressanta delen. Det viktigaste är möjligheten att återanvända kunskap. Tänk dig att hundra företag behöver lösa samma tekniska problem.

    Om alla arbetar helt isolerat måste samma problem lösas hundra gånger. Om de däremot kan samarbeta kring en gemensam grund behöver arbetet bara göras en gång. Sedan kan varje företag bygga vidare på resultatet.

    Det innebär inte att alla företag måste dela allt. De kan fortfarande konkurrera med design, funktioner, tjänster och egna lösningar. Men den gemensamma grundtekniken behöver inte uppfinnas om och om igen.

    Det är en av de viktigaste anledningarna till att öppen källkod har fått så stor betydelse.

    Vad skulle hända om den försvann?

    Det går förstås inte att veta exakt hur världen hade sett ut utan open source.

    Mobiltelefoner hade förmodligen fortfarande funnits.
    Internet hade funnits. Smarta TV-apparater hade sannolikt också utvecklats. Men mycket hade blivit dyrare och mer omständligt. Fler företag hade behövt utveckla egna operativsystem.

    Fler hade varit beroende av licenser från stora programvaruföretag.

    Små företag hade haft högre kostnader för att starta nya tjänster.

    Studenter och hobbyprogrammerare hade haft svårare att experimentera med avancerad teknik.Och en större del av den digitala infrastrukturen hade sannolikt kontrollerats av ett mindre antal företag.

    Det betyder inte att öppen källkod alltid är bättre

    Samtidigt ska man inte göra open source till någon universallösning. Öppen källkod kan innehålla buggar precis som annan programvara. Projekt kan överges.

    Säkerhetsproblem kan finnas oupptäckta under lång tid.

    Att källkoden är öppen betyder att den kan granskas.

    Det betyder inte automatiskt att någon faktiskt har granskat varje rad.

    Den verkliga styrkan ligger snarare i att ingen enskild aktör behöver ha fullständig kontroll över tekniken.

    Koden kan studeras, förbättras, vidareutvecklas och i många fall leva vidare även om ett företag eller en ursprunglig utvecklare försvinner.

    Den största framgången äDet finns onda makter att vi knappt märker den

    Det kanske mest fascinerande med open source är att dess största framgång samtidigt gjort den nästan osynlig.

    Ingen tänker på Linux när en smart-TV startar.
    Ingen funderar på BSD när en nätverksapparat skickar ett paket över internet.
    Ingen tänker på SQLite när telefonen sparar information.
    Ingen tänker på Git när ett företag publicerar en ny version av ett program.

    Tekniken bara finns där. Och kanske är det just så man känner igen verkligt grundläggande infrastruktur.
    Vi tänker inte på elnätet varje gång vi tänder en lampa.
    Vi tänker inte på avloppssystemet varje gång vi öppnar en kran. På samma sätt tänker vi sällan på den enorma mängd öppen programvara som håller den digitala världen igång.
    Linux, FreeBSD, GNU och tusentals andra projekt skapade inte ensamma den moderna IT-världen. Men utan dem hade den sannolikt varit dyrare, mer sluten och betydligt svårare för vanliga människor att lära sig, förändra och bygga vidare på.
    Och kanske är det den viktigaste betydelsen av öppen källkod:

    Den gjorde avancerad datorteknik till något fler människor kunde delta i – inte bara använda.

    > FAKTARUTA: ÖPPEN KÄLLKOD_

    > Linux
    Finns i allt från Androidtelefoner och servrar till routrar, smart-TV-apparater och annan elektronik.

    > FreeBSD och BSD
    Har haft stor betydelse för Unix, nätverksteknik, servrar, lagringssystem och kommersiella produkter.

    > Internet
    En stor del av internet bygger på öppen källkod som Linux, FreeBSD, Apache, Nginx, PHP, Python, PostgreSQL och MariaDB.

    > Android
    Android använder Linuxkärnan och har gjort Linux till en del av vardagen för miljarder mobilanvändare.

    > Utvecklingsverktyg
    Git, GCC, LLVM och mängder av öppna bibliotek används varje dag för att utveckla både fria och kommersiella program.

    > Den stora skillnaden
    Öppen källkod gör det möjligt att studera, förbättra och återanvända teknik i stället för att uppfinna samma lösningar om och om igen. █

  • Linux 7.1 avvecklar stöd för 486-, 486SX- och AMD Elan-processorer

    I utvecklingsgrenen för Linux 7.1 har x86-koden uppdaterats så att stöd för processorfamiljerna M486, M486SX och AMD Elan tas bort. Ändringen innebär att kärnans lägsta praktiska målplattform för 32-bitars x86 höjs från 486-klass till 586-klass. För dagens användare får detta i stort sett inga praktiska konsekvenser, men tekniskt markerar beslutet ett tydligt steg i den långsamma avvecklingen av mycket gammal PC-hårdvara i Linuxkärnan.

    Stöd för 486-klassen tas bort i x86-koden

    Den aktuella förändringen ingår i en samlad uppdatering av Linuxkärnans x86-plattformskod. I denna uppdatering lyfts borttagandet av stöd för M486, M486SX och MELAN fram som den mest betydande ändringen, före mindre justeringar relaterade till DMI och AMD AGESA.

    Rent tekniskt innebär detta att kärnans konfigurationssystem inte längre erbjuder 486 som giltigt processormål för generiska 32-bitars x86-byggen. I filen arch/x86/Kconfig.cpu har hjälptexten ändrats så att den lägsta breda kompatibilitetsnivån nu anges som 586 i stället för 486. Samtidigt har kommentarerna i samma del av koden uppdaterats för att klargöra att både 386- och 486-baserade system inte längre stöds. AMD Elan nämns också uttryckligen bland de äldre processorfamiljer som nu avvecklas.

    Ändringen gäller inte bara text utan även faktisk konfigurationslogik

    Det handlar inte enbart om språkliga eller dokumentationsmässiga justeringar. De separata konfigurationsalternativen för M486SX, M486 och MELAN har tagits bort ur kärnans Kconfig-struktur. Därmed försvinner också de specifika byggmål som tidigare gjorde det möjligt att anpassa kärnan för dessa processorer.

    Detta är en principiellt viktig detalj. När ett processoralternativ tas bort ur konfigurationssystemet innebär det att kärnan inte längre betraktar denna hårdvaruklass som en aktivt stödd målplattform. I praktiken minskar därmed både testbarhet och möjlighet till formellt underhållet stöd för systemen i fråga.

    Miniminivån höjs från CPU-familj 4 till 5

    Förändringen påverkar också standardvärden och villkorsstyrd logik i den 32-bitars x86-koden. Den lägsta standardnivån för CPU-familj ändras från 4 till 5. Det betyder att baslinjen flyttas från 486-kompatibla processorer till 586-kompatibla processorer.

    I samma arbete har relaterade beroenden och villkor rensats upp för att ta bort hänvisningar till de borttagna alternativen. Denna typ av uppstädning är tekniskt viktig eftersom äldre specialfall annars riskerar att leva kvar i koden och komplicera framtida underhåll, även efter att den egentliga funktionaliteten har tagits bort.

    Begränsad praktisk betydelse för moderna system

    Ur användarperspektiv är den direkta effekten liten. Moderna Linuxdistributioner har sedan länge förutsatt betydligt nyare hårdvara än 486-klassen. Stöd för denna typ av processorer har i praktiken redan varit irrelevant för de flesta vanliga installationer, både på klient- och serversidan.

    Däremot har stödet haft ett symboliskt och teknikhistoriskt värde. Linuxkärnan har länge varit känd för att behålla kompatibilitet med mycket gammal hårdvara, ofta långt efter att annan systemmjukvara har övergett den. Att även 486-klassen nu försvinner visar att även ett projekt med stark tradition av bakåtkompatibilitet till slut måste ompröva nyttan av att bära vidare mycket gamla kodvägar.

    Bakgrunden: långvarig diskussion om nyttan med 486-stöd

    Frågan om att avveckla 486-stödet är inte ny. Linus Torvalds har tidigare offentligt ifrågasatt det praktiska värdet av att behålla denna del av x86-stödet. Resonemanget har i huvudsak varit att koden saknar reell användning i moderna sammanhang och därför inte längre motiverar det underhållsansvar den innebär.

    I ett projekt av Linuxkärnans storlek är detta ett återkommande ingenjörsmässigt avvägningsproblem. Varje kvarvarande stöd för äldre hårdvara medför extra konfigurationsfall, fler beroenden, mer komplex logik och ett större behov av försiktighet vid ändringar i angränsande kod. När användningsvärdet blir tillräckligt lågt blir det tekniskt rationellt att ta bort stödet.

    Samtidiga mindre ändringar i samma x86-uppdatering

    Förutom borttagandet av 486-, 486SX- och AMD Elan-stöd innehåller samma x86-plattformsmerge även två mindre ändringar. Den ena gör det möjligt att skriva ut AGESA-strängen från en post med utökad DMI-information på AMD-baserade system. Den andra består av korrigeringar och generell upprensning i DMI-koden.

    Dessa förändringar är tekniskt relevanta men har inte samma principiella tyngd som höjningen av minimikravet för x86-processorer.

    Ett tydligt generationsskifte i kärnans x86-stöd

    486-processorer tillhör den tidiga 1990-talets PC-generation. Exempel är modeller som Intel 486DX2, en processorfamilj utvecklad före genomslaget för USB, trådlösa nätverk, moderna flertrådade arbetslaster och den typ av grafiskt orienterade Linuxmiljöer som dominerar i dag.

    Att Linuxkärnan under så lång tid har bevarat stöd för denna hårdvaruklass är i sig anmärkningsvärt. Att stödet nu tas bort innebär därför mer än enbart en teknisk förenkling. Det markerar också ett generationsskifte i kärnans syn på vad som ska betraktas som en rimlig lägstanivå inom x86-plattformen.

    Slutsats

    Avvecklingen av stöd för M486, M486SX och AMD Elan i Linux 7.1 är i praktiken en begränsad förändring, men tekniskt tydlig. Kärnans x86-stöd renodlas, minimikravet höjs och äldre specialfall tas bort ur både konfigurationssystem och beroendelogik. För moderna användare är effekten försumbar, men för kärnans arkitektur och historiska utveckling är detta ett tydligt avslut på ännu ett kapitel i Linux långa relation till den tidiga PC-eran.

    Faktaruta

    Linux 7.1: stöd för processorerna 486, 486SX och AMD Elan tas bort ur x86-koden.

    Konsekvens: kärnans lägsta målplattform för 32-bitars x86 flyttas från 486-klass till 586-klass.

    I praktiken: ändringen påverkar nästan inga moderna användare.

    Symboliskt: Linux lämnar ännu en del av den tidiga PC-eran bakom sig.

    Andra artiklar om Linux kernel

  • Från sopfynd till teletype: IBM Selectric II får ett nytt liv

    En elektrisk skrivmaskin från 1970-talet, räddad ur en soptunna, visar sig rymma en ingenjörskonst som fortfarande imponerar. Med kugghjul, metallband och mekanisk logik kunde IBM Selectric II skriva snabbare än många människor och byta typsnitt på sekunder. Genom att reparera och koppla upp maskinen mot en modern dator blir den både ett historiskt experiment och en påminnelse om hur avancerad – och begriplig – tekniken en gång var.

    Att hitta en 18-kilos skrivmaskin i en grannes sopor låter som början på ett skämt, men i det här fallet var det starten på en teknikhistorisk återuppståndelse. Maskinen var en IBM Selectric II, en elektrisk skrivmaskin från tidigt 1970-tal som ofta beskrivs som ett mekaniskt mästerverk. Den är byggd som en industriell maskin, full av finurliga länkar, fjädrar och kopplingar, och den gör något som få andra skrivmaskiner kan: den väljer tecken genom att vrida och tilta ett utbytbart typelement som ser ut som en liten golfboll.

    Det märkliga “golfbolls”-elementet är själva kärnan i Selectricens idé. I en vanlig skrivmaskin sitter varje tecken på sin egen typstång. Här finns i stället ett enda typelement där alla tecken är samlade, och när du trycker på en tangent ställer maskinen in elementet till rätt position och slår det mot pappret. Eftersom allt sker med ett och samma element kan inga typstänger fastna i varandra, och man kan dessutom byta “font” genom att byta typelement på några sekunder. Det är en av anledningarna till att Selectric-systemet blev så dominerande.

    Mekaniken som gör skrivandet möjligt

    När man trycker ner en tangent händer något som mer liknar ett mekaniskt kodningssystem än ett traditionellt tangentbord. Under varje tangent finns en del som IBM kallade interposer. Den är formad på ett sätt som motsvarar ett visst tecken, ungefär som en mekanisk nyckelprofil. Interposern påverkar i sin tur ett system av stänger och spärrar som väljer en kombination av rörelser.

    I centrum finns en så kallad wiffle tree-mekanism, en sorts mekanisk “logik” som omvandlar flera små val till en exakt slutrörelse. Det är där Selectricens genialitet verkligen märks: istället för att ha en separat mekanism för varje tecken använder den en kombination av binära val som till slut styr hur mycket typelementet ska roteras och hur mycket det ska tiltas.

    Det riktigt eleganta är att detta fungerar trots att vagnen samtidigt rör sig i sidled. Lösningen är metallband som löper som loopar genom maskinen. Så länge loopens totala längd är konstant kan vagnen flytta sig utan att typelementets orientering ändras. Men om maskinen ändrar loopens effektiva längd så roterar eller tiltar elementet. Det är ett smart trick som gör att teckenvalet kan styras på distans från mekaniken, även när vagnen rör sig.

    Första steget: att få maskinen att fungera igen

    Sopfyndet var inte redo att skriva direkt. Ett tidigt fel satt i en liten arm som drar fram färgbandet. Den hade kärvat fast, och lösningen var klassisk verkstadslogik: demontera ett par kugghjul, rengöra och smörja, och sedan röra allt tillbaka till fri rörelse.

    Ett större problem fanns i tangentbordet. Vissa tangenter gick att trycka ner men gav ingen utskrift. När tangentbordet plockades isär visade det sig att felet berodde på något som kallas selector compensator, ett rör med små kulor som tar upp spel och samtidigt förhindrar att två teckenval registreras exakt samtidigt. Röret hade böjts så att en kula till och med hade pressats ut genom sidan, vilket inte ska kunna hända i normal drift. För att komma åt felet krävdes en djupare demontering, men när delarna riktades och sattes tillbaka fungerade teckenvalet igen.

    Från skrivmaskin till teletype

    När Selectricen väl var mekaniskt frisk uppstod den mer udda idén: att göra den till en teletype, alltså en skrivande terminal kopplad till en dator. En teletype är i grunden en fjärrskrivare, ett system som låter text färdas över en ledning och skrivas ut på papper på en annan plats. Under stora delar av 1900-talet var detta ett av de viktigaste sätten att skicka text snabbt, långt innan fax och e-post blev vardag.

    På 1970-talet, när hemdatorrevolutionen tog fart, var skrivare fortfarande ovanliga och ofta ganska dåliga. Dotmatrisskrivare fanns, men utskrifterna var grova jämfört med Selectricens krispiga slag. Därför byggde många entusiaster om Selectric-maskiner till datorutmatning. Det lockande är att skrivmaskinen redan har en extremt snabb och exakt mekanik, och om man bara kan “trycka ner” rätt mekaniska val med elektriska ställdon så blir den en imponerande skrivare.

    Solenoider som ersätter fingrar

    För att få maskinen att skriva utan mänskliga fingrar användes solenoider, alltså elektromagnetiska ställdon som kan dra eller trycka en arm när de får ström. Målet var att undvika en solenoid per tangent, vilket skulle bli dyrt och komplicerat. I stället utnyttjades Selectricens interna logik: genom att påverka ett fåtal centrala “valpunkter” kan man åstadkomma alla tecken.

    Resultatet blev tretton solenoider. Sex av dem styr själva teckenvalet via maskinens latch-interposers. En solenoid triggar skrivcykeln. En annan sköter Shift, eftersom versalerna ligger på andra sidan av typelementet och kräver en separat mekanisk omställning. Fyra solenoider styr funktionerna som i en teletype är avgörande: mellanslag, backsteg, vagnretur och ny rad. Den sista solenoiden kopplades till klockan, eftersom många teletypes hade ett “bell”-ljud som kunde aktiveras med ett styrtecken.

    För att allt skulle gå att montera snyggt byggdes hållare och adaptrar med 3D-printade delar. En viktig princip var att inte behöva borra i chassit, utan att använda befintliga skruvhål så att maskinen i teorin kan återställas.

    Att läsa tangentbordet utan att förstöra det

    Selectricens tangentbord anses av många vara ett av de bästa som byggts. Men för att göra maskinen till en terminal behövdes också en väg att läsa av vilka tangenter som trycks. Här användes optiska sensorer, opto-interrupters, som känner av när en liten “flik” passerar mellan en lysdiod och en sensor.

    Placeringen valdes där interposers passerar en styrskena, vilket råkar vara samma plats där avlyssningsutrustning historiskt har kunnat byggas in. Under kalla kriget lyckades sovjetiska tekniker bygga in avlyssning i vissa elektriska skrivmaskiner genom att läsa av rörelser på ett diskret sätt. I det här projektet användes samma mekaniska “observationspunkt”, men med helt oskyldiga sensorer för att skapa en dator-anslutning.

    Eftersom inte alla tangenter är enkla att läsa på samma plats kompletterades systemet med fler sensorer för exempelvis cykelstart, vissa specialtangenter och shift-läget. Tillsammans gav det full kontroll över både inmatning och utskrift.

    Elektronik som pratar RS-232

    Styrningen byggdes kring en mikrokontroller och MOSFET-drivning för solenoiderna. RS-232 valdes som kommunikationsstandard, eftersom det historiskt är ett av de vanligaste sätten att koppla terminaler till datorer. Det passar också bra i en retroinspirerad konstruktion: ett seriellt gränssnitt med tydliga regler och robust signalering.

    På mjukvarusidan var en av de stora utmaningarna timing. Maskinen kan vara snabb, men det betyder inte att den kan ta emot data i samma takt som en modern dator kan skicka den. Därför behövdes buffring och flödeskontroll. En annan utmaning var teckenmappningen: för att veta vilket mekaniskt val som ger vilket utskrivet tecken behöver man en tabell, och den tabellen skapades genom att skriva ut tecken i serie och manuellt bygga en “lookup”-lista.

    När allt väl satt kunde maskinen skriva hela ASCII-uppsättningen, inklusive styrtecken. Ett klassiskt exempel är Ctrl-G, “bell”, som får klockan att ringa.

    Datorn på papper: programmering, verktyg och textflöde

    Med maskinen kopplad via seriell kabel till en Linux-dator kunde den användas som en riktig terminal, om än en terminal som skriver på papper och aldrig kan sudda. Det blir snabbt tydligt varför så många gamla Unix-program är gjorda för textutmatning och linjebaserad interaktion: de var bokstavligen designade för teletypes.

    Det gick att skriva ett C-program, kompilera det och köra det, och låta resultatet hamna direkt på papper. Det gick att göra beräkningar, prova klassiska verktyg och till och med köra BASIC-liknande exempel som känns hämtade från 1970-talets hemdatorvärld. Men det blev också uppenbart att en fysisk mekanik ibland ger små egenheter: extra tecken eller enstaka “felsteg” kan dyka upp när inställningar och slitage inte är perfekta.

    Webben, men i textform

    En särskild idé var att använda skrivmaskinen för att “surfa” på webben. Här stöter man på en grundläggande konflikt: moderna webbsidor är byggda för skärm, grafik och interaktivitet. En skrivmaskin kan bara mata framåt på papper.

    Lösningen blev att använda en textbaserad webbläsare som kan rendera en sida till ren text och lista länkar med nummer. Man kan sedan skriva in länknummret för att gå vidare, ungefär som tidiga textlägenavigatörer. För enkla och historiska sidor fungerar det förvånansvärt bra. För moderna plattformar blir det snabbt ohanterligt, eftersom mängden länkar, menyer och dynamiskt innehåll exploderar i mängd text. Det som på skärm känns som en “ren” sida blir i textutskrift flera minuter av papper.

    Varför göra detta alls?

    På ett plan är det här ett hopplöst opraktiskt projekt. Det är långsamt, bullrigt och kräver papper och underhåll. Men på ett annat plan är det en demonstration av något som blivit ovanligt: teknik som är begriplig i sin fysiska form, där varje funktion motsvaras av en synlig rörelse, och där innovation kan vara lika mycket mekanisk som digital.

    IBM Selectric II visar att ingenjörskonst inte bara handlar om processorkraft och mjukvara. Den handlar också om hur man med kuggar, band, kopplingar och smart mekanisk logik kan skapa ett system som är snabbt, robust och elegant. Att koppla en sådan maskin till en modern dator är i grunden ett möte mellan två epoker, där pappersterminalen blir en påminnelse om hur text och datoranvändning en gång såg ut och varför så mycket av vår programkultur fortfarande bär spår av den tiden.

    Faktaruta: IBM Selectric II & teletype-bygget
    Modell: IBM Selectric II (elektrisk skrivmaskin, tidigt 1970-tal)
    Vikt: ca 18 kg (≈ 40 lb)
    Typelement: Utbytbart “golfboll”-format typeball (snabbt byte av typsnitt/teckenuppsättning)
    Nyckelidé: Tecken väljs genom att typelementet roteras och tiltas innan slaget mot pappret.
    Mekanik: Över 2 000 mekaniska delar och en berömd “wiffle tree”-mekanism som omvandlar tangentval till rörelse.
    Ombyggnad till terminal:
    Ställdon: 13 solenoider för teckenval, cykelstart, shift, mellanslag, backsteg, vagnretur/ny rad och klocka (bell)
    Avläsning: Optiska sensorer (opto-interrupters) för att läsa tangenttryck och maskinens lägen
    Kommunikation: RS-232 seriellt gränssnitt
    Resultat: Skrivmaskinen fungerar som teletype/terminal och kan skriva ut datorns text direkt på papper.

Etikett: teknikhistoria

  • Hur skulle världen se ut utan öppen källkod?

    Föreställ dig att din mobiltelefon, din TV, din router och stora delar av internet plötsligt måste byggas om från grunden. Inte därför att tekniken har försvunnit, utan därför att ingen längre får dela med sig av programkod. Tänk dig att du var tvungen att åka tillbaka till 90-talet, där du bara kunde spela ”Snake” på…

  • Linux 7.1 avvecklar stöd för 486-, 486SX- och AMD Elan-processorer

    I utvecklingsgrenen för Linux 7.1 har x86-koden uppdaterats så att stöd för processorfamiljerna M486, M486SX och AMD Elan tas bort. Ändringen innebär att kärnans lägsta praktiska målplattform för 32-bitars x86 höjs från 486-klass till 586-klass. För dagens användare får detta i stort sett inga praktiska konsekvenser, men tekniskt markerar beslutet ett tydligt steg i den…

  • Från sopfynd till teletype: IBM Selectric II får ett nytt liv

    En elektrisk skrivmaskin från 1970-talet, räddad ur en soptunna, visar sig rymma en ingenjörskonst som fortfarande imponerar. Med kugghjul, metallband och mekanisk logik kunde IBM Selectric II skriva snabbare än många människor och byta typsnitt på sekunder. Genom att reparera och koppla upp maskinen mot en modern dator blir den både ett historiskt experiment och…