É possivel uma pessoa criar um Sistema Operacional só na Programação ?

Autor Mensagem
Bog
Veterano
# set/10
· votar


Essa Coca é Fanta
É possivel mesmo ? Tipo, a pessoa desenvolver também o Kernel pro SO grande e complexo ?

Eh possivel em tese. Na pratica, voce levaria a vida inteira, e precisaria aprender muito mais do que "uma base" de programacao, visto que os conceitos por tras de um SO vao muito alem de saber encadear um punhado de ifs e fors.

Essa Coca é Fanta
Veterano
# set/10
· votar


Bog

Resumindo: impossivel. Isso dá pra ver o quanto é complexo.

Essa Coca é Fanta
Veterano
# set/10
· votar


thebassx

Boa dica. Olha que eu compro mesmo!

=)

And the meek shall inherit the earth
Veterano
# set/10
· votar


http://www.menuetos.net/index.htm

Esse é razoavelmente completo e foi feito por apenas 3 pessoas.

Essa Coca é Fanta
Veterano
# set/10
· votar


And the meek shall inherit the earth

Vou usar o Google Translator depois.

marcus c. f.
Veterano
# set/10
· votar


Essa Coca é Fanta
Não. É você que não soube interpretar a frase!

Eu esperava não precisar perguntar explicitamente, mas vamos lá:
O que exatamente você quis dizer?

Bog
Veterano
# set/10
· votar


Essa Coca é Fanta

Por que você queria saber isso?

Headstock invertido
Veterano
# set/10
· votar


Bog
Então, o que eu quis dizer é que hoje em dia existem meios mais fáceis e práticos (bem mais) de produzir a parte gráfica de um sistema, não?

Mas nem sequer passou pela minha cabeça que seria capaz de elaborar uma interface gráfica do nível que temos hoje em dia só com C
o_o

Essa Coca é Fanta
Veterano
# set/10 · Editado por: Essa Coca é Fanta
· votar


Bog

Pura curiosidade. Já vi gente me afirmando que ia criar seu próprio sistema operacional (não sei se é complexo ou não), daí eu fiquei pensando se isso é realmente possivel apenas pra uma pessoa, sendo que eu vi no Google que o Kernel demorou 9 anos pra ser feito, com 200 desenvolvedores. É brabo. Agora eu pergunto:

Se o Kernel demorou isso tudo, com 200 pessoas, quanto tempo UMA PESSOA desenvolve seu Kernel (digamos, igual da complexidade do Windows) ? Tipo, eu não duvido, mas sei lá, uma chance disso acontecer é MUITO DIFICIL.

Essa Coca é Fanta
Veterano
# set/10
· votar


marcus c. f.
Se não for na programação vai ser no quê? Artes plásticas? :-S

Essa Coca é Fanta
Não. É você que não soube interpretar a frase!

Eu quis dizer que, você falou merda. Além de não ajudar no tópico.
=)

Bog
Veterano
# set/10
· votar


Headstock invertido
Então, o que eu quis dizer é que hoje em dia existem meios mais fáceis e práticos (bem mais) de produzir a parte gráfica de um sistema, não?

Sim e não. Como quase tudo em computação, você tem uma pilha de camadas de abstração, então pode fazer programas com janelas representadas por objetos. Mas por baixo delas, existe sempre algo mais. E um ambiente gráfico (no caso, parte integrante de um SO como o Windows) precisa prover esse "algo mais". Ele não precisa apenas gerenciar quais janelas estão sendo mostradas, precisa ir muito além: no SO é que está definido O QUE é uma janela, COMO ela deve ser mostrada, etc.

Por exemplo, ao fazer um programa qualquer, você pode chamar funções específicas quando certos eventos ocorrem: quando alguém clica na janela, digamos. Como o seu programa recebe este evento? O Windows manda. E como o Windows sabe que o mouse foi clicado, e foi clicado naquela janela? Aí entra uma porção de código que precisa ser muito eficiente - e "eficiente" não rima com "abstrato". E o buraco é ainda mais embaixo: o SO precisa "desenhar" as janelas, para isso deve conversar diretamente com a placa de vídeo - lembre-se que o SO não tem ajuda do SO para fazer isso!

Outro exemplo que não envolve interfaces gráficas mas ilustra bem o quanto o SO precisa sujar as mãos: em Java, a máquina virtual é responsável pela alocação e desalocação de memória. Tudo é feito automaticamente, através de coleta de lixo. Mas quem escreveu a máquina virtual não tinha esta facilidade. Provavelmente programou em C ou C++ algum trecho de código que "pede" para o SO alocar os espaços para as estruturas de dados gerenciadas pela VM. E o SO? O SO precisa fazer a alocação propriamente dita! Lembro que quando eu trabalhava com C para DSPs, sem SO, nem funções como malloc () podiam ser usadas, visto que o comportamento dessas funções é definido pelo SO! Eu precisava alocar memória "na unha" mesmo, montar um mapinha dizendo quais endereços de memória física estavam reservados para o que.

Essa Coca é Fanta
Veterano
# set/10
· votar


Bog

+1 pra você. Tu manja demais..

Bog
Veterano
# set/10
· votar


Essa Coca é Fanta
Tu manja demais..

Sem falsa modéstia, nem tanto. Eu só estudei Sistemas Operacionais na faculdade, e precisei programar em DSPs algumas tarefas de um "proto-SO". Isso está longe de me colocar na categoria das pessoas que "manjam demais" sobre SOs. Se me pedissem para futricar no kernel de um Linux da vida, eu não saberia nem por onde começar.

Cavaleiro
Veterano
# set/10
· votar


Legal mesmo é fazer um compilador.

Essa Coca é Fanta
Veterano
# set/10 · Editado por: Essa Coca é Fanta
· votar


Bog

Mas seus argumentos são interessantes, que diz uma pessoa culta e inteligente. Um dia eu chego lá..

=)

Mas, qual o assunto que você mais domina ?

Cavaleiro

É uma tarefa dificil, razoavel ou fácil ?

Bog
Veterano
# set/10
· votar


Essa Coca é Fanta
qual o assunto que você mais domina ?

Visão computacional, que inclui um punhado de processamento de imagens e um punhado de inteligência artificial/aprendizado de máquinas. E envolve sujar as mãos programando bastante, com foco na eficiência (o que implica em usar processamento paralelo, lidar diretamente com bytes em vez de sempre apelar para representações mais abstratas, usar truques baseados em estruturas de dados, etc.).

Mr. Joe
Veterano
# set/10
· votar


As pessoas pensam que aprendendo C já podem sair por aí criando SOs e etc. lol

Galera, no núcleo do sistema não se pode usar quase nenhum comando "útil" mesmo da linguagem. Nem um printf ou scanf conseguirás fazer. Você mesmo terá de configurar um monte de função da linguagem em Assembly.

Fora que ASM não é linguagem, há vários diferentes p/ cada processador. Portanto terás de fazer uma gambiarra p/ funcionar em vários PCs diferentes.

Criar um SO é uma porrada de coisas: interface gráfica só, demora vários anos. Imagina o núcleo ainda... Os drivers, compatibilidade, reconhecer hardware...

Bog
Veterano
# set/10
· votar


Mr. Joe
Nem um printf ou scanf

Nem um malloc, como eu disse acima. =P

marcus c. f.
Veterano
# set/10
· votar


Essa Coca é Fanta
Eu quis dizer que, você falou merda. Além de não ajudar no tópico.
=)


Aí fica difícil... Se você não sabe expressar a sua pergunta e responde desse jeito quando a gente pede mais detalhes, não dá mesmo pra contribuir com o tópico! Se bem que a essa altura alguém já deve ter respondido o que você queria.

Stonebreaker
Veterano
# set/10 · Editado por: Stonebreaker
· votar


Pode até ser possível, sei lá, talvez para um hardware específico...
já que exige conhecimento em programação de baixo e alto nível.

Essa Coca é Fanta
Veterano
# set/10 · Editado por: Essa Coca é Fanta
· votar


Bog
Visão computacional, que inclui um punhado de processamento de imagens e um punhado de inteligência artificial/aprendizado de máquinas. E envolve sujar as mãos programando bastante, com foco na eficiência (o que implica em usar processamento paralelo, lidar diretamente com bytes em vez de sempre apelar para representações mais abstratas, usar truques baseados em estruturas de dados, etc.).

É, seu foco parece ser bem maneiro, e é claro, "complicado". Pelo jeito você adora programar, não.. ? Que linguagem você geralmente usa ? E qual mais gosta ? E você pode me explicar mais "detalhadamente" sobre isso, tipo o que é preciso ser feito ou seguir até chegar nesse nível ?

Mr. Joe
Criar um SO é uma porrada de coisas: interface gráfica só, demora vários anos. Imagina o núcleo ainda... Os drivers, compatibilidade, reconhecer hardware...

Nem quero pensar nisso. Esses Windows que lançaram de uns tempos pra cá (Vista e Seven), COM CERTEZA eles pegaram o Kernel do XP e implantaram no Vista e Seven (obvio), pois eles não são burros e nem loucos de quererem RE-FAZER o Kernel. E tirando que, a lógica pra programar nisso não deve ser nada "fácil", já que parece ser algo complexo programando em uma linguagem de baixo nível (porque vai interagir diretamente no Hardware, para processar instruções feitas pelo usuário).

marcus c. f.

Desculpa se eu fui ignorante.

Bog
Veterano
# set/10
· votar


Essa Coca é Fanta
Pelo jeito você adora programar, não.. ?

Não sei dizer se "adoro". Depois de 15 anos, acaba ficando um troço meio natural, como ler. Você pode dizer que gosta de ler, mas normalmente gosta de ler algumas coisas e não gosta de ler outras. É por aí. Eu gosto de programar algumas coisas, não gosto de programar outras. Fora que trabalho é sempre trabalho... =P

Que linguagem você geralmente usa ?

Atualmente C++. Um tempo atrás, brinquei com Java. Antes disso, C e linguagem de assembler de DSPs da Motorola.

E qual mais gosta ?

Não sei se tem uma que eu mais gosto. Para mim, C e suas parentes C++ e Java são mais "naturais". Mas linguagens são só ferramentas, o que interessa mesmo é o que você vai escrever com elas. Para mim, fazer um cadastro de clientes ou uma interface com banco de dados - em qualquer linguagem que seja - parece uma tarefa extremamente sacal. Um dos motivos para eu ter seguido a carreira de pesquisador foi fugir do software corporativo.

você pode me explicar mais "detalhadamente" sobre isso, tipo o que é preciso ser feito ou seguir até chegar nesse nível ?

Você diz, de trabalhar com o que eu trabalho? Bom, eu estou loooooooooonge de ser um dos fodões da área. Esse povo se mata de trabalhar, e eu prefiro deixar o trabalho para "das 9 às 6" tanto quanto possível. Fora que muitos têm um grau de nerdeza e inteligência que dá dor de cabeça só de pensar.

Então, acho que meu nível não vai muito além do de qualquer recém-doutor normal (terminei o doutorado há 2 anos). Além de faculdade, mestrado e doutorado, coloque aí uns 3 anos de estágio, e mais uns 4 de trabalho em institutos de pesquisa. Se você for inteligente e/ou talentoso, precisa de menos. Se for lerdo e/ou sem jeito, precisa de mais. Se quiser ser fodão, é a mesma coisa, mas com turnos de 15 horas, sem fins de semana e com "MIT" e "Google" em vez dos lugares onde eu estudei e trabalhei. =P

Sendo bem franco, não é nada de tãao fantástico, mas também não é uma coisa que qualquer carinha que simplesmente aprendeu a programar consiga fazer facilmente. Aqui, não posso ter falsa modéstia: este é o meu trabalho, eu estudei e trabalhei para poder merecer o meu salário, então mesmo que eu não possa dizer que sou fodão e sei MUITO, preciso acreditar que sei pelo menos o suficiente.

Cavaleiro
Veterano
# set/10
· votar


Essa Coca é Fanta

Razoável, no caso foi um trabalho de final do semestre da faculdade, então não posso classificar como difícil.

Essa Coca é Fanta
Veterano
# set/10
· votar


Bog
Não sei dizer se "adoro". Depois de 15 anos, acaba ficando um troço meio natural, como ler. Você pode dizer que gosta de ler, mas normalmente gosta de ler algumas coisas e não gosta de ler outras. É por aí. Eu gosto de programar algumas coisas, não gosto de programar outras. Fora que trabalho é sempre trabalho... =P

Ah, eu to aprendendo a programar ainda, sou o famoso cabaço (normal). Eu acho legal isso, mas tem horas que eu não estou afim de fazer códigos e nem quebrar cabeça. Mas eu posso jurar que sou louco pra desenvolver sistemas.

Atualmente C++. Um tempo atrás, brinquei com Java. Antes disso, C e linguagem de assembler de DSPs da Motorola.

Poxa, é "raro" eu achar mercado de trabalho pelo menos em BH para programadores de C++. A maioria das empresas estão contratando MUITO desenvolvedores PHP, JAVA e .NET (fora outros conhecimentos, como JavaScript, Banco de Dados, Inglês (Que é MUITO necessário na área)).

Não sei se tem uma que eu mais gosto. Para mim, C e suas parentes C++ e Java são mais "naturais". Mas linguagens são só ferramentas, o que interessa mesmo é o que você vai escrever com elas. Para mim, fazer um cadastro de clientes ou uma interface com banco de dados - em qualquer linguagem que seja - parece uma tarefa extremamente sacal. Um dos motivos para eu ter seguido a carreira de pesquisador foi fugir do software corporativo.

Porque você fugiu o Software Corporativo? Tem muitas "desvantagens" ou apenas não é sua praia ?

Você diz, de trabalhar com o que eu trabalho? Bom, eu estou loooooooooonge de ser um dos fodões da área. Esse povo se mata de trabalhar, e eu prefiro deixar o trabalho para "das 9 às 6" tanto quanto possível. Fora que muitos têm um grau de nerdeza e inteligência que dá dor de cabeça só de pensar.

Você dizendo assim, parece que não curte muito trabalho. kkkkkkkkkkkkkkkkk. Mas ao mesmo tempo, é normal, chega uma hora que só quer cumprir aquele "dever" e sair fora.

Eu estou fazendo faculdade de T.I, e digo que é puxado cara. Tem que estudar ou é "ferro" mesmo. Digamos que tem hora que enche o saco, por ter que estudar todo dia (sim, eu leio todo/estudo todo dia, sem contar vantagem). Mas eu vejo isso lado bem positivo da coisa, quando formar, vou me sentir bem por ter os devidos conhecimentos necessários para o mercado de trabalho, e logo após já penso em fazer uma pós graduação Se DEUS QUISER, em Java. Não posso afirmar isso, mas eu pretendo sim (é claro, se eu gostar mesmo de desenvolver sistemas, porque uma coisa é programar coisinhas básicas, ou é desenvolver um sistemão, que é claro "complexo", para um inesperiente, como eu). Eu digo isso, pois o mercado tá contratando muito programadores de Java (e não são poucas empresas não), mas a maioria exige pelo menos 2 anos de experiencia, e eu consigo essa experiencia fazendo estágios durante a graduação.

Você fez Doutorado em que ?

Essa Coca é Fanta
Veterano
# set/10
· votar


Cavaleiro

Manda o código fonte..

=)

GOREFESTA
Veterano
# set/10
· votar


Essa Coca é Fanta

e logo após já penso em fazer uma pós graduação Se DEUS QUISER, em Java.

Hum, legal... se vc é meio auto didata, pegue esse livro e go to certificação

Essa Coca é Fanta
Veterano
# set/10
· votar


GOREFESTA

Cara, na facul você pelo menos na programação é QUASE um autodidata, professor só tira suas dúvidas e explica umas coisas, mas o foda é contigo. O negócio é mais "embaixo" mesmo..

Lá na facul, o foco é PHP. Mas o Java paga muito mais, então eu vou migrar nele quando puder. E valeu pela dica do livro, parece ser muito bom, e nem é caro.

GOREFESTA
Veterano
# set/10
· votar


Essa Coca é Fanta

Cara, na facul você pelo menos na programação é QUASE um autodidata, professor só tira suas dúvidas e explica umas coisas, mas o foda é contigo. O negócio é mais "embaixo" mesmo..

É, to ligado nisso... na minha facul só vou começar a ter programação no 2º ano hehehehe
E bem provavel que comece no VB, que ja estou estudando pouco a pouco.
Quanto ao livro, tem exercicios de dar nó na cabeça, mas é uma ajuda e tanto pra quem quer fazer prova de certificação e não pode pagar mais 3k em cursos do tipo "Academia Java"
Se vc tiver net boa, de uma bisoiada aqui, tem umas boas video aulas

Mr. Joe
Veterano
# set/10 · Editado por: Mr. Joe
· votar


Essa Coca é Fanta
Nem quero pensar nisso. Esses Windows que lançaram de uns tempos pra cá (Vista e Seven), COM CERTEZA eles pegaram o Kernel do XP e implantaram no Vista e Seven (obvio), pois eles não são burros e nem loucos de quererem RE-FAZER o Kernel.

Cara, Windows é o mesmo kernel já faz anos.
Desde o Win. 98 os caras devem estar usando a mesma coisa, só que com interfaces gráficas diferentes e um aperfeiçoamento no código.

Há alguma chance dos caras colocarem algum tipo de aperfeiçoamento na segurança, mas eu acredito que seja mentira deles...

A cada Windows diferente a M$ cria um novo ambiente gráfico, altera o kernel (tirando coisas inúteis, colocando outras... Talvez tire alguns drivers que não são mais usados e coloque outros...), enfim, ela só enche lingüiça.

Mas o Java paga muito mais, então eu vou migrar nele quando puder

Lembre-se que "linguagem do futuro" não existe. Antigamente diziam que Python seria a linguagem do futuro, e olha só... ninguém sabe que existe, ou como é a sintaxe. Não vá p/ Java se estás somente pensando por este lado.

EDIT: corrigir erros de português.

Mr. Joe
Veterano
# set/10 · Editado por: Mr. Joe
· votar


Essa Coca é Fanta
E tirando que, a lógica pra programar nisso não deve ser nada "fácil", já que parece ser algo complexo programando em uma linguagem de baixo nível (porque vai interagir diretamente no Hardware, para processar instruções feitas pelo usuário).

Não é nada fácil, cara.
Em Assembly não existe "if" nem "switch", "case", funções (tem algo semelhante, tipo labels), classes nem droga nenhuma.
(EDIT: É só na base de registradores. É de assustar, mesmo. hahaha!)

Uma coisa interessante é o sistema JNode. Os caras lá fizeram uma gambiarra em ASM pro sistema reconhecer byte-code, e o sistema todo é em Java. Assim a construção do sistema é facilitada e eles não precisam inventar mais gambiarras ainda para complementar o SO.

Enviar sua resposta para este assunto
        Tablatura   
Responder tópico na versão original
 

Tópicos relacionados a É possivel uma pessoa criar um Sistema Operacional só na Programação ?