LINUX.ORG.RU

Избранные сообщения temak

Дедупликация в Btrfs

Статьи — Администрирование
Дедупликация в Btrfs

Btrfs — это замечательная файловая система, главными фишками которой являются легковесные снапшоты, реализуемые через Copy-On-Write (COW), и сжатие. Она показала высокую надежность и стабильность, и именно поэтому она включена в ядро Linux. Однако, даже наличие COW не позволяет избежать избыточности данных на уровне блоков.

( читать дальше... )

 ,

rtxtxtrx
()

Waydroid: ручная установка native bridge

Статьи — Desktop

Т.к. в сети информации толком нет (ну или я просто не умею её искать), то решил написать эту статью, чтоб исправить это.

Введение

Речь пойдёт про установку конкретно houdini. В сети есть скрипты для автоматической установки, которые нужно запускать от рута, но описания что конкретно они делают к ним нет, поэтому у меня не возникло к ним доверия и я решил разобраться что да как.

Многим играм и программам для андроид требуется архитектура arm для работы. Houdini — это набор библиотек-трансляторов, которые позволят запускать их на архитектуре x86 и x86_64. Эти библиотеки были взяты из образов андроид от майкрософт. Есть аналогичный набор библиотек NDK, которые были взяты из образов андроид от гугла.

В данном примере я буду использовать houdini для Android 11, который идёт в штатной поставке waydroid. Там используется образ Lineage OS, но сути это не изменит.

Для начала скачиваем сами библиотеки. Например, отсюда https://github.com/supremegamers/vendor_intel_proprietary_houdini В данном случае нас будет интересовать содержимое каталога prebuilts.

( читать дальше... )

 ,

u5er
()

Классика на свободных движках

Форум — Games

Здравствуйте, любители свежей олдятинки!
Провёл ревизию и выяснил, что есть вполне живые и работоспособные движки к классическим игрушкам. Вот некоторые примеры:

  • openKB - движок для King's Bounty - идейного прародителя Heroes Of Might & Magic, Warlords, Disciples, Age Of Wonders.
  • FHeroes2 - Heroes of Might & Magic 2 - прошёл 2 больших карты против AI, всё вполне работоспособно, быстро, красиво, поддерживается вся серия HOMM2, смена разрешений, в настройках можно добавлять плюшки из HOMM3.
  • VCMI - Heroes of Might & Magic 3 - играл против AI, тестировал новые версии движка, испавлял баги, добавлял города. Поддерживаются WOG и ERA, но можно играть и на чистых HOMM3 (поддерживается вся серия). Также много плюшек, новых артефактов, городов, юнитов, героев, смена разрешений и другие вкусности.
  • Dune Legacy - Dune 2 - прошёл несколько миссий за разные дома, играл скирмиши, всё прекрасно работает. Движок вполне современный, взято много идей из последующих игр серии, например выделение множества объектов, очереди строительства, векторы движения, естественно, есть смена разрешений и куча приятных настроек. Также поддерживаются моды.
  • War1gus - движок для Warcraft I, основан на Stratagus.
  • Wargus+Aleona's Tales - свободный движок для Warcraft II + свободные ресурсы (можно играть и с оригинальными) - тоже вполне играбельно и удобно, основа движка - Stratagus, возможность выделять множество объектов, векторы движения, разные разрешения...
  • Stargus - движок для Starcraft I, основан на Stratagus.
  • 7KAA - движок для своеобразной стратегии Seven Kingdoms.
  • OpenRedAlert - движок для Red Alert 1, написанный на C++, в отличие OpenRA (Mono).
  • OpenRA - модифицированный движок для Red Alert, Command & Conquer и Dune 2000 (Achtung! Mono!).
  • OpenXcom - UFO: Enemy Unknown - прохожу капманию, всё работает, с каждой новой версией всё лучше. Также с версии 1.0 поддерживается мод с Ктулху.
  • FreeSynd - Syndicate - тоже вполне играбельно, наконец-то починили радар.
  • Syndicate Wars Port - движок для Syndicate Wars, продолжения Syndicate.
  • GemRB - движок для Baldur's Gate, Icewind Dale и Planescape: Torment. Вполне рабочий, я почти прошёл Baldur's Gate.
  • Micropolis - Свободный движок для SimCity.
  • ECWolf - модернизированный движок для Wolfenstein 3D, Spear of Destiny и Super 3D Noah's Ark, основанный на кодах Wolf4SDL и ZDoom.
  • Cytadela - движок для Cytadela, стрелялки от первого лица для Amiga.
  • Rise of the Triad - движок для уникальной для своего времени игры Rise of the Triad, основанной на сильно модифицированном движке для Wolfenstein 3D.
  • ZDoom+FreeDoom - Модифицированный и современный движок для Doom, Doom 2, Heretic, HeXen, Strife + свободные ресурсы. Множество улучшений: свободный обзор, прицел, приседания и прыжки, объекты больше не имеют бесконечную высоту, высокое разрешение. Также есть замечательный мод BrutalDoom, привносящий моря кровищщи, горы кишок и ультранасилие.
  • GZDoom - OpenGL-форк ZDoom.
  • Doomsday - модифицированный OpenGL-движок для Doom I&2, Heretic, Hexen, HacX, Chex с поддержкой трёхмерных моделей вместо спрайтов.
  • uHexen2 - SDL/OpenGL движок для Hexen II: Hammer of Thyrion.
  • DarkPlaces + Quake Revitalization Project - модифицированный OpenGL-движок для Quake I + обновлённые текстуры.
  • Yamagi Quake II - модифицированный движок для Quake II, также поддерживает дополнения Mission Pack 1 'The Reckoning' и Mission Pack 2 'Ground Zero'.
  • ioquake3 - модифицированный движок для Quake III.
  • Eduke32+HRP - Модифицированный SDL/OpenGL движок для Duke Nukem 3D (свободный обзор, прицел, прыжки, приседания, высокое разрешение) + набор свободных трёхмерных текстур. Прошёл всего Дюка с трёхмерными текстурами и продвинутой отрисовкой Polymer.
  • eRampage - движок для стрелялок Redneck Rampage, Suckin' Grits on Route 66, Redneck Rampage Rides Again и Redneck Deer Huntin'. Основан на EDuke32.
  • BloodCM + HRP for BloodCM - Blood на движке EDuke32 + текстуры в высоком разрешении. Готовы 2 эпизода игры, третий в разработке.
  • Aleph One - модифицированный движок для Marathon, Marathon 2: Durandal и Marathon Infinity. Также сообществом разработаны новые игры Marathon: EVIL, Tempus Irae, Marathon RED, Marathon: Eternal, Marathon: Rubicon X, Marathon: Phoenix. Ещё есть отдельная игра Excalibur: Morgana's Revenge. Эти игры особенно придутся по душе латентным, активным и пассивным любителям Macintosh, ибо изначально Marathon разрабатывался исключительно под эту платформу.
  • Xash3D - свободный движок для Half-Life (аналог GoldSource).
  • D2X-XL - OpenGL движок для трёхмерной леталки-стрелялки Descent. Также разработан редактор уровней DLE.
  • DXX-Rebirth - SDL/OpenGL движок для трёхмерных леталок-стрелялок Descent 1&2.
  • ForsakenX - движок для трёхмерной леталки-стрелялки Forsaken, клона Descent.
  • OpenTTD - свободный движок для Transport Tycoon Deluxe + свободная графика и звуки.
  • JA2-Stracciatella - Jagged Alliance 2. Несмотря на периодические приостановки, проект до сих пор жив и недавно снова вошёл в активную фазу.
  • ScummVM - набор свободных движков в основном для игр в жанре quest (приключение), например от Lucas Arts, Sierra, Westwood, Coktel Vision, The Neverhood Inc., The Dreamers Guild, Revolution Software, Psygnosis, Infocom, Delphine Software International, Adventure Soft, также и для некоторых ролевых игр: Eye of the Beholder I&II, Lands of Lore: The Throne of Chaos. На данном этапе ведутся работы по поддержке таких замечательных игр, как Myst, Riven: The Sequel to Myst, Gabriel Knight, Gabriel Knight 2: The Beast Within, King's Quest VII, Phantasmagoria I&II, Police Quest IV, Police Quest: SWAT, Quest for Glory IV, Space Quest 6: The Spinal Frontier, Leisure Suit Larry 7, Broken Sword 2.5...
  • ResidualVM - движки для трёхмерных игр Grim Fandango и Escape from Monkey Island от Lucas Arts, также добавлена поддержка для Myst 3 Exile. Для Grim Fandango разработан 'point & click интерфейс'.
  • Pentagram - движок для Ultima VIII с поддержкой разных разрешений, разных звуковых систем, миникарты, TrueType.
  • Exult - движок для Ultima VII с поддержкой разных разрешений, разных звуковых систем, статусбаров, Exult Studio для разработки своих игр.
  • Nuvie - движок для Ultima VI.
  • XU4 - движок для Ultima IV с поддержкой VGA и 16-bit графики, смешивание заклинаний как в Ultima V.
  • OpenMW - The Elder Scrolls III: Morrowind. Проект активно развивается, добавляется новый функционал, поддержка модификаций, но на данном этапе поиграть пока не удастся.
  • Lord of the Rings game engine - движок для ролевой игры Lord of the Rings.
  • Arx Libertatis - движок для трёхмерной ролевой игры Arx Fatalis.
  • FS2Open - движок для космического симулятора FreeSpace 2. Также есть fsport - адаптация кампаний FreeSpace 1 для FS2Open.
  • CorsixTH + CorsixTH-Graphics - движок для симулятора больницы Theme Hospital и набор новой свободной графики.
  • Abysmal Engine - движок для System Shock 1 и Ultima Underworld. Проект жив, потихоньку развивается.
  • OpenAge - движок для Age of Empires II. Проект на начальной стадии, ещё сырой. Разработчики пока толком не определились с технологиями, хотят для изометрической графики задействовать OpenGl и шейдеры.
  • Antares - движок для космической стратегии Ares. Трепещите, латентные, активные и пассивные любители Macintosh, игра изначально разрабатывалась исключительно под эту платформу.
  • CaesarIA - симулятор Римской Империи и Цезаря в частности Caesar III.
  • Falltergeist - свободный движок для Fallout 1&2, разрабатываемый на C++ с использованием SDL2. Проект на начальной стадии, но активно развивается.
  • freeablo - свободный движок для Diablo 1 с использованием SDL2. Проект на начальной стадии, готов начальный посёлок с нейтральными персонажами и пара случайно генерируемых подземных уровней.
  • Abuse - аркадная стрелялка-платформер, сюжет вдохновлён вариациями на тему «Хищник против Чужих». Движок использует отрисовку через SDL или OpenGL (на выбор), работает на 32-bit и 64-bit платформах. К игре прилагаются освобождённые ресурсы.
  • New RAW - интерпретатор для аркадной игры Another World.
  • Bermuda Syndrome - SDL-движок для аркадного приключения Bermuda Syndrome.
  • REminiscence - SDL-движок для аркадного приключения Flashback.
  • f2bgl - SDL/OpenGL-движок для трёхмерного приключения Fade To Black.
  • Igor - SDL-движок для испанского квеста Igor: Objetivo Uikokahonia.
  • Carlos - SDL-движок для платформера Carlos.
  • xBaK - движок для уникальной для своего времени ролевой игры Betrayal at Krondor. Относительно играбельно, но некоторых важных функций может не оказаться. Проект, к сожалению, заброшен. Форкайте, господа, пилите для ScummVM.
  • bstone - движок для стрелялки от первого лица Blake Stone: Planet Strike.
  • CatacombSDL - SDL2-движок для фентези-стрелялки Catacomb II.
  • NXEngine - SDL-движок для платформера Doukutsu Monogatari (также известного как Cave Story).
  • Commander Genius - движок для серии платформеров Commander Keen.
  • The Ur-Quan Masters + Ur-Quan Masters HD - движок для космического аркадного ролевого стратегического квеста Star Control II + текстуры в высоком разрешении.
  • OpenJK - движок для Jedi Knight II: Jedi Outcast и Jedi Knight III: Jedi Academy с минимальными измененями, максимально близкий к оригинальному.
  • JediOutcastLinux - ещё один движок для Jedi Knight II: Jedi Outcast.
  • JediAcademyLinux - ещё один движок для Jedi Knight III: Jedi Academy.
  • SDL Sopwith - SDL/GTK+ движок для классического аркадного авиасимулятора Sopwith.
  • Ultimate Stunts - OpenGL движок для классического гоночного симулятора Stunts.
  • Freeserf - SDL-движок для классического симулятора поселенцев The Settlers 1 «Serf City».
  • Return to the Roots - OpenGL-движок для для классического симулятора поселенцев The Settlers II Gold Edition.
  • OpenRaider - OpenGL-движок для серии приключенческих игр Tomb Raider (1-5). 5-я игра серии пока не полностью работоспособна.
  • OpenTomb - ещё один OpenGL-движок для серии приключенческих игр Tomb Raider (1-5).
  • Privateer - Gemini Gold - OpenGL-движок для Wing Commander, основан на кодовой базе Vega Strike.
  • ET: Legacy - модифицированный движок для многопользовательской игры Wolfenstein: Enemy Territory.
  • Zod Engine - движок для уникальной стратегии Z.

Статья на LOR Wiki.

 ,

toney
()

Prime World от Nival «перезапустилась» в open source

Новости — Игры
Группа Игры

MOBA-игра Prime World от Nival «перезапустилась» в open source (с запретом на коммерческое использование). Официальный сервер игры был выключен в 2021 году.

Лицензия запрещает коммерческое использование – но добро пожаловать улучшать игру, комьюнити уже занимается этим. Как насчёт сборки для Линукс? Даже сервер сейчас работает на Windows, одна из текущих главных задач – перевод на Линукс, с чем вы можете помочь; также комьюнити испытывает потребность в более мощном Windows-сервере (пока не портировали) – вы можете помочь с этим.

Похоже, это первая open source MOBA.

Репозиторий: https://github.com/Nival-Pub/Prime-World, скоро должны публично форкнуть несколько комьюнити групп (сейчас форки приватны – группы конкурируют).

Комьюнити: https://vk.com/primeworldclassic

Там, если хотите, найдёте чат программистов.

Если вашу любимую игру не продают – возможно, пора написать создателям/издателю чтобы её тоже открыли – хоть запуск на современных системах можно чинить.

>>> Подробности

 nival, prime-world

vitaly-zdanevich
()

Как правильно настроить ZFS и избавиться от тормозов

Форум — Admin

Всем привет! Я долго сопротивлялся, думая что «и так сойдет», но момент настал. Я в целом рандомный эникейщик, но дёрнуло меня собрать сервер для знакомых видеомонтажников на убунте. Делал это всё я первый раз, ранее с linux дел не имел, но было интересно. Сервер на Xeon v4 камне, 20 ядер. вполне приличный, как мне кажется, камушек. 256ГБ ДДР4 памяти. И вот им нужен объем и чтобы быстро по 10G Ethernet тудой-сюдой собирать проект на TV. Файлы все в основном большого размера, ну как… камера мотор… стоп снято. несколько секунд-минут видоса. Внутри сервака стоят 8 по 16ТБ SAS хардов. подключены к SAS-контрольке(по-моему 6G), но в ней не было RAID-уровней кроме 0 и 1(или вообще только 1), поэтому диски пришлось инициализировать каждый по одному и потом в убунте из них создать ZFS-пул. Создано, чтение-запись. всё хорошо. для кэша я в ZFS поменял ARC 1 уровня до 200 гигов. и поставил 5 ssd самсунг pm893 960gb в l2arc. вышло почти 5тб. Их я объединил в программный рэйд0 и создал в пуле соответствующую запись. кэш Online, всё хорошо. Насколько оно попадает в тот или иной кэш мне неизвестно, потому что мне сходу было тяжело разобраться в записях и прочитать их осмысленно. но прирост скорости монтажники почувствовали, на этом я и успокоился. Чуть позже к серваку приросла дисковая полка на 24 диска по 16ТБ, полка SAS, диски все SAS, но и тут гладко не вышло. диски покупались в 2 захода. получилось что первая партия на 144тб с 4К форматом, а остальные без него(не смогли найти идентичных в продаже). LSI MR9286CV-8e отказался создавать всех в один raid6. в итоге вышло как вышло. 144тб и 208тб и в убунте объединены во второй ZFS пул. этот пул - долговременное хранилище. архив, можно сказать. с него читают чтобы выкачать по FTP через файлзиллу и в общем то всё. основной движ в офисе происходит с тех 8 дисков, что стоят напрямую в серваке.

С предысторией я закончил. теперь к сути: когда сервер работает довольно долго (ну, положим… 20 дней), то начинаются какие то сложности со скоростью доступа. Свежезагруженный убунт дает по 10г сети скорость чтения/записи порядка 800 МБ/с через встроенную в davinci resolve прогу-бенчмарк диска. и всем это нравится. монтируется афигенно быстро, сразу 2-3-4 машины используют этот сервак и короче счастье. А вот по прошествии какого то времени начинаются странные странности. то падает чтение, а запись норм. то наоборот. то перестают подгружаться данные в проект. он их видит, но в давинчи передавать отказывает и висит-висит… вчера вот не удалось монтировать монтаж на одной из машин. проект видно, данные по самбе читаются и записываются, с авторизацией проблемы нет, а монтаж просто прекращается не начавшись. проверили что монтаж работает локалФС - локалФС, и локалФС - сервер(но не в обратную сторону).

Короче, я решил спросить совета у тех кто съел собак на тему ZFS. Понятно, что там и сям какие то костыли, и вообще нужно бы всё переделать, поменять IBM serveraid m5110 на что-то с лицензией raid5 и вообще чтобы 12G было. но в момент сборки сервера это прям был мега-ограниченный бюджет, поэтому и собирал это тип(я), которому было по фану, а не спец, которому нужно было многоденег(наверняка). И вот теперь это некий ворох проблем, которые нужно планомерно порешать. С чего начать, где и какими командами изменять параметры ZFS пула для оптимального использования с большими файлами? или лучший вариант это ребут сервера по расписанию? (так вообще кто-то делает или это дичь?)

 

starghost1100
()

Пример веб-интерфейса: с чем его едят и почему не работает?

Форум — Development

Тема для самообразования, то ли в Web-, то ли в Development, то ли в Talks.

Есть железка (РЧ-усилистель), с управлением на контроллере Microchip PIC18F97J60-I/PF.

Неисправная, один из симптомов — не обрабатываются шаблоны веб-интерфейса (в браузере вижу имена переменных).

Содержимое микроконтроллера (128KB) мне вряд ли удасться прочитать (как?). Рядом с контроллером есть дополнительная микросхема памяти того же объёма с MPFS. В ней содержатся файлы веб-интерфейса, устроенные следующим образом:

  • Файлы вида foo.htm — шаблоны с HTML и вставками между символами ~. Вставки в основном имена переменных ~var~, но есть и включения ~inc:bar.inc~.
  • Файлы вида foo.htm.idx — бинарные, с содержимым похожим на массив значений переменных из foo.htm.

Например:

$ cat reboot.htm
<body>
<center>
<h2><font color="blue">You have set DHCP to be ~DHCPEN~. </font><h2>
<h2><font color="blue">Restart Unit to take effect.</font><h2>
<center>
</body>
<meta http-equiv="Refresh" content="3;url=config.htm">
$ hexdump -C reboot.htm.idx
00000000  41 00 00 00 f1 00 00 00                           |A.......|
00000008

Вопросы: 1. На чём это написано и как работает? 2*. Почему не обрабатываются шаблоны?

 , , , ,

Evenik
()

Кто как сейчас ускоряет youtube?

Форум — General

Раньше мне помогал spoofdpi, а теперь, два дня назад, и он перестал работать. В интернете говорят, что и у goodbyedpi в этот момент проблемы возникли но их быстро решили. К сожалению, его нету под Linux. Были надежды на byeDPI но либо он тоже не справляется, либо я не могу найти подходящую команду для него. Хотя приложение ByeDPI на андроиде ещё работает. Так вот, кто какими решениями пользуется под Linux? v2ray, vpn, это всё конечно хорошо но своей VPS у меня нету, а публичные в 12 раз медленнее чем мой интернет.

Ещё примечание, я обычно предварительно скачиваю через yt-dlp а потом уже смотрю. Где-то говорили, что у кого-то youtube работает если включить протокол QUIC в браузере. Есть ли такая возможность в yt-dlp? Или может есть какая-то дополнительная программа, которая будет работать как прокси и будет трафик в QUIC превращать.

 , ,

whatiswhat
()

Как сделать упреждающее кеширование файлов на linux?

Форум — Admin

Дано: Сервер файлопомойка-торрентокачалка, торренты хранятся на двух hdd дисках объединенных mergerfs, система debian 12 на ссд, на всех накопителях ext4, гигабитная локальная сеть, планировщик дисков bfq, торрент клиент запущен через nice и ionice с минимальным приоритетом.

Когда при сильно активной раздаче просматриваешь фильмы на китайском tvbox по wifi через mxplayer из samba, воспроизводимый фильм подтормаживает, но если на сервере прочитать весь фильм целиком (что приведёт к загрузки файла в кэш) то фильм воспроизводится без тормозов.

Есть ли в linux какое-нибудь умное кеширование которое понимает что файл читают последовательно и начнёт упреждающе читать его в ОЗУ?

Или просто полностью загружать в кэш весь файл открытый определённым процессом?

Прошу экспертов ЛОРа помочь с решением данной проблемы.

 ,

hrenacher228
()

Монстр из слияния Gemini и Spartan (попытка создать свой протокол)

Форум — Development

В теме, посвященной «новым» браузерам, я упомянул недостатки протоколов Gemini и его упрощенного аналога Spartan. Представляю вашему вниманию еще один протокол, сделанный на коленке на основе вышеуказанных протоколов. Я ни на что не претендую и делаю это в качестве развлечения. Итак, я взял описание протокола Spartan и несколько подправил его. Протоколу дано временное название owl, чтобы обозначить его в ссылках. Временное - потому что с таким названием есть нечто, относящееся к NFT, а также игровой движок. И вот результат:

Описание протокола

1. Обзор
Протокол Owl - прикладной протокол передачи данных, попытка собрать нечто среднее из протоколов Gemini и Spartan. В качестве фундамента для Owl использован протокол Spartan.
Протокол использует для передачи данных TCP, и является текстовым. Подобно Gemini, Owl может использовать для шифрования TLS с схемой аутентификации TOFU и поддерживает пользовательские сертификаты для аутентификации. Как и в случае Spartan, для Owl в документах gemtext допустимо использование строки "=:" для пользовательского ввода, а также Owl имеет сходную модель запросов.
Owl использует 5 видов статусов в ответе на запрос: "Успешно выполненный запрос", "Перенаправление", "Ошибка сервера", "Ошибка клиента", "Необходимость в сертификате клиента".
Если шифрование не используется, то в URL протокол указывается как owlet://
Стандартный порт для owl - 288, для owlet - 289. Протокол является синхронным, в ответ на запрос клиента сервер передает ответ, после чего при статусе ответа "Успешно выполненный запрос" клиент передает данные (при их наличии), затем данные передает сервер (при их наличии).
2. Запросы.

Запрос клиента к серверу в Owl представляет собой строку текста в кодировке UTF-8, которая предстает в следующем виде

URL [символ горизонтальной табуляции] [опциональный блок, используемый для получения части данных] [размер блока данных в байтах] CRLF [блок данных - передается серверу после получения ответа со статусом успешно выполненного запроса]

[опциональный блок, используемый для получения части данных] =  [диапазон в байтах в виде двух чисел разделенных символом "дефис" или числа и символа точки][символ пробела]

Блок данных в конце запроса является опциональным, при его отсутствии размер блока данных должен быть указан как "0". Тип данных может быть как бинарным, так и текстовым или смешанным. Клиент не указывает тип данных, сервер должен сам его определить исходя из контекста.
Порт в url указывается, если он отличается от порта по умолчанию. Размер запроса без данных не должен превышать 1024 байт.

Примеры запросов:
-- Скачивание txt файла
owl://example.com/1.txt	0

-- Отправка данных серверу (комментарий к статье на русском языке)

клиент: owl://example.com/articles/1/comment	20
сервер: 2	gemini/text; lang=ru
клиент: Привет мир!
сервер: [текст статьи с комментариями]

-- Отправка данных серверу (комментарий к статье на английском языке)

клиент: owl://example.com/articles/1/comment	12
сервер: 2	gemini/text; lang=en
клиент: Hello world!
сервер: [текст статьи с комментариями]

--Отправка на сервер музыкального файла

клиент: owl://example.com/upload/music.ogg	1205328
сервер: 2	none	0
клиент: [бинарные данные]

--Запрос статьи от сервера, использующего нестандартный порт

owl://example.com:90/articles/1	0

Также клиент может запросить от сервера только часть данных, указав диапазон в байтах в виде двух чисел разделенных символом "дефис". Использовать символ точки вместо второго числа можно, если данные необходимо получить частично начиная с байта указанного первым числом и до конца данных. 

Примеры запросов:

owl://example.com/music/spring.mp3	14721-872345 0

owl://example.com/music/spring.mp3	14721-. 0


3. Ответ на запрос

Ответ сервера состоит из одной строки в кодировке UTF-8  и имеет следующий вид:

-- Код ответа 2 - "Успешно выполненный запрос"

2 [символ горизонтальной табуляции] [тип данных] [дополнительный опциональный блок] CRLF [данные от сервера]

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

Сервер может в некоторых ситуациях не передавать данные в ответ на запрос клиента. В этом случае ответ сервера будет выглядеть следующим образом:

сервер: 2	none	0

В этом случае соединение будет закрыто при завершении получения данных от клиента или сразу после ответа сервера при отсутствии клиентских данных.

-- Код ответа, начинающийся на 3 - "Перенаправление"
При этом код может быть расширен до 30 (Временное перенаправление) или 31 (Постоянное перенаправление), однако это не является обязательным. URL может быть как абсолютным, так и относительным по отношению к URL, использованным в запросе клиента.

3 [символ горизонтальной табуляции] URL CRLF

-- Код ответа, начинающийся на 4, указывает на ошибку клиента. Ответ содержит человекочитаемый текст, объясняющий характер ошибки.

4 [символ горизонтальной табуляции] [сообщение об ошибке] CRLF

--Код ответа, начинающийся на 5, указывает на ошибку сервера. Ответ содержит человекочитаемый текст, объясняющий характер ошибки.

5 [символ горизонтальной табуляции] [сообщение об ошибке] CRLF

--Код ответа, начинающийся на 6, указывает на необходимость в сертификате клиента (передается на этапе установления соединения с шифрованием в рамках протокола TLS), в этом случае клиент повторяет запрос, но предоставляет сертификат. Если клиент предоставил сертификат, но все равно получил этот ответ, это означает, что сертификат не был принят, в этом случае ответ может содержать   человекочитаемый текст, объясняющий характер ошибки.
Код этой ошибки может быть получен только при использовании шифрования.

6 [символ горизонтальной табуляции] [при необходимости - сообщение об ошибке] CRLF


Примеры запросов и ответов на них

клиент: owl://example.com/helloworld.txt	0
сервер: 2	text/plain; charset=utf-8	12
сервер: Hello world!

owl://example.com/helloworld.txt	0
3	owl://example2.com/helloworld.txt

owl://example.com/helloworld.txt
4	Неправильно составлен запрос

owl://example.com/helloworld.txt	0
5	Внутренняя ошибка сервера

owl://example.com/helloworld.txt	0
6	Неверный сертификат

4. Формат документа.

Owl использует в качестве предпочтительного тот же формат документов, что и Spartan - модифицированный text\gemini.
В частности, от стандартного text/gemini формат документов Spartan отличается наличием дополнительной строки ":=" для ввода пользовательских данных. Вид вводимых данных (текст, файл) определяется клиентом.

=:[пробел]<URL>[пробел человекочитаемое представление ссылки]

5. URL
Структура URL для owl напоминает структуру URL для http.
scheme://userinfo@host:port/path;parameters?query#fragment
Согласно стандартам пробелы в URL должны быть представлены как "%20", однако протокол способен работать с "настоящим"  пробелом, поэтому его появление в запросе не должно быть расценено как ошибка.
Соответствия URL запросам

owl://example.com => owl://example.com	0
owl://example.com/1 => owl://example.com/1	0

owl://example.com?a=1&b=2 =>
owl://example.com	7 
a=1&b=2

owl://example.com/my%20file.txt =>
owl://example.com/my%20file.txt	0

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

 , , ,

Leupold_cat
()

Будущее личных вычислительных систем

Форум — Talks

Хочу рассказать о своём видении некоторой «ментальной модели» – того, как пользователь настоящего и будущего выстраивает и будет выстраивать взаимодействие с программной средой.

Сейчас тенденция такая, что в распоряжении человека становится всё больше различных вычислительных систем.

У пользователя запросто может быть во владении пара смартфонов, планшет, пара ноутбуков, один жирный десктоп, пара крупных мониторов, да еще умный телевизор в полстены.

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

Весь этот зоопарк устройств обусловлен спектром ФИЗИЧЕСКИХ различий. Что-то экономичное и компактное, что-то большое и мощное, а что-то привязано к конкретному рабочем месту – под физически разные контексты необходимы физически разные устройства, что обусловлено объективными ограничениями нашего материального мира и доступных нам технологий.

А вот голова у пользователя – одна. И в этой голове совсем нет необходимости, и одни только проблемы от того, что у вас есть, скажем, восемь разных «мест», в которых лежат разные данные, установлены разные программы, выполнен вход в разные сервисы, применены различные персональные настройки и так далее.

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

Вот этот «перенос данных в облака» — он как раз про это — про то, чтобы отвязать ваше личное информационное пространство от физической коробки.

Но я хочу поговорить не про корпоративные попытки сделать вас рабом системы, которая хранит все ваши данные на своих серверах. А про что-то противоположное.


Итак, у моих данных есть некоторый «дом по умолчанию». В моём случае это ноутбук. Это решение сегодняшнего дня, но оно меня устраивает не всецело. В идеале, таким решением должен быть смартфон как более компактный и лёгкий девайс.

А если говорить точнее, то между моим ноутбуком и смартфоном не должно быть никакой разницы.

Ведь эти устройства оба полностью в моём распоряжении, это не чужие устройства, за которыми я работаю временно, а именно что мои.

Если я работаю за ноутом, и если я работаю со смартфона — я должен видеть только физическую разницу устройств, но не то, что это две отдельные системы хранения и обработки данных. Переход с устройства и на устройство должен быть прозрачным.

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

После этого разница для меня как пользователя только в том, что десктоп мощный и стационарный, а лаптоп – переносимый, но не такой мощный.


То же самое верно при временном использовании устройств. Если я прихожу на работу или к подруге, то я достаточно доверяю им, чтобы с их устройства работать со своими данными (а все мои данные — на смартфоне), но не достаточно доверяю, чтобы они имели доступ к моим данным в моё отсутствие.

Это означает, что я временно авторизую новую машину как терминал для работы с моим смартфоном. И далее могу работать в привычной мне среде с моим данными.

А как было сказано выше — между моим ноутбуком и смартфоном не должно быть никакой разницы. Следовательно, я работаю с чужой машины точно так же, как если бы я сидел дома за своим ноутбуком.


Всё вышеописанное вполне естественным образом ведёт нас к peer-2-peer структуре. Не той, которая «противостоит цензуре и за свободу информации», а сугубо практической её стороне — упрощение управления зоопарком машин, снижение затрат на их администрирование, на управление личными данными.

В такой модели «владение данными» и «обработка данных» отвязаны от «владения железом» и от административных издержек, с ним связанных.

Также такой подход можно назвать термином Zero Effort, который я придумал только что. Суть этого подхода состоит в том, что мы решительно устраняем любые издержки на какой-либо процесс… концептуально меняя парадигму софта и работы с ним. То самое: «Идеальный прибор — когда прибора нет, а функции его выполняются.»

К сожалению, будущее пока еще не наступило. Пока мы имеем только отдельные кусочки пазла в разных областях, которые являются прототипами и не готовы собраться в единое целое. Вот некоторые примеры:

  • ZeroInstall — децентрализованная кросс-платформенная система инсталляции софта, отвязанная от операционной системы (но способная использовать общесистемный кэш артефактов при соответствующей настройке). Флатпак здорового человека, если бы его делали не архитектурные астронавты.
  • ZeroNet — децентрализованная система доставки и исполнения веб-сайтов и веб-приложений.
  • IPFS — децентрализованная система доставки файлов по хэш-суммам.
  • syncthing — децентрализованное средство прозрачной синхронизации файлов между машинами.

Каждое из этих решений вполне подходит под концепцию Zero Effort:

  • ZeroInstall устраняют издержки на обслуживание пакетной базы операционной системы, устраняя идею общесистемной пакетной базы.
  • ZeroNet и IPFS устраняют издержки на обслуживание хостинга путём уничтожения понятия хостинга как самостоятельной единицы, необходимой для функционирования веб-сайта.
  • syncthing устраняет издержки на обслуживание физически разных носителей, делая их физически разнесёнными зеркалами одного виртуального носителя.

P.S.

4 указанных примера на мой взгляд являются реальными инновациями и движением вперёд согласно духу времени и потребностям людей. А вот изобретение очередной оконной системы, звукового сервера и переписывание очередной библиотеки на Раст — никак таковыми не являются.

syncthing был реализован на Go, и это никак ему не помешало.

 , , ,

wandrien
()

Проблема с подключением Hamachi

Форум — Admin

Проблема заключается в том, что через время пропадает соединение на короткое время и требует аутентификацию с паролем, переустановка не помогла. Что может быть? Использую Haguichi.

Перемещено hobbit из general

 ,

fonera
()

Libreboot, IntelMe, блобы говорите. Тем временем автомобили стали ультрашпионить

Форум — Talks

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

Вот статья на опеннете https://www.opennet.ru/opennews/art.shtml?num=59725

Современные машины оснащены датчиками, камерами и микрофонами, фиксирующими каждое движение пользователя. Собираемая информация также охватывает действия водителя, используемые сервисы, мобильные приложения и данные из сторонних систем, таких как Sirius XM и Google Maps. Среди прочего, автомобильные системы могут собирать показатели здоровья водителя, данные о прослушиваемых музыкальных композициях, сведения о том, где и с какой скоростью осуществляется движение. Более того, Nissan и Kia упоминают в политике конфиденциальности возможность сбора данных о сексуальной активности, а ещё шесть производителей допускают сбор генетической информации. На основе собранной информации делаются выводы об интересах, предпочтениях, интеллекте и способностях водителя.

И все это еще и может быть передано кому угодно фактически.

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

И разумеется все эти канбасы и дата контрол модули проприетарные и зашифрованные и если чего не так легко окирпичить автомобиль.

https://www.opennet.ru/openforum/vsluhforumID3/131444.html#173

https://www.toyota.com/privacyvts кликаешь на «collect & use» и удивляйся: On a Regular and Continuous Basis, We Collect and Use Your: Account Information, Vehicle Information, Location Data, Remote Data, Driving Data, Profile Data, Interior Image Data, Exterior Image Data, Facial Geometric Features,Vehicle Health Data, Multimedia Screen Data, Voice Recordings, Voice Recognition Recordings

и ключике от машины не отдадут пока не подпишешся что согласен, так же как и с мобилами, - типа «согласен со всеми зондами», т.к. хочу игруху. Еще прув? Смотрите на головной юнит, там иконка есть показывающая переодически активность телеметрии (иногда по несколько раз в день а иногда молчит, когда ездишь не лихо)

Жесть, просто жесть

 , ,

praseodim
()

Выпуск P2P VPN 0.11.2

Новости — Интернет
Группа Интернет

Состоялся выпуск P2P VPN 0.11.2 - реализации децентрализованной виртуальной частной сети, работающей по принципу Peer-To-Peer, при котором участники подключены друг к другу, а не через центральный сервер. Участники сети могут находить друг друга через BitTorrent-трекер или BitTorrent DHT, либо через других участников сети.

Список изменений:

  • Добавлена возможность использования приложения в headless режиме (без графического интерфейса).
  • Добавлена возможность генерации файла доступа, экспорта закрытых ключей сети и создания новой сети с данными, сохраненными в формате ini, без использования графического интерфейса.
  • Исправлена ошибка: кнопка закрытия в заголовке окна «добавить в черный список» (Ban peer) должна работать как кнопка НЕТ.
  • Исправлен код, который мог приводить к утечке дескриптора при работе с файлами.
  • Доступна функция ограничения скорости приема трафика.

>>> Подробности

 , , , ,

Skullnet
()

Удаление графического ключа смартфона

Форум — Desktop

Проблема такая есть смартфон (Vivo V17 NEO прошивка стоковая не рутированный, без USB Debagging без custom recovery стоит графический 4 значный ключ, вопрос в том можно ли его как-то разлочить из под линукса (смартфон находится в режиме MTP)? Снятие ключа nethunter’ом не предлагать!!! Короче говоря нужен или хард ресет или доступ к фс смартфона.

 

stoneghost
()

Имеет ли смысл разбивать HDD с TRIM на быстрый и медленный разделы?

Форум — Linux-hardware

Раньше до появления TRIM в HDD логика была понятная: блоки с меньшими адресами располагались в начале диска и потому линейная скорость была выше. Скорость в конце диска могла упасть в несколько раз. Был смысл делить диск на два раздела: с относительно быстро доступными данными и с более медленными. Небольшой хаос вносили переназначенные блоки.

Потом придумали SMR, за ней логично добавили TRIM. Какие последствия это имеет?

Значит ли это, что контроллер HDD теперь сам решает, в какую область писать данные, независимо от логических адресов? Если да, то насколько независимо?

Не получится ли так, что сначала заполнив второй, якобы медленный раздел, я получу замедление работы с первым?

 ,

newbie24
()

«Серый ip» и товарищ майор

Форум — Admin

А как определяется привязка ip к сайту в случае https ? Т е если кто-то написал гадость, то идет запрос к прову, кто в данным момент сидел на какой-то странице ? Но ведь результатов может быть несколько ?

Перемещено hobbit из general

 

bdfy1
()

Что за мода такая на «Скопировать»

Форум — Talks

Firefox 110, на оффтопике.

В контекстном меню меня радует текст «Скопировать» вместо «Копировать». Кажется, на маках была аналогичная ситуация.

Помянем?

Опуская вопросы того, как такие вещи именовать правильно с точки зрения семантики, всё таки во многом стоит вопрос пользовательского опыта. Я почему вообще заметил — потому что в какой-то момент эту кнопку просто потерял. Потом вот нашёл, потому что она стала другой. Ну допустим. Зачем мне в системе разные наименования в разных местах?

Ну и на засыпку — на онтопике также? С графикой нет ничего под рукой.

 

Dispetcher14
()

Как хранить ключ от GPG?

Форум — General

Как и где храните ключ от GPG? А если пользуетесь Алойэ Вера, тьфу, VeraCrypt, то всё равно же ключ в какой-то момент нужно будет переносить на новый комп, поэтому его всё равно нужно куда-то бэкапить, хранить, и чтобы безопасно.

 , ,

CrM3
()

Грохнул папку ./home

Форум — Admin

Со всеми потрохами, ей было 6 лет, как и серверу у которого uptime такой же. Просто дико rm -rf / home...

 ,

gobot
()

Смазка для вентиляторов (ПМС-100\200)

Форум — Linux-hardware

Закончилось масло для тримера, которое использовалось для смазки кулеров (ну и триммера) — оно всем устраивало. Если заказывать аналогичное, то оно несколько неадекватно по цене и ждать минимум неделю.

Из того, что можно пойти и купить:

  • «специализированное» в шприцах, по совсем неадекватной цене в DNS;
  • масло EURO Clean EUR A-06 для смазки бритвенных станков и тримеров, с несколько неоднозначными комментариями о качестве тары и какое-то количество о качестве самого масла в том же DNS;
  • «дешманское» масло марок ПМС-100 и ПМС-200 в радиомагазине.

Собственно возник вопрос о густоте ПМС-100 — оно по старому видео на Ютубе уже кажется гуще масла для тримеров, а тут упоминались, как подходящие для смазки, ещё более густые ПМС-200 и ПМС-400. Оно только кажется, что ПМС-100 гуще масла для тримеров или нет?

 

luiswoo
()