Что эта папка/run/user/1000?

"Linux", строго говоря, является ядром операционной системы, используемым и Android и подобной Unix операционной системой, упомянутой в разговорной речи как Linux, и иногда более официально как GNU/Linux, который мы знаем через дистрибутивы, такие как человечность и debian. Linux, ядро операционной системы, записан в C и должен быть скомпилирован в собственный машинный код.

Я думаю, что jordanm сделал хорошее задание ответа на вопрос № 2 относительно различий в пространстве пользователя между GNU/Linux и Android. Вот стек Android:

Linux (native machine code, instantiated by bootloader)
Dalvik (native machine code, instantiated by linux)
Application (java bytecode instantiated by dalvik)

Дальвик является "виртуальной машиной", какое время выполнения интерпретирует байт-код, и байт-код предварительно компилируется от Java. Другими словами, это - приложение пространства пользователя, которое работает все время как сервер, и это обрабатывает запросы для обработки байт-кода. Приложения Android записаны в Java, предварительно скомпилировали в байт-код и работали в виртуальной машине Дальвика.

Это очень похоже на то, что делают интерпретаторы во время выполнения, такие как оболочка, Python, жемчуг, рубин и JavaScript в том смысле, что это означает, что код, написанный для тех интерпретаторов, будет работать, если интерпретатор сделает. У них все нет той же стратегии относительно этапов между кодом и выполнением, но это - другая тема.

Те интерпретаторы все выполняются ядром операционной системы, которое также выполняет компьютер. И ядро и интерпретатор существуют на диске как машинный код; ядро является начальной загрузкой, загруженной в поршень, и впредь фундаментальный поток команд, пробегающий процессор, является ядром; ядро может также передать инструкции потоком от других артефактов машинного кода, которые оно загружает в поршень (такой как виртуальная машина Дальвика, или init демон, или оболочка или X-сервер), и это - объединенная логика системы, которая чередуется, инструкции в процессоре передают потоком таким образом, что ядро поддерживает свою роль и не может быть перемещено. Это - привратник всех аппаратных средств, таким образом, много дорог возвращается к нему, и это управляет часами.

Мобильность для приложений пространства пользователя упрощена для андроида/Дальвика, как это упрощено для жемчуга или Python. Это компилируется из кода как форма оптимизации для удовлетворения потребностей любой определенной архитектуры. Интерпретатор - то, что, как ядро, должен быть настроен и скомпилирован архитектурно-зависимым способом.

Теперь вот стек GNU/Linux:

Linux (native machine code, instantiated by bootloader) 
Application (native machine code, instantiated by linux)

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

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

Надежда, которая проливает некоторый свет. Относительно Linux на ARM существует два основных потока, один для armv6 системы команд, используемой на Raspberry Pi - они специализированы - и еще один общий пар для armv7, которому я верю, включает наиболее мобильные устройства. Мягкая фетровая шляпа, debian, человечность, и т.д. дистрибутивы ARM являются последним, тогда как pidora, Raspbian, и т.д. являются первым.

88
07.06.2019, 21:37
2 ответа

/ RUN / USER / $ UID создается PAM_SYSTEMD и используется для хранения файлов, используемых запущенными процессами для этого пользователя. Это могут быть такие вещи, как демон брелки, Pulseaudio и т. Д.

До размера Systemd , эти приложения обычно сохраняют свои файлы в / TMP . Они не могли использовать местоположение в / Home / $ Usor , поскольку домашние каталоги часто устанавливаются над сетевыми файловыми системами, и эти файлы не должны использоваться между хостами. / TMP было единственным расположением, указанным в FHS , которое является локальным и записи всех пользователей.

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

Так что SystemD пришел и создал / Run / user / $ uid . Этот каталог является локальным в системе и доступно только для целевого пользователя. Таким образом, приложения, которые хотели хранить свои файлы, локально больше не нужно беспокоиться о контроле доступа.
Это также сохраняет вещи хорошими и организованными. Когда пользователь выходит из системы, и не остаются активные сеансы, PAM_SYSTEMD вытирает каталог / RUN / USER / $ UID . С различными файлами разбросаны вокруг / TMP , вы не могли этого сделать.

105
27.01.2020, 19:30

Согласно последнему проекту FHS (File Hierarchy Standard), /run:

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

Назначения этого каталога когда-то обслуживались в /var/run. Обычно программы могут продолжать использовать /var/run для выполнения требований, установленных для /run в целях обратной совместимости. Программы, которые перешли в /var/run, должны прекратить использование /var/run, за исключением случаев, указанных в разделе о /var/run.

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

В случае каталога /run/user, используется различными пользовательскими службами, такими как dconf, pulse, systemd и т.д., которым необходимо место для их файлов блокировки и сокетов. В системе зарегистрировано столько же каталогов, сколько и UID различных пользователей.

12
27.01.2020, 19:30

Теги

Похожие вопросы