The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск операционной системы Redox OS 0.5, написанной на язык..., opennews (??), 25-Мрт-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


100. "Выпуск операционной системы Redox OS 0.5, написанной на язык..."  –5 +/
Сообщение от BrainFucker (ok), 25-Мрт-19, 20:57 
> Я тебе открою секрет: большинство утилит командной строки и имена файлов не
> поддерживают, они делигируют всю работу с именами файлов ядру.

Да, но надо лишь уметь работать с файлами и ты умеешь почти всё. Это главная суть идеи "всё есть файл". А в случае концепции "всё есть ссылка", особенно в их реализации, этого не получится. https://i.imgur.com/GLs2RjG.png
Банально потому что разработчики будут не в состоянии пропатчить всё ПО так чтобы оно поддерживало всевозможные схемы и протоколы URL'ов, тем более там они предлагают любым желающим выдумывать свои какие угодно. Поэтому тут нет ничего якобы "похожего на принцип UNIX, только ссылки вместо файлов". Их концепция не даёт того, что даёт концепция "всё есть файл". Вот я о чём.

Ответить | Правка | Наверх | Cообщить модератору

106. "Выпуск операционной системы Redox OS 0.5, написанной на язык..."  +5 +/
Сообщение от Ordu (ok), 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, только ссылки вместо файлов".

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

Ответить | Правка | Наверх | Cообщить модератору

108. "Выпуск операционной системы Redox OS 0.5, написанной на язык..."  +/
Сообщение от BrainFucker (ok), 25-Мрт-19, 23:18 
Хм, ну ок, так действительно вполне возможно что это может работать...

Кстати, схему file:// стоило бы таким образом и в линуксах сделать, а то из гуишных файловых менеджеров ссылки на файлы почему-то копируются именно как file://..., при копировании в консоль приходится вручную стирать протокол.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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