AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-23692

PSkocik's questions

Martin Hope
Petr Skocik
Asked: 2024-04-28 23:28:52 +0800 CST

Qual é a justificativa para a mudança da convenção de chamada do syscall nos novos Linux?

  • 13

Citando https://www.kernel.org/doc/Documentation/process/adding-syscalls.rst :

Pelo menos no x86 de 64 bits, será um requisito difícil a partir da v4.17 não chamar funções de chamada do sistema no kernel. Ele usa uma convenção de chamada diferente para chamadas de sistema, onde struct pt_regs é decodificada dinamicamente em um wrapper syscall que então transfere o processamento para a função syscall real. Isso significa que apenas os parâmetros que são realmente necessários para um syscall específico são passados ​​durante a entrada do syscall, em vez de preencher seis registros da CPU com conteúdo aleatório do espaço do usuário o tempo todo (o que pode causar sérios problemas na cadeia de chamadas).

A que problema sério na cadeia de chamadas se refere a última cláusula entre parênteses?

Para mim, parece estúpido não carregar os seis registros na preparação genérica para o syscall. Forçar cada wrapper do syscall a fazer isso os torna maiores e as funções do syscall se tornam um novo caso especial, então estou me perguntando qual é o "problema sério" de ter conteúdo de usuário não intencional em registros de argumentos não utilizados.

linux
  • 1 respostas
  • 341 Views
Martin Hope
PSkocik
Asked: 2022-11-23 06:57:14 +0800 CST

Como envio um patch com uma mensagem para o kernel do Linux?

  • 8

Então eu encontrei um bug, consertei e quero enviar o patch para ele.

Segui o vídeo do youtube Write and submit your first kernel patch patch , configurei o git-email, formatei tudo, etc., e quero enviá-lo.

Meu problema: não quero enviá-lo sozinho, mas com uma mensagem de acompanhamento e um código de espaço de usuário de amostra que é corrigido pelo patch. Ambos parecem inadequados para a mensagem de confirmação.

Devo enviá-lo através de um e-mail separado? Isso também precisa ser formatado de alguma forma especial?

linux
  • 1 respostas
  • 56 Views
Martin Hope
PSkocik
Asked: 2022-02-23 06:05:43 +0800 CST

Comparando as permissões de um arquivo/diretório existente com as do que seria criado

  • 0

Suponha que eu esteja criando um arquivo ou diretório com algum argumento de nome e modo usando uma chamada de sistema e que as operações falhem com EEXIST.

Supondo que eu conheça meu umask, euide egid, como posso saber se esse arquivo/diretório existente tem permissões equivalentes ao que a chamada do sistema teria criado se a operação fosse bem-sucedida.

AFAIK, para permissões clássicas, a resposta seria true iff .st_gid == egid && .st_uid == euid && (.st_mode & 07777) == (RequestedMode & 07777 & ~CurrentUmask)e os tipos de arquivo encontrados/esperados correspondem.

Como isso poderia ser estendido a um sistema com listas de controle de acesso?

permissions acl
  • 1 respostas
  • 24 Views
Martin Hope
PSkocik
Asked: 2019-09-04 04:04:03 +0800 CST

O POSIX garante os caminhos para qualquer utilitário padrão?

  • 25

De C, qual é a maneira mais fácil de executar um utilitário padrão (por exemplo, ps) e nenhum outro?

O POSIX garante que, por exemplo, um padrão psestá em /bin/psou devo redefinir a variável de ambiente PATH para o que recebo confstr(_CS_PATH, pathbuf, n);e, em seguida, executar o utilitário por meio da pesquisa PATH?

c path
  • 2 respostas
  • 3416 Views
Martin Hope
PSkocik
Asked: 2019-03-03 16:19:50 +0800 CST

Contraparte do MacOS ao unshare do Linux (2)

  • 4

O MacOS tem uma contrapartida para o unshare(2) do Linux ?

Eu gostaria que o seguinte falhasse em ambos os sistemas.

#define _GNU_SOURCE
#include <stdlib.h>
#include <sched.h>
int main()
{
#if __linux__
    if(0>unshare(CLONE_NEWNET)) return EXIT_FAILURE;
#elif __APPLE__
    /*?*/
#endif
    //this should fail on either system
    if(0!=system("curl www.google.com")) return EXIT_FAILURE;
}
networking osx
  • 1 respostas
  • 1235 Views
Martin Hope
PSkocik
Asked: 2019-01-31 12:23:35 +0800 CST

Comportamento de crianças com antecedentes diretos versus indiretos na leitura

  • 1

Quando eu faço

( sleep 1; read x ; echo x=$x; echo done ) & 

então, com as configurações padrão do terminal, o trabalho é interrompido por SIGTTIN.

Se eu fizer

( ( sleep 1; read x ; echo x=$x; echo done ) & )

o readsyscall dentro readrecebe EOF (retorna com 0)` e nenhuma parada por SITTIN acontece.

Qual é a explicação para esses comportamentos

shell terminal
  • 1 respostas
  • 44 Views
Martin Hope
PSkocik
Asked: 2018-11-03 02:05:10 +0800 CST

Substituição de string: Se vazio, substitua, caso contrário, torne vazio

  • 4

Eu queria saber se existe uma abreviação para esse tipo de coisa.

Atualmente posso fazer.

var_empty=; [ -n "$var" ] || var_empty=1; #intermediary variable
echo "REPL_if_var_empty_otherwise_empty=${var_empty:+REPL}"

Isso é possível sem o intermediário?

eu tentei

sh -c 'readonly SAME=SAME; var=; echo test0=${var:-SAME} test1=${SAME:+REPL}; echo REPL_if_var_empty_otherwise_empty=${${var:-SAME}:+REPL}'

mas isso resulta em um bad substitutionerro no último echo( test0=SAME test1=REPL). Por que é que? Existe outra maneira?

shell posix
  • 2 respostas
  • 3463 Views
Martin Hope
PSkocik
Asked: 2018-10-05 06:51:48 +0800 CST

nc ficando preso inesperadamente

  • 0

Eu esperava isso:

nc -l localhost 7000 </dev/null &
nc localhost 7000 </etc/profile

e isto

nc -l localhost 7000 </etc/profile &
nc localhost 7000 </dev/null

para terminar depois de imprimir meu /etc/profile mas ambos os grupos de comandos acabam travando (ambos os processos no primeiro caso; no segundo caso, o servidor termina mas o cliente não).

Por que os comandos não terminam?

Isso é um bug no meu nc/Linux (4.15)? Eu tentei no MacOS e Cygwin e apenas os comandos do Linux não estão terminando.

linux networking
  • 1 respostas
  • 2396 Views
Martin Hope
PSkocik
Asked: 2018-09-17 00:02:29 +0800 CST

Não é possível chown 0 (root) no Cygwin

  • 5

Este comando:

rm -f testfile && touch testfile && chown 0 testfile

está falhando no Cygwin com erro:

chown: changing ownership of 'testfile': Invalid argument

Por quê?

root cygwin
  • 1 respostas
  • 523 Views
Martin Hope
PSkocik
Asked: 2018-09-02 05:21:29 +0800 CST

Corrigido último argumento com xargs

  • 5

É possível usar xargs para invocar um comando para que o último argumento do comando seja corrigido?

Minha tentativa:

printf '%s\n' a b c d | xargs -I{} echo {} LAST

acaba fazendo

echo a LAST  
echo b LAST  
echo c LAST  
echo d LAST  

Eu quero que xargs invoque

echo a b c d LAST
#fit as many as you can but always finish wiht LAST

É possível fazer isso, de preferência de forma portátil?

xargs
  • 2 respostas
  • 1954 Views
Martin Hope
PSkocik
Asked: 2018-08-31 02:18:32 +0800 CST

Testar se uma variável não está definida

  • 9

Existe um teste portátil para saber se uma variável (cujo nome é conhecido estaticamente em um script) não está definida (que é diferente de vazia)?

shell
  • 2 respostas
  • 4138 Views
Martin Hope
PSkocik
Asked: 2018-07-29 08:40:15 +0800 CST

Maneira portátil de executar um script simples na inicialização

  • 0

Estou tentando executar um script na inicialização como root.

(Apenas configura um diretório de propriedade do root em /tmp ).

Atualmente, estou usando este script para configurar o gancho de inicialização e parece fazer o trabalho:

#!/bin/sh -eu
if [ 0 -eq $((${1:-0})) ]; then
    #install
    [ -x /etc/init.d/tmpsetup ] ||  {
        cat > /etc/init.d/tmpsetup <<'EOF'
#!/bin/sh -eu
[ $(id -u) -eq 0 ]
umask 0222
mkdir -p /tmp/u/
EOF
        chmod a+rx /etc/init.d/tmpsetup
        update-rc.d tmpsetup defaults 99
        }
else
    #uninstall
        rm -f /etc/init.d/tmpsetup
        update-rc.d tmpsetup remove
fi

Existe uma maneira mais portátil / melhor de fazer isso?

(É para implementar um recurso /tmp por usuário. Deve fazer parte de um script de instalação que adapta um sistema existente.)

startup init
  • 1 respostas
  • 62 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve