Thoth (амалдық жүйе) - Thoth (operating system)

Thoth
ӘзірлеушіВатерлоо университеті
ЖазылғанЭх, Зед, құрастыру тілі
ОЖ отбасыRTOS
Жұмыс жағдайыТоқтатылды
Бастапқы шығарылымҚазан 1976; 44 жыл бұрын (1976-10)
Маркетингтің мақсатыЗерттеу
Қол жетімдіАғылшын
Жаңарту әдісіҚайта құрастыру
ПлатформаларHoneywell 6050
Жалпы мәліметтер Nova 2
Texas Instruments TI990 / 10
Ядро түріМикро ядролы
Сәтті болдыПорт, Верекс, Гармония, V

Thoth Бұл шынайы уақыт, хабарлама жіберу операциялық жүйе (OS) -де жасалған Ватерлоо университеті жылы Ватерлоо, Онтарио Канада.

Тарих

Thoth дамыған Ватерлоо университеті жылы Ватерлоо, Онтарио, Канада. Ватерлоо қаласындағы оқу бағдарламасы а Нақты уақыттағы операциялық жүйелер курсы және онымен байланысты «Пойыз зертханасы», мұнда студенттер а нақты уақыттағы операциялық жүйе (RTOS) бірнеше пойыздары бар модельдік жолды басқару.[1][2][3]

1972 жылы B бағдарламалау тілі, туындысы BCPL, Ватерлооға әкелінген Стивен С. Джонсон бастап демалыста Bell Labs.[4] Б-дан алынған жаңа тіл, аталған Eh, Ватерлоо қаласында жасалды. Thoth бастапқыда Эх тілінде жазылған құрастыру тілі.[5][6]

Тоттың алғашқы дамуы а Honeywell 6050 компьютер.[7] Алдымен а Жалпы мәліметтер Nova 2 1976 жылы мамырда және келесі болды портталған а Texas Instruments TI990 / 10 1976 жылдың тамызында.[7][5]

1976 жылдың қазан айында Ватерлоо университеті Лоренс С.Меленнің «Портативті нақты уақыттағы басқарушы, Thoth» атты магистрлік тезисін жариялады.[8]

Эх кейінірек жаңартылды, ішінара деректер түрлері, және атауы өзгертілді Зед. Содан кейін Тот Зедте қайта жазылды.[9][10][11][12][13]

Thoth-ті алғашқы дамытушылардың бірі болды Дэвид Черитон. Cheriton Verex-ті дамыта бермек ядро, және V-жүйе ОЖ; екеуіне де Том әсер етті. Тағы бір ерте дамытушы кейінірек Waterloo Microsystems-ті тапқан Майкл Малколм болды, Network Appliances, Inc., Көк пальто жүйелері, және Kaliedescape, олардың бірнеше операциялық жүйелері Thoth-тен шыққан немесе оған әсер еткен деп саналады.

Кейбір құжаттар DEMOS-ты Thoth үшін шабыт ретінде сипаттайды.[14] Өнердің алдыңғы нұсқасы ретінде Cheriton келтірді Пер Бринч Хансен Келіңіздер RC 4000, содан кейін Thoth, DEMOS және Accent бірге кейінгі даму ретінде тізімделді.[15] Тоттың дамуына әсер ететін басқа да факторлар кіреді Мультик, Жалпы мәліметтер RTOS, Хонивелл GCLS және Unix.[5] Кейінірек сілтемелер Thoth-ті синхронды хабарлама жіберу мен мультипроцессорлы бағдарлама құрылымын қолданудың бастапқы жүзеге асырылуы деп атайды, оны кейіннен басқа жобалар қолданды.[16]:2

Thoth-тағы жұмыс 1982 ж. Аяқталды.[17]

Ерекшеліктер

Thoth төрт мақсатқа жету үшін жасалды:[7]

  1. Басқа жабдыққа оңай тасымалданады[3]
  2. Бағдарламалар арзан, ынтымақтастық жиынтығы ретінде жұмыс істейді қатарлас процестер тиімді процесаралық байланыс (IPC)[5]
  3. Сыртқы оқиғаларға жүйелік жауап ретінде нақты уақыт режимінде қолдануға жарамды
  4. Нақты уақыттағы қолданудың кең ауқымына бейімделетін және масштабталатын

Thoth дәл осылай ашады дерексіз машина дейін қолданбалы бағдарламалық жасақтама, астарына қарамай физикалық машина.[5][18] Бұл абстрактілі машина белгілі бір минималды талаптармен анықталды, өйткені осы талаптарға жауап беру берілген компьютерді Thoth домені Thoth портының ықтимал мақсаттары.

Thoth астында жүретін процестерді «Командаларға» топтастыруға болады. Топтағы барлық процестер жалпы мекен-жай кеңістігін бөліседі және деректерді бөлісе алады.[19][7] Бұл басқа жүйелердің «жеңіл процестер» немесе жіптер туралы түсініктеріне ұқсас.[20] Бір топтың мүшелері емес процестер Thoth's IPC көмегімен байланысады.

Thoth қаласындағы интерцессті байланыс бірінші кезекте синхронды хабарлама жіберу арқылы жүзеге асырылады.[7] Бұл тәсіл хабарламалар кезегін едәуір жеңілдеткен.[21]

Іс қағаздар түпнұсқасы жазылған кезде бұл термин болмағанымен, Thoth а деп аталды микро ядро.[22][20][23]

Томның IPC арқылы өтетін синхронды хабарламасы антропоморфтық бағдарламалау моделін қолдануға негізделген. Карл Хьюитт Келіңіздер актер моделі, және Smalltalk.[17]

Мұра

Thoth операциялық жүйесі бірнеше кейінгі жобаларға негіз немесе шабыт берді, олардың кейбіреулері төменде келтірілген.

Академиялық

  • MicroNet таратылды файлдық сервер Ватерлоо университетіндегі жүйе Thoth және Port сияқты WatSys операциялық жүйесінде жұмыс істеді.[24] WatSys 1981 жылы дебют жасады.[25]
  • The Канада Ұлттық зерттеу кеңесі даму үйі болды Гармониялық операциялық жүйе, нақты уақыт режиміндегі роботты басқаруға бағытталған Thoth туындысы.[26]
  • Cheriton позициясын алды Британдық Колумбия университеті, онда ол Верексті дамыта отырып, Верексті таратты, бұрын Томда зерттеген көптеген идеяларды қолдана отырып.[12][27]
  • Черитон кейінірек көшті Стэнфорд университеті ол дамыған АҚШ-та V-жүйе, бұл Thoth-пен бұрынғы жұмысты жалғастырды.[15][28][29][30]
  • Sylvan Multiprocessing жүйесінің архитектурасында Thoth-тің синхронды хабарламасын жабдықта примитивтерді (және Аданың кеңейтілген кездесуін) өткізетін синопрондық процессор бар.[16][31]
  • Thoth және оның хабарламалары IPC арқылы өтіп, антропоморфтық бағдарламалау моделін қолданған көп процессорлы бояу бағдарламасының негізін қалады.[32][33]
  • Тоттың семантикадан өткен хабарламасы параллельді өңдеудің эксперименттік нұсқасының бөлігі болды компьютерлік алгебра жүйесі (CAS) Үйеңкі.[34]
  • Үлестірілген процесті орындау және байланыс ортасы (PEACE) жоғары өнімді қосымшалар үшін жасалған. Мақалада Тот жобаның «негізгі негізі» ретінде келтірілген.[35]
  • Эйндховен көп процессорлық жүйесі (ЭМӨС) тиімділікке баса назар аударды. Тот EMPS ядросының дизайны үшін шабыт берді.[36]
  • Тромнан алынған және IPC техникасын қолданған Ватерлоо портында «Бөлме жүйесі» деп аталатын эксперименталды компьютерлік интерфейс ортасы құрылды. Бөлме қағазы бұрынғы Thoth құжаттарына сілтеме жасайды.[37]
  • Flash веб-сервері, тиімділік пен портативтілікке баса назар аударатын ғылыми жоба, Thoth-қа көп процесті құрылымдау әдісі және хабарлама жіберу арқылы байланысатын процестік топтардың тұжырымдамасына ұқсайды деп айтылды.[38]

Коммерциялық

  • Гордон Белл және Дэн Додж, әзірлеушілер QNX нақты уақыттағы операциялық жүйені жіберетін хабарлама, екеуі де Ватерлоо қаласында оқып жүргенде Thoth-пен жұмыс істеді.[39][40][41][42]
  • AT & T Жүйе 75 Office коммуникациялық жүйесі басқарылатын Орикс ядро және Пекос бірлескен деп аталатын маңызды жүйелік процестер жиынтығы Oryx / Pecos. Онда Thoth, DEMOS идеялары және AT&T ішкі жобасы қолданылды.[43]
  • Коммерциялық Ватерлоо порты желілік операциялық жүйе Thoth-тен алынған.[44] Байланысты Zed тілі Ватерлоо порты үшін PORT тіліне айналды.[45][46]
  • Хейз микрокомпьютерлік өнімдері Waterloo Microsystems сатып алды, және құру үшін Waterloo Port өнімін қайта жаңартты LANstep.[47][48]
  • The Auspex сақтау компаниясы өндірді Функционалды мультипроцессорлық ядро (FMK), онда Thoth-де алғаш рет әзірленген деп тұжырымдалған тұжырымдамалар қолданылды.[49] V-жүйесінен және Ватерлоо портынан айырмашылығы, FMK жадыны басқара алмады.
  • -Ның алғашқы нұсқалары Network Appliance, Inc. Сақтау құрылғысының операциялық жүйесі Thoth-ке өте ұқсас деп сипатталды.[50] NetApp операциялық жүйесінің авторы Дэвид Хитц, ол бұрын Auspex-те болған.
  • 1996 жылы CacheFlow веб-акселерациялық құрылғылар компаниясы оларды шығарды CacheOS, бұл Томға негізделген.[51] 2001 жылы CacheFlow атауы өзгертілді Көк пальто жүйелері және саясат қозғалтқышын қосумен CacheOS болды Қауіпсіз шлюздің жұмыс жүйесі (SGOS).

Пайдаланылған әдебиеттер

  1. ^ «CS 452 нақты уақыттағы бағдарламалау». Ватерлоо университеті, Cheriton информатика мектебі.
  2. ^ «CS 452/652 - нақты уақыттағы бағдарламалау». Ватерлоо университеті, есептеу техникасы.
  3. ^ а б Малколм, Майкл (24 наурыз 2009). «2009 ж. 24 наурыз: Deloitte спикерлер сериясы». Ватерлоо университеті, компьютерлік зерттеулер институты.
  4. ^ Ричи, Деннис М. (Сәуір 1993). Си тілінің дамуы (PDF). Есептеу техникасы қауымдастығы.
  5. ^ а б c г. e Черитон, Дэвид Р .; Малкольм, Майкл А .; Мелен, Лоуренс С .; Сагер, Гари Р. (наурыз 1978). «Thoth, портативті нақты уақыттағы операциялық жүйе (қайта қаралған)» (PDF). Ватерлоо университеті информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  6. ^ Брага, Reinaldo S. C. (қараша 1976). «Эх анықтамалық нұсқаулық» (PDF). Ватерлоо университеті информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  7. ^ а б c г. e Черитон, Дэвид Р .; Малкольм, Майкл А .; Мелен, Лоуренс С .; Сагер, Гари Р. (ақпан 1979). «Thoth, портативті, нақты уақыттағы операциялық жүйе» (PDF). ACM байланысы. 22 (2): 105–115. дои:10.1145/359060.359074. S2CID  14350500.
  8. ^ Мелен, Лоренс С. (қазан 1976). «Портативті нақты уақыт режиміндегі басқарушы, Thoth». Ватерлоо университетінің информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  9. ^ Lion, John (қазан 1993). «Нью-Джерсидегі хат - 1979 ж. Қаңтар». Австралиялық Unix Users Group ақпараттық бюллетені. Том. 14 жоқ. 5. AUUG Inc. 48-51 бет.
  10. ^ «Бағдарламалау тілдерінің дерекқоры: Z». эпокальк. 2012.
  11. ^ Бонковски, Г.Берт; Джентльмен, В.Морвен; Малколм, Майкл А. (мамыр 1979). «Zed компиляторын көшіру» (PDF). Ватерлоо университеті информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  12. ^ а б Локхарт, Томас Уэйн (қараша 1979). «Дәлелді операциялық жүйенің ядросының дизайны». Британдық Колумбия университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  13. ^ Киннерсли, Билл (1995 ж. 23 қаңтар). «Тілдер тізімі: 2.4 нұсқасы». ckw.phys.ncku.edu.tw.
  14. ^ Хатчинсон, Норман А. (1987). «Изумруд: Таратылған бағдарламалауға арналған объектілік тіл» (PDF). Вашингтон университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  15. ^ а б Черитон, Дэвид Р. (наурыз 1988). «V таратылған жүйе» (PDF). ACM байланысы. 31 (3): 314–333. дои:10.1145/42392.42400. S2CID  7523994.
  16. ^ а б Бурковский, Форбс Дж.; Кларк, Чарльз Л. А .; Коуэн, С.Криспин; Vreugdenhil, G. J. (ақпан 1995). «Сильван мультипроцессорлық сәулетінің өнімділігін бағалау». Ватерлоо университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  17. ^ а б Бут, Келлог С .; Шеффер, Джонатан; Джентльмен, В.Морвен (ақпан 1984). «Антропоморфтық бағдарламалау» (PDF). Ватерлоо университеті информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  18. ^ Чубб, Люси (1987). «16 биттік микрокомпьютерлерге арналған мультипроцесс амалдық жүйесі». Жаңа Оңтүстік сату университеті, Электротехника және компьютерлік ғылымдар мектебі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  19. ^ Комер, Дуглас Е .; Мунсон, Стивен Б (1988). «Ортақ жадты қолдану арқылы тиімді процессаралық байланыс». Purdue университетінің компьютерлік ғылымдар бөлімі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  20. ^ а б О'Салливан, Брайан (13 тамыз 1996). «Комп. Іздеу үшін жиі қойылатын сұрақтарға жауаптар: 3 бөлімнің 1 бөлімі - 2.2.3. Ағындардың тарихы». Олбани университеті Информатика кафедрасы.
  21. ^ Флейш, Бретт Д .; Co, Mark Allan A. (сәуір 1997). «Жұмыс орнындағы микро ядролар және ОЖ: нақты жағдай». Калифорния университетінің компьютерлік ғылымдар бөлімі. CiteSeerX  10.1.1.46.7315. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  22. ^ Аппаву, Джонатан. «Көп процессорлы операциялық жүйелерді бағдарламалық қамтамасыздандыруды зерттеуді оңтайландыру» (PDF). Бостон университетінің компьютерлік ғылымдар бөлімі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  23. ^ Депоутович, Александр (2011). «Otherworld - қолданбаларға ОС ядролық апаттан аман қалуға мүмкіндік беру» (PDF). Торонто университеті Информатика факультетінің магистратура бөлімі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  24. ^ Коуан, Д.Д .; Босвелл, Ф. Д .; Grove, T. R. (желтоқсан 1984). «Дербес компьютерлік желіге арналған таратылған файл-сервер» (PDF). Ватерлоо университеті компьютерлік жүйелер кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  25. ^ Фондс, Уэс Грэм (1983 ж. 5 тамыз). «Хронология: 1980 жылдар: Кеңейтудің онжылдығы - 1981». Ватерлоо университеті - Черитон информатика мектебі.
  26. ^ Таннер, П. П .; Buxton, W. (1985). Болашақ пайдаланушы интерфейсін басқару жүйесін (UIMS) дамытудың кейбір мәселелері. Пайдаланушы интерфейсін басқару жүйелері. Берлин. 67-79 бет.
  27. ^ Бойль, Патрик Дэвид (1982 ж. Маусым). «Мультипроцессорлық жүйеге арналған таратылған ядро ​​дизайны». Британдық Колумбия университеті компьютерлік ғылымдар бөлімі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  28. ^ Теваниан кіші, Авадис; Рашид, Ричард Ф .; Голуб, Дэвид Б .; Блэк, Дэвид Л .; Купер, Эрик; Жас, Майкл В. (тамыз 1987). «Mach Threads және Unix ядросы: бақылау үшін шайқас». Карнеги-Меллон университетінің компьютерлік ғылымдар бөлімі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  29. ^ Чакраборти, Пинаки (2010). «Ғылыми мақсаттағы операциялық жүйелер - кең шолу» (PDF). GESJ: Информатика және телекоммуникация (3): 147–160. ISSN  1512-1232.
  30. ^ Бин Шафаат, Ахмед; Xu, Shuxiang (26 желтоқсан 2017). «Бөлінген операциялық жүйелер тұрғысынан жасалған технологияларды салыстырмалы зерттеу» (PDF). AMSE журналдары: AMSE IIETA Басылым: 2017-серия: Advances B. 60 (3): 613–629.
  31. ^ Бурковский, Ф. Дж .; Кормак, Г.В .; Димент, Дж. Д .; Пакл, Дж. К. (28 ақпан 1987). «Жоғары сәйкестікке арналған хабарламаға негізделген сәулет». Хитте Майкл Т. (ред.) Hypercube мультипроцессорлары 1986 ж. Өнеркәсіптік және қолданбалы математика қоғамы, АҚШ 27-37 бет. ISBN  978-0898712094.
  32. ^ Жағажай, Ричард Дж.; Битти, Джон С .; Бут, Келлог С .; Плебон, Дарлен А .; Фиум, Евгений Л. (шілде 1982). «Хабарлама орта: интерактивті бояу бағдарламасының мультипроцессті құрылымы». Компьютерлік графика. Том. 16 жоқ. 3. Есептеу техникасы қауымдастығы. 277–287 беттер. дои:10.1145/965145.801292.
  33. ^ Плебон, Дарлен А .; Бут, Келлогг С. (1982). «Интерактивті сурет жасау жүйесі» (PDF). Ватерлоо университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  34. ^ Уотт, Стивен Майкл (1985). «Компьютерлік алгебрадағы шектеулі параллелизм» (PDF). Ватерлоо университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  35. ^ Шредер, В. «Жоғары өнімді қолданбалы жүйелер үшін үлестірілген процестің орындалуы және байланыс ортасы» (PDF). Technische Universität Berlin. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  36. ^ ван Дайк, Дж. Дж. В. (1 қаңтар 1993). «Үлестірілген есептеу үшін EMPS мультипроцессорлық құрылымының дизайны» (PDF). Техник Университеті Эйндховен. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  37. ^ Чан, Патрик П. (шілде 1984). «Пайдаланушы интерфейсін жобалау кезінде оқуды ескеру: бөлме моделі» (PDF). Ватерлоо университеті информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  38. ^ Пай, Вивек С .; Друшель, Петр; Звенепоэль, Вилли. «Flash: тиімді және портативті веб-сервер» (PDF). Райс университетінің компьютерлік ғылымдар бөлімі. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  39. ^ «Енгізілген қосымшалар - нақты әлемге арналған технологиялар». InfraNET жобасы. 29 мамыр 1998 ж.
  40. ^ Моррис, Джеймс Б. (ақпан - сәуір 1983). «QNX-тің қуатты құралдары». PC журналы. 269–297 беттер.
  41. ^ Адвани, Пракаш (14 маусым 2001). «Пол Лерумен сұхбат». FreeOS.com.
  42. ^ Оберле, Бонни (30 қазан 1998). «Жақсылықты қайтару». Басып шығару. Импрессивті басылымдар, Ватерлоо. б. 7.
  43. ^ Сагер, Гари Р.; Мельбер, Джон А .; Фонг, Кеннет Т. (қаңтар 1985). «Жүйе 75: Oryx / Pecos операциялық жүйесі». AT&T Техникалық журналы. Том. 64 жоқ. 1. 251–268 беттер. дои:10.1002 / j.1538-7305.1985.tb00431.x.
  44. ^ Coppens, JA.W.M (тамыз 1988). «Жергілікті желілердегі, әсіресе Ватерлоо портындағы ақпараттық қауіпсіздік» (PDF). Техник Университеті Эйндховен. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  45. ^ «Порт - (компьютер тілі)». Бағдарламалау тілдерінің онлайн-тарихи энциклопедиясы.
  46. ^ «Порт». Ақпараттық технологиялардың компьютерлік сөздігі.
  47. ^ Ригни, Стив (1992 ж. Сәуір). «LAN негіздері 2 бөлім - LANstep». PC журналы. б. 316.
  48. ^ Нанн, Том (24 тамыз 1994). «Хейз Китченер-Ватерлоо ғылыми-зерттеу базасын түсіруге тырысады». Газет. Монреаль, QC Канада.
  49. ^ Хитц, Дэвид; Харрис, Гай; Лау, Джеймс К .; Шварц, Аллан М. (қаңтар 1990). «Мультипроцессорлық файл серверлері үшін Unix-ті жеңіл таратылған ядроның бір компоненті ретінде пайдалану» (PDF). Auspex. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  50. ^ Копп, Карло (маусым 1997). «Батыл кішкентай тостерлер?». Доктор Карло Коппстің өнеркәсіптік басылымдары.
  51. ^ Джериан, Чарльз П. «Чактың басты беті - мен CacheFlow Inc-те жұмыс істедім». jerian.tripod.com.

Әрі қарай оқу

  • Малкольм, Майкл А .; Стаффорд, Гари Дж. (Қыркүйек 1977). «Thoth Assembler жазба жинағы» (PDF). Ватерлоо университеті информатика кафедрасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)* Черитон, Д.Р .; Мерфи, В. (қыркүйек 1979). «Verex жүйесінің бағдарламашысының нұсқаулығы». Британдық Колумбия университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  • Черитон, Дэвид Р. (1979). «Операциялық жүйені растауға болатын етіп жобалау». Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  • Cheriton, D. R. (қыркүйек 1980). «Верекс ядросы». Британдық Колумбия университеті. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  • Cheriton, D. R. (қараша 1981). «Таратылған ядро ​​дизайны». ACM Ұлттық конференциясының материалдары.
  • Уоллис, Питер Дж. Л. (1982). Портативті бағдарламалау. Макмиллан. ISBN  0333310365.
  • Черитон, Дэвид Р. (1982). Thoth жүйесі: көп үрдісті құрылымдау және портативтілік. Солтүстік-Голландия. ISBN  0-444-00701-6.
  • Малкольм, Майкл Александр; Димент, Даг (1983 ж. Желтоқсан). «Ватерлоо портын қолданушы интерфейсін жобалау тәжірибесі». SIGSMALL '83: 1983 жылғы ACM SIGSMALL жеке және шағын компьютерлер симпозиумының материалдары.: 168–175. дои:10.1145/800219.806664. ISBN  0897911237. S2CID  14736242.