Existem muitos núcleos existentes.
Linux
não é o único jogo por aí, mas é o mais usado. Algumas pessoas recomendam o minix
kernel para entender os conceitos de sistema operacional. Eu iria com a série Linux 2.6.x, pois é a mais comum e não será desperdiçada em algo (quase) que ninguém usa. O Solaris, XNU (Mac), FreeBSD e Dragonfly são notáveis. 1
Encontre algo super simples (porta serial, usb, etc.) e faça-o fazer outra coisa. Para um desafio extra, tente escrever um módulo do kernel para algo que ainda não o tenha. (Certifique-se de procurar o suspeito no Google por pci sudo lspci -nn
e / ou id USB sudo lsusb
primeiro.)
Atualização: não faça isso diretamente no sistema principal, use máquinas virtuais (VM) (computador em um computador) conforme mencionado. O VirtualBox pode fornecer isso e é grátis. Além disso, não quero que isso pareça impressionante, mas tente os instantâneos da VM para poder voltar caso algo quebre a própria VM.
Atualização 2 : A observação sobre o Git (DVCSes, incluindo mercurial, fóssil, bazar, dars) é uma boa idéia, principalmente para código e arquivos pequenos e importantes. Tente não usar o Git para fazer backup de músicas, vídeos e outros, a menos que conheça as implicações. ;)