В прошлом году NASA опубликовала список программного обеспечения, код которого они разрабатывали в течении долгих лет. NASA уже давно стала знаменита тем, что делится с общественностью своим кодом. Другие же разработчики не всегда готовы пойти на такое. По крайней мере не сразу. Давайте ознакомимся с некоторыми примерами классического кода, который теперь можно и посмотреть, и пощупать.


Бортовой управляющий компьютер КА Аполлон (AGC)

Миссия Apollo на Луну по праву считается колоссальным достижением человечества. Для ее осуществления был проделан не менее колоссальный труд. Это относится и к программному обеспечению, которое разрабатывалось MIT Instrumentation Lab. AGC было установлено и на бортовой, и на лунный модули для обеспечения наведения, навигации и управления. В честь 40 летия миссии Apollo 11 в 2009 году оригинальный код AGC был расшифрован и отсканирован со старых записей и предоставлен в открытом доступе.



Желающие ознакомится с кодом AGC или даже поковыряться в нем могут скачать его (также можно скачать виртуальный симулятор AGC) с сайта Google Code: code.google.com/p/virtualagc

IBMs APL?

APL — язык программирования, который стал наследником системы математических нотаций для манипулирования массивами. Она была разработана профессором Гарвардского университета Кеннетом Айверсоном, который в дальнейшем повлиял на развитие таких языков программирования как J, Matlab и Mathematica. В 1962-м году, работая на IBM, господин Айверсон сформулировал и опубликовал свою работу в книге под названием A Programming Language (APL). Первой реализацией APL было APL? для компьютеров IBM System/360 в 1966-м году. А в 2012-м IBM совместно с Музеем компьютерной истории выпустили в свет исходный код APL?, содержащий 37500 строк и состоящий из 360 языков ассемблера.



Исходный код APL? доступен для скачивания на сайте Музея компьютерной истории: www.computerhistory.org/atchm/apl360-software-license-agreement

Xerox Alto OS

Alto — персональный компьютер, разработанный в Исследовательском Центре Пало Альто (PARC) корпорацией Xerox в 1973-м году. Он стал революционным изобретением, поскольку обладал графическим дисплеем (черно-белый монитор 606x808), а также клавиатурой и мышью. Еще более выдающимся отличием была память 128 KB и дисковое пространство 2.5 MB, что считалось довольно много в то время. Был и концепт рабочего стола и графического пользовательского интерфейса. Однако Alto никогда не продавали, все 1500 экземпляров использовались исключительно в пределах компании Xerox.



На сайте Музея компьютерной истории Вы можете скачать не только ОС, но и множество программного обеспечения и утилит, разработанных для Alto: PUP (PARC Universal Packet) набор мжежсетевых протоколов, Bravo — первый редактор WYSIWYG и 4 языка программирования (BCPL, Mesa, Smalltalk и Lisp): xeroxalto.computerhistory.org/xerox_alto_file_system_archive.html

CP/M OS

В 1979-м году Гэри Килдалл, работающий консультантом в компании Intel, начал разработку программного обеспечения для управления флоппи-дисководом (тогда еще новинки). Вскоре эта разработка переросла в новую ОС для компьютеров на основе микропроцессора 8080 от Intel, которую он назвал CP/M (Control Program/Monitor, и в дальнейшем Control Program for Microcomputers). В отличии от других операционных систем того времени CP/M была написана не на стандартном языке программирования, а на созданном самим Килдаллом. CP/M также стала прародителем для вполне обычных в наше время вещей, таких как 8-буквенные имена и 3-буквенные расширения файлов. Килдалл основал компанию Digital Research, Inc. и запатентовал свою операционную систему, которая стала доминирующей среди персональных компьютеров вплоть до появлени в 80-ых DOS.



Исходный код первых 4 версий CP/M можно скачать на сайте Музея компьютерной истории: www.computerhistory.org/atchm/early-digital-research-cpm-source-code

Microsoft BASIC для 6502

В 1975-м году MOS Technology создала 6502 микропроцессор, желая сделать его дешевой альтернативой других микропроцессоров того времени. Microsoft для работы 6502 использовала язык программирования BASIC, который был основан на языке Altair BASIC. Последний был написан Биллом Гейтсом и Полом Алленом в номере отеля в Альбукерке (Нью-Мехико) для микрокомпьютера MITS Altair 8800. Микропроцессор 6502 в дальнейшем использовался во многих популярных компьютерах, таких как Apple I и Apple II, Commodore VIC-20 и на игровой консоли Atari 2600. Microsoft лицензировала BASIC для 6502 и использовала его для реализации других систем (Commodore BASIC и Applesoft BASIC). В этой версии BASIC содержится знаменитая пасхалка WAIT 6502 от Билла Гейтса.



Скачать BASIC для 6502 можно с Pagetable: www.pagetable.com/?p=774

Adventure

Квест (Adventure) — жанр видео-игр, в основном однопользовательских, с интерактивным сюжетом и решением различных пазлов и задач. Одним из праотцов этого жанра была Colossal Cave Adventure (или просто Adventure), в честь которого и был собственно назван жанр. Игра была создана в 1976-м году Уильямом Кровером (Will Crowther). В тот период он работал инженером в компании Bolt, Beranek & Newman. Также является одним из создателей ARPANET. Кровер создал игру, в которой герой перемещался по различным помещениям пещеры с сокровищами и магией, для своих двух дочерей. Оригинальная версия состояла из 700 строк кода на языке Fortran и запускалась на компьютере BB&N’s PDP-10. Спустя годы выпускник Стэнфорда Дон Вудс нашел копию Adventure и с позволения Кровера расширил игру до 3000 строк программного кода, добавив новые локации и пазлы.



Оригинальную версию кода можно скачать тут: www.icynic.com/~don/jerz
А версию, дополненную Вудсом тут: rickadams.org/adventure/e_downloads.html

Apple DOS 3.1

Apple II, выпущенный в 1977-м году, использовал аудио кассеты, а не диски, для загрузки дополнительных программ и хранения данных. Вскоре после выпуска этого компьютера Стив Возняк разработал контроллер для дисков и Apple передал разработку программного обеспечения на аутсорсинг компании Shepardson Microsystems. Разработчик Пол Лугтон (Paul Laughton) создал DOS примерно за 35 дней, записывая код на перфокартах. Apple DOS 3.1 вышла в свет в июне 1978-го года.



Исходный код DOS 3.1 можно скачать на сайте Музея компьютерной истории: www.computerhistory.org/atchm/apple-ii-dos-source-code

MS-DOS 1.1 и 2.0

Знаменитая на весь мир операционная система впервые была создана для персональных компьютеров IBM’s x86. Эта ОС не была написана с чистого листа, а основывалась на предыдущих версиях, 86-DOS (была написана Тимом Патерсоном из Seattle Computer Products, после приобретена Microsoft). Первая версия, MS-DOS 1.1 (названная в честь 86-DOS 1.1), была выпущена в 1981-м году. Исходный код этой ОС также содержит множество шуточных слов и фраз.



http://www.slideshare.net/DmytroKikot/code-fun

А поковыряться в самом коде можно скачав его тут: www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1-1-v2-0

E.T. the Extra Terrestrial

E.T. («Инопланетянин») стал самым популярным фильмом 1980-х годов и основой для одной из самых худших игр всех времен. Желая заработать на популярности киноленты, компания Atari поручила Говарду Уоршоу создать игру для популярной в то время консоли 2600. Проблема в том, что из-за жадности и желания продать как можно больше копий игры именно в период Рождественских праздников, Atari выделила на проект всего 5 недель. В результате неразумных сроков пострадало качество игры, и ее продажи едва перевалили за 1,5 миллиона копий, 3,5 миллиона копий остались нереализованными. В 2006 году Денис Дебро переработал игру, исправив многочисленные баги и добавив в нее свои новые компоненты.



Оригинальную версию исходного кода можно скачать с Pastebin: pastebin.com/AaSYZTHt

А версию, измененную Дебро тут: www.neocomputer.org/projects/et

Wolfenstein 3D

Джон Д. Кармак и Джон Ромеро из id Software в 1992 году создали поистине культовую видео-игру, ставшую прародителем множества FPS, — Wolfenstein 3D. Изначально игра была разработана для компьютеров на базе MS-DOS, однако она дошла и до наших современных устройств, была портирована даже на iOS. Также Wolfenstein 3D дала толчок для появления Doom, Duke Nukem и Quake. Исходный код Wolfenstein 3D на ряду с проектом-сиквелом Spear of Destiny был опубликован еще в 1995 году.



Скачать его можно тут: github.com/id-Software/wolf3d

MacPaint 1.3

MacPaint — знаменитое программное обеспечение для работы с растровыми изображениями. MacPaint был одним из 2 приложений, доступных на первых компьютерах Macintosh в январе 1984 года (второе — текстовое приложение MacWrite). Редактор изображений был разработан Вилли Аткинсоном, одним из первых творцов Macintosh, и основывался на его же более ранней разработке LisaSketch для компьютеров Apple Lisa. MacPaint предоставлял пользователям много тех функций, которые мы уже считаем обычным делом (инструмент заливки, захват изображения лассо). В 2010, с разрешения Стива Джобса, Музей компьютерной истории выпустил исходный код MacPaint 1.3, который содержит 5800 строк.



Заинтересовавшиеся, вот ссылка для скачивания этого кода: s3data.computerhistory.org/102658076_macpaint_acc.zip
Внимание! При переходе по данной ссылке, скачивание начнется автоматически.

QuickDraw

QuickDraw — библиотека и API для рисования растровой графики в различных приложениях, в том числе и в MacPaint. Он также был на Macintosh с самого начала, с 1984 -го года. Устаревшим QuickDraw стал только с появлением OS X 10.4 (Tiger). А полностью ушел в отставку после выхода OS X 10.8 (Mountain Lion). Также, как и MacPaint, был разработан Биллом Аткинсоном. В 2010-м году исходный код из 17000 строк стал доступен общественности.



Ссылка для скачивания: s3data.computerhistory.org/102658076_quickdraw_acc.zip
Внимание! При переходе по данной ссылке, скачивание начнется автоматически.

SimCity

Градостроительный симулятор без конца, без побед и поражений — SimCity стал первым в своем роде. Хоть он и был разработан еще в 1985-м году Уиллом Райтом, релиз состоялся только в 1989-м. Так как издательство боялось, что концепция бесконечной и бессюжетной игры не придется по вкусу покупателям. Однако, все мы знаем что они очень сильно ошибались. SimCity стала прародителем жанра и вдохновителем множества других игровых проектов, и была названа одной из 10 самых значимых игр в истории. Дон Хопкинс в 2008-м году выложил на своем сайте исходный код SimCity, но под названием Micropolis, поскольку игровой издатель EA владеет правами на торговую марку SimCity.



Ссылка для скачивания исходного кода SimCity: www.donhopkins.com/home/micropolis/micropolis-activity-source.tgz
Внимание! При переходе по данной ссылке, скачивание начнется автоматически.

Atari 7800 ProSystem OS + игры

Atari 7800 ProSystem (январь 1986-го) стала первой широко распространенной игровой консолью. Позиционировалась как домашняя консоль, потому обладала возможностью подключения клавиатуры и других периферийных устройств. В итоге, было разработано менее 100 игр под эту консоль. Потом порт для подключения периферийных устройств был убран в 1992-м году. В 2009-м году Музею Atari удалось спасти исходный код операционной системы и несколько игр, с выброшенных после закрытия компании в 1996-м году, дискет.



А вот скачать данный код можно тут: www.atarimuseum.com/videogames/consoles/7800/games

Word for Windows 1.1a

Когда большинство людей думают о текстовом редакторе, они вспоминают Microsoft Word. Изначально это программное обеспечение было разработано для системы DOS в 1983-м под руководством Чарльза Симони, который также создал первый текстовый WYSIWYG обработчик Bravo для компании Xerox в 1974-м году. Изначально Microsoft Word уступил дорогу WordPerfect, но уже в 1989-м году в Windows появился именно этот текстовый редактор, ставший в последствии монополистом на Windows ОС.



Исходный код Word for Windows 1.1a доступен для скачивания на сайте Музея компьютерной истории: www.computerhistory.org/atchm/microsoft-research-license-agreement-msword-v-1-1a

Prince of Persia

Prince of Persia — фентезийная видео-игра, созданная под Apple II Джорданом Мекнером и изданная в октябре 1989-го года компанией Broderbund Software. Свою невероятную популярность и похвальный отзывы как критиков так и самих игроков игра заполучила за счет своей невероятной анимации. Мекнером просматривал записи того, как его брат прыгает и бегает по парковке, после переносил все эти движения в саму игру. Prince of Persia стал локомотивом множества игр данной серии и даже полнометражного кинофильма. К сожалению оригинальный исходный код был давно утрачен, но Метнер нашел пачку старых дискет, которые когда-то решил сохранить. С них он и смог восстановить код и выпустить его в свет в 2012 году.



На сайте GitHub Вы можете скачать данный исходный код: github.com/jmechner/Prince-of-Persia-Apple-II

Adobe Photoshop 1.0.1

Photoshop был разработан двумя братьями Томасом и Джоном Нолл в конце 1980-х. Изначально программа называлась просто Display, потом Image Pro. После того, как создатели осознали весь потенциал своего детища, они лицензировали проект под название Photoshop to Adobe. Версия 1.0 была выпущена в 1990 году (изначально только для компьютеров Mac). Продажи составили 3 миллиона копий за первые 10 лет. Изначальная версия исходного кода для версии 1.0.1 из 128000 строк (по большей части на языке Pascal) стала доступна для всех желающих в 2012 году.



Ссылка для скачивания исходного кода Adobe Photoshop 1.0.1: www.computerhistory.org/atchm/photoshop-software-license-agreement

Microsoft C# и Visual Basic

Visual Basic и Microsoft C# были разработаны Microsoft в 1991-м и 2000-х годах соответственно, как составляющие .NET Framework. Желая поделиться историей своих продуктов Microsoft предоставила исходный код платформы .NET compiler под названием Roslyn, который состоял из компиляторов для C# и Visual Basic.



Скачать исходный код можно с сайта Roslyn: roslyn.codeplex.com/SourceControl/latest

Надеюсь, что данный список был полезен, ведь историю (не только цивилизаций, но и программирования) забывать не стоит. Она может научить нас многому. Понаблюдать, как создавался тот или иной культовый программный продукт и поковыряться в его «составе» — крайне интересно.

И напоследок:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Мартин Голдинг)

Комментарии (16)


  1. AAbrosov
    07.09.2015 13:04
    +2

    IBMs APL?

    не очень понятно что здесь делает буква «eth»


    1. cynovg
      07.09.2015 13:25
      +4

      и что значит «состоящий из 360 языков ассемблера» тоже не очень понятно.


      1. GarryC
        07.09.2015 13:53
        +1

        Инструкций ассемблера System360 возможно?


        1. pfemidi
          07.09.2015 16:46

          «исходный код APL?, содержащий 37500 строк» и содержащий всего 360 инструкций? В ассемблере System360 что, 360 инструкций? Многовато для ассемблера. И маловато для исходного текста «APL?». Скорее всего опечатка (я уверен что в исходном тексте статьи именно опечатка) имеет в виду что-то другое.


          1. MacIn
            07.09.2015 17:27

            GarryC прав, пожалуй: скорее, всего было 360 assembly language.


            1. MacIn
              07.09.2015 17:33

              На странице музея есть такие строки:

              Written entirely in 360 assembly language, this version of APL took control of the whole machine.

              The text file contains 37,567 lines, which includes code, macros, and global definitions.


              1. hardex
                07.09.2015 19:26
                +3

                «360 assembly language» переводится как «ассемблер 360-го»


                1. MacIn
                  07.09.2015 20:45

                  Спасибо, КО. Я-то для совсем-совсем иного оригинал приводил. Не для того, чтобы указать на ошибку перевода, нет.


  1. fshp
    07.09.2015 13:25

    Прародитель шутеров — Hovertank 3D. Те же ребята, но годом ранее.


    1. cynovg
      07.09.2015 13:36
      +1

      Речь идет о открытии исходных кодов.


  1. JediPhilosopher
    07.09.2015 13:26
    +3

    В результате неразумных сроков пострадало качество игры, и ее продажи едва перевалили за 1,5 миллиона копий

    Слышал эту историю раньше, но без цифр. Полтора миллиона копий? Всем бы быть такими «неуспешными».


    1. Sabin
      07.09.2015 13:56
      +1

      Огромное количество картриджей было возвращено. Вики не авторитетный источник, но тем не менее:

      The game eventually sold 1.5 million units, becoming one of the best-selling Atari 2600 titles. However, between 2.5 and 3.5 million cartridges went unsold. <...> According to Ray Kassar, about 3.5 million of the 4 million produced were sent back to the company as unsold inventory or customer returns.
      Покупатели и магазины вернули около миллиона копий, до 2/3 всего проданного.


  1. Sabin
    07.09.2015 13:31
    +2

    Знаменитая пасхалка WAIT 6502 от Билла Гейтса

    Если вы тоже слышите о ней впервые. Это строка выводила MICROSOFT! вверху экрана. Слово MICROSOFT было слегка запрятано в коде:

    The text “MICROSOFT!” is stored in 10 consecutive bytes at $E082, cleverly hidden after a table of coefficients that is used for the SIN() function:

    .;E063 05 6 coefficients for SIN()
    .;E064 84 E6 1A 2D 1B -((2*PI)**11)/11! = -14.3813907
    .;E069 86 28 07 FB F8 ((2*PI)**9)/9! = 42.0077971
    .;E06E 87 99 68 89 01 -((2*PI)**7)/7! = -76.7041703
    .;E073 87 23 35 DF E1 ((2*PI)**5)/5! = 81.6052237
    .;E078 86 A5 5D E7 28 -((2*PI)**3)/3! = -41.3147021
    .;E07D 83 49 0F DA A2 2*PI = 6.28318531
    .;E082 A1 54 46 8F 13 «SOFT!» | backwards and with
    .;E087 8F 52 43 89 CD «MICRO» | random upper bits
    Отсюда.


  1. VEG
    07.09.2015 13:56

    Visual Basic и Microsoft C# были разработаны Microsoft в 1991-м и 2000-х годах соответственно, как составляющие .NET Framework.

    Visual Basic и Visual Basic .NET — это сильно разные вещи. Между ними не так много общего.

    Желая поделиться историей своих продуктов Microsoft предоставила исходный код платформы .NET compiler под названием Roslyn, который состоял из компиляторов для C# и Visual Basic.

    Это никак не связано с историей. Компиляторы и всю инфраструктуру Roslyn Microsoft переписала практически нуля за последние несколько лет. Первая публичная версия компилятора 2011 года даже не полностью поддерживала существующие возможности C#.


  1. MacIn
    07.09.2015 13:59
    +9

    Visual Basic и Microsoft C# были разработаны Microsoft в 1991-м и 2000-х годах соответственно, как составляющие .NET Framework

    Как Visual Basic 1.0 for Windows, разработанный в 91м, может быть составляющей NET платформы?


  1. grossws
    09.09.2015 01:35
    +1

    Какие чудесные и качественные скриншоты в png. Просто восхищаюсь, да.