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 / unix / 问题

All perguntas(unix)

Martin Hope
Ownsky
Asked: 2023-11-25 20:18:47 +0800 CST

Por que o endereço virtual não está alinhado a 4 KB quando seu endereço físico está alinhado a 4 KB?

  • 29

Resumidamente, tenho um endereço físico dentro do kernel (9.932.111.872 ou 0x250000000), que aparentemente está alinhado a 4kB (tamanho da página). Quando uso a __va()função do kernel para obter o endereço virtual do kernel , recebo algo como 0xf570660f(diferente em cada inicialização), que não está alinhado a 4kB .

Estou em um sistema de 64 bits, então não há HIGHMEM e pensei que, devido ao modelo de memória liner, um endereço virtual de um endereço físico alinhado a 4kB também deveria ser alinhado a 4kB. Perdi algo? O endereço virtual não deveria ser phys_addr + PAGE_OFFSET? Ou é a influência do sparsemem? Mas talvez também deva ser alinhado a 4kB?

Aqui estão mais detalhes:

Meu ambiente de trabalho está em uma VM QEMU x86 de 64 bits. Estou tentando usar um PMEM no DEV-DAXmodo como memória normal. Posso obter o endereço inicial físico dele ( 0x250000000), que foi confirmado como correto. Então preciso transferi-lo para o endereço virtual no espaço do kernel para poder usá-lo conforme necessário. Aqui está um código:

static long nvpc_map_whole_dev(struct dax_device *dax_dev, void **kaddr, pfn_t *pfn)
{
    // get the device
    struct dev_dax_nvpc *dax_nvpc = (struct dev_dax_nvpc *)dax_get_private(dax_dev);
    
    // get the virtual address and the pfn_t
    *kaddr = __va(dax_nvpc->phys_start);
    *pfn = phys_to_pfn_t(dax_nvpc->phys_start, PFN_MAP);
    
    pr_info("[NVPC DEBUG]: paddr %#llx kaddr %p pfn %lu\n", dax_nvpc->phys_start, *kaddr, pfn_t_to_pfn(*pfn));
    pr_info("[NVPC DEBUG]: kaddr-paddr %#llx\n", __pa(*kaddr));
    return PHYS_PFN(dax_nvpc->size);
}

E aqui está o resultado que obtive:

insira a descrição da imagem aqui

Mostrado na linha marcada, o paddr dax_nvpc->phys_start, e o pfn, estão ambos certos. Mas o kaddr(endereço virtual) é confuso para mim. Então, quando transfiro de kaddrvolta para o endereço físico (a próxima linha de saída), o resultado fica correto.

Além do mais, posso fazer qualquer operação na memória de kaddraté kaddr + dax_nvpc->size, não há falha de página.

Alguém poderia me dizer por que o endereço virtual não está alinhado a 4kB? Estou sendo um idiota em algum lugar? Além disso, posso fazer algo para garantir que o endereço virtual também esteja alinhado a uma página?

kernel
  • 1 respostas
  • 3586 Views
Martin Hope
Fajela Tajkiya
Asked: 2022-05-04 13:57:12 +0800 CST

Ao usar cat para criar arquivo, tenho que digitar ctrl+d duas vezes para finalizar a entrada, isso é esperado? [duplicado]

  • 29
Essa pergunta já tem respostas aqui :
Ctrl+D para terminar a entrada da linha do terminal (2 respostas)
Fechado há 5 meses .

Acabei de aprender um truque para criar um novo arquivo com o catcomando. Pelos meus testes, se a última linha não for seguida por uma nova linha, terei que digitar ctrl+dduas vezes para finalizar a entrada, conforme demonstrado abaixo.

[root@192 ~]# gato > teste
uma
b
ctrl+d[root@192 ~]# gato > teste
uma
b ctrl+dctrl+d[root@192 ~]#

Isso é esperado? Por que esse comportamento?

cat newlines
  • 2 respostas
  • 2480 Views
Martin Hope
ks1322
Asked: 2022-01-23 03:03:53 +0800 CST

Por que o 'ping' não gera um resumo ao redirecionar a saída?

  • 29

Consigo fazer ping no google.com por vários segundos e quando pressiono Ctrl+ C, um breve resumo é exibido na parte inferior:

$ ping google.com
PING google.com (74.125.131.113) 56(84) bytes of data.
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=2 ttl=56 time=46.7 ms
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=3 ttl=56 time=45.0 ms
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=4 ttl=56 time=54.5 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3009ms
rtt min/avg/max/mdev = 44.965/48.719/54.524/4.163 ms

No entanto, quando faço a mesma saída de redirecionamento para o arquivo de log com tee, o resumo não é exibido:

$ ping google.com | tee log
PING google.com (74.125.131.113) 56(84) bytes of data.
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=1 ttl=56 time=34.1 ms
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=2 ttl=56 time=57.0 ms
64 bytes from lu-in-f113.1e100.net (74.125.131.113): icmp_seq=3 ttl=57 time=50.9 ms
^C

Posso obter o resumo também ao redirecionar a saída com tee?

linux signals
  • 2 respostas
  • 2683 Views
Martin Hope
Thomas
Asked: 2021-11-16 02:24:50 +0800 CST

Como restaurar um arquivo sudoers quebrado sem poder usar o sudo?

  • 29

Estou recebendo o seguinte erro de sudo:

$ sudo ls
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

Claro que não posso chownvoltar rootsem usar sudo. Também não temos uma senha na rootconta.

Sinceramente, não sei como o sistema entrou nessa bagunça, mas agora cabe a mim resolvê-lo.

Normalmente, eu inicializaria no modo de recuperação, mas o sistema é remoto e acessível apenas por uma VPN enquanto inicializado normalmente. Pela mesma razão, inicializar a partir de um live CD ou pendrive também é impraticável.

O sistema é o Ubuntu 16.04 (além do EOL, não pergunte), mas a pergunta e as respostas são provavelmente mais gerais.

linux sudo
  • 3 respostas
  • 6101 Views
Martin Hope
placid chat
Asked: 2019-10-09 03:33:24 +0800 CST

O que é o ligante de ouro?

  • 29

Alguém já usou o goldlinker? Para vincular um projeto bastante grande, tive que usar isso em vez do GNU ld, que gerava alguns erros e falhava ao vincular.

Como o goldvinculador é capaz de vincular grandes projetos onde ldfalha? Existe algum tipo de truque de memória em algum lugar?

linux
  • 4 respostas
  • 11150 Views
Martin Hope
user6039980
Asked: 2019-08-08 04:26:04 +0800 CST

O que pode fazer o Linux parar de responder por minutos ao navegar em determinados sites?

  • 29

Estou usando o Linux 4.15, e isso acontece comigo muitas vezes quando o uso de RAM atinge o máximo - Todo o sistema operacional fica sem resposta, congelado e inútil. A única coisa que vejo funcionando é o disco (partição principal do sistema), que está em uso massivo.

Não sei se esse problema é específico do sistema operacional, específico do hardware ou específico da configuração.

Alguma ideia?

linux freeze
  • 8 respostas
  • 8606 Views
Martin Hope
wedi
Asked: 2019-03-05 15:46:03 +0800 CST

chrony vs. systemd-timesyncd – Quais são as diferenças e casos de uso como clientes NTP?

  • 29

De alguma forma, mas não com base na pergunta mais antiga "ntpd vs. systemd-timesyncd - Como obter uma sincronização NTP confiável?" , gostaria de perguntar sobre as diferenças entre chrony e systemd-timesyncd em termos de um cliente NTP .

Eu sei que o systemd-timesyncd é uma implementação de cliente ntp mais ou menos mínima, enquanto o chrony é uma solução de daemon NTP completa que inclui um cliente NTP.

As notas de lançamento do ubuntu Bionic Beaver afirmam o seguinte:

Para necessidades de sincronização de tempo simples, o sistema básico já vem com systemd-timesyncd. O Chrony só é necessário para atuar como servidor de horário ou se você deseja que a sincronização anunciada seja mais precisa e eficiente.

Eu gosto da ideia de usar uma ferramenta pré-instalada mínima para fazer o trabalho e tenho certeza de que o systemd-timesyncd fará o trabalho para meus casos de uso, ainda estou curioso:

  • Quais são as diferenças do mundo real entre os dois em termos de precisão?
  • Quais são as diferenças de eficiência?
  • Quais são as necessidades de sincronização de tempo "não simples", também conhecidas como casos de uso para chrony como cliente NTP?
systemd ntp
  • 3 respostas
  • 17009 Views
Martin Hope
Adam R. Grey
Asked: 2018-08-31 05:19:03 +0800 CST

É verdade que um tarball pode mudar para onde os arquivos são extraídos, independentemente dos comandos usados ​​para extraí-lo?

  • 29

Eu tenho um colega de trabalho que diz que você precisa ter cuidado ao extrair tarballs porque eles podem fazer alterações que você não conhece. Eu sempre pensei que um tarball era apenas uma hierarquia de arquivos compactados, então se você extraí-lo para /tmp/example/ ele não pode colocar um arquivo em /etc/ ou qualquer coisa assim.

filenames tar
  • 2 respostas
  • 2274 Views
Martin Hope
supercontra
Asked: 2018-08-04 23:29:39 +0800 CST

Como comentar várias linhas no nano de uma só vez?

  • 29

Eu posso selecionar várias linhas usando Esc+A. Depois disso, qual(is) atalho(s) devo usar para comentar/descomentar as linhas selecionadas?

nano
  • 1 respostas
  • 43555 Views
Martin Hope
sscirrus
Asked: 2017-12-08 15:38:45 +0800 CST

Como executar um comando dentro de um virtualenv usando systemd

  • 30

Eu acredito que isso deve ser simples, mas não consigo fazê-lo funcionar corretamente.

Estes são os comandos que posso executar na linha de comando:

cd /home/debian/ap

# Start a virtualenv
source venv-ap/bin/activate

# This needs to happen inside the virtualenv and takes ~20 seconds
crossbar start

# Outside the virtualenv, perhaps in a different command line window
python3 /home/debian/myscript.py

Esses comandos devem ser executados nessa ordem. Devido ao virtualenv, o não executável para crossbar e o script python separado posteriormente, não consegui descobrir a melhor maneira de fazer isso funcionar. Meu trabalho atual em andamento:

[Unit]
Description=Start CB
After=network.target

[Service]
Type=simple
User=debian
ExecStartPre=source /home/debian/ap/venv-ap/bin/activate
ExecStart=cd /home/debian/ap/ && crossbar start
Restart=always

[Install]
WantedBy=multi-user.target
systemd python
  • 2 respostas
  • 34968 Views
Prev
Próximo

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