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 / Perguntas / 507099
Accepted
davmos
davmos
Asked: 2019-03-19 21:28:39 +0800 CST2019-03-19 21:28:39 +0800 CST 2019-03-19 21:28:39 +0800 CST

Alguns arquivos especiais no Unix

  • 772

Fundo

Existem muitos tipos de arquivos especiais no Unix, por exemplo, links simbólicos, arquivos de dispositivo e arquivos proc (em /proc). /procarquivos são apenas arquivos normais ou até mesmo arquivos de texto. Mas de resto, só sei usá-los, mas não conheço sua estrutura interna e o que são (em profundidade). E, infelizmente, todas as maneiras de acessar arquivos só podem obter o objeto que eles representam. Em outras palavras, não há como obter a representação interna.

Perguntas

Para links simbólicos, não há dúvida de que existe uma string que armazena os caminhos de seus destinos. No entanto, se houver apenas uma string, como eles podem ser distinguidos dos arquivos de texto simples? Se houver um cabeçalho especial especificado pelos drivers do sistema de arquivos, qual é? Existe alguma convenção? Alguém pode me dizer qual é a representação binária de um link simbólico apontando /usr/bin/bash?

Para arquivos de dispositivo (nós), qual é sua estrutura e representação binária? De acordo com seus comportamentos, eles devem incluir informações sobre o número de interface e drivers relevantes. Mas isso fará com que seu tamanho varie muito. Alguém pode explicar isso em um nível binário?

Para compatibilidade de links simbólicos e arquivo de dispositivo (sei que é impossível para um mesmo arquivo de dispositivo funcionar em dois ambientes diferentes, mas podemos usar nossa imaginação para fazer um experimento) é o conteúdo binário desses arquivos fortemente dependente do tipo de sistema de arquivos e o kernel do sistema operacional? Por exemplo, se eu copiar (não via cpcomando, apenas escrever conteúdo binário idêntico) para um sistema de arquivos diferente (como de ext4 para xfs), esse arquivo (link simbólico ou arquivo de dispositivo) ainda é válido e funcional? Que tal copiá-lo de uma máquina Linux para uma máquina BSD?

Ou eles não são arquivos, e apenas registros especiais na parte do cabeçalho do sistema de arquivos?

files filesystems
  • 1 1 respostas
  • 461 Views

1 respostas

  • Voted
  1. Best Answer
    Stephen Kitt
    2019-03-19T21:48:33+08:002019-03-19T21:48:33+08:00

    Arquivos “especiais” ainda são arquivos, armazenados no sistema de arquivos como arquivos “normais”. Diretórios, arquivos, links simbólicos etc. são diferenciados por seu tipo, que é explicitamente armazenado no sistema de arquivos tje. Consulte Noções básicas sobre permissões e tipos de arquivo do UNIX para obter detalhes sobre os vários tipos de arquivo que você pode encontrar.

    Como os arquivos são armazenados e quais arquivos podem ser armazenados, depende do sistema de arquivos. Alguns sistemas de arquivos suportam um subconjunto de tipos de arquivos no estilo Unix; por exemplo, o FAT não pode armazenar nada além de arquivos ou diretórios (e rótulos de volume). Isso significa que o armazenamento de um arquivo “especial” depende do sistema de arquivos e você não pode copiar os bits que representam um arquivo de um sistema de arquivos para outro como está.

    Os links simbólicos armazenam a representação de texto de seu destino. Na maioria dos sistemas de arquivos atuais no estilo Unix, há espaço para alvos curtos ao lado das informações “principais” do link simbólico (em seu inode); links mais longos requerem a alocação de um bloco de dados.

    Os nós de dispositivo armazenam identificadores, conhecidos como principais e secundários dos nós. Esses são dois números pequenos com requisitos de armazenamento fixos e há espaço para eles no inode. Os números são específicos do sistema operacional, portanto, você não pode copiar um nó do Linux para o BSD enquanto preserva sua função.

    Você pode ver detalhes exaustivos da maneira do Ext4 de armazenar essas informações na documentação do Ext4 do kernel . Procure i_modeem particular para ver como o tipo de um arquivo é armazenado.

    • 6

relate perguntas

  • Disco alocado dinamicamente do Virtualbox *.vdi continua crescendo

  • Como encontrar tipos de arquivos específicos e tar-los?

  • du/df e ls relatando diferentes usos de disco

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

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