comando de strload

Propósito

Carrega e configura Ambiente de Streams Portáteis (PSE).

Sintaxe

strload [ -u | -q ] [ -f Arquivo ] [ -d Lista ] [ -m Lista ]

Descrição

O comando strload possibilita que o administrador do sistema carregue e descarregar drivers e módulos e para consultar o status de carregamento do PSE e de seus dependentes.

Por padrão, o comando strload carrega PSE de acordo com o arquivo /etc/pse.conf . A sinalização -f permite que o administrador utilize um arquivo de configuração alternativo. As bandeiras -d e -m são usadas para especificar drivers e módulos que não estão presentes nos arquivos de configuração (como quando novos drivers estão sendo desenvolvidos). O sinalizador -q informa sobre o status de carregamento do sistema (existência do kernel) dos drivers e módulos referenciados.

Arquivo de configuração

O arquivo de configuração é um banco de dados flat ASCII, orientado a linha. Os comentários são introduzidos por um # (sinal de libra), e continuam até o final da linha. As linhas em branco são ignoradas. O formulário para cada registro é:

attributes filename [argument [node [minor ...] ] ]

Os campos são separados por espaços, guias ou ambos. A-(traço) pode ser especificado como o valor de campo, indicando que o valor padrão deve ser usado. Os campos são definidos da seguinte forma:

Item Descrição
attributes Descreve a extensão para carregar. Os valores aceitáveis são:
D
Especifica um driver.
M
Especifica um módulo.
s
Cria o nó como um dispositivo padrão (não clonado).
+
Especifica que a extensão pode ser configurada mais de uma vez. Este valor deve ser especificado para todas as linhas contendo o nome do arquivo de extensão.
Item Descrição
filename Especifica o arquivo objeto contendo a extensão. Se o comando for emitido com um "/" (slash) no nome filename do driver ou módulo a ser carregado, descarregado ou consultado, o comando strload usa o valor no campo filename explicitamente. Se não houver "/" na entrada de filename, o comando strload primeiro procura uma cópia do driver ou módulo no diretório atual. Se o driver ou módulo não estiver no diretório atual, strload procura o driver ou módulo no diretório /usr/lib/drivers/pse .

Nota: Recomenda-se que o comando strload seja emitido a partir do diretório raiz (/). O comando strload para carregamento, descarregamento e consulta deve sempre ser emitido a partir do mesmo diretório.

O carregador de extensão do kernel REQUER que os nomes de caminhos usados sejam idênticos em carga, descarregamento e consultas. Isso, aliado à maneira como o filename é determinado por strload, poderia causar problemas. Todo byte no nome do caminho usado pelo comando strload deve EXATAMENTE corresponder a cada byte correspondente posicionado no nome do caminho usado pelo carregador de extensão do kernel porque o kernel faz um strcmp () no nome do filename ao procurar correspondências. Se o comando strload for emitido a partir de um diretório diferente para descarregar o módulo ou driver, ocorrerá um dos seguintes eventos:

  • Se o comando strload não encontrar uma cópia do driver ou módulo no novo diretório atual, strload tentativas de descarregar o driver ou módulo no diretório /usr/lib/drivers/pse . No entanto, esse nome de caminho pode não ser o mesmo que o nome do caminho que o carregador tenha logado para aquele driver ou módulo. Se o nome do caminho não for o mesmo, o comando strload falhar.
  • Se o comando strload encontrar uma outra cópia do módulo ou driver no novo diretório atual, então os nomes do caminho são os mesmos e o carregador descarrega corretamente o driver ou módulo que foi carregado. Assim, o comando strload é bem-sucedido, mas os resultados podem não ser como o usuário pretendido.

Por exemplo:

O cenário a seguir (NÃO recomendado) faz com que "spx", também conhecido como "A", seja descarregado. Provavelmente este não é o efeito desejado.

mkdir /tmp/foo /tmp/bar
cp /usr/lib/drivers/pse/spx /tmp/foo/A
cp /bin/ls /tmp/bar/A
cd /tmp/foo
strload -d A      # The loader knows the path and filename as
                  # "A" because "A" is found in the current
                  # directory
cd /tmp/bar
strload -q -d A   # Reports "yes" because there is "A" in the
                  # current directory. Note that the file "A"
                  # in /tmp/bar is NOT the same file "A" in
                  # /tmp/foo, but the loader does not care 
                  # because it identifies the file by 
                  # pathname.
strload -u -d A   # Unloads spx (also known as "A")!

A seguir, um cenário de erro:

mkdir /tmp/foo2 /tmp/bar2
cp /usr/lib/drivers/pse/spx /tmp/foo2/A
cd /tmp/foo2
strload -d A     # The loader knows the path and filename as
                 # "A"because "A" is found in the current
                 # directory.
cd /tmp/bar2
strload -q -d A  # Answers "no". There is no filename 
                 # in /tmp/bar2 that matches "A", so strload
                 # prepends pathname "/usr/lib/drivers/pse" to
                 # "A". "/usr/lib/drivers/pse/A" is not found,
                 # so strload answers "no".
strload -u -d A  # Fails - "A" does not exist.

A seguir, um cenário de erro:

cd /usr/lib/drivers/pse
strload -d spx   # The loader knows the path and filename as
                 # "spx" because "spx" is found in the 
                 # current directory.
cd /
strload -q -d spx # Answers "no". There is no filename in /
                  # that matches "spx", so strload prepends
                  # the pathname "/usr/lib/drivers/pse" to
                  # "spx". "/usr/lib/drivers/pse/spx" is found
                  # since it exists, so strload gives
                  # "/usr/lib/drivers/pse/spx" to the loader.
                  # The strcmp() fails since
                  # "/usr/lib/drivers/pse/spx" and "spx" do
                  # not match exactly.
strload -u -d spx # Fails - "spx" does not exist.
Item Descrição
argument Não tem significado para o comando strload . Esse campo é opcional. Ele é passado para a extensão quando sua rotina de configuração é chamada. Sua interpretação é específica para essa extensão. O argumento padrão é o valor dofilename.
node Especifica o nome do nó a ser criado. Esse campo é opcional. Ele se aplica apenas aos drivers e é usado como nome de nó criado quando o driver é carregado. Por padrão, o nó criado é /dev/filename.
minor Especifica nós adicionais, não clone para criar para este driver. Esse campo é opcional. Os nomes do nó são criados anexando o número menor para o nome do nó do driver clonado. Não mais do que cinco números menores podem ser dados (de 0 4), e um nó é criado para cada um deles.

As bandeiras -d e -m fazem com que o arquivo de configuração seja ignorado, a menos que ele seja explicitamente nomeado na linha de comando, da seguinte forma:

strload -f /tmp/my.conf -d newdriver

Nota: As bandeiras -d e -m não substituem o arquivo de configuração. Ou seja, se o driver dgb for carregado usando o arquivo de configuração, a sinalização -d tentará recarregá-lo mas falhará. O arquivo de configuração é processado antes das bandeiras -d e -m .

A variável Lista para as bandeiras -d e -m é uma lista separada por nomes de arquivo separados por vírgula, cada um dos quais contém um único driver ou módulo PSE. O processo de configuração procede como se uma linha de uma das formas a seguir fosse encontrada no arquivo de configuração:

d filename
m filename

Sinalizações

Item Descrição
-d Lista Lista drivers de dispositivos PSE para carregar ou descarregar. A variável Lista especifica uma lista separada por vírgula de nomes de objetos do driver.
-f Arquivo Configura PSE de acordo com as informações de configuração contidas no arquivo indicado pela variável Arquivo . O arquivo de configuração padrão é /etc/pse.conf..
-m Lista Lista módulos PSE para carregar ou descarregar. A variável Lista especifica uma lista separada por vírgula de nomes de objetos do módulo.
-q Relatórios de carga de relatórios de extensões.
-u Descarrega extensões.

Segurança

Atenção aos usuários do RBAC: Este comando pode realizar operações privilegiadas. Somente usuários privilegiados podem executar essas operações. Para obter mais informações sobre autorizações e privilégios, consulte Banco de dados de comandos privilegiados em Segurança. Para obter uma lista dos privilégios e das autorizações associadas a esse comando, consulte o comando ' lssecattr ou o subcomando ' getcmdattr.

Exemplos

  1. Entrando no seguinte cargas de comando PSE (se não for já carregado), odgbessbdrivers do diretório /usr/lib/drivers/pse/ , e oaootdo diretório atual, mas não utiliza o arquivo de configuração:
    root# strload -d dgb,ssb -m ./aoot
  2. Para descarregar oaootsomente, digite:
    root# strload -u -m ./aoot
  3. Entrar no comando a seguir pergunta se ospxdriver existe:
    root# strload -q -d 
    spx
    e produz a seguinte saída se não:
    spx
    : no
  4. O seguinte é um arquivo de configuração de exemplo:
    #example configuration file
    d       dgb                                     #line 1
    d       mux    -       -       0                #line 2
    ds      foo                                     #line 3
    d+      xtiso  tcp     /dev/xti/tcp             #line 4
    d+      xtiso  udp     /dev/xti/udp             #line 5
    m       aoot                                    #line 6
    A linha 1 carrega odgbextensão do driver como um dispositivo clonado denominado/dev/dgb. O argumento passou para odgbrotina de configuração édgb.

    A linha 2 carrega omuxextensão do driver como um dispositivo clonado denominado/dev/muxe também cria um nome de dispositivo padrão/dev/mux0com um número menor de 0 (zero). (Nenhum mais de cinco nomes de dispositivos podem ser criados com números menores de 0 4.)

    A linha 3 carrega ofooextensão do driver como dispositivo padrão (não clonado) denominado/dev/foo. O número menor é 0.

    As linhas 4 e 5 carregam oxtisoextensão do driver, e configurá-lo duas vezes: uma vez comotcpe uma vez comoudp. Os nós clone criados são/dev/xti/tcpe/dev/xti/udp. A rotina de configuração dextisoé chamado duas vezes: uma vez com o argumentotcp, e uma vez comudp.

    A linha 6 carrega oaootextensão do módulo. Nenhum nó é criado, e a rotina de configuração é passada o valoraoot.

  5. Para carregar o driver streams dlpi , digite:
    strload -f /etc/dlpi.conf

Arquivos

Item Descrição
/usr/lib/drivers/pse/* Contém extensões do kernel PSE.
/etc/pse.conf Arquivo de configuração do PSE padrão.
/ usr / sbin / strload Contém o comando strload .