UNIX - V1

Discussão sobre linux para plataformas Intel x86 ou x64 (PC)

Moderadores: 51, guest2003, Renie, gpenga

UNIX - V1

Mensagempor Rodrigo_P_A » 10 Jul 2016 22:46

---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2236
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: UNIX - V1

Mensagempor msamsoniuk » 11 Jul 2016 01:44

bacana o link, mas acho que eles se enganaram na versao... segundo as datas, estes fontes seriam da edicao 2 do unix:

https://en.wikipedia.org/wiki/Research_Unix

mas eh bem interessante pq tem bastante codigo fonte! e mesmo sendo mais recente, ele tem apenas 44 arquivos em c, contra 109 arquivos em assembler, o que permite ver os primeiros passos da linguagem c jah em 1972! o codigo primitivo do printf em c eh bem interessante e tem bem poucas opcoes.

aqui tem as varias versoes:

http://minnie.tuhs.org/cgi-bin/utree.pl

o kernel soh foi portado para c na quarta edicao... infelizmente boa parte dos codigos iniciais nao existem mais! :(

Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Re: UNIX - V1

Mensagempor tcpipchip » 11 Jul 2016 09:10

E o MINIX ?
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: UNIX - V1

Mensagempor msamsoniuk » 11 Jul 2016 12:22

o minix eh uns 20 anos mais moderno, roda em PC, eh bem documentado e didatico. mas o interessante dos unixes mais antigos eh que rodavam em processadores bem menos avancados e foram feitos do zero, em uma epoca em que o unix e a linguagem C ainda nao existia e que os computadores rivalizavam com um PIC moderno e eram programados em asesmbler. daih o legal eh tentar captar essa essencia: de onde sairam as ideias? como as coisas evoluiram para chegar onde chegaram? quais as limitacoes computacionais da epoca? pq escrever o sistema operacional em linguagem de alto nivel? pq escrever o compilador na propria linguagem que ele compila? como fizeram isso? quais ideias permanecem ateh hoje? muita gente discute sobre o assunto, mas ver na pratica essa evolucao eh algo raro! acho que vale a pena dar uma olhada no codigo primitivo deles! :)

mas aterrorizante mesmo eh ver a arvore de comandos de 1972 e perceber que muitos comandos primitivos ainda existem no linux e bsd modernos. se vc pensar que 99% dos celulares existentes sao baseados em linux e bsd, eh intrigante saber que existem fosseis antigos vivos dentro da tecnologia moderna! :O

tcpipchip escreveu:E o MINIX ?
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Re: UNIX - V1

Mensagempor Rodrigo_P_A » 11 Jul 2016 12:46

msamsoniuk escreveu:o minix eh uns 20 anos mais moderno, roda em PC, eh bem documentado e didatico. mas o interessante dos unixes mais antigos eh que rodavam em processadores bem menos avancados e foram feitos do zero, em uma epoca em que o unix e a linguagem C ainda nao existia e que os computadores rivalizavam com um PIC moderno e eram programados em asesmbler. daih o legal eh tentar captar essa essencia: de onde sairam as ideias? como as coisas evoluiram para chegar onde chegaram? quais as limitacoes computacionais da epoca? pq escrever o sistema operacional em linguagem de alto nivel? pq escrever o compilador na propria linguagem que ele compila? como fizeram isso? quais ideias permanecem ateh hoje? muita gente discute sobre o assunto, mas ver na pratica essa evolucao eh algo raro! acho que vale a pena dar uma olhada no codigo primitivo deles! :)

mas aterrorizante mesmo eh ver a arvore de comandos de 1972 e perceber que muitos comandos primitivos ainda existem no linux e bsd modernos. se vc pensar que 99% dos celulares existentes sao baseados em linux e bsd, eh intrigante saber que existem fosseis antigos vivos dentro da tecnologia moderna! :O

tcpipchip escreveu:E o MINIX ?


Eu penso o mesmo, o mais interessante é ver a essência e como os caras fizeram com toda limitação... hoje em dia estamos mal acostumados hehe
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2236
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: UNIX - V1

Mensagempor eletroinf » 11 Jul 2016 12:56

Se estudássemos mais isso talvez se tivesse descoberto antes o relato abaixo:

http://www.inovacaotecnologica.com.br/n ... 4PAqlJRHqn
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: UNIX - V1

Mensagempor Rodrigo_P_A » 11 Jul 2016 13:32

eletroinf escreveu:Se estudássemos mais isso talvez se tivesse descoberto antes o relato abaixo:

http://www.inovacaotecnologica.com.br/n ... 4PAqlJRHqn


Pois é.. nada contra os programadores de java, mas é por aí... hoje em dia pra ler um email temos que ter um telefone quadcore 1.6GHZ 4GB de ram...
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2236
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: UNIX - V1

Mensagempor msamsoniuk » 12 Jul 2016 00:20

acho que eh bem por aih... eu tenho uma teoria de que muitas ideias sao deixadas de lado hoje em dia pq o software evolui de forma geologica, empilhando camadas de software novo em cima de sucessivas e vastas camadas de software antigo. como o cliente soh ve o chao em que pisa, a camada superficial, tudo que estah embaixo fica escondido. o hardware, por outro lado, costuma evoluir de uma forma mais biologica: nasce e morre continuamente, sendo que o novo hardware substitui completamente o antigo. nao raramente, o novo hardware eh uma versao melhor do hardware antigo, partilhando uma certa base genetica, porem um ente diferente. comparar um 68000 do final da decada de 70 com um 68060 da decada de 90 mostra bem isso: eles sao quase compativeis entre si, porem as diferencas tecnologicas sao gigantescas:

- processos: o 68000 usa NMOS, o que lhe permite arranhar os 8MHz, enquanto que o 68060 usa CMOS, o que lhe permite tranquilamente ir ateh os 100MHz, ou seja, mais de 10x de melhora.
- densidade: o 68000 tinha, ironicamente, 68000 transistores, contra quase 2.5 milhoes de transistores do 68060. embora pareca um "desperdicio", vale lembrar que o 68000 nao tinha espaco para cache on-chip, enquanto o 68060 possui duas caches de 8KB, alem de MMU e FPU integradas, reduzindo o custo. na pratica, aqui vale a pena considerar o custo: ter milhores de transistores nao eh exatamente ruim se custa pouca coisa a mais que milhares.
- eficiencia: o 68000 rodava uma instrucao, na melhor das hipoteses, a cada 4 clocks, contra duas instrucoes por clock no 68060, ou seja, melhor que 8x de melhora.
- compatibilidade: apesar de ter um design totalmente diferente, o 68060 eh perfeitamente compativel com o 68000. bom, eles foram escolhidos como exemplo especificamente pq este eh o ponto comum.
- custo vs beneficio: ironicamente, o 68000 ainda eh fabricado hoje em dia e fornece ateh 5MIPS de pico por 5 dolares. o 68060 deixou de ser fabricado faz tempo, mas em seu auge o 68060 capaz de atingir 200MIPS de pico era vendido por algo em torno de 50 dolares, ou seja, uma relacao 4x melhor. mas ele integra, pelo menos 4 chips em um: MPU, FPU, MMU e caches. assim a diferenca passa das 10x.

vale a pena enfatizar o segundo ponto: o espaco extra ocupado pelo 68060 nao significa que ele tenha um 68000 inteiro dento dele: muito pelo contrario, esse espaco eh usado para que ele tenha um 68000 que eh 8x mais eficiente, alem de embutir diversos circuitos que sao externos no 68000 (MMU, FPU e caches). em certo aspecto, o 68060 eh geneticamente compativel, mas nao eh um 68000, eh uma evolucao bastante melhorada. em uma media, o 68060 era 10x melhor que o 68000, mas geneticamente compativel (rodava o mesmo software).

bom, acredito que a pior referencia no lado do software seria o windows, mas nao conheco ele muito bem, entao eu pegaria o unix para fazer a mesmas comparacao:

- processos: dificil definir o que seria o equivalente em software, mas o unix na sua primeira versao era escrito em assembler para rodar bem em um PDP7 de menos de 1MHz. um uclinux moderno, por sua vez, eh inteiramente escrito em C e roda confortavel em maquinas relativamente pequenas, como o 68000 de 8MHz. ambos sao processadores CISC relativamente nao muito eficientes e eu chutaria que existe um gap aih de quase 10x na performance! mas a diferenca da linguagem provavelmente corresponde apenas a umas 2x no maximo. ou seja, mesmo escrevendo um assembler acima da media, muito provavelmente o acumulo geologico de camadas e cima de camadas faz o uclinux consumir uma quantidade expressiva de recursos computacionais.
- densidade: aqui acho que podemos pensar no tamanho do codigo e do binario. o unix v1, pelo que medi, consome 580KB, sendo uns 16KB o kernel. o uclinux, em contrapartida, tem um filesystem tipico de alguns megabytes (principalmente se vc colocar o compilador C, para fazer frente ao unix v1 que tem um integrado), sendo o kernel dificil de espremer em menos de 250KB. e aqui eu chutaria feio um gap de 10x na densidade. claro, escrever codigo em assembler faz com que o codigo fique compacto pq vc nao escreve muito, mas novamente, apenas a diferenca de linguagem nao explica totalmente a diferenca de tamanho. ao inves disso, acredito que a culpa eh justamente do codigo geologicamente acumulado. em conta-partida, claro, o uclinux faz muito mais coisas que o unix v1.
- eficiencia: aqui eh o ponto onde a coisa nivela: escolhi um processador onde o uclinux provavelmente tem um tempo de resposta similar a um PDP7. mas isso eh um grande chute! :)
- compatibilidade: varia entre excelente e bem meia boca. o acumulo geologico de codigo permite uma boa compatibilidade ateh: se vc fizer vista grossa para algumas coisas, seu codigo em C compila perfeito em ambos. infelizmente o unix v1 eh pre-K&R e a linguagem C dele tem umas diferencas sinistras que o compilador moderno nao engole, entao a compatibilidade nao eh realmente lah essas coisas. mas algumas coisas sao muito parecidas, inclusive as que nao sao muito eficientes. se vc vasculhar o filesystem, vai ver que os comandos sao meio que os mesmos. claro, o uclinux tem muito mais comandos e seus comandos tem muito mais opcoes, mas ateh mesmo os raramente usados nos dias de hoje estao lah, o que nos remete a evolucao geologica.
- custo vs beneficio: mais dificil ainda comparar... o PDP7 custava mais de 70 mil dolares, enquanto que uma maquina com um 68000 de 8MHz e alguns megabytes de memoria custa hoje em dia menos de 40 dolares. mas se formos recalibrar a coisa para os tempos modernos, provavelmente um processador com os recursos do PDP7 caberia em um chip de menos de 10 dolares. entao eu chutaria que o unix v1 teria uma relacao custo vs. beneficio 4x melhor que o uclinux. tem o aspecto da utilidade: o uclinux tem muito mais recursos, portanto tem potencial maior para beneficios. mas dependendo da aplicacao, ter tudo em um chip pode ser mais interessante do que espalhar em meia duzia de chips externos.

os exemplos nao sao necessariamente os melhores, mas na media temos 10x de diferenca. porem, diferentemente do hardware, onde o 68060 era evolucionariamente sempre melhor, o unix v1 e uclinux nao possuem essa relacao. o unix v1, na minha opiniao, tem um processo construtivo mais eficiente, mais compacto e provavelmente custaria menos hoje em dia. ele perde para o uclinux, em parte, no custo beneficio e provavelmente na compatibilidade, o que mostra que a evolucao nao eh perfeitamente genetica: no processo evolutico acumulatorio, parte da compatibilidade se perdeu em funcao das camadas mais novas. eh meio que um passo para frente, um passo para tras, nao sei se conseguem captar isso, mas na media vc fica no mesmo lugar... entao pq o uclinux parece substancialmente melhor do que o unix v1? claro, pq o diferente do mundo real, na computacao a parte com evolucao geologica (software) mora dentro da parte com evolucao biologica (hardware). e como o hardware avanca rapido, ele carrega o software junto! vc vai ver o uclinux rodando substancialmente mais rapido em um hardware de ponta rodando a 500MHz e com 500MB de ram. entao, se vc refizer a sequencia acima com um hardware de ponta, vc massacra o unix v1. bom, vc tambem pode rodar o unix v1 em um hardware de ponta e vaporizar o uclinux em termos de performance... bingo!

o fato eh que o contrario nao funciona: pegar um hardware qualquer e fazer update do software raramente vai melhorar performance. de fato, espera-se que o resultado seja o inverso. portanto, parece que eh o hardware quem carrega o software e nao o contrario: o hardware evolui mantendo sua genetica, mas gracas a processos continuos de vida e morte, o hardware novo eh substancialmente melhor que o antigo, embora existam ancioes, como o 68000, ainda em producao a preco de banana. no caso do software, a evolucao geologica eh implacavel: software antigo nao serve para nada! apesar disso, o software antigo constantemente estah lah embaixo das camadas do software novo. assim, a medida que o tempo passa, se vc nao atualizar o hardware, o software vai degradar mais e mais, ficando substancialmente pior que o antigo.

bom, esta eh a minha grande teoria da evolucao de software e hardware! o/ hahaha

eletroinf escreveu:Se estudássemos mais isso talvez se tivesse descoberto antes o relato abaixo:

http://www.inovacaotecnologica.com.br/n ... 4PAqlJRHqn
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04


Voltar para Linux ( x86 ou x64 )

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x