(itstool) path: sect1/para

This tutorial would never have been possible without the help of many experienced FreeBSD programmers from the <link xlink:href="">FreeBSD technical discussions mailing list</link>, many of whom have patiently answered my questions, and pointed me in the right direction in my attempts to explore the inner workings of <trademark class="registered">UNIX</trademark> system programming in general and FreeBSD in particular.
Context English Portuguese (Brazil) State
For one thing, it may simply not be possible. <trademark class="registered">UNIX</trademark> runs in protected mode. Only the kernel and device drivers are allowed to access hardware directly. Perhaps a particular <trademark class="registered">UNIX</trademark> clone will let you read the keyboard scan codes, but chances are a real <trademark class="registered">UNIX</trademark> operating system will not. And even if one version may let you do it, the next one may not, so your carefully crafted software may become a dinosaur overnight. Por um lado, pode simplesmente não ser possível. <trademark class="registered"> UNIX </trademark> funciona no modo protegido. Somente o kernel e os drivers de dispositivos podem acessar o hardware diretamente. Talvez um particular <trademark class="registered"> UNIX </trademark> clone permitirá que você leia os códigos de varredura do teclado, mas as chances são <trademark class="registered"> UNIX </trademark> sistema operacional não. E mesmo que uma versão permita que você faça isso, a próxima talvez não, então seu software cuidadosamente criado pode se tornar um dinossauro da noite para o dia ”
<trademark class="registered">UNIX</trademark> Is an Abstraction <trademark class="registered">UNIX</trademark> Is an Abstraction
But there is a much more important reason not to try accessing the hardware directly (unless, of course, you are writing a device driver), even on the <trademark class="registered">UNIX</trademark> like systems that let you do it: Mas há uma razão muito mais importante para não tentar acessar o hardware diretamente (a menos, é claro, que você esteja gravando um driver de dispositivo), mesmo <trademark class="registered"> UNIX </trademark> como sistemas que permitem fazer isso:
<emphasis><trademark class="registered">UNIX</trademark> is an abstraction!</emphasis> <emphasis><trademark class="registered">UNIX</trademark> is an abstraction! </emphasis>
There is a major difference in the philosophy of design between <acronym><trademark class="registered">MS-DOS</trademark></acronym> and <trademark class="registered">UNIX</trademark>. <acronym><trademark class="registered">MS-DOS</trademark></acronym> was designed as a single-user system. It is run on a computer with a keyboard and a video screen attached directly to that computer. User input is almost guaranteed to come from that keyboard. Your program's output virtually always ends up on that screen. Há uma grande diferença na filosofia do design entre <trademark class="registered"> <acronym>MS-DOS</acronym> </trademark> e <trademark class="registered"> UNIX </trademark> . <trademark class="registered"> <acronym>MS-DOS</acronym> </trademark> foi projetado como um sistema de usuário único. Ele é executado em um computador com um teclado e uma tela de vídeo conectada diretamente a esse computador. É quase garantido que a entrada do usuário venha desse teclado. A saída do seu programa quase sempre termina na tela
This is NEVER guaranteed under <trademark class="registered">UNIX</trademark>. It is quite common for a <trademark class="registered">UNIX</trademark> user to pipe and redirect program input and output: Isso nunca é garantido sob <trademark class="registered">UNIX</trademark>. É bastante comum para um usuário <trademark class="registered">UNIX</trademark> para canalizar e redirecionar entrada e saída do programa:
<prompt>%</prompt> <userinput>program1 | program2 | program3 &gt; file1</userinput> <prompt>%</prompt> <userinput>program1 | program2 | program3 &gt; file1</userinput>
If you have written <application>program2</application>, your input does not come from the keyboard but from the output of <application>program1</application>. Similarly, your output does not go to the screen but becomes the input for <application>program3</application> whose output, in turn, goes to <filename>file1</filename>. Se você escreveu <application> program2 </application> , sua entrada não vem do teclado, mas da saída de <application> program1 </application> . Da mesma forma, sua saída não vai para a tela, mas se torna a entrada para <application> program3 </application> cuja produção, por sua vez, vai para <filename> arquivo1 </filename>
But there is more! Even if you made sure that your input comes from, and your output goes to, the terminal, there is no guarantee the terminal is a PC: It may not have its video memory where you expect it, nor may its keyboard be producing <acronym>PC</acronym>-style scan codes. It may be a <trademark class="registered">Macintosh</trademark>, or any other computer. Mas há mais! Mesmo que você tenha certeza de que sua entrada vem e de que sua saída vai para o terminal, não há garantia de que o terminal seja um PC: ele pode não ter sua memória de vídeo onde você espera, nem seu teclado está produzindo códigos de varredura no estilo <acronym>PC</acronym> . <trademark class="registered"> Macintosh </trademark> ou qualquer outro computador.
Now you may be shaking your head: My software is in <acronym>PC</acronym> assembly language, how can it run on a <trademark class="registered">Macintosh</trademark>? But I did not say your software would be running on a <trademark class="registered">Macintosh</trademark>, only that its terminal may be a <trademark class="registered">Macintosh</trademark>. Agora você pode estar balançando a cabeça: Meu software está na linguagem assembly do <acronym>PC</acronym> , como ele pode ser executado em um <trademark class="registered"> Macintosh </trademark> ? Mas eu não disse que seu software estaria rodando em um <trademark class="registered"> Macintosh </trademark> , só que o seu terminal pode ser um <trademark class="registered"> Macintosh </trademark>
Under <trademark class="registered">UNIX</trademark>, the terminal does not have to be directly attached to the computer that runs your software, it can even be on another continent, or, for that matter, on another planet. It is perfectly possible that a <trademark class="registered">Macintosh</trademark> user in Australia connects to a <trademark class="registered">UNIX</trademark> system in North America (or anywhere else) via <application>telnet</application>. The software then runs on one computer, while the terminal is on a different computer: If you try to read the scan codes, you will get the wrong input! Sob <trademark class="registered"> UNIX </trademark> , o terminal não precisa estar diretamente conectado ao computador que executa o software, pode até estar em outro continente ou, em outras palavras, em outro planeta. É perfeitamente possível que um <trademark class="registered"> Macintosh </trademark> usuário na Austrália se conecta a um <trademark class="registered"> UNIX </trademark> sistema na América do Norte (ou em qualquer outro <application> telnet </application> . O software é executado em um computador, enquanto o terminal está em um computador diferente: se você tentar ler os códigos de verificação, obterá a entrada errada!
Same holds true about any other hardware: A file you are reading may be on a disk you have no direct access to. A camera you are reading images from may be on a space shuttle, connected to you via satellites. O mesmo vale para qualquer outro hardware: um arquivo que você está lendo pode estar em um disco que você não tem acesso direto. Uma câmera da qual você está lendo imagens pode estar em um ônibus espacial, conectado a você via satélites.
That is why under <trademark class="registered">UNIX</trademark> you must never make any assumptions about where your data is coming from and going to. Always let the system handle the physical access to the hardware. É por isso que sob <trademark class="registered">UNIX</trademark> você nunca deve fazer suposições sobre onde seus dados estão vindo e indo. Sempre deixe o sistema manipular o acesso físico ao hardware.
These are caveats, not absolute rules. Exceptions are possible. For example, if a text editor has determined it is running on a local machine, it may want to read the scan codes directly for improved control. I am not mentioning these caveats to tell you what to do or what not to do, just to make you aware of certain pitfalls that await you if you have just arrived to <trademark class="registered">UNIX</trademark> form <acronym><trademark class="registered">MS-DOS</trademark></acronym>. Of course, creative people often break rules, and it is OK as long as they know they are breaking them and why. Essas são advertências, não regras absolutas. Exceções são possíveis. Por exemplo, se um editor de texto determinou que está sendo executado em uma máquina local, ele pode querer ler os códigos de verificação diretamente para melhorar o controle. Não estou mencionando essas advertências para diga-lhe o que fazer ou o que não fazer, apenas para conscientizá-lo de certas armadilhas que o aguardam se você acabou de chegar <trademark class="registered"> UNIX </trademark> Formato <trademark class="registered"> <acronym>MS-DOS</acronym> </trademark> . É claro que as pessoas criativas costumam quebrar as regras, e está tudo bem, desde que elas saibam que estão quebrando as regras e por quê
Acknowledgements Agradecimentos
This tutorial would never have been possible without the help of many experienced FreeBSD programmers from the <link xlink:href="">FreeBSD technical discussions mailing list</link>, many of whom have patiently answered my questions, and pointed me in the right direction in my attempts to explore the inner workings of <trademark class="registered">UNIX</trademark> system programming in general and FreeBSD in particular. Este tutorial nunca teria sido possível sem a ajuda de muitos programadores experientes do FreeBSD <link xlink:href="">Lista de discussão de discussões técnicas do FreeBSD</link> muitos dos quais pacientemente responderam as minhas perguntas, e apontaram-me na direção certa em minhas tentativas de explorar o funcionamento interno de <trademark class="registered">UNIX</trademark> programação do sistema em geral e FreeBSD em particular.
Thomas M. Sommers opened the door for me . His <link xlink:href="">How do I write "Hello, world" in FreeBSD assembler?</link> web page was my first encounter with an example of assembly language programming under FreeBSD. Thomas M. Sommers abriu a porta para mim. Sua página web - <link xlink:href=""> Como eu escrevo "Olá, world " in FreeBSD assembler?</link> - foi o meu primeiro encontro com um exemplo de programação em linguagem assembly no FreeBSD.
Jake Burkholder has kept the door open by willingly answering all of my questions and supplying me with example assembly language source code. Jake Burkholder manteve a porta aberta respondendo voluntariamente a todas as minhas perguntas e me fornecendo um exemplo de código-fonte em linguagem assembly.
Appendices Apêndices
<personname><firstname>Dave</firstname><othername role="MI">A</othername><surname>Patterson</surname></personname> <personname><firstname>Dave</firstname><othername role="MI">A</othername><surname>Patterson</surname></personname>
<personname><firstname>John</firstname><othername role="MI">L</othername><surname>Hennessy</surname></personname> <personname><firstname>John</firstname><othername role="MI">L</othername><surname>Hennessy</surname></personname>
<year>1998</year><holder>Morgan Kaufmann Publishers, Inc.</holder> <year>1998</year><holder>Morgan Kaufmann Publishers, Inc.</holder>
1-55860-428-6 1-55860-428-6
Morgan Kaufmann Publishers, Inc. Morgan Kaufmann Publishers, Inc.
Computer Organization and Design Computer Organization and Design
The Hardware / Software Interface The Hardware / Software Interface
1-2 1-2
<personname><firstname>W.</firstname><othername role="Middle">Richard</othername><surname>Stevens</surname></personname> <personname><firstname>W.</firstname><othername role="Middle">Richard</othername><surname>Stevens</surname></personname>
<year>1993</year><holder>Addison Wesley Longman, Inc.</holder> <year>1993</year><holder>Addison Wesley Longman, Inc.</holder>
0-201-56317-7 0-201-56317-7
Addison Wesley Longman, Inc. Addison Wesley Longman, Inc.


New source string a year ago
Browse all component changes

Things to check

Mismatched full stop

Source and translation do not both end with a full stop


Trailing space

Source and translation do not both end with a space

Fix string



English Portuguese (Brazil)
No related strings found in the glossary.

Source information

Source string comment

(itstool) path: sect1/para

Source string location
String age
a year ago
Source string age
a year ago
Translation file
books/pt_BR/developers-handbook.po, string 2233