Оболонка Томпсона

Оболо́нка То́мпсона (англ. Thompson shell) — перша оболонка Unix у першій версії Unix 1971 року, написана Кеном Томпсоном. Була простим командним інтерпретатором, не призначеним для скриптів. В оболонці з'явився ряд інноваційних функцій для інтерфейсу командного рядка і вона спонукала до розвитку майбутніх оболонок Unix.

Історія

Назва «оболонка» для командного рядка інтерпретатора і концепція перетворення корпусу користувачів програми поза ядра операційної системи були введені в Unix прекурсорі MULTICS.

Одною з перших особливостей оболонки Томпсона був компактний синтаксис для входу/виводу перенаправлення. У MULTICS, перенаправлення введення або виведення команди потрібна окрема команда для запуску та зупинки перенаправлення, і в Unix, можна просто додати аргумент в командному рядку, що складається з символу < і наступного імені файлу для введення або > для позначення виводу, оболонка буде перенаправляти введення/вивід протягом терміну дії команди. Цей синтаксис був вже присутній в першій версії Unix у 1971 році.

Крім цього, в оболонці була розширена концепція конвеєрів. За пропозицією Дугласа МакІлроу синтаксис конвеєрів був розширений тим, що вивід однієї команди може бути прийнятий на вхід іншої команди. Спочатку синтаксис конвеєрів полягав у наступному:

команда1> команда2>

Цей синтаксис виявився занадто двозначним і його було легко сплутати з перенаправленням файлів. За версією 4, синтаксис змінили на використання як | і ^ символів для позначення конвеєрів:

команда1 | команда2

Це справляло точно такий же результат, як:

команда1 ^ команда2

Цей синтаксис для перенаправлень з < та >, а також конвеєрів з |, виявився життєздатним і був прийнятий в більшості інших оболонок Unix і командних оболонок ряду інших операційних систем, в першу чергу на DOS, OS/2 і Microsoft Windows.

Занепад оболонки

Дизайн оболонки був навмисне мінімалістський, навіть if і goto, необхідні для контролю програмного потоку, були виконані у вигляді окремих команд (програм), а не вбудовані в оболонку. У результаті в 1975 році з 6-ї версії Unix стало зрозуміло, що оболонка Томпсона недостатня для найсерйозніших завдань програмування.

Зрештою, в Unix версії 7 оболонка Томпсона був замінена як головна оболонка на оболонку Борна (англ. Bourne Shell) i оболонку C (англ. C Shell) в 2BSD, випущену в 1979 році. Оскільки практично усі сучасні Unix і Unix-подібні системи є нащадками 7-ї версії Unix і 2BSD, то оболонка Томпсона, як правило, не використовуються. Однак оболонка Томпсона була портована на сучасні Unix як історичний експонат.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.