SlideShare a Scribd company logo
Reconstructive Software
             Archaeology

            Warren Toomey
         School of IT, Bond Uni

This is a case study in resurrecting an old
 piece of software. The reconstruction is
   interesting in itself, but it also raises
  many issues that are relevant in other
              software fields.
Preserving the History of
              Computing
    We need to begin the task of preserving the
●

    history of computing
    This includes ideas, stories, and more
●

    importantly, historical artifacts
    Computing artifacts include:
●

        Old hardware
    –
        Old design notes, blueprints and schematics
    –
        Old documentation
    –
        Old software
    –
    Software, in particular, comes in 2 forms:
●

        Source form, and executable form
    –
    What are some of the preservation issues?
●
What if the artifact's purpose
         is unknown?
What if the documentation
        is missing?
What if the documentation is
         incomplete?
Is the artifact a blueprint?
     Can it be rebuilt?
Do we have the tools
    to rebuild it?
Do we have to replace some of
   the parts of the artifact?
Software Restoration Issues
    Unlike physical hardware, software does not
●

    decay (at least, not while pristine copies
    exist)
    But in practice, software tends to exhibit what
●

    is commonly known as “bit rot”
    If software does not decay, then what causes
●

    the bit rot?

    Bit rot is a function of the software's
●

    environment, and not the software itself
The UNIX Heritage Society
    I'm a founding member of the Unix Heritage
●

    Society
    Our aim is to preserve the knowledge and
●

    artifacts of early UNIX
    Where possible, we try to keep old systems
●

    working. Past successes:
        Restoration of earliest C version of UNIX: 1973
    –
        Restoration of earliest C compiler: also 1973
    –
        Creation of executable environment for UNIX
    –
        userland binaries, assembled in 1972
Nothing UNIX before 1973
    Versions of UNIX prior to 1973 were
●

    assumed to be lost, although paper manuals
    were still in existence
    These early UNIXes were written in
●

    assembly code for the PDP-11/20
    minicomputer
    The only surviving artifacts from this time are
●

    some binary executables, and some source
    code fragments for the executables
    The “holy grail” was to find 1st Edition UNIX
●


    from 1971
st
       1 Edition UNIX Features
    Hierarchical filesystem: files, directories,
●

    subdirectories
    Pre-emptive multitasking & processes
●

    A flexible command-line interpreter
●

    Multiuser, including e-mail
●

    Mountable storage, giving a single filesystem
●

    tree
    Hard links: a file can have multiple names
●

    Multiple languages: assembly, FORTRAN,
●

    Basic, TMG, shell scripting
And then...
    A paper document containing a listing of the
●


    1st Edition UNIX kernel was found
Can It Be Restored?
    Needs to be OCR'd and eyeballed
●

    Contradictory typed & handwritten comments
●


    No 1st Edition assembler, only later ones
●

    No bootstrap code in any form
●

    No filesystem or creation tool, just the docs
●

    Need a PDP-11/20 simulator: one exists, but
●

        doesn't simulate the KE11A arithmetic unit
    –
        doesn't simulate the DC-11 serial device needed
    –
        to login on the system
    Not sure if existing executables are from 1st
●


    Edition or 2nd Ed: will they be compatible?
What was Done, Part 1
    Document scanned, OCR'd, manually
●

    checked & cross-checked by ~10 people
    Tool written to modify output from 7th Edition
●

                                        st
    assembler to be compatible with 1 Edition
    assembler (according to 1st Ed documents)
    Existing Apout tool allows 7th Ed assembler
●


    to run without a full PDP-11 simulator
    Several logic errors and missing lines found
●

    in the paper listing: fixed
    KE11A support added to PDP-11 simulator
●

    Result: kernel runs to a point, then hangs
●
What was Done, Part 2
    “Cold” kernel fixed, builds near-empty
●

    filesystem. Result: “Warm” kernel hangs
    mkfs tool written to build and fully populate
●

    the root and /usr filesystems
    Result: UNIX boots, init, login and shell work!
●

    Simulator further modified to emulate DC-11
●

    Result: multiuser UNIX system
●

    Kernel modified to deal with “0407”
●

    executables
    Result: all old executables run; C compiler
●

    runs and can recompile itself
Software Reconstruction
    Software suffers from “bit rot”. We had to:
●

        Fix typos, missing lines, logic mistakes in the
    –
        source code
        Build tools which could assemble the source
    –
        code, and construct suitable filesystems
        Modify an existing PDP-11 simulator to provide
    –
        an executable environment for the system
        Interpret old documentation: on the whole, it was
    –
        excellent, but it was vague or omitted details in
        places
    Luck played a role: we had documentation,
●

    preserved executables, existing tools
Lessons Learned for Now
    Write good documentation
●

    Keep software up-to-date with new platforms
●

    If necessary, write simulators now while the
●

    hardware details still exist
        Moore's Law helps here
    –
    All software requires an environment. Take a
●

    crucial component away, & it stops working:
        Hardware, compilation tools, user manual,
    –
        filesystem, even configuration files
    As system complexity increases, the work
●

    needed to resurrect/restore increases
Questions?
V1 UNIX & Linux Syscalls
Syscall Linux   V1 UNIX Syscall Linux V1 UNIX Syscall Linux V1 UNIX
   0 n/a        Rele      13     Time   Time    26 Ptrace Quit
   1 Exit       Exit      14    Mknod Mkdir     27 Alarm Intr
   2 Fork       Fork      15    Chmod Chmod     28 Fstat Fstat
   3 Read       Read      16    Lchown Chown    29 Pause Cemt
   4 Write      Write     17      n/a   Break   30 Utime Smdate
   5 Open       Open      18      Stat   Stat   31 n/a      Stty
   6 Close      Close     19     Lseek Seek     32 n/a      Gtty
   7 Waitpid    Wait      20    Getpid   Tell   33 Access Iglins
   8 Creat      Creat     21     Mount Mount
   9 Link       Link      22    Umount Umount
  10 Unlink     Unlink    23     Setuid Setuid
  11 Execve     Exec      24    Getuid Getuid
  12 Chdir      Chdir     25     Stime Stime

More Related Content

What's hot

Linux notes
Linux notesLinux notes
Linux notes
Teja Bheemanapally
 
Linux
LinuxLinux
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
nishantsri
 
Linux or unix interview questions
Linux or unix interview questionsLinux or unix interview questions
Linux or unix interview questions
Teja Bheemanapally
 
Operating systems unix
Operating systems   unixOperating systems   unix
Operating systems unix
Achu dhan
 
basic linux command (questions)
basic linux command (questions)basic linux command (questions)
basic linux command (questions)
Sukhraj Singh
 
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityOMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
Andrew Case
 
Unix Operating System
Unix Operating SystemUnix Operating System
Unix Operating System
MahakKasliwal
 
Linux
LinuxLinux
Linux lesson
Linux lesson Linux lesson
Linux lesson
mutharam
 
Linux architecture
Linux architectureLinux architecture
Linux architecture
mcganesh
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
guest547d74
 
Linux Introduction (Commands)
Linux Introduction (Commands)Linux Introduction (Commands)
Linux Introduction (Commands)
anandvaidya
 
2nd
2nd2nd
2nd
Erm78
 
Basic Linux kernel
Basic Linux kernelBasic Linux kernel
Basic Linux kernel
Morteza Nourelahi Alamdari
 
02unixintro
02unixintro02unixintro
02unixintro
Zhiwen Guo
 
Linux ppt
Linux pptLinux ppt
Linux ppt
lincy21
 
Unix Basics
Unix BasicsUnix Basics
Unix Basics
siri_gaddipati
 
Linux Command Suumary
Linux Command SuumaryLinux Command Suumary
Linux Command Suumary
mentorsnet
 
LINUX Admin Quick Reference
LINUX Admin Quick ReferenceLINUX Admin Quick Reference
LINUX Admin Quick Reference
wensheng wei
 

What's hot (20)

Linux notes
Linux notesLinux notes
Linux notes
 
Linux
LinuxLinux
Linux
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 
Linux or unix interview questions
Linux or unix interview questionsLinux or unix interview questions
Linux or unix interview questions
 
Operating systems unix
Operating systems   unixOperating systems   unix
Operating systems unix
 
basic linux command (questions)
basic linux command (questions)basic linux command (questions)
basic linux command (questions)
 
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityOMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
 
Unix Operating System
Unix Operating SystemUnix Operating System
Unix Operating System
 
Linux
LinuxLinux
Linux
 
Linux lesson
Linux lesson Linux lesson
Linux lesson
 
Linux architecture
Linux architectureLinux architecture
Linux architecture
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Linux Introduction (Commands)
Linux Introduction (Commands)Linux Introduction (Commands)
Linux Introduction (Commands)
 
2nd
2nd2nd
2nd
 
Basic Linux kernel
Basic Linux kernelBasic Linux kernel
Basic Linux kernel
 
02unixintro
02unixintro02unixintro
02unixintro
 
Linux ppt
Linux pptLinux ppt
Linux ppt
 
Unix Basics
Unix BasicsUnix Basics
Unix Basics
 
Linux Command Suumary
Linux Command SuumaryLinux Command Suumary
Linux Command Suumary
 
LINUX Admin Quick Reference
LINUX Admin Quick ReferenceLINUX Admin Quick Reference
LINUX Admin Quick Reference
 

Viewers also liked

The internet Business: Success stories, Business Models etc. - A talk at IIMA
The internet Business: Success stories, Business Models etc. - A talk at IIMAThe internet Business: Success stories, Business Models etc. - A talk at IIMA
The internet Business: Success stories, Business Models etc. - A talk at IIMA
Rohit Varma
 
The Australian Community-Driven TV Guide
The Australian Community-Driven TV GuideThe Australian Community-Driven TV Guide
The Australian Community-Driven TV Guide
DoctorWkt
 
Better Branding_McKinsey Quarterly_Nov 2003
Better Branding_McKinsey Quarterly_Nov 2003Better Branding_McKinsey Quarterly_Nov 2003
Better Branding_McKinsey Quarterly_Nov 2003
Rohit Varma
 
Ten things that i have learnt in my marketing career_Talk at AICAR Business S...
Ten things that i have learnt in my marketing career_Talk at AICAR Business S...Ten things that i have learnt in my marketing career_Talk at AICAR Business S...
Ten things that i have learnt in my marketing career_Talk at AICAR Business S...
Rohit Varma
 
Culture/Social Media
Culture/Social MediaCulture/Social Media
Culture/Social Media
Ben Komanapalli
 
المحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقىالمحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقى
guestfd118
 
Ctcompare: Comparing Multiple Code Trees for Similarity
Ctcompare: Comparing Multiple Code Trees for SimilarityCtcompare: Comparing Multiple Code Trees for Similarity
Ctcompare: Comparing Multiple Code Trees for Similarity
DoctorWkt
 
المحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقى المحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقى
guestfd118
 
Learnings from handling social media products for the indian market an intern...
Learnings from handling social media products for the indian market an intern...Learnings from handling social media products for the indian market an intern...
Learnings from handling social media products for the indian market an intern...
Rohit Varma
 
Less talked about aspects of digital marketing_The business and profession of...
Less talked about aspects of digital marketing_The business and profession of...Less talked about aspects of digital marketing_The business and profession of...
Less talked about aspects of digital marketing_The business and profession of...
Rohit Varma
 
The evolution of the Internet and it's impact on print and other media_IDC_II...
The evolution of the Internet and it's impact on print and other media_IDC_II...The evolution of the Internet and it's impact on print and other media_IDC_II...
The evolution of the Internet and it's impact on print and other media_IDC_II...
Rohit Varma
 
Ten things that are happening around us and ten ways India's students batch o...
Ten things that are happening around us and ten ways India's students batch o...Ten things that are happening around us and ten ways India's students batch o...
Ten things that are happening around us and ten ways India's students batch o...
Rohit Varma
 
Steven Marks Engineer
Steven Marks EngineerSteven Marks Engineer
Steven Marks Engineer
guestb541e
 
How does the ue know when an eNB is talking to it
How does the ue know when an eNB is talking to itHow does the ue know when an eNB is talking to it
How does the ue know when an eNB is talking to it
aliirfan04
 
Social networking learnings & opportunities web innovation conference, bangal...
Social networking learnings & opportunities web innovation conference, bangal...Social networking learnings & opportunities web innovation conference, bangal...
Social networking learnings & opportunities web innovation conference, bangal...
Rohit Varma
 
LTE and EPC Specifications
LTE and EPC SpecificationsLTE and EPC Specifications
LTE and EPC Specifications
aliirfan04
 
Lte security overview
Lte security overviewLte security overview
Lte security overview
aliirfan04
 

Viewers also liked (17)

The internet Business: Success stories, Business Models etc. - A talk at IIMA
The internet Business: Success stories, Business Models etc. - A talk at IIMAThe internet Business: Success stories, Business Models etc. - A talk at IIMA
The internet Business: Success stories, Business Models etc. - A talk at IIMA
 
The Australian Community-Driven TV Guide
The Australian Community-Driven TV GuideThe Australian Community-Driven TV Guide
The Australian Community-Driven TV Guide
 
Better Branding_McKinsey Quarterly_Nov 2003
Better Branding_McKinsey Quarterly_Nov 2003Better Branding_McKinsey Quarterly_Nov 2003
Better Branding_McKinsey Quarterly_Nov 2003
 
Ten things that i have learnt in my marketing career_Talk at AICAR Business S...
Ten things that i have learnt in my marketing career_Talk at AICAR Business S...Ten things that i have learnt in my marketing career_Talk at AICAR Business S...
Ten things that i have learnt in my marketing career_Talk at AICAR Business S...
 
Culture/Social Media
Culture/Social MediaCulture/Social Media
Culture/Social Media
 
المحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقىالمحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقى
 
Ctcompare: Comparing Multiple Code Trees for Similarity
Ctcompare: Comparing Multiple Code Trees for SimilarityCtcompare: Comparing Multiple Code Trees for Similarity
Ctcompare: Comparing Multiple Code Trees for Similarity
 
المحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقى المحاضرة الثالثه للدكتور صالح عراقى
المحاضرة الثالثه للدكتور صالح عراقى
 
Learnings from handling social media products for the indian market an intern...
Learnings from handling social media products for the indian market an intern...Learnings from handling social media products for the indian market an intern...
Learnings from handling social media products for the indian market an intern...
 
Less talked about aspects of digital marketing_The business and profession of...
Less talked about aspects of digital marketing_The business and profession of...Less talked about aspects of digital marketing_The business and profession of...
Less talked about aspects of digital marketing_The business and profession of...
 
The evolution of the Internet and it's impact on print and other media_IDC_II...
The evolution of the Internet and it's impact on print and other media_IDC_II...The evolution of the Internet and it's impact on print and other media_IDC_II...
The evolution of the Internet and it's impact on print and other media_IDC_II...
 
Ten things that are happening around us and ten ways India's students batch o...
Ten things that are happening around us and ten ways India's students batch o...Ten things that are happening around us and ten ways India's students batch o...
Ten things that are happening around us and ten ways India's students batch o...
 
Steven Marks Engineer
Steven Marks EngineerSteven Marks Engineer
Steven Marks Engineer
 
How does the ue know when an eNB is talking to it
How does the ue know when an eNB is talking to itHow does the ue know when an eNB is talking to it
How does the ue know when an eNB is talking to it
 
Social networking learnings & opportunities web innovation conference, bangal...
Social networking learnings & opportunities web innovation conference, bangal...Social networking learnings & opportunities web innovation conference, bangal...
Social networking learnings & opportunities web innovation conference, bangal...
 
LTE and EPC Specifications
LTE and EPC SpecificationsLTE and EPC Specifications
LTE and EPC Specifications
 
Lte security overview
Lte security overviewLte security overview
Lte security overview
 

Similar to Reconstructive Software Archaeology

UNIX Basics and Cluster Computing
UNIX Basics and Cluster ComputingUNIX Basics and Cluster Computing
UNIX Basics and Cluster Computing
Bioinformatics and Computational Biosciences Branch
 
Microkernels and Beyond
Microkernels and BeyondMicrokernels and Beyond
Microkernels and Beyond
David Evans
 
Linux basic
Linux basicLinux basic
Linux basic
Pragyagupta37
 
I Am Linux-Introductory Module on Linux
I Am Linux-Introductory Module on LinuxI Am Linux-Introductory Module on Linux
I Am Linux-Introductory Module on Linux
Sagar Kumar
 
Ganesh naik linux_kernel_internals
Ganesh naik linux_kernel_internalsGanesh naik linux_kernel_internals
Ganesh naik linux_kernel_internals
Ganesh Naik
 
Ganesh naik linux_kernel_internals
Ganesh naik linux_kernel_internalsGanesh naik linux_kernel_internals
Ganesh naik linux_kernel_internals
nullowaspmumbai
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
Sherif Mousa
 
Linux introduction (eng)
Linux introduction (eng)Linux introduction (eng)
Linux introduction (eng)
Anatoliy Okhotnikov
 
operating system
operating systemoperating system
operating system
Ibbad shah
 
Spsl unit1
Spsl   unit1Spsl   unit1
Spsl unit1
Sasidhar Kothuru
 
Linux intro 1 definitions
Linux intro 1  definitionsLinux intro 1  definitions
Linux intro 1 definitions
Giovanni Marco Dall'Olio
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel Development
Levente Kurusa
 
Group project linux helix
Group project linux helixGroup project linux helix
Group project linux helix
Jeff Carroll
 
Embedded Linux Odp
Embedded Linux OdpEmbedded Linux Odp
Embedded Linux Odp
ghessler
 
Assembly Langauge Assembly Langauge Assembly Langauge
Assembly Langauge Assembly Langauge Assembly LangaugeAssembly Langauge Assembly Langauge Assembly Langauge
Assembly Langauge Assembly Langauge Assembly Langauge
mustafkhalid
 
Microcontrollers programming Raspberry Pi
Microcontrollers programming Raspberry Pi Microcontrollers programming Raspberry Pi
Microcontrollers programming Raspberry Pi
MUSAAB HASAN
 
Linux_CASESTUDY.ppt
Linux_CASESTUDY.pptLinux_CASESTUDY.ppt
Linux_CASESTUDY.ppt
GaganaPurshothama
 
Linux Operating System
Linux Operating SystemLinux Operating System
Linux Operating System
KunalKewat1
 
REAL TIME OPERATING SYSTEM PART 2
REAL TIME OPERATING SYSTEM PART 2REAL TIME OPERATING SYSTEM PART 2
REAL TIME OPERATING SYSTEM PART 2
Embeddedcraft Craft
 
Rhce ppt
Rhce pptRhce ppt
Rhce ppt
Mohammed Ben
 

Similar to Reconstructive Software Archaeology (20)

UNIX Basics and Cluster Computing
UNIX Basics and Cluster ComputingUNIX Basics and Cluster Computing
UNIX Basics and Cluster Computing
 
Microkernels and Beyond
Microkernels and BeyondMicrokernels and Beyond
Microkernels and Beyond
 
Linux basic
Linux basicLinux basic
Linux basic
 
I Am Linux-Introductory Module on Linux
I Am Linux-Introductory Module on LinuxI Am Linux-Introductory Module on Linux
I Am Linux-Introductory Module on Linux
 
Ganesh naik linux_kernel_internals
Ganesh naik linux_kernel_internalsGanesh naik linux_kernel_internals
Ganesh naik linux_kernel_internals
 
Ganesh naik linux_kernel_internals
Ganesh naik linux_kernel_internalsGanesh naik linux_kernel_internals
Ganesh naik linux_kernel_internals
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Linux introduction (eng)
Linux introduction (eng)Linux introduction (eng)
Linux introduction (eng)
 
operating system
operating systemoperating system
operating system
 
Spsl unit1
Spsl   unit1Spsl   unit1
Spsl unit1
 
Linux intro 1 definitions
Linux intro 1  definitionsLinux intro 1  definitions
Linux intro 1 definitions
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel Development
 
Group project linux helix
Group project linux helixGroup project linux helix
Group project linux helix
 
Embedded Linux Odp
Embedded Linux OdpEmbedded Linux Odp
Embedded Linux Odp
 
Assembly Langauge Assembly Langauge Assembly Langauge
Assembly Langauge Assembly Langauge Assembly LangaugeAssembly Langauge Assembly Langauge Assembly Langauge
Assembly Langauge Assembly Langauge Assembly Langauge
 
Microcontrollers programming Raspberry Pi
Microcontrollers programming Raspberry Pi Microcontrollers programming Raspberry Pi
Microcontrollers programming Raspberry Pi
 
Linux_CASESTUDY.ppt
Linux_CASESTUDY.pptLinux_CASESTUDY.ppt
Linux_CASESTUDY.ppt
 
Linux Operating System
Linux Operating SystemLinux Operating System
Linux Operating System
 
REAL TIME OPERATING SYSTEM PART 2
REAL TIME OPERATING SYSTEM PART 2REAL TIME OPERATING SYSTEM PART 2
REAL TIME OPERATING SYSTEM PART 2
 
Rhce ppt
Rhce pptRhce ppt
Rhce ppt
 

Recently uploaded

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 

Recently uploaded (20)

Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 

Reconstructive Software Archaeology

  • 1. Reconstructive Software Archaeology Warren Toomey School of IT, Bond Uni This is a case study in resurrecting an old piece of software. The reconstruction is interesting in itself, but it also raises many issues that are relevant in other software fields.
  • 2. Preserving the History of Computing We need to begin the task of preserving the ● history of computing This includes ideas, stories, and more ● importantly, historical artifacts Computing artifacts include: ● Old hardware – Old design notes, blueprints and schematics – Old documentation – Old software – Software, in particular, comes in 2 forms: ● Source form, and executable form – What are some of the preservation issues? ●
  • 3. What if the artifact's purpose is unknown?
  • 4. What if the documentation is missing?
  • 5. What if the documentation is incomplete?
  • 6. Is the artifact a blueprint? Can it be rebuilt?
  • 7. Do we have the tools to rebuild it?
  • 8. Do we have to replace some of the parts of the artifact?
  • 9. Software Restoration Issues Unlike physical hardware, software does not ● decay (at least, not while pristine copies exist) But in practice, software tends to exhibit what ● is commonly known as “bit rot” If software does not decay, then what causes ● the bit rot? Bit rot is a function of the software's ● environment, and not the software itself
  • 10. The UNIX Heritage Society I'm a founding member of the Unix Heritage ● Society Our aim is to preserve the knowledge and ● artifacts of early UNIX Where possible, we try to keep old systems ● working. Past successes: Restoration of earliest C version of UNIX: 1973 – Restoration of earliest C compiler: also 1973 – Creation of executable environment for UNIX – userland binaries, assembled in 1972
  • 11. Nothing UNIX before 1973 Versions of UNIX prior to 1973 were ● assumed to be lost, although paper manuals were still in existence These early UNIXes were written in ● assembly code for the PDP-11/20 minicomputer The only surviving artifacts from this time are ● some binary executables, and some source code fragments for the executables The “holy grail” was to find 1st Edition UNIX ● from 1971
  • 12. st 1 Edition UNIX Features Hierarchical filesystem: files, directories, ● subdirectories Pre-emptive multitasking & processes ● A flexible command-line interpreter ● Multiuser, including e-mail ● Mountable storage, giving a single filesystem ● tree Hard links: a file can have multiple names ● Multiple languages: assembly, FORTRAN, ● Basic, TMG, shell scripting
  • 13. And then... A paper document containing a listing of the ● 1st Edition UNIX kernel was found
  • 14. Can It Be Restored? Needs to be OCR'd and eyeballed ● Contradictory typed & handwritten comments ● No 1st Edition assembler, only later ones ● No bootstrap code in any form ● No filesystem or creation tool, just the docs ● Need a PDP-11/20 simulator: one exists, but ● doesn't simulate the KE11A arithmetic unit – doesn't simulate the DC-11 serial device needed – to login on the system Not sure if existing executables are from 1st ● Edition or 2nd Ed: will they be compatible?
  • 15. What was Done, Part 1 Document scanned, OCR'd, manually ● checked & cross-checked by ~10 people Tool written to modify output from 7th Edition ● st assembler to be compatible with 1 Edition assembler (according to 1st Ed documents) Existing Apout tool allows 7th Ed assembler ● to run without a full PDP-11 simulator Several logic errors and missing lines found ● in the paper listing: fixed KE11A support added to PDP-11 simulator ● Result: kernel runs to a point, then hangs ●
  • 16. What was Done, Part 2 “Cold” kernel fixed, builds near-empty ● filesystem. Result: “Warm” kernel hangs mkfs tool written to build and fully populate ● the root and /usr filesystems Result: UNIX boots, init, login and shell work! ● Simulator further modified to emulate DC-11 ● Result: multiuser UNIX system ● Kernel modified to deal with “0407” ● executables Result: all old executables run; C compiler ● runs and can recompile itself
  • 17. Software Reconstruction Software suffers from “bit rot”. We had to: ● Fix typos, missing lines, logic mistakes in the – source code Build tools which could assemble the source – code, and construct suitable filesystems Modify an existing PDP-11 simulator to provide – an executable environment for the system Interpret old documentation: on the whole, it was – excellent, but it was vague or omitted details in places Luck played a role: we had documentation, ● preserved executables, existing tools
  • 18. Lessons Learned for Now Write good documentation ● Keep software up-to-date with new platforms ● If necessary, write simulators now while the ● hardware details still exist Moore's Law helps here – All software requires an environment. Take a ● crucial component away, & it stops working: Hardware, compilation tools, user manual, – filesystem, even configuration files As system complexity increases, the work ● needed to resurrect/restore increases
  • 20. V1 UNIX & Linux Syscalls Syscall Linux V1 UNIX Syscall Linux V1 UNIX Syscall Linux V1 UNIX 0 n/a Rele 13 Time Time 26 Ptrace Quit 1 Exit Exit 14 Mknod Mkdir 27 Alarm Intr 2 Fork Fork 15 Chmod Chmod 28 Fstat Fstat 3 Read Read 16 Lchown Chown 29 Pause Cemt 4 Write Write 17 n/a Break 30 Utime Smdate 5 Open Open 18 Stat Stat 31 n/a Stty 6 Close Close 19 Lseek Seek 32 n/a Gtty 7 Waitpid Wait 20 Getpid Tell 33 Access Iglins 8 Creat Creat 21 Mount Mount 9 Link Link 22 Umount Umount 10 Unlink Unlink 23 Setuid Setuid 11 Execve Exec 24 Getuid Getuid 12 Chdir Chdir 25 Stime Stime