Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

snapuserd
Демон snapuser

Тип файла: служба
  Рус  
snapuserd: Warning: SetUsageMessage() never called

  Flags from external/gflags/src/gflags.cc:

  • -flagfile (load flags from file) type: string default: ""

  • -fromenv (set flags from the environment [use 'export FLAGS_flag1=value']) type: string default: ""

  • -tryfromenv (set flags from the environment if present) type: string default: ""

  • -undefok (comma-separated list of flag names that it is okay to specify on the command line even if the program does not define a flag with that name. IMPORTANT: flags in this list that have arguments MUST use the flag=value format) type: string default: "" Flags from external/gflags/src/gflags_completions.cc:

  • -tab_completion_columns (Number of columns to use in output for tab completion) type: int32 default: 80

  • -tab_completion_word (If non-empty, HandleCommandLineCompletions() will hijack the process and attempt to do bash-style command line flag completion on this value.) type: string default: "" Flags from external/gflags/src/gflags_reporting.cc:

  • -help (show help on all flags [tip: all flags can have two dashes]) type: bool default: false currently: true

  • -helpfull (show help on all flags -- same as -help) type: bool default: false

  • -helpmatch (show help on modules whose name contains the specified substr) type: string default: ""

  • -helpon (show help on the modules named by this flag value) type: string default: ""

  • -helppackage (show help on all modules in the main package) type: bool default: false

  • -helpshort (show help on only the main module for this program) type: bool default: false

  • -helpxml (produce an xml version of help) type: bool default: false

  • -version (show version and build info and exit) type: bool default: false Flags from system/core/fs_mgr/libsnapshot/snapuserd_daemon.cpp:

  • -no_socket (If true, no socket is used. Each additional argument is an INIT message.) type: bool default: false

  • -socket (Named socket or socket path.) type: string default: "snapuserd"
  •    

    Комментарии
    Механизм копирования при записи (англ. Copy-on-write, COW) используется для оптимизации многих процессов, происходящих в операционной системе, таких как, например, работа с оперативной памятью или файлами на диске.
    Идея подхода copy-on-write заключается в том, что при чтении области данных используется общая копия, в случае изменения данных — создается новая копия.
    Например, при работе UNIX-функции fork() вместо реального копирования, под которое надо выделять память, ядро меняет дескрипторы страниц памяти материнского процесса, запрещая какую-либо запись в страницы данных (страницы программного кода и так запрещены для записи; хотя здесь имеются свои тонкости — но на дальнейшие рассуждения они не влияют). Затем создаётся дочерний процесс, которому копируются дескрипторы страниц памяти материнского процесса. При этом ядро помечает эти страницы как совместно используемые.
    Попытка записи в отображённые страницы (неважно, со стороны материнского или дочернего процесса) вызывает исключение (exception), которое передаёт управление в ядро. Ядро видит, что это обращение было законным, и создаёт копию изменяемой страницы. Таким образом удаётся снизить количество потребляемой программами физической памяти. Механизм COW достаточно сложен в реализации, особенно в многоядерных системах, а ошибки в нём могут приводить к уязвимостям, например, Уязвимость Dirty COW (Linux, 2007-октябрь 2016)
    Механизм получил большое распространение при создании новейших файловых систем, таких как ZFS и Btrfs. Благодаря ему создание мгновенных снимков в данных системах происходит практически мгновенно, не занимая при этом больших ресурсов носителя информации.