- Древние Unix'ы для PDP11-совместимых машин (БК, ДВК)
-
? марсианин - 11.08.2015 21:25
Тема создана касательно старых Unix'ов в контексте PDP машин, прежде всего БК0010, БК0011. Для рассмотрения и обсуждения. ВНИМАНИЕ!!! Частная территория и сфера влияния марсианина!!! Здесь все серьезно!
-
? марсианин - 11.08.2015 21:26
Сегодня дизассемблировал второй по древности шелл (он же второй шелл Кена Томпсона и Ритчи) в мире Unix - msh (mini-shell). Сильно упрощенный вариант первого шелла. Как и впервом используется глоббинг. Имеет историческую ценность. Просто прелесть.
¤
Owner ken thompson, dennis ritchie
MSH (mini-shell):
¤
mov $parbuf,r1
mov $parp,r2
clr r3
jsr pc,blank
cmp r0,$'\n /
bne 1f
sys exit
1:
mov r1,(r2)+
2:
movb r0,(r1)+
jsr pc,getchar
cmp r0,$' / space
beq 3f
cmp r0,$'\n /
beq 1f
br 2b
3:
clrb (r1)+
jsr pc,blank
cmp r0,$'\n /
beq 1f
br 1b
1:
clr (r2)+
tst r3
bne 1f
sys exec; parbuf; parp /
sys exec; binpb; parp /
br 2f
1:
mov $glob,parp
sys exec; glob; parp /
2:
mov $1,r0
sys write; quest; 2.
sys exit
quest:
<? >
blank:
jsr pc,getchar
cmp r0,$' / space
beq blank
rts pc
getchar:
clr r0
sys read; chr; 1 / read char
bcs xit1
tst r0
beq xit1
movb chr,r0
cmp r0,$'? /
beq 1f
cmp r0,$'* /
beq 1f
cmp r0,$'[ /
bne 2f
1:
inc r3
2:
rts pc
xit1:
sys exit
¤
chr: .=.+1
glob:
</etc/glob\0>
binpb:
</bin/>
parbuf: .=.+1000.
parp: .=.+200. / real size unknown
-
? марсианин - 11.08.2015 21:29
Реконструкция
-
? bk-m - 11.08.2015 22:31
А почему в листинге нет ни слова о геях ?!
-
? Лунная Радуга - 11.08.2015 22:36
Потому что в листинге ни слова о bk-m .
-
? марсианин - 12.08.2015 16:54
Кстати, очень странно почему шелл Томпсона забыт? Якобы говорят, что нельзя на нем было писать скрипты, но я вот проверил, и оказывется - можно! Причем Томпсон гений! Он использовал внешние условные упраляющие команды, скажем так, это почти компонентный подход, что очень правильно! В сравнении с современными оболочками где все туда понапихано, и чего там только нет.
Вот пример написания скрипта:
¤
echo "if s = s goto 1" >/tmp/script
echo "1: ls -a" >>/tmp/script
sh </tmp/script
¤
if и goto - внешние команды для понятливых
¤
Прелесть! Еще один миф опровергнут.
Это демонстрация возможностей для тех, кто будет портировать v1(v6) на новодел, типа БК13,но это другая история... уже про килобаксы... :)
-
? Аноним - 12.08.2015 17:26
Мечты, мечты... Кризис ударяет, сайты о древних компах пустеют по возрасту, а кому-то нужно этот юникс портировать. Жирные годы уходят, детство кончилось, пора учить что-то полезное для жизни, дорогие марсияне ("Четвертая планета"-был такой хороший _российский_ фильмец, кстати, по теме).
-
? марсианин - 15.08.2015 17:05
Полностью изучил шелл Томпсона. Два дня ушло на перерисывание на ЯВУ. И хотя надо отдать должное гению Томпсона за его гениальный Unix, но вот его шелл похож на спагетиобразную программу. При написании парсера он явно не использовал теорию компиляции и всякие БНФ, диаграммы Вирта(71 год!) и т.д. Радует в кавычках и подобное: sh ls >/tmp/sc -l. Или запуск командного файла только с /bin. Ну и далее... Вот такой "наезд" на авторитет, немного. Хотя все равно он гений, создал такую гениальную ОС и ее архитектуру(фактически компонетную).
А вот может ли похвастаться RT-11 сменой командного интерпетатора команд без перекомпиляции всей ОС, я спрашиваю тут у специалистов?
-
? anonymous - 15.08.2015 17:52
「А вот может ли похвастаться RT-11 сменой командного интерпетатора команд без перекомпиляции всей ОС, я спрашиваю тут у специалистов?」
Да, с версии 5.6.
-
? марсианин - 15.08.2015 17:57
Спасибо, просветили. Надо когда-нибудь ее глянуть, но позже.
-
? bk-m - 16.08.2015 05:27
Рассказываю для маленьких детей.
UNIX пишется исключительно для тех процессоров, где нет софта. То есть , например, кто-то особо одаренный сделал новенький примитивный чип, а софта к нему - нетушки ! Вот тогда и пишется компиллятор этого гавнища - и появляется целый мешок софта ( по сути - гавнища ).
Погуглите минимальный список команд процессора для UNIX - компиллятора - там всего десяток используется, или типа того.
Если прикинуть - 32-битное ядро можно сделать на любой современной ПЛИС , со 30....100 миллионным быстродействием !
( См. "RISС" микропроцессоры ).
¤
Марсианин, скажи мне - там, на Вашей планете, есть ли геи ?
-
? Александр...@ - 16.08.2015 10:19
@марсианин. Чтобы понять ментальность Томпсона и почему первые версии Юниха были сделаны так, как они были сделаны, почитайте его интервью в книге "Coders at work". По большому счету он и Ритчи писали то, что им надо было для побочного проекта и никогда не заботились о стройности архитектуры и качестве кода. Популяность Юниха на 50% обяазана Ритчи и его Си, и тому, что Bell Labs не особо заботился о защите авторских прав и продаже системы в первые годы. На качество кода разработчики начхали. Это уже потом в Беркли систему причесали и приодели. :)
-
? марсианин - 16.08.2015 10:52
>>UNIX пишется исключительно для тех процессоров, где нет софта.
А разве это плохо? Категорически я бы так не утверждал, что только так. Можно просто делать "Just For Fun". Вспомним известного Торвальдса,хе-хе.
¤
>>Погуглите минимальный список команд процессора для UNIX - компиллятора - там всего десяток используется, или типа того.
Это, наверное, процессоры на базе MISC? Меня вот это все очень интересует, особенно теория компиляции и язык Forth, который тесно связан с MISC. Например, интересует раскрутка компилятора Си для голого железа через Forth. А задача это не простая, судя по книге Свердлова "Языки программирования и методы трансляции". Просто пока в голове витает на уровне концепции, а что, если сделать интерпретатор(с компиляцией, форт же!) языка Си на Форте, то ведь семантический разрыв, если можно так сказать будет меньше, чем у написанных всякие фронтендов и бэкендов. Короче, для восприятия человека это должно же быть проще! То есть написав единожды интерпретатор Си на языке Форт, можно заменяя нижнии примитивы Форт, переносить язык практически куда угодно, с минимальными усилиями! А где Си, то там уже все есть, если можно так выразиться. Ну, вот такая идея есть(может ошибочная). Но вот есть.
¤
>>Марсианин, скажи мне - там, на Вашей планете, есть ли геи ?
Нет, ищите их на голубой(или голубоватой) планетке в вашей Солнечной Системе, там они точно есть, я гарантирую. :)
-
? марсианин - 16.08.2015 11:26
>>Александр...
Thx за книжку. Всегда интересует, что движет великими людьми и как они мыслят, это все не маловажно.
>>По большому счету он и Ритчи писали то, что им надо было для побочного проекта и никогда не заботились о стройности архитектуры и качестве кода.
Ну не скажите, не скажите, могу со всей увереностью заявить, что код первой Unix, в отличие от его шелла, на ЯВУ ложится просто идеально. Если говорить о стройности архитектуры,то то, что реализутся в VMS(например, установление прав пользователю) является сложным встроенным в ОС механизмом, в Unix же реализуется внешней программой через set id on execution(SUID). Понимаете, где можно будет больше допустить ошибок,и где можно лучше верифицировать все до блеска? И самое главное, кто будет виноват? Создатели ОС, или тот кто писал к ней системный софт.
-
? марсианин - 16.08.2015 11:55
Цитата Луговского(был такой известный типок) и еще кого-то про VMS:
>ACL в-общем -- это хорошо, когда надо СЛИШКОМ сложно распределить права на файл. Но мне такого пока делать не приходилось. Мне хватало и хватает -rwxrwxrwx.
>>(Луговской)Значит, задачи все были слишком тривиальные.
К примеру, юниксовая система я-мы-они не допускает динамичного изменения
прав доступа без вмешательства админа - ведь только админ может
создавать новые группы и добавлять туда пользователей. В ACL же всё
доступно самим пользователям, и, соответственно, круг обязанностей
админа снижается. Какой же админ этому не порадуется?
¤
Так вот, я думаю, он не прав.
-
? марсианин - 16.08.2015 12:29
>>в Unix же реализуется внешней программой через set id on execution(SUID)
Более точнее, я хотел сказать, что в Unix МОЖНО реализовать в виде внешней программы через set id on execution(SUID).
-
? марсианин - 16.08.2015 13:33
>>Погуглите минимальный список команд процессора для UNIX - компиллятора - там всего десяток используется, или типа того.
Я чего-то ничего не нашел. Дайте ссылку. Вы или действительно про набор команд, или про процессор с мин. набором на котором может пойти Unix?
-
? марсианин - 16.08.2015 13:44
>>почитайте его интервью в книге "Coders at work"
Ха, судя по книжке этот человек явно по классификации соционики(MBTI) ИЛЭ-ИЛИ.
-
? марсианин - 21.08.2015 11:01
Вопрос к знатокам Unix(bkunix) или кто портировал v6, можно ли вести отладку ядра на языке Си, есть ли потверждение такой практики? Да или нет?
-
? марсианин - 05.09.2015 09:59
Кто может рассказать для чего появились в Unix'е тайм-аутные таблицы, есть такие специалисты?
-
? марсианин - 04.10.2015 16:43
Вопрос знатокам PDP-11 и всего подобного. Что есть такое инструкция dvd?
Наткнулся в исходнике ls.s(та самая команда Unix'а). Может макрос, но в ассемблере (грубо говоря) AT&T их, вроде бы, не должно быть.
¤
decimal:
mov r1,-(sp)
mov r2,-(sp)
mov r3,-(sp)
mov $6,r2
mov $numbuf+6,r3
1:
mov r0,r1
clr r0
dvd $10.,r0 /Вот здесь что?
add $'0,r1
movb r1,-(r3)
sob r2,1b
-
? Аноним - 04.10.2015 16:56
Берем диск DVD и смотрим !
-
? Shura-gay from Minsk - 04.10.2015 17:24
Это может быть сокращением самодельного ассемблера от DIVD - код "371".
Работает только на СМ1420.
-
? anonymous - 04.10.2015 17:30
div и mul писались в унихе как dvd и mpy, а ash и ashc - как als и alsc, чтоб иметь возможность использовать плату EAE на старых моделях, сидевшую по адресу 0177300.
-
? марсианин - 04.10.2015 17:31
Не, я в исходниках ассемблера посмотрел код операции dvd - 71000(octal).
Написано, что актуально для 11/45. Похоже, это разгадка.
-
? марсианин - 04.10.2015 17:35
>>? anonymous
Спасибо. Да, действительно так. Не внимательно посмотрел.
-
? марсианин - 04.10.2015 17:38
anonymous вы, однако, суперпрофи. :)
-
? anonymous - 04.10.2015 17:44
Вовсе нет, просто мне как-то довелось на старой работе конфликт разбирать софта, использовавшего EAE, при его наличии, с нашим местным контроллером, занявшим те же адреса и упорно опознаваемым, как вставленный EAE...
-
? марсианин - 04.10.2015 17:56
Вы профессионал в области PDP-11, я так считаю. Это мое мнение.
-
? Иван83 Радиолюбитель - 08.10.2015 05:38
Да, я большой специалистъ в области софта ! И радиоламп !
-
? MM - 08.10.2015 18:56
Лучше по-подробнее о Демосе расскажите здесь - какой у него формат каталога, какой размер ядра, есть ли исполняющие модули для совместимости с др. ОС на ДВК и т.п. Нет ли возможности его приделать на БК11М, хотя бы с блоком ВМ3А ?
-
? марсианин - 08.10.2015 22:08
Чтобы он ответил, то ему надо достаточно поизучать Unix'ы. Формат каталога - в общем случае для всех Unix'овых един - это список состоящий из пар имя файла/каталога: номер-указатель на метаданные файла/каталога (метаданные(i-node) это информация,типа указатели на содержащие блоки, флаги, время создания...имени нет!). В Демосе, кроме имени и номера метаданных еше ввели класс/тип файла. Далее, если под совместимостью с др. ОС на ДВК подразумевается возможность работать также с чужой файловой системой(то есть с несколькими ФС), то в Демосе как наследнике v6, наверняка такого нет, появилось позже, вроде бы в коммерческой System III. В общем это легко проверить глянув на исходники Демоса(include/sys/file.h и dir.h). Что касается последнего вопроса, то это уже не в моей компетенции такое говорить. Но тут где-то был Patron, кажись, даже сделал порт v6 на ДВК, если он не сможет ответить на данный вопрос без уверток,то не знаю... тогда Сергей Вакуленко и Леонид Брухис вам в помощь...
-
? Аноним - 27.12.2015 11:36
Похоже, марсианин и его сотоварищ пришли к успеху. В одном ЖЖ нашел это: http://ramlamyammambam.livejournal.com/372573.html Странно только, что в исходниках, человек выполнивший порт, значится в единственном числе, он марсианин? А в проекте их двое. Есть еще здесь марсианин?
-
? марсианин - 27.12.2015 18:30
Мне на этом форуме стало неинтересно - я теперь на гей-форумах пишу про Unix'ы. Там публика более воспитанная и культурная, все правильно воспринимает, охотно дает свои контакты. И главное - там совсем нет Анонимов !
-
? Аноним - 28.12.2015 19:26
э-ге-гей хлопец! :) Зацени, какой клип тебе нашел: https://www.youtube.com/watch?v=nrXeQ0A-VlQ
-
? Аноним - 28.12.2015 23:24
Какого хрене тебе здесь надо?
Какого хрена ты ходишь рядом?
Что ты смотришь мне ниже спины?
Я не голубой, не такой как ты!
-
? Аноним - 30.12.2015 15:23
Фи! Это был не настоящий Нескафе! (...плюет в мерзкую морду фэйк-анонима "марсианин"...)
-
? Полицейская Академия - 30.12.2015 21:13
Завсегдатаи Голубой Устрицы, на первый-второй рассчитайсь:
¤
http://fishki.net/45218-policejskaja-akademija-kak-bylo-i-kak-stalo-36-foto.html
-
? рассчитались? - 30.12.2015 22:13
А теперь включите музыку какадемикам!
https://www.youtube.com/watch?v=xsPXkx07N8g
-
? рассчитались, полицейские? - 30.12.2015 22:32
А теперь включите музыку какадемикам!
https://www.youtube.com/watch?v=xsPXkx07N8g
- << Форум