Пути

Персональный блог одноименного форумчанина. Человека и парохода, не побоюсь этого сравнения :)

Модератор: tyomitch

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Пути

Сообщение tyomitch » 03.07.2006 (Пн) 15:22

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


* В стародавние времена ОСей было много, и все разные. Каждый производитель ЭВМ писал для неё с нуля свою ОС, и его совершенно не заботила программная совместимость с ОС других производителей -- если нет аппаратной совместимости, то и программная ни к чему.


* В компьютерах от Digital -- PDP и произошедшем от него VAX -- использовалась необычная система путей (на примере VMS):
Код: Выделить всё
SYS$SYSDEVICE:[VMS$COMMON.DTR.DTR$LIB]JPI_CODES_TAB.DTR;1
    Здесь:
    SYS$SYSDEVICE -- название диска. Диском может быть объявлен любой каталог, примерно как командой subst в DOS;
    VMS$COMMON.DTR.DTR$LIB -- путь, разделяемый точкой;
    JPI_CODES_TAB.DTR -- имя файла и 1 -- его версия.
$ -- обычный допустимый в имени символ. Традицией в PDP было разделять слова в имени не подчёркиванием и не точкой, а знаком доллара.

Поддержка нескольких версий одного файла и переключение между ними было встроено в ОС.

Файлу соответствовало имя произвольной длины и обязательное трёхсимвольное расширение, указывающее его тип. Регистр в именах не учитывался: они всегда выводились и сохранялись в верхнем регистре. Системные утилиты по-разному обрабатывали файлы с разными расширениями; например, исполняемые файлы имели расширение COM. Каталоги были доступны как файлы с расширением DIR; например, каталог с файлом, приведённым выше, имеет имя
Код: Выделить всё
SYS$SYSDEVICE:[VMS$COMMON.DTR]DTR$LIB.DIR;1

Здесь не столь важны детали, сколько общая схема пути: диск:[путь]имя.расш


* В ОС Unix, ставшей в последнее время невероятно раскрученной сторонниками OSS, пути были организованы совершенно иначе. Дисков как элементов иерархии не было вовсе: файловая система имела единый корень, и диски "монтировались" в её каталоги. Единственный разделитель элементов пути -- косая черта; файлу соответствует только имя; слова в имени разделяются точкой или подчёркиванием, в зависимости от вкуса автора. Например, путь /usr/home/username/www_logs/www.990618 соответствует файлу www.990618 в каталоге /usr/home/username/www_logs
Регистр в именах учитывался, причём обычно использовался только нижний регистр.

В каждом каталоге было как минимум два подкаталога: .. (ссылка на родительский каталог) и . (ссылка на сам этот каталог). В файловую систему, наряду с обычными файлами, монтировались "специальные файлы": устройства, именованные трубы и сокеты и т.д. Самый знаменитый из всех специальных файлов -- это /dev/null, устройство-пустышка.

Тип файла нигде не сохраняется. Для некоторых важных типов файлов (каталог, исполнимый файл, устройство и т.д.) предусмотрены биты в 12-битном поле разрешений файла.


* ОС CP/M от Digital Research, написанная по образу и подобию ОС PDP-11, поддерживала только флопики в качестве дисков. Каталогов не было вовсе, поэтому пути имели вид A:CPNOTES.TXT -- со знаменитым ограничением 8.3. Никакой дополнительной информации расширения здесь не предоставляли: это было просто продолжение имени, отделённое от него точкой. Регистр в именах по-прежнему не учитывался.

Команда копирования файлов в CP/M, как и в PDP, называлась PIP; кроме дисков, она понимала "псевдоустройства" типа CON:, AUX:, NUL: и EOF:. Поддержка этих псевдоустройств ограничивалась командой PIP.

Каждому файлу соответствовало 3 бита атрибутов: только для чтения, системный, архивный. Длина файла сохранялась в блоках, поэтому в текстовых файлах, чтобы при выводе не печатать мусор из неиспользуемой части последнего блока, в конце ставился символ \032.


* ОС MS-DOS ставила своей целью полную совместимость с CP/M, поэтому в ней также были диски и имена файлов в формате 8.3, без различения регистров. Однако, псевдоустройства (чуть в другом количестве, чем в CP/M) поддерживались на уровне ОС как обычные файлы, и их можно было использовать в любой программе. Дополнительной фичей было то, что если прибавить к имени псевдоустройства расширение, оно продолжало работать: NUL.COM -- это то же самое, что NUL: или даже просто NUL.

Когда в MS-DOS 2.0 появились каталоги, программисты MS, писавшие до этого Unix-совместимую ОС XENIX и не обременённые опытом работы с PDP, построили гибрид из двух синтаксисов. Косая черта к этому времени уже использовалась как разделитель параметров в некоторых программах, поэтому каталоги решили разделять бэкслешами. Но единого корня ФС, как в Unix, всё-таки не сделали; поэтому появились такие интересные вещи, как "текущий каталог на каждом диске" (при том, что в Unix был только текущий каталог, а в CP/M -- только текущий диск), и псевдоподкаталоги .. и . в стиле Unix -- всюду, кроме корневого каталога, чтобы не нарушать совместимость с CP/M. Псевдоустройства тоже незримо присутствовали в каждом каталоге.

Малокументированной фичей MS-DOS была поддержка прямых слешей для разделения пути, наряду с обратными. Программисты, писавшие MS-DOS, сделали это для своего удобства -- чтобы пользоваться привычными по Xenix путями вида A:/SOMEDIR/SOMEFILE; или, обращаясь к текущему диску, просто /somedir/somefile

В DOS традиционно используется 6-битное поле атрибутов; к заимствованным из CP/M добавились новые атрибуты: скрытый, каталог, метка диска.



В следующий раз, если хватит сил, приплету сюда Windows и MacOS :-)
Изображение

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 05.07.2006 (Ср) 17:39

Малодец
[Место cдаётся]

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.07.2006 (Ср) 20:00

По общему уговору мы вроде бы решили не писать похвалы в блогах BV и tyomitch'а... Просто если все начнут писать свои благодарности в адрес этих господ, база так возрастет, что Рею это не понравится... На худой конец есть ЛС...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 05.07.2006 (Ср) 20:09

ANDLL
А ЛС не занимают места в базе?
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.07.2006 (Ср) 20:19

Автор, удалит сообщения после того как его прочитает.
Сообщения в тредах, если они не наршуают в правила, удалять как-то нехорошо... ИМХО.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.07.2006 (Ср) 22:06

Постинг:
1) Текст постинга разбивается и все его слова заносятся в таблицу для ускорения поиск
2) Добавляется информация о постинге:
ид форума|ид темы| ид постера | время | IP | гостевое имя | параметря BBCode, HTML | количество редактирований.
+Добавляетя сам текст постинга в отдельную таблицу
ид постинга | текст постинга
. Плюс в каждый используемый BBCode добавляется uid. т.е. если вы написали
Привет [b]мир![/b]

В бд добавится
Привет [b:12af57eb5]мир![/b:12af57eb5]

3) Вы тем самым подписываетель на уведомления об ответах в эту тему. В БД в соотв. таблицы создаётся запись:
ид. пользователя. | ид темы | статус нотофикации
4) Если тема большая т.е. незабывайте ещё и о том что будет сгенерирован двухмерный массив (язык, мыло). По которому потом будут заполнены поля BCC для отправки уведомлений.

ЛС:
Выполняется только пункт, аналогичный второму. Ну и отправка по полю TO


ANDLL писал(а):Просто если все начнут писать свои благодарности в адрес этих господ, база так возрастет, что Рею это не понравится...


Но как сказал RayShade:
Rayshade: да пофиг ;) у нас места много
Хакер: а сколько если не секрет?
RayShade: нипомню =)
RayShade: но много
Хакер: больше 50 гигов ? :)
RayShade: возможно

Но это совсем не повод чтобы тут флуд разводить :lol:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Tyomitch

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

    TopList