The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск операционной системы Redox OS 0.5, написанной на язык..."
Отправлено Ordu, 25-Мрт-19 23:00 
Зачем патчить всё ПО? Зачем поддерживать какие бы то ни было схемы и протоколы URL'ов?

Приложение поступает с url'ами так же, как с именами файлов, берёт их из командной строки как строку из байт, и засовывает в open(2). Получает взамен файловый дескриптор и работает с ним. Подавляющее большинство утилит из coreutils именно так и делает. Они правда работают на linux'е, а linux'овый open не умеет открывать http, поэтому если ты сделаешь cat https://www.opennet.ru, то ты получишь:

$ cat https://www.opennet.ru
cat: 'https://www.opennet.ru': No such file or directory

Что произошло? Давай глянем?

$ strace cat https://www.opennet.ru
... бла-бла-бла ...
openat(AT_FDCWD, "https://www.opennet.ru", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "cat: ", 5cat: )                    = 5
write(2, "'https://www.opennet.ru'", 24'https://www.opennet.ru') = 24
write(2, ": No such file or directory", 27: No such file or directory) = 27
write(2, "\n", 1
)                       = 1

Видишь вызов openat? Это cat пытался открыть url как файл, запихивая в ядро url. И если бы ядро умело бы обрабатывать схему https://, то это даже могло бы сработать: cat получил бы файловый дескриптор, откуда бы он весело читал бы байтики, и засовывал бы их в stdout, и мы бы увидели содержимое http-странички. То есть, если бы скомпиляли этот cat для redoxos, то он бы там вполне бы мог читать с opennet'а странички, не понимая, что такое https://

> Поэтому тут нет ничего якобы "похожего на принцип UNIX, только ссылки вместо файлов".

Конечно-конечно, как скажешь.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру