Eu realmente gostaria de entender como um sistema operacional funciona nos bastidores. No entanto, acho que o núcleo da maioria dos sistemas operacionais de código aberto existentes no mercado é muito complexo para fins de aprendizado, mesmo para um programador em tempo integral aprender. Existem sistemas operacionais "simples" criados apenas para fins de aprendizado?
operating-systems
DotNetStudent
fonte
fonte
Respostas:
O Minix de Andrew Tanenbaum (consulte Projeto e implementação de sistemas operacionais ) destina-se exatamente a esse tipo de finalidade. Outra possibilidade (ainda que datada) é ler o Lion's Book , que abrange o Unix V6 (Unix completo, mas uma versão antiga o suficiente para que ainda seja simples o suficiente para um estudo bastante fácil). As desvantagens óbvias deste último são que o C que ele usa é bastante obsoleto; portanto, mesmo programadores C bastante experientes podem achar partes um tanto difíceis de ler, e você não pode planejar um compilador moderno digerindo o código.
fonte
Você deve considerar um sistema operacional Xv6 moderno, semelhante ao Unix, usado em um curso de SO no MIT. Parece ter algum material do curso associado a ele também.
É executado nos emuladores Bochs e Qemu x86. Eu fiz essa parte. Foi divertido.
fonte
O Minix é uma ótima opção e é descrito em uma das outras respostas.
Xinu
Considere também XINU - XINU não é Unix.
É também o UNIX escrito para trás.
Há um livro de Douglas Comer que eu pensei que estava bem escrito, bem ilustrado e com bom escopo.
Há um Xinu incorporado e um site sobre ensino com o Xinu.
http://xinu.mscs.mu.edu/Teaching_With_Xinu
FreeRTOS
Outro sistema operacional pequeno que adora muito hoje em dia é o FreeRTOS. Ele roda em quase tudo. Se você veio de Marte e tinha um processador ou placa de avaliação onde ele não é executado, você pode ler cerca de 10 páginas de documentação, modificar cerca de cinco arquivos relacionados a interrupções, temporizadores e UARTs e você estaria executando.
http://www.freertos.org/
Eles afirmam que suporta 31 arquiteturas e 18 cadeias de ferramentas. Minha experiência no final de 2009 foi boa e ouvi dizer que melhorou muito desde então.
Outros Links
Perguntas semelhantes sobre as quais podem ter informações úteis para você estão localizadas aqui:
/programming/254149/how-do-you-write-a-basic-operating-system
O Linux e muitos outros designs de sistemas operacionais são influenciados pelo UNIX, portanto, este vídeo em que os designers originais (Kernigan, Richie e Thompson e outros) é informativo e obtém as idéias de design diretamente da fonte.
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
Existe um livro de texto clássico, mas frequentemente revisado para sistemas operacionais:
Silberschatz, Galvin, Gagne: conceitos de sistema operacional, 7ª edição
Também pode haver edições mais recentes. Raramente vinculo a um livro através de um vendedor de livros, mas a visualização é muito generosa; portanto, para saber mais sobre sistemas operacionais, confira:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
fonte
Na minha universidade, aprendemos NachOS . É um ótimo sistema operacional de código aberto para aprendizado. Você também pode encontrar muitos exercícios de universidades no NachOS para aprender.
fonte
Dê uma olhada no KOS (Kid OD) e SOS (Simple OS). Ambos são sistemas operacionais projetados para ensinar os internos de um sistema operacional. O KOS é o "pai" do SOS e foi construído com base na experiência adquirida com o KOS.
Esses projetos foram a base de muitos artigos educacionais na Linux Magazine France.
No site da KOS, você também pode encontrar uma página na qual é possível baixar as fontes de outros sistemas operacionais simples.
fonte
Se você faz parte da família de tecnologias .NET, pode conferir a Singularity . Não é atualizado desde 2008, mas pode ser baixado no código fonte e no formulário ISO do CodePlex aqui .
fonte
As pessoas podem entender todas as versões do CP / M e DOS. Depois disso, as coisas ficaram fora de controle e ninguém sabe mais tudo. Eles não foram projetados para aprender um sistema operacional funciona, mas muitas pessoas fez saber que daqueles OS.
fonte
Vá ler um livro sobre programação em assembler. Você não precisa se tornar especialista nisso, mas isso ensinará muito sobre o funcionamento interno de um computador.
fonte