LINUX.ORG.RU
ФорумTalks

UNIX-way как следствие превалирования C

 , ,


6

6

Принцип «программа должна выполнять одну функцию и выполнять её хорошо», думаю, объяснять не требуется. Однако проскочила мысль, почему так получилось? Почему вместе с C в составе UNIX введено несколько мощных языков, как язык сценариев или AWK?

Специалистов писать на Си не так уж много, а сам язык довольно прост. Но для решения задач быстро наклепать на Си код, как на питоноперле, не получится, да и не было в 70-е ни питоноперлов, ни вычислительных мощностей. Вот и было придумано отдавать выводы программ на откуп sh, чтобы не заниматься отловом нулевых символов - так что требовательные к ресурсам места скрипта были программами на Си, а чёрную работу по осмыслению вывода выполняла оболочка.

Не в этом ли причина существования UNIX-way?

Перемещено leave из general

Ответ на: комментарий от ls-h

Чем рулить то будете на скоростях хотя бы более 60, джостиком как пилот что ли? Так баранка то по проще будет, по дешевше, легче обучаться. А другие басни про то как всё скоро будет само ездить уже рассказывают так давно, что даже за мою не шибко длинную жизнь я слышу это каждые 10 лет. А воз и ныне там. Любой технический специалист(что программист, что инженер двигателей, то инженеры подвески, не говоря уже о тех кто профессионально занимается распознание образов) знает, что пока не ясно когда мы хотя бы примерно сможем сэмулировать хотя бы тупого водителя. И я вам тайну открою, это знали прекрасно и 100 лет назад, поэтому придумали механизмы более надёжные, не нуждающиеся в рулении, где сама дорога решает(привет рельсы, привет направляющие и тд). Ничего не изменилось с того времени, кроме вливания мегабабла в гугл инвесторами и рекламой светлого будущего в стиле рекламы коммунизма - вот вот наступит.

ixrws ★★★
()
Ответ на: комментарий от alwayslate

не очень понимаю к чему вы все это

К тому что вот это

unix-way появился тк в отличии от DOS где надо было писать софтину которая делала все, можно было это разделить тк появился mmu и можно было в многозадачность

чушь. unix way появился не потому и никакого отношения к «отличию от DOS», mmu и многозадачности не имеет.

Кстати, на pdp-7 никакого mmu не было. По своим характеристикам этот комп ничем не отличается от тех, на которых работал DOS.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Кстати, на pdp-7 никакого mmu не было.

А как там было с многозадачностью и изоляцией процессов?

ls-h ★★★★★
()
Ответ на: комментарий от ls-h

как там было с многозадачностью и изоляцией процессов

Никакой изоляции не было. Вообще дроч на безопасность начался значительно позже. А для многозадачности это не нужно.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Никакой изоляции не было.

И как выглядело адресное пространство процесса? Все процессы в одном пространстве?

ls-h ★★★★★
()
Ответ на: комментарий от ls-h

Гы. Процессы. Ну вы батенька и размахнулись =)

Это ж PDP-7 — самое начало развития Unix. Процессов было ровно 2. При переключении полный свопинг.

Не было ни fork, ни exec. Шелл загружал программу вместо себя, оставляя в памяти небольшой кусок кода, и ждал, пока ему вернут управление. Отсюда кстати и пошло это дебильное разделение на fork и exec - правильно, зачем полноценное создание процесса, если шелл уже и так умеет загружать программу? Добавим только fork(), который будет копировать процесс в своп, и все. Денис Ритчи в своих мемуарах гордился, что добавление fork() заняло всего 27 строчек на ассемблере. Во всех нормально продуманных ОС для создания процесса есть специальный системный вызов, а не конструктор из fork+exec.

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

Ну вы батенька и размахнулись =)

Мало знаком с первым Unix и PDP-7. Я почему-то думал что там сразу была некоторая многозадачность и несколько пользователей, которые использовали разные TTY.
Где бы почитать про работу того и другого?

ls-h ★★★★★
()
Ответ на: комментарий от EXL

Сколько тут на ЛОРе было юзеров которые из-за извечного тиринга ушли на другие системы.

Сколько? Больше одного или таки меньше?

LittleKawaiiNeko ★★
()
Ответ на: комментарий от ls-h

Например вот:
https://www.bell-labs.com/usr/dmr/www/hist.html
https://minnie.tuhs.org/Y5/wkt_hapop_paper.pdf

Там местами любопытные вещи есть, например, не было абсолютных и относительных путей и dd (dot-dot) вместо '..'.

Про PDP много информации, можно запустить UNIX V6 или всякие RSX'ы в эмуляторе.

Добро пожаловать в клуб некрофилов =)

bigbit ★★★★★
()
Ответ на: комментарий от ls-h

Многозадачность была - 2 процесса ведь, по одному на каждый терминал. Не было мультипрограммности - в памяти могла находиться только 1 программа.

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

по одному на каждый терминал

А больше терминалов там быть не могло, к PDP-7 подключалось только два? Ссылки на мемуары посмотрел (пока не всё распарсил :-) ). Я так понял, там был один телетайп с бумагой и один терминал с экраном. Верно?

ls-h ★★★★★
()
Ответ на: комментарий от olelookoe

Renderer

Вроде у Chrome рисование на экран как раз и есть в отдельном процессе.

ls-h ★★★★★
()
Ответ на: комментарий от ls-h

Я почему-то думал что там сразу была некоторая многозадачность и несколько пользователей, которые использовали разные TTY.

Много и несколько это на тот момент - Multics, ITS. Они появились раньше и использовали аппратные возможности майнфреймов для разделения процесооов и написаны были на асме. И стали историей вместе с тем железом. Unix же абстракция для запуска "переносимого ассемблера" - одной программы. А что там будет Init форкающий терминалы, inetd или монолитный процесс лисп-машины без процессов - с точки зрения архитектуры юникса не важно и не должно усложнять ядро. Поэтому

некоторая многозадачность и несколько пользователей

это уровень пользователя с некоторой опциональной поддржкой API ядра. Технически железо для ранних версий юникса было дохлым и делать из него сервер смысла была мало. Печатная машинка програмиста так сказать и игровая приставка)).

antares0 ★★★★
()
Последнее исправление: antares0 (всего исправлений: 1)
Ответ на: комментарий от ls-h

Вроде до 64 телетайпов можно подключить. Может больше 2 им не нужно было, а может не было необходимых девайсов. Пишут, что машинка даже по тем временам была устаревшей, пылилась в углу.

bigbit ★★★★★
()
Ответ на: комментарий от antares0

Multics

Хм... а он был крут! Все файлы отображались в память, никакого read/write. Не знал про такую фишку.

ls-h ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.