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:
|
| 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 newdriverNota: 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 filenameSinalizaçõ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
Exemplos
- 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 - Para descarregar oaootsomente, digite:
root# strload -u -m ./aoot - Entrar no comando a seguir pergunta se ospxdriver existe:
e produz a seguinte saída se não:root# strload -q -d spxspx : no - O seguinte é um arquivo de configuração de exemplo:
A linha 1 carrega odgbextensão do driver como um dispositivo clonado denominado/dev/dgb. O argumento passou para odgbrotina de configuração édgb.#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 6A 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.
- 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 . |