DECSYSTEM-20 В КОЛУМБІЙСЬКОМУ УНІВЕРСИТЕТІ (1977-1988)

57 min read
Article updated on:22 Aug 2023

Original article: http://www.columbia.edu/cu/computinghistory/dec20.html

 

Френк да Крус і Крістін Джаноне

Проект Керміта

, Колумбійський університет, Нью-Йорк, 29 грудня 1988 р.; Авторське право © 1988, 2021,

Френк да Круз і Крістін М. Джаноне,

Усі права захищено.

Подивіться нещодавно розкопане відео виведення з експлуатації одного з DEC-20 Колумбійського університету в 1986 році:

Відео галерея скріншотів

Нетехнічний спогад, написаний у 1988 році (з нагоди відключення останнього DECSYSTEM-20 Колумбійського університету) для книги Digital Press, яка мала вшанувати 36-розрядні машини DEC серією статей, але так і не була опублікована. Незначні правки, примітки, глосарій, посилання та форматування HTML додано в січні 2001 року (плюс незначні оновлення час від часу після цього). Щоб дізнатися більше про історію комп’ютерної техніки в Колумбійському університеті, НАТИСНІТЬ ТУТ .

ПРИМІТКА. Цю статтю було " викреслено" 18 січня 2001 р., і її прочитало багато людей, які навіть не знали, про що йдеться. Майте на увазі, що це не має на меті бути вступом або поясненням впливових 36-розрядних комп’ютерів Digital Equipment Corporation (DEC) 1964-1988 років; скоріше, це мав бути один нарис у книзі, в якому інші есе пояснювали б архітектуру та історію технології. Ви можете знайти деякі тематичні веб-сайти в розділі ПОСИЛАННЯ в кінці.

Для тих, кому концепція 36-розрядного комп’ютера здається дивною: найпершим комерційним двійковим (на відміну від десяткового) комп’ютером був IBM 701 , який вперше з’явився в мережі в 1952 році. Він мав 36-розрядне слово. За ним послідував 704 (де перша мова високого рівня, Fortran, була розроблена в 1953-57 роках, і чий 6-бітний набір символів BCD і 36-бітне слово пояснюють обмеження на 6 символів для імен змінних Fortran), 709 , 7090 і 7094 , усі 36 біт. 36-розрядні машини IBM були місцем народження LISP (*) і ( імовірно ) розподілу часу (Сумісна система розподілу часу MIT, CTSS, близько 1962 р.), а також надихнули для36-розрядний PDP-6 від DEC (1964), який був попередником PDP -10 і DECSYSTEM-20 , який проіснував до 1988 року, року, коли DEC припинив виробництво 36-розрядних машин. Таким чином, 36-розрядні архітектури були помітними (і багато в чому домінуючими) рисами обчислювального ландшафту з 1952 по 1988 роки: 36 років.

*Мова обробки списків, Джон Маккарті, Стенфордський університет, 1960 рік, досі основна мова для досліджень штучного інтелекту. CAR і CDR LISP — це концепції IBM 704: вміст адресної частини регістра та вміст декрементної частини регістру — тобто ліва і права половини 36-бітного слова. 36-розрядні машини з їх 18-розрядними лівими та правими півсловами є ідеальними машинами LISP.

ЗМІСТ

ВСТУП

До середини 1970-х років Колумбійський університет міцно вкоренився в обчисленнях у пакетному режимі на мейнфреймах OS/360 IBM. Зона « Введення/виведення самообслуговування » була названа з гордістю, тому що це був великий крок вперед у порівнянні з тими днями, коли студенти та дослідники смиренно подавали свої колоди карток операторам і поверталися наступного робочого дня за результатами — як правило, щоб виявити, що їхній SYSMSG був сповнений незрозумілих скарг, болісна розшифровка яких зазвичай приводила розчарованого користувача до пропущеної коми чи додаткового пробілу в мові керування завданнями. Або, якщо JCL пройшов перевірку, тоді було 3-футове відвалище ядра, щоб згорнутися. Зона SSIO була кімнатою, наповненою приголомшливою какофонією ударів клавіш , вереском жахливих принтерів IBM 1403, стаккато тріпотіння картрідерів , сортувальників карток і перекладачів ; стурбовані натовпи зібралися навколо друкарень, по пояс у викинутій продукції...

IBM 360 Model 91 від Columbia з інтерфейсом 360/75 був одним із найбільших, найшвидших, найважчих і найгучніших комп’ютерів у світі наприкінці 1960-х років. Він займав гектари площі, і ви могли дивитися на магнітні сердечники через вікна в коробках пам’яті ядра заввишки 6 футів , які стояли рядами, які зникали в точці зникнення. Електроживлення забезпечувалося чавунним двигуном-генератором, розміром із маленьку вантажівку, а охолоджувалась охолодженою дистильованою водою (доставлялася з Дір-Парку у великих скляних пляшках у дерев’яних ящиках), що прокачувалась крізь милі внутрішніх каналів. Панель управління ЦПбуло більше світла, ніж на Таймс-сквер. Згідно з легендою, серед тисяч перемикачів і кнопок була одна, смертельною місією якої було «витягнути лампочку» — вірна смерть для кожного, хто її натисне. Панель керування зараз [1988] спочиває в Музеї комп’ютерів у Бостоні, її гіпнотичні лампочки потьмарені назавжди ( 1 ).

Цей масивний сіро-блакитний Стоунхендж, товсті щупальця якого простягаються до зони SSIO, виконував важкі «коди» Fortran для наших інженерів: звивисті мости; бомбардування нещасних речовин нейтронами; обчислення Пі до мільйонів цифр; перетворюючи магнітне поле Землі на музику... Для наших соціологів це рік за роком передбачало результати президентських виборів 1956 року зі смертельною точністю. Для адміністраторів він видавав зарплатні, стенограми та бухгалтерські звіти. І зрештою деякий куточок цього був виділений нашим студентам-інженерам, які застосовували свої копітко створені DO-цикли та GOTO до ряду Тейлора, правила Сімпсона, квадратури Гаусса та перетворення Лапласа. Ці студенти мали відносно просте завдання: написати програму, помістіть його в сендвіч із чарівними картками JCL, подайте сендвіч у пристрій для зчитування карток і зберіть отримані результати. Багато вчителів згадували ці прості дні з меланхолійною любов’ю, хоча студентські спогади більше переслідували образи слизьких пальців, які збирали стопки впали перфокарт.

Термінали почали з’являтися на початку 1970-х років, спочатку лише серед тіньових системних програмістів на Олімпі, які вміли розмовляти таємничими мовами з «термінальними моніторами» під назвами Milten, Cleo, Orvyl і Wylbur, а згодом і APL. і TSO (перший є "Irtnog" комп'ютерних мов, останній є формою JCL, набраної на терміналі). Взаємодія з комп’ютером була привабливою, але не приносила задоволення. Команди були незрозумілими, а обчислення все ще — за винятком APL — у пакеті.

У 1975 році з’явилася наша перша справжня система розподілу часу, DEC PDP-11/50 з операційною системою RSTS/E. Це мав бути малобюджетний експеримент у справжньому інтерактивному обчисленні. Побудований на мові BASIC, RSTS дозволяв одночасно працювати до 32 користувачів, які сидять на DECwriters, щоб програмувати, налагоджувати, спілкуватися один з одним і взагалі поводитися неправильно — і все це в режимі реального часу. RSTS виявився надзвичайно популярним, і незабаром PDP-11 був переповнений нетерплячими студентами.

DEC був обраний тому, що тоді IBM насправді не пропонувала жодного інтерактивного розподілу часу загального призначення. Порівняно з іншими претендентами, пропозиція DEC була краще розробленою, зрілішою та... веселішою. І RSTS було обрано як операційну систему, а не, скажімо, UNIX, оскільки версія 6 UNIX була потужною надійною системою, яка дозволяла будь-кому робити що завгодно. У нас була зародкова ідея, що система повинна взяти на себе певну роль у захисті користувачів один від одного та від самих себе. У той час як UNIX пропонувала мало можливостей або взагалі не мала можливостей у цій області, RSTS був не позбавлений власних недоліків. Незабаром користувачі дізналися, що вони можуть призначати всі TTY, щоб ніхто інший не міг ними користуватися. А ще краще, призначивши TTY, вони можуть запустити на ньому програму, яка маскується під процес входу,

WELCOME

Інші винахідливі користувачі виявили, що якщо вони відкриють новий файл для доступу до записів, вони зможуть прочитати записи перед їх записом, зібрати старі дані з видалених файлів інших користувачів або файлу системних паролів.

І в один момент наша система була заражена групою підлітків із сусідньої підготовчої школи, які зламалися, скориставшись помилкою в процесі входу. Вони працювали з системою кілька тижнів, перш ніж їх виявили, і знадобилося кілька днів цілодобової роботи, щоб знищити численні люки та бомби уповільненої дії, які вони залишили.

Незважаючи на проблеми, RSTS виявився досить популярним і швидко став перевантаженим. Експеримент було оголошено успішним, і ми почали шукати щось більше та дещо складніше — BASIC не є мовою, яку вибирають комп’ютерники. Це було приблизно тоді, коли DEC вперше анонсувала DECSYSTEM-20 (його логотип, весь у верхньому регістрі, на відміну від логотипу його старшого двоюрідного брата DECsystem -10, як кажуть, було помилкою клавіші Caps Lock у заявці на торговельну марку). Перш ніж навіть ознайомитися з системою, ми змусили спеціалістів із маркетингу залучити технічну допомогу та безжально запитали їх про те, чи можуть користувачі призначати всі пристрої, заповнювати диск, виключати з процесу входу Control-C, бомбардувати один одного дурні повідомлення, навіть чи був файл "очищений" під час його видалення. Коли все було задоволено, ми подивилися на систему.

Дивно та здивовано, цей комп’ютер знає, що ви збираєтеся набрати, і набирає це за вас! Ну, майже. Але його привабливість була очевидна з першого погляду. Якщо ви не знаєте, що ввести, тоді введіть знак питання, і він перерахує можливості для вас. Раптом «заповни пропуск» став більше схожим на «множинний вибір». Ну, звичайно, це може вам сказати! Він знає, які є варіанти, то чому б йому не сказати вам??? Питання, яке можна було поставити з користю десять чи п’ятнадцять років тому (бачення ветеранів системних програмістів, які переглядають посібник за посібником, шукаючи, що ввести в наступному полі якоїсь незрозумілої команди... типове явище на деяких машинах навіть для У цей день). І це "?" не була дуже привілейованою функцією (як і володіння ручним набором) — навіть ЗВИЧАЙНІ КОРИСТУВАЧІ могли її використовувати. З подивом ми виявили, що повідомлення про помилки виходять у вигляді простого, зрозумілого тексту, а не 17-значних шістнадцяткових чисел, так що їх можна зрозуміти без книги «повідомлення та коди».

Нас відразу продали дружелюбність, невимушеність, гумор. Лише згодом ми знали, що COOKIE (який зберігся сьогодні в UNIX як «fortune») не був стандартною частиною системи, а потім був TECO ( 2 ):

@make love

not WAR?

DEC-20 була справжньою системою розподілу часу загального призначення. Він не був побудований навколо певної мови, оскільки RSTS був навколо BASIC. Він пропонував широкий спектр компіляторів, інтерпретаторів, текстових редакторів і утиліт, що відображає багаторічну розробку програмного забезпечення TOPS-10 і TENEX. Він міг би поглинути не лише наших користувачів RSTS, але й багатьох користувачів наших мейнфреймів IBM Fortran і APL, а його простота використання також залучила б багатьох нових користувачів.

Наш новий DEC-20 прибув 29 червня 1977 року з TOPS-20 версії 1B. Монтаж завершили до 26 липня. Порівняно з IBM 360/91 і навіть DEC PDP-11, він був надзвичайно безхарактерним — жодного світла, перемикачів для введення даних, дисків, двигунів, насосів... Проте DEC-20 був незрівнянно потужніший ніж слабкий PDP-11. Він був оснащений чотирма найсучаснішими дисководами RP06 ( 3 ), які ніколи не могли заповнити, і неймовірними 256 КБ основної пам’яті — словами, а не байтами! Така машина задовольнила б наші вимоги щодо обчислень для навчання на довгі роки.

Щоразу, коли комп’ютерне підприємство отримує новий тип комп’ютера, програмісти негайно починають бурхливу діяльність, щоб перетворити нову систему на свою улюблену стару систему. Після поставки єдиним редактором DEC-20 (крім неофіційної копії TECO) був загадковий, рядково-орієнтований EDIT, нащадок TOPS-10 SOS. Наші користувачі звикли до Wylbur, набагато менш загадкового рядкового редактора на нашому IBM 360/91, тому ми негайно взялися за написання версії Wylbur для DEC-20, щоб наші користувачі IBM почувалися як вдома.

Ми почали вивчати мову асемблера DEC-20 і читати довідковий посібник із моніторингу викликів. Незабаром ми виявили, що це справді чудова машина. Набір інструкцій і репертуар викликів моніторингу (JSYS) були вражаюче багаті. Серед викликів монітора був особливий набір, несхожий на те, що ми коли-небудь бачили: вбудовані в саму операційну систему стандартні функції для перетворення між внутрішніми та зовнішніми представленнями всіх різних видів даних, значущих для системи: чисел у різних корінцях, символи, рядки, імена файлів, імена каталогів, дати та час. Програмісти ранішої епохи знали, що найскладнішою і виснажливою частиною написання інтерактивної програми є підказка, прийняття та перевірка даних, введених користувачем.

Найкраще те, що ці функції перетворення були зібрані в єдиний пакет під назвою COMND JSYS, розроблений Деном Мерфі , який дозволив програмістам використовувати той самий «інтерфейс користувача» у своїх програмах, що й у TOPS-20 Exec: повний підказка, редагування, допомога з усіх питань; скорочення та розпізнавання ключових слів і перемикачів; завершення імен файлів; пробачення, коли користувач робить помилку тощо.

Програми, закодовані за допомогою COMND JSYS, мали багато переваг. Вони були дружніми, корисними та послідовними. Усі програми, написані за допомогою COMND, працювали однаково: введіть "?" щоб дізнатися, що це за команди чи параметри, введіть ESC, щоб заповнити поточне поле (якщо можливо) і отримати підказку для наступного поля. Люди можуть використовувати "?" і ESC вільні можливості для вивчення нової програми, а пізніше можуть вводити короткі, скорочені команди для прискорення. Цей підхід, званий «меню на вимогу», не надає перевагу новачкові над експертом (як це роблять системи, орієнтовані на меню), ні експерту над новачком (як це роблять загадкові, короткі набори команд APL або UNIX).

Наш новий редактор, подібний до Wylbur, під назвою "Otto" був написаний для повного використання переваг COMND JSYS. Незважаючи на всі свої вперті обмеження, Otto миттєво став успішним, оскільки дозволив користувачам мейнфреймів IBM безболісно перейти до нового середовища, водночас навчаючи їх способам DEC-20. Його прихована мета полягала в тому, щоб захопити їх, а потім розчарувати настільки, що вони знайшли час, щоб навчитися «справжнього» редактора.

[ Вгору ] [ Далі ]

МОВИ ПРОГРАМУВАННЯ

Минали місяці, і ми налагодили зв’язок з іншими 36-розрядними сайтами DEC, багато з них — Stanford, CMU, MIT, Rutgers, BBN, SRI — з багаторічним досвідом TOPS-10, TENEX, WAITS або ITS, і отримали від них програми, які мали зайняти нас на роки вперед. Деякі з них були фальстартами, але інші в тій чи іншій формі процвітатимуть навіть у наступному столітті, спадщина DEC-10 і -20. З цього досвіду ми дізналися про переваги спільного використання та знали, що якщо ми колись створимо щось загальнокорисне, ми поділимося цим з іншими в тому ж дусі, в якому ці установи поділилися з нами своєю роботою.

Наша головна мета під час агітації цих сайтів полягала в тому, щоб дізнатися, що вони зробили з програмуванням. У концепції користувальницький і системний інтерфейси DEC-20 були настільки близькі до досконалості, наскільки це міг уявити будь-хто на той час (за межами Xerox PARC), але на практиці концепція була реалізована неповністю. Більшість мов програмування походять безпосередньо з TOPS-10 і не надають доступу до викликів моніторингу TOPS-20 або його файлової системи. І все ж ми вирішили, що в цю еру структурованого програмування ми не будемо писати код системного рівня мовою асемблера. Після коротких загравань з Bliss-10, BCPL, Simula і навіть раннім Portable C (який погано підходив для 36-розрядної архітектури), ми зупинилися на Sail Стенфордського університету як нашій «офіційній мові, Але кілька років відданості Sail остаточно призвели до розчарування. Було надто багато помилок, надто велика залежність від системи виконання та знання її місця, надто багато перетворення, необхідного для нових випусків Sail або TOPS-20, надто багато гротескних обхідних шляхів для досягнення того, що було б природним у асемблері — єдине мовою, яка дійсно розуміє машину та операційну систему. І з того дня все наше системне програмування виконувалося на асемблері. Але кілька років відданості Sail остаточно призвели до розчарування. Було надто багато помилок, надто велика залежність від системи виконання та знання її місця, надто багато перетворення, необхідного для нових випусків Sail або TOPS-20, надто багато гротескних обхідних шляхів для досягнення того, що було б природним у асемблері — єдине мовою, яка дійсно розуміє машину та операційну систему. І з того дня все наше системне програмування виконувалося на асемблері.

Як і багато інших речей, залежність від асемблера – це добре і погано. Це було добре, тому що торкнулося творчого нерва — програмісти були вільні, вільні від бюрократичних вимог і авторитарних обмежень мов високого рівня, і вони мали повний доступ до набору інструкцій машини та репертуару моніторських викликів, які на DEC- 20, було радістю дивитися. Програмування на асемблері було просто цікавим, і наші програмісти радісно виводили мільйони рядків коду, але з неприємним відчуттям, що в цьому є щось гріховне. Це було через поганий бік: програми мови асемблера є специфічними для базової машини та операційної системи. Що відбувається з цими програмами, коли машина зникає?

Тим не менш, MACRO був непереборний (MACRO використовується тут як загальний термін, що охоплює DEC MACRO-10 і -20, а також Midas MIT і FAIL Ральфа Горіна). На відміну від FORTRAN, BASIC або будь-якої іншої мови на DEC-20 (за винятком Sail, для якої ми написали пакет інтерфейсу COMND JSYS), MACRO дозволяє писати справжні програми DEC-20 — програми, які були корисними, м’якими та поблажливими до користувача. Для програмістів на мові асемблера з досвідом IBM 360 архітектура машини та набір інструкцій були чудовими. Лінійний адресний простір у 256 тисяч слів (більше жодних BALR та USING!), сотні екзотичних інструкцій... І сам асемблер дозволяв створювати відносно чисті, навіть «структуровані» програми. Наприклад, вбудовані літерали MACRO майже еквівалентні блокам «початок ... кінець» у Algol або Pascal, уникаючи жахливої ​​логіки спагетті, яка мучить більшість програм на асемблері. Наприклад, ось конструкція IF-THEN-ELSE з декількома операторами в кожній частині, без GOTO чи міток (вибачте за помилки, це з пам’яті):

CAIL B, FOO ; IF (b >= foo) THEN

PUSHJ P, [ ; BEGIN

HRROI A, [ASCIZ/.LT./] ; повідомлення = ".LT.";

СЕТОМ МЕНШЕ ; менше = -1;

AOS (P) ; END (пропустити частину ELSE)

POPJ P, ] ; ІНШЕ

ПУШЙ П, [ ; BEGIN

HRROI A, [ASCIZ/.GE./] ; повідомлення = ".GE.";

SETZM МЕНШЕ ; менше = 0;

POPJ P, ] ; КІНЕЦЬ;

PSOUT ; ДРУКУВАТИ повідомлення;

Все, що знаходиться в квадратних дужках, є літералом; асемблер знаходить місце для його розміщення і замінює літерал адресою цього місця. Таким чином, (майже) будь-який обсяг даних або коду можна розмістити «в рядку», а не в окремій області даних. І як ви можете бачити з прикладу, літерали можуть бути вкладеними. Інші поширені керуючі структури також можна моделювати за допомогою літералів, таких як інструкція CASE:

MOVEM B, @[EXP FOO, BAR, BAZ](A)

Цей приклад зберігає B у FOO, BAR або BAZ, залежно від значення A. Така операція потребує багато рядків коду в більшості інших мов асемблера та в більшості мов високого рівня.

Щоб завершити це, програми мови асемблера можна налагоджувати інтерактивно на символьному рівні за допомогою «DDT» — не дихлор-дифеніл-трихлоретану, а «інструменту динамічного налагодження», призначеного для видалення помилок так само ефективно, як і справжня річ, з менше небажаних побічних ефектів (інші засоби для налагодження мали схожі інсектицидні назви, як-от RAID). З ДДТ ( 4) більше не потрібно переглядати роздруківки товстого шістнадцяткового дампа, більше не потрібно вставляти оператори друку та повторне збирання тощо. Його командний синтаксис трохи незрозумілий, складається здебільшого з загадкових окремих літер, знаків пунктуації, табуляції та вільного використання ESC. ("Altmode") символ, часто подвоєний. Але ДДТ може все. Насправді, оскільки він може виконувати всі комп’ютерні інструкції та системні служби, творці «Несумісної системи розподілу часу» (ITS) MIT для PDP-10 використовували його як інтерпретатор команд верхнього рівня. Розмова про зручність...

Набір інструкцій DEC-10/20, виклики монітора, асемблер і відладчик спонукали багатьох розумних програмістів до тривалих сеансів кодування або «хакерських атак». Виникла субкультура програмістів DEC-10/20, які вимовляли дивні слова та фрази, етимологія яких в основному простежувалась у Довідковому посібнику з обладнання PDP-10. Інгредієнтом, доданим хакерами (у ті часи це не був принизливий термін), була вимова мнемотехніки, яка ніколи не була призначена для людських мовних органів (AOS, BLT, JRST, ILDB, HRROI), і поширення їх значень на інші сфери життя ( в основному їдять). Зрештою цей лексикон був зібраний і кодифікований Гаєм Стіл з CMU та іншими як «Жаргон хакера», опублікований спочатку як файл, пізніше розширений у книгу (див. бібліографію).

Хакери DEC-10/20 спочатку були невеликою групою, в основному через брак документації, яка була б корисною. Щоб написати функціональну програму, можна звернутися до Довідкового посібника з апаратного забезпечення, Довідкового посібника для викликів моніторингу та Довідкового посібника для асемблера MACRO. Але ці посібники були лише списками інструкцій, викликів монітора та псевдооперацій і не передавали жодного поняття про те, як створити програму. У 1981 році ситуація кардинально змінилася з публікацією книги Ральфа Горіна з програмування на мові асемблера DEC-20, і незабаром світ був перенаселений студентами-програмістами DEC-20.

Кріс Райланд і Френк працювали над посібником з програмування мовою асемблера DEC-20 у 1979-80 роках, який міг би стати книгою, якби Ральф не випередив нас у цьому :-) НАТИСНІТЬ ТУТ, щоб переглянути його версію у звичайному вигляді , нещодавно розкопаний (вересень 2002 р.), близько 220 сторінок.

Тим не менш, відсутність узгодженого набору мов програмування високого рівня, повністю інтегрованого з операційною системою та файловою системою, була однією з фатальних вад DEC-20. Ця слабкість була усунена DEC у VAX/VMS, де програми, написані різними мовами, можуть використовувати загальну або сумісну підтримку виконання, а системні програми можуть бути написані практично будь-якою мовою — навіть BASIC або FORTRAN.

Багато залишків TOPS-10 працювали — і працюватимуть до останнього подиху останнього DEC-20 — у «режимі сумісності». Це означало, що програми, написані цими мовами, могли отримувати доступ до файлів лише згідно з правилами TOPS-10: без довгих імен файлів, без кумедних символів у назвах файлів, без явних посилань на каталоги чи номери поколінь. Зокрема, вихідні програми для більшості мов програмування мали це обмеження: більшість компіляторів не були піддані TOPS-20, а навіть якщо й були, то LINK ні. Зрештою, це означало, що користувач повинен був знати про TOPS-10, щоб використовувати TOPS-20, і що програмістам високого рівня було відмовлено в доступі до багатьох функцій TOPS-20.

Інструменти розробника

(Цей розділ додано в січні 2019 року.) Через десятиліття справжні DECSYSTEM-20 важко знайти, але емулятори існують; шукайте їх у Google . Використання емулятора DEC-20 схоже на використання справжнього DEC-20. Наприклад, ви можете писати та виконувати програми мовою асемблера. Для цього вам знадобляться посібники. Ось деякі локально архівовані копії:

НазваТемаДатаФорматРозмір
Довідковий посібник процесора DECsystem-10 DECSYSTEM-20Архітектура та набір інструкційЧервень 1982 рокуPDF29 МБ
Довідковий посібник із асемблера макросів DECSYSTEM-20Підручник з мови асемблераКвітень 1978 рокуPDF5 МБ
TOPS-20 Monitor Calls Довідковий посібниктакож інструкція з JSYS (системні служби)Грудень 1982 рокуPDF26 МБ
ТОПС-20 ДДТ ІнструкціяІнструмент динамічного налагодженняТравень 1985 рокуPDF5 МБ
ВІТРИЛОСтенфордська мова штучного інтелектуСерпень 1976 рокуPDF5 МБ

Перегляньте програму DEC-20 Kermit як приклад кодування мовою асемблера.

SAIL (мова програмування високого рівня зі Стенфорда) зазвичай не встановлюється на DEC-20s, тому, якщо посібник вас зацікавить, вам доведеться шукати для завантаження.

[ Вгору ] [ Далі ] [ Назад ]

ДОТРИМАННЯ ЗРОСТАННЯ

Протягом року наш DEC-20 був безнадійно перевантажений, із середнім навантаженням зашкалювало, а диски регулярно заповнювалися. Він залишався в такому стані ще рік, поки ми не знайшли спосіб придбати другу машину. Незабаром і це було повно, а в наступні роки з’явилися третій і четвертий, а також DEC-20 на факультеті комп’ютерних наук Колумбії та ще один у педагогічному коледжі Колумбії. Системи Комп’ютерного центру були модернізовані шляхом додавання пам’яті та дисків і, зрештою, шляхом з’єднання їх усіх із CFS та встановлення дисководів RA-81 і HSC-50. Згодом усі процесори було оновлено до 2065 із максимальною пам’яттю, і ми нічого не могли зробити, щоб отримати від них більшу продуктивність. Як і інші лояльні сторони DEC-20, ми повністю заповнили наше машинне відділення DEC-20, і більше не було місця. Нашим єдиним варіантом для розширення була б нова модель з більшою потужністю та меншою площею. Протягом кількох років ми періодично їздили до Marlboro, щоб обговорити майбутню машину. Фактично було 2 проекти.

DOLPHIN починався як система високого класу, яка пропонувала справді розподілену 36-розрядну архітектуру. Великі DOLPHINS сиділи б серед малих однокористувацьких MINNOWS у мережі з високою пропускною здатністю. І DOLPHIN, і MINNOW піддалися проблемам із технологією. DOLPHIN використовував спеціально розроблені мікросхеми Motorola, які мали проблеми з надійністю. Щільна упаковка MINNOW, призначена для розміщення в термінальному корпусі VT52, у поєднанні з необхідністю локально підключеного дисковода RP06 (!) стали його недоліком. До комерційного використання Ethernet ще залишалися роки, і проблема мережі також залишалася. [2]

Проект JUPITER з'явився через кілька місяців після того, як DOLPHIN було скасовано. Його конструкція не включала розподілених MINNOW, але схвалила вимогу щодо швидкого централізованого процесора. Це мало бути 10+MIPS і дешево. Довгий і складний процес проектування призвів до того, що жодна з цих цілей не була досягнута, і в 1983 році проект був скасований, хоча деякі його частини зрештою вийшли на ринок — CI, HSC-50 тощо [2]

Керівництво та інженери LCG завжди запевняли нас під час кожного візиту в Marlboro (Массачусетс) (іноді включали прогулянки на вертольоті та лімузині, а також проживання в «тематичних» готелях), що до оголошення нової системи залишилося лише «18 місяців», незалежно від її кодової назви. . Вартість володіння будь-якою системою була б значно нижчою, ніж еквівалентна кількість KL.

Чекаючи на появу Юпітера, нам усе ще потрібні були способи розподілу наявних ресурсів DEC-20 між користувачами найсправедливішим способом. Це викликало занепокоєння з самого початку. DEC-20 у початковому вигляді дозволяв звичайним користувачам заволодіти машиною різними способами, роблячи її непридатною для інших. Користувачі писали програми для нескінченного створення самовідтворюваних розгалужень, вони призначали всі PTY і використовували їх для написання викрадачів паролів, вони запускали програми в нескінченних циклах, які споживали всі доступні цикли процесора, вони монополізували обмежені лінії терміналів на довгі години, вони заповнювали пакетні черги, вони бомбардували операторів тисячами фальшивих запитів на монтування стрічки, вони друкували мільйони сторінок нісенітниці тощо.

Як сайт джерела моніторингу та виконання, Columbia змогла внести зміни, щоб обмежити доступ до певних ресурсів для певних класів користувачів на основі ідентифікатора користувача чи рядка облікового запису, або шляхом перейняття «невикористаних» бітів у слові можливостей. Але ще в наші дні OS/360 ми засвоїли болісний урок про те, що локальні модифікації операційних систем повертаються до нас, коли з’являються нові випуски: знадобилися роки, щоб оновити нашу сильно модифіковану IBM OS/360 21.0 до 21.8. Тому ми відчували себе зобов’язаними переконати DEC, що наші вимоги застосовні універсально. Для цього ми пройшли через канали, спочатку подавши форми звіту про ефективність програмного забезпечення, потім написавши листи, і, нарешті, ми провели ряд зустрічей із групою моніторингу в Marlboro.

Одним із результатів цих зустрічей була робота з контролю доступу. Це було завдання, надане клієнтом, до якого монітор звертався щоразу, коли користувачі запитували доступ до певних ресурсів. ACJ може прийняти рішення про надання чи заборону доступу на основі власних критеріїв сайту клієнта. Деякі з цих ресурсів включали вхід, увімкнення можливостей, створення завдань, створення розгалужень, призначення пристроїв, пакетне надсилання завдань, монтування стрічки, монтування структури, створення каталогів, зміни класу планувальника, доступ і підключення тощо. Це було великою перевагою для безпеки і управління ресурсами.

Але ACJ не дозволив нам регулювати постійне споживання ресурсів. Для цього нам потрібно було створити програму моніторингу для збору статистики кожного користувача щодо ЦП і часу підключення. Студентам було надано тижневий бюджет на підключення та час процесора, і вони отримували періодичні попередження, коли вони наближалися до обмеження. Навіть після відключення їм дозволяли повернутися в непіковий час, щоб завершити роботу. ACJ і Omega дозволили нашим DEC-20 обслуговувати більше 6000 активних студентів на чотирьох машинах на піку ери DEC-20.

Один напрямок нас особливо зацікавив. Термінали не підключалися безпосередньо до наших DEC-20, а підключалися через АТС даних. Таким чином, DEC-20 не знав, що TTY37 (наприклад) був терміналом номер X у кімнаті Y будівлі Z. З міркувань безпеки та зручності було необхідно мати ці знання. Якщо користувача підозрювали в неналежній поведінці, персонал повинен був знати фізичне місцезнаходження користувача. А під час створення завдання керівнику потрібно було знати тип і швидкість терміналу, щоб користувача не спантеличили розбиті, переплутані екрани. На щастя, АТС даних мала консольний термінал, який зберігав журнал підключень. Він був підключений за допомогою кабелю RS-232 до портів на кожному з DEC-20, які зберігали базу даних портів PBX, розташування, типів терміналів і швидкостей.

Журнали, які вели ACJ і Omega, містили фізичне місце розташування роботи. Ці журнали дозволили нам відстежити більше кількох потенційних і фактичних порушників безпеки системи та конфіденційності інших користувачів.

[ Вгору ] [ Далі ] [ Назад ]

МЕРЕЖА

Наш перший DEC-20 був підключений до IBM 360/91 за допомогою продукту DEC HASP/RJE, для якого потрібен був власний спеціальний інтерфейс DN20. Цей спосіб зв’язку був досить болісним, тому DEC-20 вимагав маскуватися під зчитувач карток і лінійний принтер для системи IBM. Ми написали серію програм Sail, які створили б «чарівний бутерброд JCL» для наших користувачів, які хотіли надсилати файли або надсилати завдання до системи IBM.

Як тільки ми отримали наш другий DEC-20, ми під’єднали його до першого за допомогою DECnet [1980], а потім з’єднали цю невелику мережу з іншими системами DEC на кампусі. DECnet також використовувався на комп’ютерних центрах Університету Карнегі-Меллона, тому ми об’єднали наші дві мережі DECnet в одну з орендованою телефонною лінією між Нью-Йорком і Піттсбургом, назвавши розширену мережу CCnet [1982] (CC означає Computer Center, або, можливо, Карнегі-Колумбія). Незабаром до мережі приєдналися й інші установи — Технологічний інститут Стівенса, Університет Вестерн Резерв, Нью-Йоркський університет, Університет Толедо та інші. Головною перевагою було спільне використання програмного забезпечення та роботи з програмування між персоналом комп’ютерного керування на цих сайтах, до якого входили DEC-20, DEC-10, VAX, PDP-11 та інші системи DEC. Протягом багатьох років, Columbia та CMU запустили спільну систему DEC-20 Galaxy, розроблену спільно, яка дозволяла прозорий друк через DECnet та касети для друку на стрічках для принтера Xerox 9700. Один із DEC-20 від Columbia слугував поштовим шлюзом між CCnet і BITNET, великою академічною мережею, заснованою на протоколах RSCS мейнфрейму IBM.

Найважливішим внеском DEC-20 у створення мереж була підтримка протоколів ARPANET, спочатку NCP, а пізніше TCP/IP. Протягом багатьох років DEC був єдиним великим постачальником комп’ютерів, який підтримував ці протоколи, які в основному були розроблені на 36-розрядних машинах DEC під TENEX, TOPS-10 і TOPS-20 (а пізніше на VAX для Berkeley UNIX). Наприкінці 70-х і на початку 80-х років, у дні, коли ARPAnet зростала й процвітала за межі свого початкового крихітного дослідницького мандату, у ній домінували 36-розрядні машини DEC, і багато базових Інтернет-протоколів і процедур було розроблено на цій основі. Сама DEC мала DEC-20 в ARPANET, що дозволяло основним академічним і дослідницьким сайтам DEC-20 спілкуватися безпосередньо з інженерами TOPS-20, надсилати звіти про помилки або виправлення електронною поштою, передавати файли тощо. Марк Кріспін зі Стенфорда створив список розсилки менеджерів TOPS-20 ARPANET. Список розсилки включав розробників TOPS-20 у DEC, і було багато корисного, що обійшло громіздку процедуру SPR.

На місцевому рівні наші власні DEC-20 отримали інтерфейси NIA20 Ethernet, щоб замінити незручні та великі передні частини DN20. Ethernet дозволив нам запускати TCP/IP разом із DECnet, і незабаром [приблизно в 1982 році] на території кампусу з’явився великий Ethernet, який з’єднував комп’ютерний центр DEC-20s із системами факультетів у всьому кампусі та за його межами завдяки Інтернету факультету комп’ютерних наук. членство [1982?], а пізніше [1984?], наше власне членство в інших глобальних мережах на основі TCP/IP, таких як NYSERNET і JVNCNET. Ethernet і TCP/IP навіть дозволили нам відмовитися від нашого зв’язку HASP RJE з мейнфреймами IBM, які на той час були на Ethernet і використовували код TCP/IP від ​​Університету Вісконсіна (пізніше включений IBM у свою власну лінійку продуктів).

[ Вгору ] [ Далі ] [ Назад ]

КЕРМІТ

На піку популярності DEC-20 попит серед студентів і викладачів на ідентифікатори користувачів був настільки високим, що ми більше не могли дозволити собі видавати безстрокові ідентифікатори. Натомість ідентифікатори викладачів призначалися для кожного курсу, а потім видалялися в кінці кожного семестру. Незважаючи на те, що резервні копії файлів ретельно створювалися на стрічку, студентам не дозволялося вимагати відновлення файлів попереднього семестру через обмежену ємність стрічкового накопичувача та покриття оператора. І навіть під час семестру студентської дискової квоти (35 Кб — K, а не M або G!) часто не вистачало, щоб одночасно зберігати всі її файли онлайн.

Якби користувачі DEC-20 мали якийсь знімний носій, вони могли б взяти на себе відповідальність за керування та архівування своїх власних файлів. Наші перші спроби в цій галузі стосувалися маловідомого продукту під назвою DN200, віддаленої станції DECnet, яка спочатку була розроблена для підключення 32 терміналів і рядкового принтера до DEC-20 (цей продукт так і не дозрів). DN200 був PDP-11/34, який працює на основі RSX. Наш — єдиний у своєму роді — включав 8-дюймовий дисковод для гнучких дисків. Ми планували написати програмне забезпечення DN200 для копіювання файлів між дискетами та файловою системою DEC-20. Користувачі просто вставляють власні дискети та видають команди COPY, щоб зберегти або відновити свої файли. На щастя, цей проект так і не був здійснений.

Але ідея знімних носіїв здалася правильною. Користувачі комп’ютерів мали це роками у формі карток, паперової стрічки або навіть власних чарівних маленьких DEC-стрічок, які обертаються вперед-назад від DEC, як кріплення на PDP-8, -9, -10, -11, - 12 тощо, і дуже не вистачає з -20. Було розглянуто й відхилено низку божевільних схем: дозволити користувачам надсилати файли на перфоратор картки мейнфрейму IBM, розмістити 9-доріжний стрічковий накопичувач із «самообслуговуванням» у громадському місці, створити програму, яка перетворювала б дані користувача на штрих-коди для друк на наших принтерах Printronix...

Приблизно в цей час (1980) на сцені з’явилися 8-розрядні мікрокомп’ютери CP/M. Навіть якщо вони не були придатні для чогось іншого, вони могли спілкуватися, читати та записувати дискети. Розмістіть кілька з них у громадських місцях, підключіть їх до DEC-20s, і студенти отримають свої знімні носії — маленькі диски, які вони можуть забрати з собою, зберігати та повторно використовувати, не покладаючись на персонал комп’ютерного центру. Велике питання полягало в тому, як перемістити файл із великого мейнфрейма з розподілом часу на маленький персональний комп’ютер.

Ми подивилися на ринок і побачили, що було кілька комерційних комунікаційних пакетів RS-232 для micros, але жодного для DEC-20. І ми повинні були хвилюватися не лише про DEC-20 та мікросхеми, а й про наші мейнфрейми IBM. Якби ми купили програмне забезпечення для передачі файлів між DEC-20 і Intertec Superbrain(це був мікро, який ми вибрали, насамперед через його конструкцію, схожу на танк, і незважаючи на його дурну назву), якщо припустити, що він доступний, нам доведеться придбати ще один пакет програмного забезпечення для наших користувачів мейнфреймів IBM, щоб зробити те саме. Нам також довелося врахувати, що Superbrain не може бути мікро-вибором кожного. Колумбія, будучи дуже децентралізованою та різноманітною організацією, ймовірно, мала стільки різних комп’ютерів, скільки було місць для їх розміщення. Якби для з’єднання кожної унікальної пари систем потрібен був окремий пакет програмного забезпечення, тоді нам знадобилися б окремі пакети, що становлять майже n квадратів, де n — кількість різних типів комп’ютерних систем, з достатньою кількістю копій для кожного екземпляра кожної система.

Набагато краще мати один програмний пакет на кожному комп’ютері, пакет, який здатний обмінюватися даними з усіма іншими комп’ютерами. Це зменшує кількість необхідних програм до n , що, у свою чергу, полегшує навантаження на бюджет і трохи полегшує життя користувача.

Усі ці питання призвели до рішення інвестувати у наших власних програмістів, а не в компанії, що займаються програмним забезпеченням. Таким чином ми могли б мати програмне забезпечення, спеціально розроблене для наших власних потреб. Кінцевим результатом став протокол передачі файлів Kermit. Наші перші програми Kermit були написані для DEC-20 і Superbrain. Супермозки були розміщені в громадських місцях, щоб студенти могли копіювати власні файли на дискети, а потім відновлювати їх на DEC-20.

На протокол Kermit значною мірою вплинули обмеження DEC-20. DEC-20 із передньою частиною PDP-11/40 був розроблений на основі припущення, що вхідний сигнал надходить безпосередньо від людей, які сидять за клавіатурою та набирають пальцями з відносно повільною швидкістю — можливо, 10 символів на секунду, верхні — тоді як великі кількість тривалого виведення може бути надіслано з комп’ютера на екран. RSX20F, зовнішня операційна система, виділяє малі буфери для введення та великі для виведення. Ми дізналися про це на нелегкому досвіді, коли придбали наші перші термінали з функцією «екран передачі» (HDS Concept-100s). Як тільки хтось пробував, передок розбивався. Подібні явища спостерігалися з автоповтором клавіш (наприклад, коли один із наших програмістів заснув на клавіатурі) ( 5), і знову, коли DEC вперше випустив свій термінал VT100 : під час плавного прокручування зі швидкістю 9600 біт/с термінал переповнив поганий передній кінець XOFF та XON. Пізніші випуски RSX20F справлялися з цими проблемами драконівським способом — якщо вхідні буфери не могли бути розподілені достатньо швидко, передній кінець встановлював швидкість лінії до нуля на секунду або дві! Урок? Не надсилайте тривалі пакети термінальних даних у DEC-20 — це все одно, що намагатися змусити горобця з’їсти героя-фрикадельку. Тому звичайні пакети Керміта досить короткі, максимум 96 символів — насіння, комахи та черв’яки, які може перетравити горобець.

Ще однією особливістю DEC-20 є чутливість до контрольних символів. Під час звичайного діалогу терміналу 17 із 33 символів керування ASCII використовуються для спеціальних цілей — редагування, переривання програми, керування потоком, звітування про стан, сигналізація про кінець файлу тощо — замість того, щоб прийматись як дані. Незважаючи на те, що програма DEC-20 може відкрити термінал у «двійковому режимі», щоб обійти спеціальну обробку цих символів, робити це не обов’язково, оскільки деякі з цих функцій можуть бути корисними під час передачі даних. Урок тут: не надсилайте керуючі символи «голими» під час передачі даних. Насправді протокол Kermit (у найпростішій конфігурації) надсилає пакети, які є строго короткими рядками тексту.

Мейнфрейм IBM (на той час 360/91 був замінений на 4341 з операційною системою VM/CMS) мав власний набір особливостей. На відміну від DEC-20, він використовував напівдуплексний зв’язок і використовував 7 біт даних із парністю під час зв’язку із зовнішнім світом ASCII. Це означало, що наш протокол передачі файлів також повинен бути напівдуплексним і потребуватиме спеціального механізму для передачі 8-бітних двійкових даних через 7-бітове з’єднання. Крім того, оскільки весь зв’язок відбувався або через інтерфейс 3705 (лінійний режим), або через перетворювач протоколу IBM Series/1 (або еквівалент, наприклад, 7171 або 4994) 3270, обидва з яких розглядали багато керуючих символів як команди, які потрібно негайно виконати, було посилено заборону на голі контрольні символи в даних. Зведення протоколу до найменшого спільного знаменника змусило його працювати в усіх випадках, але за рахунок ефективності та елегантності. Деякі з виниклих недоліків було усунено в наступні роки шляхом додавання до протоколу довгих пакетів і повнодуплексного транспортування пакетів у ковзному вікні, а також опції «зняття префіксу» контрольного символу.

Завдяки щасливому збігу обставин комбіновані особливості DEC-20, мейнфрейму IBM і мікрокомп’ютера CP/M призвели до створення конструкції, яка виявиться адаптованою практично до будь-якого комп’ютера, здатного до асинхронного зв’язку. Файл було вперше передано за протоколом Kermit 29 квітня 1981 року двома екземплярами Kermit-20, що працювали на одному DEC-20, використовуючи два послідовні порти, з’єднані між собою нуль-модемним кабелем.

Ідея поділитися нашими програмами Kermit і роздати вихідний код стала природним результатом нашого досвіду роботи зі спільнотою сайтів DEC-10/20. Ми отримали стільки власного програмного забезпечення з інших сайтів, що це було справедливо. Ми включили Kermit на наші експортні стрічки та надіслали його DECUS. DEC була першою компанією, яка визнала Kermit широко поширеним інструментом і оприлюднила його у своїх листівках та інформаційних бюлетенях про великі системи (наприклад, Copy-N-Mail , Large Systems News та EDU) .). І DEC була першою організацією, яка перенесла Kermit на нову платформу — їх VT-180 CP/M micro. Оскільки ми хотіли, щоб програмне забезпечення Kermit поширювалося відкрито, ми не розмістили наші програми Kermit у відкритому доступі. Хоча це може здатися суперечливим, ми вважали, що, захищаючи авторські права на програми, ми можемо запобігти їх використанню підприємцями та продажу як комерційних продуктів, що здавалося необхідним, оскільки ми чули історії про інші університети, яким було заборонено використовувати програми, які вони самі були написані фірмами, які взяли їхні роботи у суспільне надбання та захищали їх авторським правом.

Через широке розповсюдження ранніх програм Kermit разом із вихідним кодом і специфікацією протоколу сайти з іншими видами комп’ютерів почали писати власні програми Kermit і надсилати їх нам. Деякі з ранніх внесків у цьому ключі були програми DECsystem-10 і VAX/VMS Kermit від Технологічного інституту Стівенса (написані мовою Common Bliss, щоб код міг бути спільно використаний між TOPS-10, VMS і P/OS), PDP-11 Керміт з Університету Толедо та перший голий UNIX Kermit на C з нашого власного відділу комп’ютерних наук. Процес тривав багато років, у результаті чого з’явилася велика колекція програм Kermit, яку ви можете знайти сьогодні на веб-сайті проекту Kermit .

Columbia's Kermit Project використовував DEC-20, нашу систему CU20B, як свій тестовий стенд, бібліотеку та мережеву базу з самого початку, доки CU20B (наш останній залишився DEC-20) не був вимкнений у вересні 1988 року. Електронний інформаційний бюлетень Info-Kermit був створений і розіслано людям в академічних і корпоративних мережах по всьому світу з DEC-20 за допомогою MM, програми електронної пошти DEC-20. Ті самі користувачі можуть використовувати MM та інші клієнти електронної пошти для запитів та інформації, а також вони можуть отримати доступ до програм, вихідного коду та документації через файлові сервери DECnet та TCP/IP DEC-20. Навіть наші дистрибутивні стрічки спочатку постачалися з наших DEC-20 у форматах DUMPER, BACKUP і ANSI.

Приблизно до 1985 року DEC-20 Kermit був «еталоном», за яким всі інші Kermit повинні були перевірятися на сумісність. Багато нових функцій Kermit було додано до DEC-20 Kermit спочатку (режим сервера, макроси тощо). Інтерфейс користувача DEC-20 став зразком для більшості програм Kermit, тож мільйони людей сьогодні використовують (чудову симуляцію) COMND JSYS DEC-20, не підозрюючи про це. Ще довго після того, як DEC-20 зник зі сцени, програми Kermit на Windows, UNIX, VMS, MS-DOS та багатьох інших платформах продовжують «зберігати віру».

Невдовзі після першої появи Kermit мікрокомп’ютери стали важливою силою з появою IBM PC . Комп’ютери раптово стали корисними комп’ютерами загального призначення самі по собі. У відповідь на термінові запити викладачів Колумбійського університету, які отримали перші IBM PC, ми поспішно виготовили версію 1.0 IBM PC Kermit і виявили, що Kermit використовувався у спосіб, якого ми не очікували. Замість того, щоб використовувати дискети комп’ютера для зберігання файлів мейнфрейму, користувачі створювали та обробляли більшу частину файлів на комп’ютері та надсилали результати на мейнфрейм для архівування та спільного використання. Керміт став першою моделлю розподіленої обробки.

[ Домашня сторінка проекту Kermit ] [ Випуски новин Kermit ] [ Архів списку розсилки Kermit ] [ Архів групи новин Kermit ]

[ Вгору ] [ Далі ] [ Назад ]

ПАКЕТИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Великі 36-розрядні системи DEC були джерелом деяких із найвпливовіших і довготривалих програмних пакетів, які були створені. Тут ми довільно згадуємо кілька наших улюблених, вибачаючись перед сотнями, якими ми знехтували.

Редактори

Головною серед програм, створених на цих системах, є текстовий редактор EMACS, створений Річардом М. Столманом на ITS, «Несумісній системі розподілу часу» MIT для PDP-10. EMACS втілив революційну концепцію, згідно з якою екран терміналу повинен діяти як вікно для тексту, який редагується, і що будь-які зміни в тексті повинні негайно відображатися на екрані. Після багатьох років рядкового редагування (а до цього натискання клавіш) спочатку нам було важко зрозуміти потужність і зручність екранного редактора. Була навіть дискусія про те, чи слід дозволити це в нашій системі, ніби це був підривний вплив... «Для чого нам це потрібно? Кожне натискання клавіші призводить до 37 перемикань контексту!» Але незабаром навіть скептики почали цінувати EMACS за його величезний приріст продуктивності людини, і він швидко став улюбленим редактором для співробітників, студентів і викладачів. У Колумбії виникла домашня промисловість, яка додала нові типи терміналів і операцій до бази даних TECO (DEC-10/20 EMACS була написана на TECO), а також нові бібліотеки для самої EMACS.

Хоча дехто може вважати EMACS та його нащадків і родичів «застарілими» на сьогоднішній день, у порівнянні з редакторами GUI та текстовими процесорами, вони мають одну велику перевагу перед новішими редакторами: вони повністю керуються звичайними символами ASCII ( 6) (на відміну від функціональних клавіш або клавіш зі стрілками, миші тощо), тому сенсорним друкаркам ніколи не доведеться залишати головні клавіші, а досвідчені користувачі EMACS можуть вводити текст і працювати з ним швидше, ніж експерти з іншими редакторами, особливо сучасними, але трудомісткими графічним інтерфейсом користувача. . І завдяки обмеженню набору команд звичайними символами ASCII, EMACS можна використовувати на будь-якій платформі, незалежно від того, як ви до неї звертаєтеся (власна клавіатура та екран робочої станції, вікно xterm, telnet, dialin, rlogin, ssh тощо). Іншою перевагою EMACS, звичайно, є його можливість налаштування та програмування, але лише старші покоління користувачів комп’ютерів знають або піклуються про такі речі.

Форматувальники тексту

EMACS — це редактор звичайного тексту, що означає, що сам по собі він зазвичай не може створювати спеціальні ефекти друку, такі як напівжирний шрифт, курсив, підкреслення, математичні нотації, різні розміри пунктів, графіку тощо. Для цього нам потрібні — принаймні у світі символів terminals — засіб форматування тексту. EMACS був одним із кількох екранних редакторів для DEC-20 (TV і TVEDIT були іншими ранніми претендентами), а також було кілька засобів форматування тексту. Звичайно, DEC-20 поставляється з RUNOFF, стандартним форматером DEC. RUNOFF простий, не надто потужний, але має перевагу в тому, що файли RUNOFF здебільшого портативні серед PDP-11, VAX, DEC-10 і DEC-20. Однак RUNOFF є власністю і тому недоступний в системах, що не належать до DEC. RUNOFF також має три основні недоліки. По-перше, це строго процедурно, що означає, що автор повинен поводитися як програміст, інструктування RUNOFF в найдрібніших деталях. По-друге, він не може виконувати математику. І по-третє, він не підтримує широкий спектр пристроїв виведення.

Ці недоліки усуваються декількома програмами форматування тексту, розробленими користувачами великих систем DEC, а також деяких менших систем (UNIX, наприклад, спочатку була написана для PDP-7, а пізніше переміщена до PDP-11). UNIX nroff і troff, ймовірно, є відгалуженнями RUNOFF). Перші спроби розробки 36-розрядних систем включали R і Pub.

Браян Рейд, працюючи над DECsystem-10 для своєї кандидатської дисертації в CMU, розробив мову створення документів під назвою Scribe, яка стосується процедурного елементу. Там, де в RUNOFF потрібно сказати: «відцентруйте та підкресліть це слово, залиште 7 порожніх рядків, відступіть 4 пробіли тощо», у Scribe потрібно сказати: «Це стаття, ось назва, ось розділ, ось виноска , ось бібліографічне посилання, помістіть це в покажчик, вставте сюди фотографію та масштабуйте її таким чином тощо", а стилістичні рішення та деталі залишає Scribe, який містить велику базу даних типів документів і стилів публікації. Наприклад, якщо ви написали статтю для CACM, ви можете попросити Scribe відформатувати її у необхідному стилі CACM. Коли CACM відхиляє його, ви просто кажете Scribe повторити це у форматі IEEE Computer,7 ).

Під час розробки Scribe вільно ділилися з іншими університетами, і між Браяном і користувачами було багато чого. Проте, коли Браян покинув CMU, права на Scribe були продані приватній компанії Unilogic Ltd, яка продала його як комерційний продукт ( 8 ). Scribe був частиною багатьох сайтів DEC-10 і -20, і його було перетворено з оригінальної Bliss на інші мови для використання в таких системах, як UNIX, VMS і навіть мейнфрейми IBM.

Тим часом у Стенфорді Дональд Кнут планував нові видання своєї багатотомної праці « Мистецтво програмування» . Але невдовзі він виявив, що з моменту виходу його перших видань мистецтво математичного набору, як і мистецтво архітектурного каменю, померло: він не міг знайти верстальника, який би відповідав цьому завданню. Тож він узявся за роботу над комп’ютерною програмою для математичного набору та набором гармонійних шрифтів, придатних для завантаження з комп’ютера на лазерний принтер. Робота була виконана на PDP-10 у Стенфорді, де працювала їхня власна операційна система WAITS («Він чекає на вас») мовою Sail. Результат — система під назвою T EX (tau epsilon chi) і METAFONT, його компаньйон-конструктор шрифтів, залучили багато прихильників, і оригінальну програму Sail незабаром було перекладено на інші мови для переносимості. Зараз він працює на багатьох різних платформах і відповідає за випуск численних книг і статей неймовірної друкарської краси.

І TeX, і Scribe підтримують широкий спектр пристроїв виведення, і є одними з перших форматувальників тексту, які це роблять. Коли на початку 70-х Xerox дозволила декільком своїм принтерам XGP (експериментальний ксерографічний принтер зі шрифтами, завантаженими з хоста) перейти до лабораторій Стенфорда, Массачусетського технологічного інституту та CMU, їх швидко підключили до PDP-10, щоб керувати ними такі засоби форматування, як R і Pub. Їхня гнучкість стала поштовхом для таких людей, як Дон і Браян, включити повномасштабні концепції верстки у свої проекти, і завдяки цьому пізніше стало можливим додати підтримку TeX і Scribe для таких принтерів, як GSI CAT-4 (тоді широко використовувався в Bell). Лабораторії з Troff), Xerox Dover, Imagen і сучасні принтери PostScript (і, якщо ми не помиляємося, Браян також був керівною силою PostScript).

У новому тисячолітті Scribe практично зник, що дуже прикро. Але в певному сенсі він продовжує жити в LaT E X, яка є мовою, схожою на Scribe, побудованою на основі T E X. Як і багато інструментів 1970-х і 80-х років, Scribe, T E X і LaT E X (і, для це важливо, EMACS) потрібно досить добре вивчити, щоб почати, але воно того варте, тому що як тільки ви навчитеся комфортно працювати з ними, ви зможете перевершити всіх!

Електронна пошта

Навряд чи потрібно рекламувати переваги електронної пошти, але був час, коли люди нею не користувалися та їй не довіряли. Сьогодні багато хто з тих самих людей навряд чи можуть жити без нього. Його головна перевага полягає в тому, що він дозволяє людям, які в ньому беруть участь, зручно спілкуватися та з певною впевненістю, що повідомлення буде отримано. На відміну від звичайної пошти, електронну пошту можна надіслати миттєво, а одне повідомлення можна надіслати кільком особам одночасно. На відміну від телефонних дзвінків, електронна пошта не залежить від присутності абонента під час надсилання повідомлення. Є ті, хто каже, що це дегуманний вплив, що люди в сусідніх офісах, які раніше відвідували та спілкувалися, тепер сидять, приклеєні до своїх екранів, і відправляють електронні листи один одному, повідомлення, справжні наміри яких неможливо зрозуміти з виразу обличчя, мова тіла, або тон голосу. Це може бути правдою, але електронна пошта тут, щоб залишитися, і більшість людей знайдуть спосіб розумно включити її у своє життя.

Хоча електронна пошта була доступна для використання на комп’ютері з початку 1960-х років (наприклад, у системі розподілу часу CTSS Массачусетського технологічного інституту), електронна пошта між комп’ютерами почала свою діяльність у DEC-20s (або, строго кажучи, у KL-10, що працюють під керуванням TENEX, "proto-TOPS-20"), у BBN у Кембриджі, штат Массачусетс, у 1972 році, коли Рей Томлінсон з BBN адаптував свою програму електронної пошти TENEX для надсилання повідомлень на інші вузли ARPANET. Це стосувалося не лише нового програмного забезпечення та протоколів, а й нової нотації: тепер уже повсюдного формату адреси користувача @ хоста .

Якщо ви виконали SYSTAT на будь-якому DEC-20 у Колумбійському університеті між 1978 і 1988 роками, ви побачите приблизно половину користувачів, які використовують EMACS, а іншу половину – MM, лише час від часу на форматування тексту, компіляцію програми, передачу файлів та інші види «реальної роботи». MM — це менеджер пошти, який спочатку написав Майк Макмехон, а пізніше перейняв Марк Кріспін. Це сторона «агента користувача» поштової системи. MM — це звичайна програма для непривілейованого користувача, яка дозволяє читати вашу пошту, створювати та надсилати пошту іншим користувачам, пересилати пошту та керувати своїм поштовим файлом. MM дозволяє переміщувати повідомлення в різні файли, друкувати повідомлення, видаляти їх, позначати для подальшого перегляду тощо.

Будь-яка операція, яку MM може виконати з одним повідомленням, також може застосовуватися до послідовності повідомлень. Це одна з найпотужніших функцій ММ. Функції вибору повідомлень MM дозволяють вам обробляти ваш файл електронної пошти майже як базу даних і надсилати складні запити на кшталт «покажи мені (або відповісти, або видалити, або переслати, або позначити, або надрукувати) усі повідомлення, надіслані таким-то між такими-то датами, які довші за стільки символів і містять слово «foo» у своїй темі».

MM надзвичайно потужний, але він також простий у використанні, оскільки він повністю використовує COMND JSYS. Користувачі можуть дізнатися, що очікується в будь-який момент, ввівши знак питання (за винятком створення тексту повідомлення, коли знак питання стає частиною тексту). Існує команда SET, яка дозволяє налаштовувати багато операцій MM і змінювати дії за замовчуванням. Користувачі можуть зберігати ці налаштування у файлі ініціалізації, тому вони вносяться автоматично під час кожного запуску ММ.

MM був швидко прийнятий на користь DEC-20 MAIL і RDMAIL, і спочатку використовувався серед програмістів. Його використання швидко поширилося серед студентів і викладачів, настільки, що кілька курсів стали повністю залежати від нього. Були призначені домашні завдання та читання, були проведені конференції, завдання здані, запитання та відповіді на них, все з ММ. MM також використовується для публікації повідомлень на загальнодоступних «дошках оголошень», які використовувалися для будь-чого: від продажу вживаних мотоциклів до дрібниць і бурхливих суперечок на політичні теми.

У Колумбійському університеті багато факультетів розташовані в різних будівлях, у кампусі та за його межами. Ці відділи були ідеальними кандидатами для електронної пошти, і багато з них вели свій щоденний бізнес за допомогою ММ. І MM однаково почувається вдома в мережевому середовищі. За наявності відповідних мережевих з’єднань і агента доставки ММ можна використовувати — і використовує — для передачі електронної пошти по всьому світу швидше, ніж будь-яке поштове відділення чи служба доставки може доставити папір. З Колумбії ми надсилаємо електронну пошту в такі віддалені місця, як Юта, Англія, Норвегія, Австралія, Бразилія, Японія, Китай і СРСР, і отримуємо відповіді протягом декількох хвилин (припускаючи, що наші кореспонденти дотримуються тих самих дивних годин, що ми робити!).

Травень 2003 р. Постскриптум: Знадобилося ще одне десятиліття, щоб електронна пошта стала більше прокляттям, ніж благословенням, і кожен користувач комп’ютера був переповнений небажаною та/або шкідливою електронною поштою, відомою як «спам». DEC-20 також був піонером у цій галузі: перший спам був надісланий 1 травня 1978 року 1233-EDT від DEC-MARLBORO.ARPA (DEC-20) усім контактам ARPANET (з бази даних WHOIS), рекламуючи нові Моделі DEC-20.

У 2015 році Columbia передала свою електронну пошту Google.

[ Вгору ] [ Далі ] [ Назад ]

ІНШІ ВАЖЛИВІ ВНЕСКИ

Архітектура DEC-20 фактично сягає середини 1960-х років, до PDP-6 від DEC, який був розроблений з урахуванням LISP — півслова та відповідні інструкції ідеально підходять для CAR та CDR (це мова LISP, яка походить від набору інструкцій IBM 704, де вперше було розроблено LISP). Більшість великих реалізацій LISP було зроблено для 36-розрядних машин DEC — MACLISP, INTERLISP — і серед додатків, заснованих на них, MACSYMA від MIT виділяється як орієнтир. MACSYMA використовується вченими та інженерами для роботи з математичними виразами довільної складності на символьному, а не на числовому рівні. Існує одна відома (можливо, апокрифічна) історія про астронома-математика XIX століття, який присвятив своє життя формулюванню точного рівняння руху Місяця. У результаті вийшла книга на 300 сторінок.

У 1971 році Ральф Горін зі Стенфордського університету створив перший відомий комп’ютерний засіб перевірки правопису для тексту SPELL for TOPS-10. Пізніше його адаптували до DEC-20 і «інтерфейсували» з такими пакетами, як EMACS і MM. Нащадків SPELL легіон — жодна поважаюча себе програма обробки текстів на базі ПК не з’явиться на публіці без коректора орфографії.

[ Вгору ] [ Далі ] [ Назад ]

ПЕРЕТВОРЕННЯ В UNIX

[Пам’ятайте: цей документ був написаний у 1988 році.]

« Главне плавання через 80-ті..." Наприкінці 80-х років попит на послуги DEC-20 вирівнявся, а потім почав падати. DEC-20 був схожий на машину для кліперів, найвищий прояв технології, яку багато хто вважав застарілою — великий центральний комп’ютер із розподілом часу. Тепер студенти були готові відмовитися від зручностей DEC-20 заради контролю та передбачуваності власного ПК. Завдяки членству Колумбії в Консорціумі університету Apple незабаром у студентських руках були тисячі Macintosh. Спеціальні домовленості з IBM також розмістили IBM PC у сотнях офісів і гуртожитків. Ці системи задовольняли потреби студентів у невеликих завданнях з програмування на Pascal і Basic, а також у скромній обробці текстів і звільняли центральні системи від великого тягаря. Однак ПК не виконували потреби комп'ютерних наук та інших інженерних відділів,де більші проекти були призначені мовами, такими як Fortran, C, Prolog і Lisp, які не були легко доступними для ПК.

Тим часом UNIX захоплювала світ обчислювальної техніки — на мейнфреймах, міні, робочих станціях і навіть ПК. Наша основна група користувачів-навчальників — студентів CS — виконувала більшу частину своєї роботи над ATT 3B2 у відділі, але їм дуже потрібне було централізоване надійне середовище з прийнятною продуктивністю, резервним копіюванням, обслуговуванням і всім іншим. Ми вже кілька років використовували UNIX на VAX 750 (для внутрішньої розробки), а також Amdahl UTS на мейнфреймі IBM, тому набули певного досвіду роботи з UNIX.

З цих причин ми вирішили, що настав час почати перетворення з TOPS-20 на UNIX. З фінансових причин ми обрали для цієї мети VAX 8650. Обмін DEC-20 був привабливим, і ми змогли зберегти наші старі диски та стрічкові накопичувачі. Насправді ми порахували, що за 3 роки купити VAX було дешевше, ніж залишити DEC-20. І він був потужнішим, з більшим адресним простором і меншим розміром, ніж DEC-20, який він замінив.

VMS не було обрано з кількох причин. По-перше, ми відчували себе дещо зрадженими через відмову DEC від TOPS-20, і не хотіли залишати себе відкритими для такого ж лікування в майбутньому. UNIX, на відміну від VMS, не прив’язує вас до певного постачальника. Крім того, UNIX має мережу та засоби зв’язку для всіх наших основних вимог: Ethernet, TCP/IP, DECnet (нашим початковим UNIX був Ultrix-32), BITNET (UREP), термінали RS-232 і LAT, Kermit. І сама UNIX має багато переваг: дуже потужне середовище розробки програм для досвідчених програмістів, програмована оболонка, конвеєр програм, прості, але потужні утиліти.

Однак UNIX, як відомо, є лаконічним, загадковим і недружнім, особливо для початківців користувачів. VMS, хоч і не має COMND JSYS DEC-20, безсумнівно, дружніша, ніж UNIX, і багатослівна до помилки. Тож не без певних побоювань ми взялися за перетворення.

Багато з нас, користувачів DEC-20, були стійкі до змін. Знайомство, добре чи погано, часто є більш привабливим, ніж невизначеність. Але перехід на UNIX змусив нас відмовитися від деяких функцій, які спочатку привернули нас до DEC-20.

«Зручна» оболонка, надана TOPS-20 Exec, яка надає допомогу тим, хто її потребує, але не карає досвідчених користувачів, мабуть, є функцією, якої не вистачало найбільше. В UNIX більшість команд є програмами, які мають лише параметри або імена файлів. Це означає, що ви не можете мати "?" для команд і аргументів в оболонці, тому що програми, які б діяли на запит довідки, ще навіть не запускалися. Це протилежність TOPS-20, де більшість основних функцій вбудовано в exec, але це не дозволяє об’єднувати лаконічні програми з блоків, як це робить UNIX.

Щоб навести приклад радикальної різниці між філософіями TOPS-20 і UNIX, припустімо, що ви хочете створити процедуру, яка створить список каталогу, відсортує його у зворотному порядку за розміром файлу та відформатує список у пронумеровані сторінки з трьома стовпцями на сторінка, придатна для друку. У TOPS-20 ви витратили б тиждень на написання програми мовою асемблера, щоб зробити все це. В UNIX інструменти вже є, і їх потрібно лише поєднати в бажаний спосіб:

ls -s | сортувати -r | пр -3

Це робить UNIX досить привабливим. Але програма DEC-20 після написання міститиме вбудовану довідку, завершення команд і імен файлів тощо, тоді як процедуру UNIX можуть використовувати лише ті, хто точно знає, що вони роблять. Якщо ви ввели «ls -s | sort», але не знаєте, який варіант сортування є відповідним, введення знака питання в цей момент не принесе жодної користі, оскільки програма сортування ще не запущена.

DEC-20 (як і більшість поширених операційних систем) використовує команди та імена файлів, які не залежать від регістру. Однак залежність від регістру є властивістю UNIX, яку рішуче захищають її прихильники. Це може ввести в оману користувачів інших операційних систем. Загалом, команди UNIX дуже відрізняються від команд, що використовуються в інших системах. Навіть якби DEC-20 не пропонував довідкову функцію меню за запитом, пересічний користувач міг би вгадати правильні команди для введення — DELETE для видалення файлу, COPY для копіювання файлу, RENAME для перейменування файлу тощо. Як видалити файл в UNIX? ВИДАЛИТИ? Ні.... СТИРАТИ? Ні, це «rm» (лише малі літери!).

Без інструкції під рукою, як ви могли це дізнатися? Навіть якщо ви знаєте про "man -k" (пошук за ключовим словом в онлайн-довіднику), UNIX не надасть вам великої допомоги: "man -k delete" не знайде нічого суттєвого, так само як і "man -k erase" . Але принаймні «rm» дещо натякає на слово «remove», і справді «man -k remove» виявило б невловиму команду (у ранніх версіях UNIX для цієї команди була ще більш невловима назва: dsw, абревіатура від «do swedanya», російська на прощання, транслітерована польською або, можливо, німецькою; це не єдине місце, де працював цензор... Поточні «стандартні» версії UNIX не мають команди «help», але в попередні випуски,

Я (fdc) не пам’ятаю, де я знайшов посилання на «do swedanya», але, очевидно, це міська легенда. Денніс Річі сказав у повідомленні на Usenet 1981 року, що справжня етимологія — «видалити з перемикачів»; оригінальна програма dsw PDP-7 була попередницею "rm -i" (інтерактивне видалення), у якій комутатори центрального процесора забезпечували взаємодію.

Особливою перевагою TOPS-20 є збереження кількох поколінь (версій) кожного файлу, що дає можливість повернутися до попередньої версії, якщо остання зазнає людської помилки, помилки чи трагедії. Це, у поєднанні з можливістю відновити файл після його видалення, надає відчуття комфорту та безпеки, яке можна оцінити лише після переходу на більш звичайну та нестабільну файлову систему. Якщо ви видалите файл в UNIX або створите новий файл із таким самим іменем, як і існуючий, тоді старий файл просто зникне. Команда "rm *" в UNIX просто надто потужна та надто тиха. Так, він зробив те, що ви сказали, але як він знав, що ви мали на увазі те, що сказали? UNIX не рятує користувачів від самих себе.

Іншою важливою особливістю TOPS-20 є логічне ім'я пристрою, яке можна визначати в нескінченній кількості як для системи в цілому, так і для кожного окремого користувача. Кожне логічне ім’я може вказувати на окремий пристрій і/або каталог або на цілий ряд із них, які потрібно шукати по порядку. Вони вбудовані в саму операційну систему, тоді як поняття PATH і CDPATH є запізнілими думками, прищепленими до оболонки UNIX, недоступними всередині програм і незастосовними за межами їх обмежених сфер функціонування.

Потім у нас є мови програмування, які більше не будуть доступні — ALGOL (60 і 68), APL, BASIC, BCPL, BLISS (10, 11 і 36), CPL (і «справжня» PL/I), ECL, FOCAL , PPL, SAIL, SIMULA, SNOBOL, ... І TECO! І MACRO, і Midas, і Fail... Фактично, мало хто пропустить будь-що з цього, за можливим винятком APL (використовується в деяких класах) і SNOBOL (який все ще можна знайти для UNIX на окремих платформах).

Звичайно, усі наші домашні програми, написані мовою асемблера, довелося переробити для UNIX: введення та керування ідентифікаторами користувачів (на відміну від редагування файлу passwd), облік, обмеження для користувачів (ACJ, Omega). І одна функція, без якої ми ніколи більше не обживемося, це MM, потужна система керування поштою, якою однаково можуть користуватися новачки та експерти.

Позитивним є те, що ми не відмовилися б від EMACS, Scribe, TeX, Kermit або TCP/IP-утиліт Telnet і FTP. Усі ці програми доступні в певній формі для UNIX. Деякі з реалізацій UNIX є певними вдосконаленнями, наприклад GNU EMACS від Free Software Foundation, без обмежень пам’яті TOPS-20 EMACS. Є також високоякісний Fortran від DEC для наших інженерів і, звичайно, цілі середовища програмування C і LISP для студентів CS та інших розробників програмного забезпечення, а також набір потужних утиліт для роботи з текстом, таких як sed, grep, awk, lex і yacc. , чиї функції повинні бути очевидні з їхніх назв.

Встановлення VAX було набагато швидшим, ніж типове встановлення DEC-20. Продуктивність 8650 була досить швидкою, а його надійність була чудовою. Через рік 8650 було продано, а другий DEC-2065 було продано DEC на VAX 8700. 8700 має приблизно таку саму потужність, що й 8650, але, на відміну від 8650, він сумісний із новими пристроями BI. і його можна оновити до більшої моделі VAX, якщо він вичерпається.

Однак виявилося, що коли настав час розширення, було б рентабельніше купувати системи Sun UNIX, ніж оновлювати 8700 до більшого VAX. Це вибір, який ви не отримаєте з пропрієтарною операційною системою, як-от TOPS-20, VMS тощо. Перетворення з VAX на SUN вимагає певної «відмови» (наприклад, DECnet), але не так сильно, як подорож із DEC -20 до VAX, а натомість ви отримуєте дуже потужну машину на невеликій частині площі VAX — якою мав би бути Юпітер, але з UNIX замість TOPS-20.

[ Вгору ] [ Далі ] [ Назад ]

ОСНОВНІ ПРОБЛЕМИ ПЕРЕТВОРЕННЯ

[Пам’ятайте: це було написано в 1988 році.]

Під час переходу на UNIX великим питанням було навчання користувачів. UNIX не допомагає користувачам так, як це робить TOPS-20. Немає стилю COMND? допомога, немає навіть команди "допомога". Самі команди не мають інтуїтивно зрозумілих назв: користувачеві буде важко здогадатися, що «mv» — це команда для перейменування файлу, «cat» для введення файлу тощо. Як користувачі дізнаються, як реагувати на вимикання звуку «$» (або «%») дивиться їм в очі? Чи повинні ми написати для них зручну оболонку? Або купи підручників і довідкових посібників?

Незважаючи на всю свою загадкову лаконічність, UNIX став дуже популярним. Системи UNIX працюють на комп’ютерах усіх типів, від ПК до суперкомп’ютерів. Отже, книжкові магазини комп’ютерів переповнені книгами різновиду «Навчи себе UNIX». Ми відчуваємо, що незалежно від того, наскільки загадковою та недружньою може бути сама UNIX, її не слід змінювати. В іншому випадку ми втрачаємо сумісність з іншими системами UNIX, книгами та статтями, ми залишаємо себе відкритими для кошмару обслуговування, і ми піддаємо нашим користувачам неприємний сюрприз, якщо вони колись зіткнуться зі справжньою системою UNIX.

Інша проблема – поштова система. Як поштовий агент на рівні користувача ви можете вибрати пошту UNIX або GNU EMACS RMAIL. Пошта UNIX є примітивною та неінтуїтивно зрозумілою, а RMAIL доступний лише тим, хто знає EMACS. RMAIL має перевагу узгодженого інтерфейсу — відсутність переходів у редактор і виходу з нього — але він має відносно обмежений набір команд.

Наші користувачі вже дуже звикли до електронної пошти, головним чином завдяки потужності, зручності та зручності MM. Багато з найбільших користувачів ММ є викладачами чи адміністраторами, яким не потрібно вивчати нову поштову систему. Але така потужна програма, як MM, вимагає багато команд, і коли у вас багато команд, вам потрібна вбудована довідка, яка надається безкоштовно в DEC-20. Подібні коментарі стосуються інших складних програм, наприклад (у нашій системі) програм для введення та керування ідентифікаторами користувачів, інтерфейсу оператора (наприклад, OPR на DEC-20) тощо.

З цієї причини ми вирішили «перетворити нашу нову систему на нашу улюблену стару», написавши пакет COMND для UNIX. Цей пакет, CCMD, розпочався як частина проекту «Відлюдник», дослідження Колумбії, що фінансувалося DEC, 1983-87. Ми намагалися розробити мережеву архітектуру, яка дозволила б різним типам ПК — IBM, Rainbow, Pro-380, VAXstation, SUN, Macintosh тощо — отримувати доступ до файлів і служб наших мейнфреймів DEC-20 і IBM узгоджено та прозорий спосіб. Зрештою проект провалився, оскільки технологія пройшла повз нас (дешеві з’єднання та шлюзи Ethernet і Token Ring, Sun NFS, файлові сервери Macintosh на основі VAX тощо).

CCMD, повністю написаний на C, виконує всі функції COMND і багато іншого, аналізує з терміналу, файлу, переспрямованого стандартного введення або рядка в пам’яті. Він не орієнтований на якусь конкретну клавіатуру чи екран. Це не на користь ні новачкам, ні експертам. Він працює під керуванням 4.xBSD, Ultrix, AT&T System V, SunOS та MS-DOS, і його можна легко перенести на VAX/VMS та будь-яку іншу систему з компілятором C.

CCMD — це повномасштабна реалізація COMND, що дозволяє ланцюгові FDB (наприклад, розібрати ім’я файлу, число або дату), перенаправлення введених команд тощо. Доповнення до DEC-20 COMND JSYS включають списки довідки "?" для відповідності імен файлів, часткове завершення імен файлів (до першого символу, який не є унікальним), дуже гнучкий аналізатор часу та дати та додаткові типи даних.

Використовуючи CCMD, програмісти Columbia змогли написати клон DEC-20 MM повністю на C. Він має всі функції DEC-20 MM, а також деякі інші. Він працює з різними форматами поштових файлів, включаючи DEC-20, Babyl (RMAIL) і mbox (пошта UNIX). Він використовує UNIX sendmail як систему доставки та має бути адаптованим до служб доставки систем, що не є UNIX.

Автори — і напрочуд багато інших людей у ​​всьому світі — досі використовують Columbia MM як свій поштовий клієнт (але, на жаль, не в Columbia з 2015 року). Його можна створити та встановити на (принаймні) Linux, FreeBSD, OpenBSD, NetBSD, Solaris і SunOS. Ви можете знайти його ТУТ .

[ Вгору ] [ Далі ] [ Назад ]

ЗАКЛЮЧНІ СЛОВА...

[Пам’ятайте: це було написано в 1988 році.]

Колумбія є дуже децентралізованою та стикається з обмеженням бюджету, типовим для всіх вищих навчальних закладів. Немає центрального мандату розміщувати дорогі робочі станції на кожному столі, з’єднані гігабітними оптоволоконними мережами. Студенти, викладачі та співробітники здебільшого використовують власні кошти або кошти відділу, щоб придбати найкращий ПК, який вони можуть використовувати, як правило, IBM PC або Macintosh з інтерфейсом RS-232. Більшість користувачів спілкуються лише епізодично через комутоване з’єднання або тягнуть дискету до загальнодоступної комп’ютерної лабораторії, де комп’ютери під’єднані до мережі чи лазерного принтера.

Оскільки ПК стають дешевшими та потужнішими, що залишається робити централізовано? Є ті, хто стверджує, що все, що може зробити VAX або DEC-20, також можна зробити на ПК. Єдиним винятком можуть бути дуже великі додатки, спільні та/або великі та/або постійно змінювані бази даних і зв’язок загалом — глобальні мережі, пошта, спільні бібліотеки програм, дошки оголошень, конференції тощо.

Але масова децентралізація обчислень означає величезне дублювання зусиль і витрат на апаратне забезпечення, ліцензії на програмне забезпечення та обслуговування. Кожен стає системним менеджером, роблячи резервні копії, усуваючи неполадки, встановлюючи та налагоджуючи програмне забезпечення, консультуючи, навчаючи, шукаючи запчастини. Дослідники, які колись були на гарячому сліді ліків від раку чи СНІДу, тепер крутять DIP-перемикачі, запускають утиліти Norton на своїх зламаних жорстких дисках, переглядаючи останні сторінки BYTE, шукаючи вигідні пропозиції. Кожна людина або група може мати унікальну колекцію програмного та апаратного забезпечення, що робить навчання, співпрацю та більшість інших функцій набагато складнішими, ніж у дні розподілу часу. І місце для обчислювальної техніки потрібно знайти практично в кожному офісі та кімнаті гуртожитку, а не в одній центральній зоні. Одного дня, бюджетники можуть помітити кумулятивний ефект усіх цих розподілених обчислень, і маятник почне повертатися в інший бік. Що таке фраза "економія від масштабу?"...

Кілька років тому під час паливної кризи в газеті була стаття про повернення кліперів... Великі системи DEC, кліпери епохи розподілу часу, ніколи не повернуться, але вони продовжуватимуть жити в програмному забезпеченні, яке вони створили. — EMACS, TeX, Scribe, Spell, MM, Kermit, розширені діалекти LISP тощо. Тим часом, поки комп’ютерна індустрія намагається перетворити комп’ютери на багатокористувацькі системи та заново винайти багатопроцесорність, безпеку та інші забуті концепції, можна було б вигідно зупинитися, щоб озирнутися на минулі десятиліття, коли вартість і обмеження комп’ютерного обладнання змушували дизайнерів і програмістів бути... ну розумнішим.

[ Вгору ] [ Далі ] [ Назад ]

ЕПІЛОГ

(січень 2001)

Сьогодні, коли ви можете зайти в звичайний роздрібний магазин і придбати комп’ютер із потужністю в 10 разів (і в 100 разів більшою основною пам’яттю, і в 1000 разів більшою ємністю диска), ніж найбільший і найшвидший KL10, який будь-коли створювався, за менш ніж 1000 доларів США, підключіть його до звичайну настінну розетку та телефонний гніздо (або кабельну коробку тощо) і мати доступ до Інтернету за кілька хвилин із повнокольоровою графікою, відео, звуком і, хто знає, чим ще, ми можемо легко забути, як комп’ютери еволюціонували з великих автономні калькулятори із збереженими програмами в «комунікатори». Принаймні для нас, у Колумбійському університеті, зміни почалися з великими системами DEC, які надали всім нам доступ до обміну файлами, електронної пошти та локальних і глобальних мереж, відкриваючи можливості для співпраці та спілкування на роботі та в житті: на комп’ютері, у кампусі та по всьому світу.

Посмертне дослідження PDP-10 було довгим і болісним (хто його вбив і чому, як він міг вижити і яким би був світ сьогодні, якби це було), але тим, хто все ще хоче зазирнути в хвилюючі часи 1970-х років і 80-х років, коли комп’ютери вперше стали культурним явищем, а комунікаційне середовище тепер може зробити це з кількома програмними проектами емуляції PDP-10 . Можливо, найбільшу спадщину тих днів можна знайти в сучасному русі відкритого програмного забезпечення, в якому розробники з усього світу співпрацюють над проектами, починаючи від операційних систем (Linux, FreeBSD тощо) і закінчуючи різноманітними програмами, як-от оригінальний PDP-10 ARPANET. "хакери" ( чи це життєздатна бізнес-модель - окреме питання :-)

Тим часом багато хто з нас, хто жив у ту епоху, зберігає свої старі звички, все ще використовуючи текстові програми, такі як EMACS і MM, а не їх модні, але трудомісткі заміни GUI, але на платформах UNIX, таких як Linux, замість PDP-10. Кожного разу, коли новий ПК-вірус занурює всю планету в хаос і паніку, ми ледь помічаємо . Є що сказати про старі звичаї.

[ Вгору ] [ Далі ] [ Назад ]

ГЛОСАРІЙ

3270IBM System/370 повноекранний блочний термінал
ACJКонтроль доступу (TOPS-20)
AOSДодати один і пропустити (інструкція PDP-10)
APL(Зашифрована) мова програмування, Кеннет Е. Айверсон (1966)
ARPANETМережа агентств передових дослідницьких проектів, яка стала всесвітнім Інтернетом.
ASPПриєднаний процесор підтримки (монітор терміналу IBM 360)
БАЛРРеєстр розгалужень і посилань (інструкція IBM 360)
БАЗОВИЙБазовий універсальний символічний інструкційний код
BBNБолт Беранек і Ньюман, розробники TENEX і більшої частини ARPANET
BITNETМережа «Будь-це-там» (на основі запису віддаленої роботи IBM)
BLTПередача блоку (інструкція PDP-10)
CACMCommunications of Association for Computing Machinery (журнал)
CCMDПакет COMND JSYS, написаний мовою C
CCNETМережа комп'ютерного центру (на основі DECnet)
CFSЗагальна файлова система (TOPS-20)
COMNDМнемоніка команди JSYS (TOPS-20).
CP/MКеруюча програма / мікрокомп'ютер (ранні ОС для 8-розрядних ПК)
ЦПЦентральний процесор
CTSSСумісна система розподілу часу MIT для IBM 7094
CU20BДругий і найдовше живучий DEC-20 Колумбійського університету
ДДТІнструмент динамічного налагодження (PDP-10) Спочатку DEC Debugging Tape (PDP-1)
ГРУДDigital Equipment Corporation, 1957-1998 (придбано в 1998 Compaq, потім HP у 2001)
ГРУД-20DECSYSTEM-20, PDP-10, спеціально розроблений для роботи TOPS-20
DECNETВласний мережевий пакет DEC для більшості ОС
DN20Комунікаційний інтерфейс PDP-11/34 для DEC-20
DN200Термінал/концентратор принтера PDP-11/34 для DEC-20
ДЕЛЬФІННіколи не завершений продовжувач KL10
EMACSРедагування макросів: повноекранний редактор Річарда Столмана, спочатку заснований на TECO
ВИХІДКеруючий символ Escape (Altmode) (ASCII 27)
НЕВДАЧАШвидкий асемблер PDP-10 Ральфа Горіна
FORTRANТранслятор формул: перша мова програмування високого рівня (1957)
FTPПротокол передачі файлів (ARPANET/Інтернет)
HASPХ'юстонська програма автоматичного спулінгу
ХРРОІВідразу від половини правих до правильних (інструкція PDP-10)
IEEEІнститут інженерів електротехніки та електроніки
ILDBЗбільшити покажчик і завантажити байт (інструкція PDP-10)
ЙОГОНесумісна система розподілу часу (для PDP-10 в MIT; каламбур на CTSS (qv))
JCLМова керування завданнями (IBM OS/360)
JRSTПерейти та відновити (інструкція PDP-10)
JSYSПерейти до системи (інструкція PDP-10)
ЮПІТЕРЩе один незавершений продовжувач KL10
JVNCNETМережа суперкомп'ютерного центру Джона фон Неймана (Прінстон)
KA10Перша модель PDP-10, працює лише з TOPS-10
KI10Друга модель PDP-10 працює лише з TOPS-10
KL10Третя і найбільша / найдосконаліша модель PDP-10, працює з TOPS-10 і -20
KS10Четверта, мала модель PDP-10, працює на TOPS-10 і -20
LCGВелика комп’ютерна група DEC, відповідальна за PDP-10
LISPМова обробки списків (Jon McCarthy, Stanford U, 1960)
МАКРОСімейство асемблерів DEC: MACRO-10, MACRO-11, MACRO-20 та ін.
МІДАСАсемблер PDP-10 MIT
МАЙНИКНастільний PDP-10 (ніколи не завершений)
MITМассачусетський технологічний інститут
МММенеджер електронної пошти (поштовий клієнт DEC-20 — і пізніше UNIX)
MS-DOSДискова операційна система Microsoft
НКППрограма керування мережею (ранній протокол ARPANET замінений на TCP/IP)
NJEЗапис роботи в мережі
NYSERNETІнженерно-дослідна мережа штату Нью-Йорк
PARCДослідницький центр Xerox Palo Alto
АТСПриватна біржа
PDPПроцесор програмованих даних (PDP-7, PDP-8, PDP-10, PDP-11, інші)
RA81Пізніша модель, більший, герметичний диск (але все ще розмір пральної машини)
RAIDНалагоджувач PDP-10 Ральфа Горіна
RJEДистанційне введення завдань (симуляція зчитувача карток/рядкового принтера)
RP04Найпоширеніший дисковод PDP-10 у середині-кінці 1970-х років
RP06Найбільш поширений дисковод PDP-10 в кінці 1970-х - початку 80-х років
RSCSПідсистема зв'язку Remote Spooling (протоколи BITNET)
RSTS/EРозширена операційна система DEC для спільного використання ресурсів для PDP-11
RSX11DEC Realtime Executive для PDP-11 (не акронім)
RSX20FСпеціальна версія RSX11 для передньої частини PDP-11/40 KL10
SOSSon Of Stopgap (рядковий редактор TOPS-20)
SSIOЗона введення/виведення самообслуговування Columbia
TCP/IPПротокол керування передачею / Інтернет-протокол
TECOТекстовий редактор і коректор
TENEXСтранична операційна система PDP-10 від BBN, попередниця TOPS-20
ТОПС-10Операційна система (PDP-10, DECsystem-10)
ТОПС-20Операційна система (DECSYSTEM-20)
TTYТелетайп або телетайп; тобто термінал або термінальний порт
UNIXПопулярна операційна система від Bell Labs (не абревіатура)
УРЕПВерсія RSCS для UNIX, що дозволяє UNIX брати участь у BITNET
VAXVirtual Address Extended, 32-розрядна продовження DEC PDP-11
VMSVirtual Memory System, операційна система DEC для VAX
VT100Відеотермінал DEC 24x80 з плавною прокруткою у верхньому/нижньому регістрі (1977)
ЧЕКАЄСтенфордська операційна система PDP-10 («вона ЧЕКАЄ на вас»)
XOFFControl-S (ASCII 19), використовується для керування потоком хост/термінал
XONControl-Q (ASCII 17), використовується для керування потоком хост/термінал

[ Вгору ] [ Далі ] [ Назад ]

ПОДЯКА

[1] Боб Клементс, BBN (2001).

[2] Джо Демпстер, DEC (1988).

[3] Марк Кріспін, Вашингтонський університет (2001).

[ Вгору ] [ Далі ] [ Назад ]

ПРИМІТКИ

Комп’ютерний музей у Бостоні зараз не існує, як і Digital Equipment Corporation (DEC), його початковий спонсор. Його колекція переміщена, сподіваємося, у повному обсязі до Центру історії комп’ютерного музею в Моффет-Філд, Каліфорнія*: 
http://www.computerhistory.org/

де пошук "360/91" показує наступне: 
Назва артефакту: Консоль оператора System 360 Model 91

Виробник: International Business Machines Corporation (IBM)

Номер моделі: 360/91 або 91

Категорія: Перетворювач: панель керування

Рік: приблизно 1968

Центр історії: ID # X01321.1997

  1. Зображення немає, але, якщо не зраджує пам’ять, він був приблизно 4 фути заввишки та 6 футів завширшки, з можливо 16 лампочками на квадратний дюйм. Табличку «IBM 360/91» вкрали в очікуванні самовивозу. Решту машини розпиляли бензопилою та кинули в кислотні ванни для вилучення золота.
  2. TECO (текстовий редактор і коректор) був і редактором, і мовою для написання редакторів. Коли використовувався «голий», його мова команд була розрідженою та загадковою, подібною до DDT. Якщо його використовувати як основу для продуктів «вищого рівня», таких як EMACS, його потужність можна легко оцінити. "Кохайте, не воюйте!" було знайомим вигуком на демонстраціях проти війни у ​​В’єтнамі в 1960-70-х роках .
*А потім у 2002 році переїхав до Маунтін-В’ю, Каліфорнія.
  1. Для тих, хто не пам’ятає, RP06 має розмір посудомийної машини , важить 600 фунтів і використовує знімний диск, який може вмістити близько 175 мегабайт. У 1977 році це була захоплива новина, оскільки він подвоїв потужність свого попередника, RP04 .
  2. DDT походить від PDP-1 (де воно означало DEC Debugging Tape, оскільки воно було виконано з паперової стрічки), приблизно 1960 року, через PDP-6 (який був попередником PDP-10), і походить від більш раннього bug-killer, FLIT (Flexowriter Interrogation Tape) на попереднику PDP-1, TX-0, на 2-му поверсі будівлі 26 Массачусетського технологічного інституту. І DDT, і TECO спочатку були зроблені в MIT для PDP-1[1]. DDT живе в сучасних налагоджувачах, таких як GDB, де більшість його концепцій — якщо не його унікальний інтерфейс користувача — вижили.
  3. Постійний потік символів викликав збій; система відновилася, але постійний потік продовжувався; знову стався збій системи, і так всю ніч.
  4. 8-розрядні команди також можливі, але не обов'язкові. Спочатку вони випускалися з ключем «Meta», який був доступний на певних вибраних терміналах, як-от Datamedia 2500. Але приблизно з 1990 року стала важливішою можливість вводити 8-розрядні символи даних, наприклад діакритичні символи листи італійської та іспанської мов; спеціальні літери німецької та ісландської мов; нелатинські літери російської, грецької, єврейської та ін.
  5. Початківці в обчислювальній техніці можуть не оцінити відокремлення редагування тексту від форматування тексту або переваги вбудовування команд форматування звичайного тексту в текст перед тим, як вручну зробити це слово напівжирним, це слово курсивом і так далі в текстовому процесорі. Але тут не місце це пояснювати.
  6. Відтоді право власності на Scribe кілька разів переходило з рук у руки, і його вже непросто визначити, але, як повідомляється, [2001] вони все ще працюють.
  7. Це було гасло LCG, яке мало запевнити своїх клієнтів у тому, що 36-бітна лінія комп’ютерів буде життєздатною протягом 1980-х років. Чашки, футболки, наклейки та інші дрібниці з цим гаслом і логотипом вітрильника роздавалися у величезних кількостях приблизно в 1980-82 роках.

[ Вгору ] [ Далі ] [ Назад ]

БІБЛІОГРАФІЯ

  1. Аллен, Джон, Анатомія Ліспа , McGraw-Hill, ISBN 007001115X, 1978.
  2. Bobrow, DG, and JD Burchfiel, DL Murphy, RS Tomlinson, TENEX, A Paged Paged System sharing for the PDP-10 , CACM Vol 15 No 3, March 1972.
  3. да Круз, Френк, Керміт, Протокол передачі файлів , Digital Press, 1987.
  4. DECsystem-10/DECSYSTEM-20 Hardware Reference Manual , Том I, Центральний процесор, Digital Equipment Corporation, EK-10/20-HR-001, 1978.
  5. TOPS-20 Monitor Calls Reference Manual , AA-FV52A-TM (наприклад, для TOPS-20 6.1, вересень 1985 р.).
  6. Довідковий посібник асемблера MACRO , AA-4159B-TM, квітень 1977 р.
  7. DECsystem-10 Journal of Applications and Research (без дати; ймовірно, 1973 або 1974 і, ймовірно, єдиний номер); попередник Digital Technical Journal.
  8. Джіаноне, Крістін, редактор, Kermit News , що періодично публікується Кермітським проектом, Колумбійський університет, 612 West 115th Street, New York, NY 10025.
  9. Горін, Ральф, Вступ до програмування мовою асемблера DECSYSTEM-20 , Digital Press, 1981.
  10. Кнут, Дональд Е, Мистецтво програмування , ...
  11. Knuth, Donald E, TeX and Metafont , Digital Press, 1979 (зараз експонат колекції).
  12. Мерфі, Ден, Організація та управління зберіганням у TENEX , Матеріали конференції AFIPS, Том. 41, 1972.
  13. Петерсон, Джеймс Л., Комп’ютерні програми для виявлення та виправлення орфографічних помилок , CACM, V23 #12, грудень 1980 р.
  14. Столлман, Річард М., EMACS, розширюваний, настроюваний, самодокументований редактор відображення , повідомлення ACM SIGPLAN, V16 #6, червень 1981.
  15. Стіл, Гай Л., Дон Вудс, Рафаель Фінкель, Марк Кріспін, Джефф Гудфеллоу, Річард Столман, « Словник хакера» , Harper & Row, 1983.
  16. Хафнер, Кеті та Метью Лайон, Talking Headers (історія електронної пошти), Washington Post Magazine, 4 серпня 1996 р.

[ Вгору ] [ Попередня ]

ПОСИЛАННЯ

Усі ці посилання дійсні станом на 9 лютого 2019 р.; 14 інших було видалено того дня, оскільки сайти або сторінки зникли.

Ден Мерфі

Вікіпедія

Документи Дена Мерфі TECO, TENEX і TOPS-20

http://tenex.opost.com/

ТЕНЕКС і ТОПС-20

Ден Мерфі, IEEE Annals of the History of Computing , том 37, номер 1, січень-березень 2015 р., стор.75-82.

TENEX (операційна система) , Вікіпедія.

Огляд безпосереднього попередника TOPS-20.

KLH-10: емулятор KL10/KS10 від Ken Harrenstien (вперше випущено 10 листопада 2001 року):

http://klh10.trailing-edge.com ( ОГОЛОШЕННЯ ).

Емулятор SIMH PDP-1/4/7/8/9/10/11/15 Боба Супника:

http://simh.trailing-edge.com/

Планета PDP Пола Аллена (проект відновлення та збереження PDP-10, PDP-11, PDP-8)

http://www.pdpplanet.com

Історія обчислювальної техніки в Колумбійському університеті:

http://www.columbia.edu/cu/computinghistory/

Мови програмування DECSYSTEM-20 (Columbia U):

http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/01/info/old-languages.info.html

http://www.columbia.edu/kermit/ftp/dec20/languages.info

DECSYSTEM 20 Посібник з програмування мовою асемблера (Columbia U):

http://www.columbia.edu/kermit/ftp/dec20/assembler-guide.txt

Оригінальний веб-сайт проекту Kermit:

http://www.kermitproject.org/

DECsystem-10 Kermit:

Веб-сторінка PDP-10 Kermit

DECSYSTEM-20 Kermit:

Веб-сторінка PDP-10 Kermit

Поштовий клієнт MM і CCMD:

ЗАВАНТАЖИТИ .

Фонд вільного програмного забезпечення (почався з EMACS на PDP-10):

http://www.gnu.org/

Музей історії комп'ютерів:

http://www.computerhistory.org/

Документи Дена Мерфі TENEX і TOPS-20:

http://www.opost.com/dlm/tenex/index.html

ITS - несумісна система розподілу часу

http://www.cosmic.com/u/mirian/its/

Сторінки історії Джона Маккарті:

http://www-formal.stanford.edu/jmc/history/

Unix для користувачів TOPS-20, Нельсон Бібі (1987)

http://www.math.utah.edu/~beebe/publications/1987/t20unix.pdf

PDP-10 Webring:

http://n.webring.com/hub?ring=pdp10&id=1&hub

CyberMuseum Гордона Белла для Digital Equipment Corporation:

http://research.microsoft.com/~gbell/Digital/DECMuseum.htm

Архів програмного забезпечення PDP-10 Тіма Шоппи:

http://pdp-10.trailing-edge.com/

36 біт Джо Сміта назавжди!:

http://www.inwap.com/pdp10/

Фотографії Tymshare PDP-10 (KA, KI, KL) 1980 року:

http://www.inwap.com/pdp10/tymshare/BubbRoad/

SDF Public Access TWENEX::

http://twenex.org

GCC для PDP-10:

http://pdp10.nocrew.org/gcc/

Додатковий глосарій (головним чином для термінів і абревіатур RJE/NJE):

http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/IEA1M503/GLOSSARY

Дайджест Info-Kermit

Архів дайджесту Info-Kermit (1983-1995)

Група новин Kermit:

news:comp.protocols.kermit.misc

Архіви (1994-2006)

Article posted on:22 Aug 2023