Pau no linux - muito massa :)

34 respostas
marcelomartins

Olhem onde tava rodando um sistema Linux.

http://www.flickr.com/photos/milliped/116393699/

34 Respostas

F

hahaha… imagina se isso ocorre em algum sistema critico do avião…

T

a) Sistemas críticos são escritos em ADA (não são loucos de deixar coisas escritas em C++)
b) Sistemas críticos normalmente têm controle redundante (imagine se pifa alguma coisa. É por isso que há no mínimo um piloto e um co-piloto. Se um deles “pifa” o outro toma o comando.)
c) Em último caso, o comandante do Airbus pode soltar manualmente o trem de pouso, que ele baixa sozinho pela gravidade.

F

pô thingol!!!

nem deixa eu fazer uma piadinha… :smiley:

não estava falando sério…

T

Agora mesmo eu estava vendo um celular de um colega, um Motorola MPx220 (acho que é esse o modelo), que roda - Windows Mobile !

Imagine se eu estiver soterrado em algum terremoto e precisar pedir ajuda.

Qual é a tela que vai aparecer quando for tentar digitar o telefone da emergência?

(Existem alguns modelos da Motorola que rodam Linux, principalmente no mercado chinês. Mas nem por isso são mais confiáveis :stuck_out_tongue: )

F

thingol:
Agora mesmo eu estava vendo um celular de um colega, um Motorola MPx220 (acho que é esse o modelo), que roda - Windows Mobile !

Imagine se eu estiver soterrado em algum terremoto e precisar pedir ajuda.

Qual é a tela que vai aparecer quando for tentar digitar o telefone da emergência?

(Existem alguns modelos da Motorola que rodam Linux, principalmente no mercado chinês. Mas nem por isso são mais confiáveis :stuck_out_tongue: )

Cada download de ringtone vc tem que bootar para recarrega-lo? hehehehe…

Nos celulares Linux se travar tem como dar um init 6? hehehehe…

peczenyj

qual a diferença entre um codigo escrito em ADA e um em C++ ?

T


Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977–1983. It addresses many of the same tasks as C or C++, but with one of the best type-safety systems available in a statically typed programming language. Ada was named after Ada Lovelace, who is often credited with being the first computer programmer.

Ada was originally targeted at embedded and real-time systems, and is still commonly used for those purposes. The Ada 95 revision, designed by S. Tucker Taft of Intermetrics between 1992 and 1995, improved support for systems, numerical, and financial programming.

Notable features of Ada include strong typing, modularity mechanisms (packages), run-time checking, parallel processing (tasks), exception handling, and generics. Ada 95 added support for object-oriented programming, including dynamic dispatch.

Ada supports run-time checks in order to protect against access to unallocated memory, buffer overflow errors, off by one errors, array access errors, and other avoidable bugs. These checks can be disabled in the interest of efficiency, but can often be compiled efficiently. It also includes facilities to help program verification. For these reasons, it is very widely used in critical systems like avionics, weapons and spacecraft.

It also supports a large number of compile-time checks to help avoid bugs that would not be detectable until run-time in some other languages or would require explicit checks to be added to the source code.

Ada’s dynamic memory management is safe and high-level, like Java and unlike C. The specification does not require any particular implementation. Though the semantics of the language allow automatic garbage collection of inaccessible objects, most implementations do not support it. Ada does support a limited form of region-based storage management. Invalid accesses can always be detected at run time (unless of course the check is turned off) and sometimes at compile time.

Unlike most ISO standards, the Ada language definition (known as the Ada Reference Manual or ARM) is free content. Thus, it is a common reference for Ada programmers, not just programmers implementing Ada compilers.

vance

Basicamente, a mesma entre um corte feito com um bisturi e uma faquinha de rocambole :lol:

1112

Além da linguagem de programação?

boaglio

Verifique a diferença dos códigos:

:arrow: ADA
:arrow: C
:arrow: C++

Olhando ADA pela primeira vez parece uma mistura de Java com PL/SQL. :shock:

lucao

O que vem a ser “Strong typing” ? Já ouvi bastante mas nunca soube o que era.

T

Como exemplo de “weak typing” vamos ver um código em JavaScript.

var s; // não declaro o tipo
s = "teste"; // agora s contém uma string
s = 1.0; // s contém um número

Como exemplo de “strong typing” vamos ver um código em Java.

String s; // declaro o tipo
s = "teste"; // s contém uma string
s = 1.0; // o compilador reclama e dá um erro de compilação.
T

boaglio:

Olhando ADA pela primeira vez parece uma mistura de Java com PL/SQL. :shock:

Aham, a sintaxe do PL/SQL (a própria Oracle diz isso) foi derivada da ADA.

renatosilva

boaglio:

Verifique a diferença dos códigos:

:arrow: ADA
:arrow: C
:arrow: C++

Olhando ADA pela primeira vez parece uma mistura de Java com PL/SQL. :shock:

Parece muito com Delphi, legal…

fmeyer

renato3110:
boaglio:

Verifique a diferença dos códigos:

:arrow: ADA
:arrow: C
:arrow: C++

Olhando ADA pela primeira vez parece uma mistura de Java com PL/SQL. :shock:

Parece muito com Delphi, legal…

nao parece com Delphi é um pouco parecida com pascal que é baseada na linguagem ALGOL 60, da qual a ADA tambem foi inspirada.

entao ambas sao primas … pois possuem o mesmo Avô

T

Se pensar bem, 95% das linguagens em uso têm um pouco do Algol em seu DNA.
Mesmo as linguagens antigas - como o Fortran e o Cobol - copiaram algumas das estruturas - de onde vem o “if/then/else”?
Os que mexeram com Fortran antigo sabem que nem existia o tal do “else”. Mesma coisa para o Basic (que originalmente era um Fortran simplificado).
À medida que as linguagens vão adotando paradigmas que não existiam (ou não foram adotados) quando foram designados, elas vão ficando “parecidas” entre si.
Por exemplo, quase todas as linguagens mais antigas - Ada, C, Cobol - vão incorporando programação orientada a objeto. Isso faz com que elas peguem um “DNA” da Smalltalk ou da Simula.
Se quiser usar LISP com a velha e boa programação estruturada (IF/THEN/ELSE) ou com a orientação para objetos, há versões do LISP que suportam os dois paradigmas.
Com o AOP pegando, daqui a pouco teremos “AOP para Cobol .NET” - não estou brincando. Preparem-se…

eliziario

Olhem esse comentário na página do flicker:

Não sei como CMM nível 5 pode garantir que um sistema crítico não irá falhar. Talvez você possa ter uma trilha de auditabilidade melhor para botar a culpa em alguem quando o avião cair, mas garantir que o sistema não irá falhar é algo totalmente diferente. Se a comentarista tivesse falado em Clean-Room, métodos formais (não, vc pode ter quantos Unit Tests quiser, eles não provam que seu sistema irá funcionar…) ok, tudo bem… mas CMM?
quem concorda?

eliziario

scottys0:
renato3110:
boaglio:

Verifique a diferença dos códigos:

:arrow: ADA
:arrow: C
:arrow: C++

Olhando ADA pela primeira vez parece uma mistura de Java com PL/SQL. :shock:

Parece muito com Delphi, legal…

nao parece com Delphi é um pouco parecida com pascal que é baseada na linguagem ALGOL 60, da qual a ADA tambem foi inspirada.

entao ambas sao primas … pois possuem o mesmo Avô

PL/SQL foi propositalmente baseada em ADA. Não se esqueça que os primeiros clientes da Oracle foram a CIA e o DoD (na verdade, a Oracle nasceu desses contratos) e para o setor de defesa nos EUA, ADA foi até muito pouco tempo (e em grande medida ainda é) a linguagem padrão, mesmo porque ADA foi uma linguagem encomendada pelos militares.

1112

thingol:
Se pensar bem, 95% das linguagens em uso têm um pouco do Algol em seu DNA.
Mesmo as linguagens antigas - como o Fortran e o Cobol - copiaram algumas das estruturas - de onde vem o “if/then/else”?
Os que mexeram com Fortran antigo sabem que nem existia o tal do “else”. Mesma coisa para o Basic (que originalmente era um Fortran simplificado).
À medida que as linguagens vão adotando paradigmas que não existiam (ou não foram adotados) quando foram designados, elas vão ficando “parecidas” entre si.
Por exemplo, quase todas as linguagens mais antigas - Ada, C, Cobol - vão incorporando programação orientada a objeto. Isso faz com que elas peguem um “DNA” da Smalltalk ou da Simula.
Se quiser usar LISP com a velha e boa programação estruturada (IF/THEN/ELSE) ou com a orientação para objetos, há versões do LISP que suportam os dois paradigmas.
Com o AOP pegando, daqui a pouco teremos “AOP para Cobol .NET” - não estou brincando. Preparem-se…

É interessante que as linguagens de programação, neste ponto, imitam as linguagens de comunicação humana. As linguagens humanas partilham uma ou mais linguagens em comum (grego, latim…) e vão agregando conceitos não existentes a partir das outras ( “hambúrguer” de “hamburger” ou “コンピュ-タ” de “computer” ).

Er, qual era o assunto mesmo?

[color=white]Katakana by Lucas Uyezu[/color]

T

Algumas empresas, como a BAE Systems (faz parte do consórcio do Airbus) realmente têm o CMM nível 5. ( http://www.baesystems.com/newsroom/2003/sept/250903news2.htm )
Mas isso não quer dizer que a Tata (CMM nível 5) tenha de ser contratada pela Embraer para desenvolver sistemas de aviônica…
Na verdade quem desenvolve esses tais sistemas (como a Boeing, a BAE, a Embraer etc.) já têm processos internos muito rigorosos, mas não obrigatoriamente CMM.

T

#@®®¡$:

Er, qual era o assunto mesmo?

Vocês que são Linux-maníacos sabem que distribuição está sendo usada, só de olhar a tela de boot do tal sistema da Airbus?

http://jimmac.musichall.cz/weblog.php/2005/Jan/31

http://www.freerepublic.com/focus/f-news/1620586/posts

eliziario

Ok. Mas CMM não garante em última análise o software em si. Mas apenas o processo. Não há relação entre um software ser fail-safe e CMM.

renatosilva

scottys0:
renato3110:
boaglio:

Verifique a diferença dos códigos:

:arrow: ADA
:arrow: C
:arrow: C++

Olhando ADA pela primeira vez parece uma mistura de Java com PL/SQL. :shock:

Parece muito com Delphi, legal…

nao parece com Delphi é um pouco parecida com pascal que é baseada na linguagem ALGOL 60, da qual a ADA tambem foi inspirada.

entao ambas sao primas … pois possuem o mesmo Avô

Delphi Pascal, uma derivação da ObjectPascal…Modo de dizer sabe como é :smiley:

A

thingol:
Como exemplo de “weak typing” vamos ver um código em JavaScript.

Como exemplo de “strong typing” vamos ver um código em Java.

Sendo pedante:

Strong static typing: Java.
Strong dynamic typing: javascript.
Weak typing: C…

OgRo

opa, mais gente conhece Ada (é Ada, não ADA - é nome próprio, gente!!) do q eu imaginava. rs.

eu trabalho com Ada há um tempinho. Quer dizer, brinco, já que não tem mto mercado pra isso no Brasil - por incrivel que pareça usam C na embraer. rs

mas se até um puta dum veterano em computação q adora Ada ta trabalhando com PHP lá no Reio Unido (Nick Roberts), não da pra eu, um matemático, querer muito aqui no Brasil. rs.

o mais legal dessa linguagem é ela dispensar o uso de um debuger (sério, vc praticamente nunca usa - embora exista - debuger com ela).
Vc pode acessar classes java e funções de C, fortran e qualquer outra linguagem se seu compilador suporta-la. No caso do gcc essas 3 funcionam mto bem, e existe um compilador que suporta C# (eu não sei qual, mas fmz… hehe)

vc pode compila-la, tb, para a virtual machine tanto do java quanto a do .net da micro$hit (sei lá como se chama essa vm, mas fmz. rs).

com isso vc pode desenvolver qualquer tipo de aplicação q vc quiser (incluindo aplicativos J2EE, J2ME, …)

elá já vem com um anexo sobre computação distribuida (tipo o JRI) e vc ainda consegue implementações (boas) de corba, moma e soap feitas em Ada - sem contar os bindings.

tem gtkAda, qtAda, XML/Ada. O que falta é um bom pacote aberto para criação de PDFs. :stuck_out_tongue:

ela foi criada em um concurso que o DoD (departamento de defesa norte americano) fez. Tem uma palestra em video no www.gnat.com (Ada lectures, se não me engano) que trata, dentre outras coisas, a esse respeito.

é de alto nivel (ela realmente te força a pensar na aplicação), mas e permite focar a atenção em detalhes como alocação de memória.

ela é uma linguagem padronizada - foi a primeira desse tipo orientada a objetos - e a primeira revisão foi em 83 (Ada83) e a segunda em 95 (Ada95).

No ano passado (2005) saiu a 3a revisão (quem advinha o nome? :P), mas não tem nenhum compilador aberto que a suporte.

Atualmente estou desenvolvendo um ERP - aberto e ainda engatinhando - em Ada95 (pq eu não $$ pra comprar um compilador de 2005 :P) e CORBA. Devo usar gtkAda tb.

Estou também no projeto AdaOS (www.adaos.net - que está em estado de latência há um tempinho).

Se alguém quiser alguma ajuda com Ada pode perguntar pra mim. Outras fontes de informações boas - mto melhores do que eu hehe - são:
http://www.adapower.com/

e o newsgroup:
comp.land.ada ( http://groups.google.com/group/comp.lang.ada )

obs.: eu já trabalhei um tempo com Java, principalmente com o projeto www.OFBiz.org.

[]'s

jmp

hehe, legal o pau.

Eu não li o que escreveram acima, mas enfim, eu trabalho na raytheon no desenvolvimento de interface para avionicos para embraer, ATR, e outros. (atualmente trabalho estou implantando solucoes para o SIPAM e tucano A29) e posso falar algumas coisas que sei:

  • Não existe redundancia de software (digo, nenhum programador programou isso). Geralmente todo o comando do avião pode ser feito manualmente (o que existe é “outra forma” de fazer a mesma coisa). O unico sistema de “redundancia” são as celulas piloto/co-piloto. Mas na verdade eles usam os mesmos computadores, se estragar aquilo, estraga tudo referente ao computador especifico (são muiiiiiiiiitos), só no glide slope do emb145 são 2 computadores, o que acontece é perda parcial de funcionalidade. As coisas são isoladas, e nao “duplicadas”.

  • A maioria dos controles criticos são software em fcpa com reset automatico em caso de falha ou requisicao do usuario, fisicamente é igual um fusivel (antigamente era um fusivel mesmo).

  • Na maioria dos avioes são usadas dezenas, centenas de linguagens de programacao, isso varia muito do fornecedor. (acho que no A380 são tipo “todas as que existem” ehehheheh)

Eu cuido da parte de display (mostrar as coisas na tela), já fizemos várias coisas em java, mas ainda não foram homologadas, isso é um rolo desgraçado.

O pessoal usa muito ADA, Fortran e coisas do tipo, e raramente C. Geralmente OpenGL + C são só a parte de display.

OgRo

ah, legal q o pessoal da embraer use Ada.

só acho estranho q, em uma palestra, um kra q trampa lá e é professor do IME-USP falou que eles usam mais C mesmo e ele nunca tinha ouvido falar de Ada. rs. :stuck_out_tongue:

ele falou tb q rola redundancia. Não especificou como exatamente, thought…

peczenyj

E o sistema operacional ? QNX ?

jmp

pelo menos nos avionicos que eu já trabalhei (garmin, lockheed) não existe “sistema operacional” as aplicacoes não dependem de SO. Só da API que o fornecedor oferece. Geralmente você faz o programa e envia para o fabricante gravar no hardware, fcpga. As vezes a API é só um wrapper para microcontrolador.

Mas lógico q existem centenas de coisas ali, mas as coisas não relacionadas a avionicos eu não sei. (como esses displays para passageiros).

Detalhe: Embraer é só uma projetista e montadora de aviões, ela só fabrica 20% do jato que vende. A raytheon (onde eu trabalho) é quem instala todo o sistema de navegação. As asas, por exemplo, vêm prontas da australia. Eles fizeram o projeto do aviao, todo o sistema avionico já existia, fornecido por N empresas. As partes que não existiam (como as asas) eles contrataram empresas espalhas pelo globo para fabricar para eles. Não é questao de competencia, mas sim de tornar o produto o mais barato possível.

marcelomartins

Perfeito. Não sei como a conversa de qualidade se ligou com CMM. Uma coisa não tem nada haver com a outra. Existe uma lenda que diz que se teus processos seguem as normas do CMM então é provavel que teu software tenha uma boa qualidade. Mas dá pra fazer vários cocozinho bem documentados, auditados, gerenciados, e etc… etc… etc…

G

Perfeito. Não sei como a conversa de qualidade se ligou com CMM. Uma coisa não tem nada haver com a outra. Existe uma lenda que diz que se teus processos seguem as normas do CMM então é provavel que teu software tenha uma boa qualidade. Mas dá pra fazer vários cocozinho bem documentados, auditados, gerenciados, e etc… etc… etc…

Mas quem disse que processo traz qualidade? Não esqueçam que quem mete a mão no código são as pessoas e não os processos. Agora me digam o que garante qualidade?
Filosoficamente eu respondo, - nada garante nada! O que garante um resultado é um ou mais individuos estarem querendo obter tal resultado! E nada mais.

Só que agora vou fazer uma pergunta:

  • Digamos que um produto é fornecido por duas pessoas, uma vcs conhecem e sabem que ela é uma pessoa criteriosa e que tenta fazer as coisas da melhor forma possivel a outra não vcs não conhecem. A primeira cobra um pouco mais pelo produto. Vcs não tem tempo para estudar cada uma das pessoas antes de fechar a compra.

De qual pessoa vcs vão comprar?

Ou vamos além, vcs têm uma empresa e pretendem contratar um funcionário. Há duas pessoas concorrendo a vaga, uma tem faculdade, várias extensões, certificados e os cambao. A outra é extremamente inteligente(Vcs não sabem disso) mas só tem o 2º grau.

Quem vcs contratam?

jmp

Voce deve aplicar a energia certa para atingir o objetivo. Se CMM é necessário, que seja.

CMM e qualidade estão ligados sim.

Essa questão de “quem voce escolhe?” é muito complexa. Quem voce escolhe, Windows ou Linux? Responder: “Linux, por que ele é melhor.” é ingenuidade demais, há muito mais coisas envolvidas.

G

Voce deve aplicar a energia certa para atingir o objetivo. Se CMM é necessário, que seja.

CMM e qualidade estão ligados sim.

Essa questão de “quem voce escolhe?” é muito complexa. Quem voce escolhe, Windows ou Linux? Responder: “Linux, por que ele é melhor.” é ingenuidade demais, há muito mais coisas envolvidas.

Eu sei jmm que é complexa, mas o que eu quis visualizar é que como o ser humano é pré-conceituoso por natureza, nós tendemos sempre a escolher a opção que “parece” ser mais adequada ao nosso caso. Nem sempre é a mais acertada.

No caso das pessoas, quem me garante que o produto da segunda pessoa não é um puta produto?

e no segundo quem me garante que o cara formado não é um acadêmico que só sabe estudar para provinhas mas na hora de meter a mão na massa o boneco é fraco?

marcelomartins

Perfeito. Não sei como a conversa de qualidade se ligou com CMM. Uma coisa não tem nada haver com a outra. Existe uma lenda que diz que se teus processos seguem as normas do CMM então é provavel que teu software tenha uma boa qualidade. Mas dá pra fazer vários cocozinho bem documentados, auditados, gerenciados, e etc… etc… etc…

Mas quem disse que processo traz qualidade? Não esqueçam que quem mete a mão no código são as pessoas e não os processos. Agora me digam o que garante qualidade?
Filosoficamente eu respondo, - nada garante nada! O que garante um resultado é um ou mais individuos estarem querendo obter tal resultado! E nada mais.

Só que agora vou fazer uma pergunta:

  • Digamos que um produto é fornecido por duas pessoas, uma vcs conhecem e sabem que ela é uma pessoa criteriosa e que tenta fazer as coisas da melhor forma possivel a outra não vcs não conhecem. A primeira cobra um pouco mais pelo produto. Vcs não tem tempo para estudar cada uma das pessoas antes de fechar a compra.

De qual pessoa vcs vão comprar?

Ou vamos além, vcs têm uma empresa e pretendem contratar um funcionário. Há duas pessoas concorrendo a vaga, uma tem faculdade, várias extensões, certificados e os cambao. A outra é extremamente inteligente(Vcs não sabem disso) mas só tem o 2º grau.

Quem vcs contratam?
O que tu disse foi exatamente o que e disse :slight_smile:

Criado 9 de maio de 2006
Ultima resposta 11 de mai. de 2006
Respostas 34
Participantes 15