Comecei a usar o Ubuntu como meu sistema operacional principal e queria aprender sobre coisas que não deveria fazer e aprender com as coisas ruins que as pessoas fizeram no passado. Eu me deparei com esses e-mails sobre histórias de horror que os administradores de sistemas UNIX e Linux haviam feito em seu próprio sistema quando eram novos. Muitos deles envolveram o uso do comando mknod para distorcer e corrigir um problema. Eu nunca ouvi falar desse comando antes e a página de manual no Ubuntu não é muito útil. Portanto, minha pergunta é: para que esse comando é usado e quais são alguns exemplos em que é útil no dia a dia?
fonte
udev
é específico do Linux, não é? Talvez outros sistemas tipo Unix ainda criem dispositivos manualmente?devfs
e / oudevd
eu também não tenho experiência pessoal. Suspeito que outros departamentos tenham desenvolvido suas próprias maneiras de automatizar o processo de criação de nós de dispositivos./dev/snd
correspondentes aos vários elementos de cada bit de hardware de som detectado e suportado. O software que usa som pode usar esses dispositivos para gerar som sem precisar saber exatamente com que tipo de placa de som eles estão falando.Você pode fazer um pipe nomeado com ele.
Eu o uso com um programa para ler e outro para escrever nele.
Facilita a comunicação entre processos.
Caso contrário, você pode criar arquivos de dispositivo, para dispositivos que não estão presentes.
Também: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm
fonte
mknod
para algo mais do que fazer pipes nomeados é mais do que raro.Como DBAs da Oracle trabalhando em dispositivos brutos para criar grupos de discos Oracle ASM, usamos regularmente
mknod
para vincular dispositivos.As respostas acima foram muito úteis para mim, pois não somos administradores de sistema. Eu só queria ressaltar que pode ser raro do ponto de vista dos administradores de armazenamento usar,
mknod
mas do ponto de vista do Oracle ASM é um uso comum. (Pode haver alguém que possa apresentar uma maneira melhor para nós?)fonte
/dev
commknod
, essas alterações vão embora na próxima vez que o sistema for reiniciado. Você precisaria escrever um script ou umudev
arquivo de regras que fizesse as alterações / adições no momento da inicialização para torná-las persistentes.IMHO, mesmo para fazer pipes nomeados, o comando mkfifo é melhor que o mknod. Primeiro, é auto-descritivo em seu nome. Segundo, permite que a opção -m substitua as configurações do umask.
fonte
mknod foo p
quando esse era o único caminho.O comando "mknod" foi liberado para os licenciados no Unix (tm) Versão 4 pela AT&T. Eu recomendaria a todos que vale a pena gastar tempo e dinheiro para obter uma cópia do
Bell System Technical Journal, 57: 6. Julho-agosto de 1978, páginas 1905-1929. O sistema de compartilhamento de tempo UNIX. (Ritchie, DM; Thompson, K.)
Essa edição e, especialmente, esse artigo, levarão você a uma apreciação de vários conceitos fundamentais que permitem a construção do sistema operacional elegante, compacto, rápido, estável, seguro e versátil que era o Unix (tm). Os vários sistemas que estão agora disponíveis ainda são bastante versáteis ;-)
Vou tentar mencionar alguns deles aqui.
1) os bits setuid e setgid e como o uso dos referidos bits permite a separação dos usuários em domínios de privilégios confiáveis e não confiáveis. O salto é eterno, pois usuários confiáveis terão menos probabilidade de comandar o sistema “# cd /; rm -rf * .o ”, observe o uso indevido de privilégios e o“ espaço de destruição ”. Observe também que o final de uma frase com uma frase entre aspas dita a ordem do ponto final e as aspas finais. A gramática inglesa é péssima (fm). dmr e ken doaram a patente semnal ao público, abençoe-os.
2) acesso ao dispositivo através do mesmo espaço para nome dos arquivos. Aqui é onde a elegância simples de uma pequena ferramenta combinada com outras ferramentas simples para realizar atividades não pensadas pelos fundadores se torna poderosa.
3) Um arquivo no espaço de dados é uma sequência. A estrutura é imposta pelos programas no espaço do programa e não está fortemente vinculada ao complicado programa do canivete suíço. Apple (R), Microsoft (R) e IBM (R) poderiam ter produtos melhores se mais deles tivessem lido BSTJ.
4) stdin, stdout, stderr.
5) shells, processadores de comando interpretativos, capazes de facilmente usar ferramentas simples.
6) otimize o código apenas em loops internos, gaste seu tempo e dinheiro limitados onde é importante.
7) não incorpore sintaxe de E / S nos processadores de tradução de idiomas.
C. <FORTRAN
8) BEIJO.
9) “É mais fácil projetar e implementar uma extensão de sistema de compartilhamento de tempo multiusuário para um bom sistema em tempo real do que o contrário”, eu, Uma extensão de compartilhamento de tempo para RSX-11D, implementada usando pequenas ferramentas, escritas em MACRO 11 quando inevitável, o script pr de linguagens de nível superior era muito bom, 16 usuários em um PDP-11 de 248k bytes // 45 (16k de memória de estado sólido o restante do núcleo). Desenvolvimento de programa simultâneo com FOCAL, BASIC, FORTRAN IV, C, MACRO-11, edição de links, execução de programas, lote, interativo e aquisição de controle / dados de vários experimentos científicos usando um LAB-11 e interfaces personalizadas criativas para A / D, D / A, relógios de alta resolução, ...
Não é possível atrasar a edição irritante observável com CRTs de 9600 baud ou impressoras de 120 cps e DECwriters de 30 cps. Um staccato um pouco irregular com uma impressora de 300 lpm. UT200 e 2780 para RJE. Desenvolvimento de programa mais rápido que o RSX-11M, RSX-11M +, IAS e versões anteriores do VMS.
Um agendador de compartilhamento de tempo realmente simples, implementado como uma tarefa em tempo real, usando as características felizes de um ATL vinculado à prioridade, implementado como uma desenfileiramento.
Hoje em dia, as variedades Unix são extremamente rápidas, mas apenas porque as CPUs podem executar um loop infinito em três segundos. TFC.
fonte