?

Log in

о текущей директории (англ., компьютерное) - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

о текущей директории (англ., компьютерное) [окт. 14, 2010|11:48 pm]
Anatoly Vorobey
Реймонд Чен: Why does each drive have its own current directory?

Во всех версиях DOS и Windows командная строка "помнит" отдельно текущую директорию для каждого диска. Если на C: сделать cd foo, потом пойти на D: и там сделать cd bar, а потом вернуться "c:", то окажешься в запомненной директории foo. Так было всегда, но я никогда не понимал, зачем это нужно. У такого поведения были свои преимущества, но были и недостатки.

Из этой записи Чена я наконец узнал, зачем это так сделано: для совместимости DOS 2.0 с программами DOS 1.0. И по этой причине текущая директория так работает во всех версиях DOS и Windows, включая самые последние. Потому что когда-то нужно было, чтобы программы для DOS 1.0, не знавшие что такое "директория", могли писать в разные директории на дискетах, когда их запускали в DOS 2.0. Бедный, бедный мой мозг.

Было бы полезно сделать подборку записей Реймонда Чена (а у него немало записей в таком духе) обязательной для изучения будущими программистами в университетах.
СсылкаОтветить

Comments:
[User Picture]From: dmarck
2010-10-14 09:58 pm
мало какие вещи в мире содержат больше ужасного, чем попытки сохранить обратную совместимость ;-P

Edited at 2010-10-14 21:59 (UTC)
(Ответить) (Thread)
From: dmpogo
2010-10-15 06:01 am
Попытки переписать все заново с чистого листа часто с ними соревнуются :)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: gaal
2010-10-14 10:05 pm
What I want to know is why "drives" exist at all. They're not significantly easier to understand than a single-root fs (I think), and are much more of a pain to administer. AFAIK this evil started with CP/M, not Microsoft, but perhaps it's even more ancient.
(Ответить) (Thread)
[User Picture]From: fyysik
2010-10-14 10:22 pm
for sure, lot of CP/M specifics is borrowed from DEC's RT-11. So it adds symbolic meaning to fact of creation of Windows NT by DEC-refugee:)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: mfi
2010-10-14 10:19 pm
Вот за такое трепетное отношение к совместимости, DOS и Форточки вынесли своих конкурентов. Я читал у Сполянски еще пару крышесносных примеров - про игру-полетный симулятор и про Lotus 1-2-3.
(Ответить) (Thread)
From: (Anonymous)
2010-10-16 07:12 am
Спольски
(Ответить) (Parent) (Thread)
[User Picture]From: chessplayer
2010-10-14 10:36 pm
кстати, такая подборка уже есть
(Ответить) (Thread)
[User Picture]From: ygam
2010-10-14 10:43 pm
Там нет про Путина.
(Ответить) (Parent) (Thread)
[User Picture]From: _iga
2010-10-14 11:06 pm
Там же он пишет, что это заморочка исключительно cmd.exe. Win32 подсистема и ядро такими глупостями не затронуто.
(Ответить) (Thread)
[User Picture]From: 1master
2010-10-14 11:53 pm
У него книжка есть.
(Ответить) (Thread)
[User Picture]From: msh
2010-10-15 12:47 am
Я недавно столкнулся с проблемой, когда у нового сервера с 24 процессорами и 36 гигабайтами памяти, с встроенным гипервизором, веб-сервером и удаленным десктопом случайно сломали эмуляцию BIOS IBM XT и чипсета IBM AT, и это оказалось очень серьезной проблемой. Я даже не знаю с чем это сравнить в других областях техники.
(Ответить) (Thread)
[User Picture]From: ygam
2010-10-15 12:59 am
С латинским алфавитом? Вы знаете, почему в нем Z - последняя буква, а в греческом - шестая?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: cryinstone
2010-10-15 01:48 am
Упаси боже нас от дней, когда изучение Виндовс будет обязательным в университетах.
(Ответить) (Thread)
[User Picture]From: meshko
2010-10-15 02:33 am
А мне вот интересно, почему когда я на дисе d:, команда
cd c:\temp не переводит меня на диск c?
(Ответить) (Thread)
From: (Anonymous)
2010-10-15 07:05 am
как раз из-за эффекта который описан в исходном посте. она переводила текущую директорию на диске c, но не меняла текущий диск.
(Ответить) (Parent) (Thread) (Развернуть)
From: selfmade
2010-10-15 02:48 am
Ещё нельзя создать динамическую веб страницу на IIS с именем con.aspx, prn.aspx и подобными из-за обратной совместимости уходящей в глубину веков к CP/M.
(Ответить) (Thread)
[User Picture]From: hiend
2010-10-15 04:16 am


c:
cd a
> c:\a\
cd b
> c:\a\b\
d:
cd docs
> d:\docs\
copy *.* c:
____________
и вот тут он как раз и скопирует все файлы из d:\docs в текущую дирректорию на диске (c:\a\b\)
именно поэтому мне всегда казалось удобным, что он помнит текущую диру на каждом диске...
(Ответить) (Thread)
[User Picture]From: rezdm
2010-10-15 07:09 am
Тут вон и фидошную софтину обновляют...
(Ответить) (Thread)
From: (Anonymous)
2010-10-15 08:50 am
из недавнего раздражающего. у меня в компьютере есть маленький диск, отформатированный под ext3, с коллекцией музыки. и есть большой внешний диск с fat. я не мог просто так перенести коллекцию с одного на другой, потому что риппер обозвал файлы по схеме 'исполнитель - автор : название', а двоеточия в именах файлов на fat запрещены, windows их не любит, уже не совсем понятно, почему.
(Ответить) (Thread)
[User Picture]From: ktotam
2010-10-15 01:25 pm
ADS.
про это там по ссылке, кстати, тоже есть
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: timur0
2010-10-15 09:50 am

Вспомнилось

По бокам космического корабля "Кеннеди" размещаются два двигателя по 5 футов шириной. Конструкторы корабля хотели бы сделать эти двигатели еще шире, но не смогли. Почему?
Дело в том, что двигатели эти доставлялись по железной дороге, которая проходит по узкому туннелю. Расстояние между рельсами стандартное: 4 фута 8.5 дюйма, поэтому конструкторы могли сделать двигатели только шириной 5 футов.
Возникает вопрос: почему расстояние между рельсами 4 фута 8.5 дюйма? Откуда взялась эта цифра? Оказывается, что железную дорогу в Штатах делали такую же, как и в Англии, а в Англии делали железнодорожные вагоны по тому же принципу, что и трамвайные, а первые трамваи производились в Англии по образу и подобию конки. А длина оси конки составляла как раз 4 фута 8.5 дюйма! Но почему? Потому что конки делали с тем расчетом, чтобы их оси попадали в колеи на английских дорогах, чтобы колеса меньше изнашивались, а расстояние между колеями в Англии как раз 4 фута 8.5 дюйма! Отчего так? Да просто дороги в Великобритании стали делать римляне, подводя их под размер своих боевых колесниц, и длина оси стандартной римской колесницы равнялась... правильно, 4 футам 8.5 дюймам! Ну вот теперь мы докопались, откуда взялся этот размер, но все же почему римлянам вздумалось делать свои колесницы с осями именно такой длины? А вот почему: в такую колесницу запрягали обычно двух лошадей. А 4 фута 8.5 дюйма - это был как раз размер двух лошадиных задниц! Делать ось колесницы длиннее было неудобно, так как это нарушало бы равновесие колесницы.
Следовательно, вот и ответ на самый первый вопрос: даже теперь, когда человек вышел в космос, его наивысшие технические достижения напрямую зависят от РАЗМЕРА ЛОШАДИНОЙ ЗАДНИЦЫ
http://meshulash.livejournal.com/5892.html
(Ответить) (Thread)
From: (Anonymous)
2010-10-15 10:12 am

Re: Вспомнилось

ну вот, вчера коллега на работе то же самое вспомнил
http://www.snopes.com/history/american/gauge.asp
(Ответить) (Parent) (Thread)
[User Picture]From: cousin_it
2010-10-15 04:29 pm
И все равно старые игрушки приходится запускать в DOSBox.
(Ответить) (Thread)
[User Picture]From: bespechnoepero
2010-10-15 11:33 pm
напоминает старый анекдот:

муж-программист, заметив, что жена всегда отрезает попку у курицы, перед тем как положить ее в кастрюлю, поинтересовался зачем она это делает. та сослалась на маму, мол мама всегда так делала, вот и она так. дотошный муж позвонил теще, а та сослалась на ее маму. позвонил бабушке...

- ой, родненький! мы тогда очень бедно жили, и у нас была всего одна кастрюлька в которую курица не влезала. вот и приходилось отрезать.
(Ответить) (Thread)
[User Picture]From: gvadelupa
2010-10-19 06:40 am
Из инструкции по инсталляции программы «Спринтер», приобретённой в 2010 году (программа активно поддерживается и развивается, её назначение — удалённая сдача отчётности в налоговую, внутри всякие современные технологии, типа электронной подписи, шифрования и т.п.):

---------------------

ПРИМЕЧАНИЕ. В полях "Каталог программы электронной почты" и "Каталог отправки данных отчетности" наименования всех каталогов должны содержать не более 8 символов, не являющихся пробелами. Если это условие не выполнено, необходимо вместо наименование каталога ввести выражение:
<первые 6 символов наименования, не считая пробелов>~1
Например, вместо Program files следует писать Progra~1, вместо Pro fi следует писать Profi~1.
(Ответить) (Thread)