Projeto Genesis

1. Projeto Genesis

???
gokernel

(usa Linux Mint)

Enviado em 08/06/2019 - 08:59h

Olá pessoal !

Disponibilizei hoje o meu novo projeto ( Genesis ):
https://github.com/gokernel2017/genesis


A nome "Genesis" do grego significa:
01: origem
02: nascimento
03: criação
04: princípio

Disponibilizei apenas a base ( boot ), que vou usar para melhorar o meu Assembly:

//-------------------------------------------------------------------
//
// GENESIS OS:
//
// A BootLoader with Operating System ...
//
//
// COMPILE:
// gcc -s -c boot.s -o boot.o -Wall
// ld boot.o -o boot.bin -Ttext=0x7c00 -e _start
// objcopy -O binary boot.bin bkernel
// OR:
// make
//
//
// TESTING WITH QEMU:
// qemu-system-i386 bkernel
//
//
// CREATE A BOOTABLE CDROM:
// mkdosfs -C floppy.flp 1440 || exit
// dd status=noxfer conv=notrunc if=bkernel of=floppy.flp || exit
// mkisofs -R -b floppy.flp -o /temp/hello_boot.iso /temp/hello_boot
//
//
// REFERENCE:
// 01: https://github.com/mig-hub/mikeOS
// 02: https://github.com/mit-pdos/xv6-public
// 03: https://github.com/benchlab/benOS-Bootloaders
// 04: http://www.sde.cs.titech.ac.jp/~gondow/udos/index.html
// 05: https://github.com/microsoft/MS-DOS
// 06: https://github.com/cirosantilli/x86-bare-metal-examples
// 07: https://github.com/devversion/CKernel
//
//
// START DATE: 07/06/2019 - 17:20
//
//-------------------------------------------------------------------
//
.code16
.text
.globl _start;
_start:

jmp boot
nop

boot:

cli

//-----------------------------------------------
// basic setup:
//-----------------------------------------------
//
mov $0, %ax // set up segments
mov %ax, %ds
mov %ax, %es
mov %ax, %ss // setup stack
mov %ax, %si
//-----------------------------------------------

mov $0x7c00, %sp // stack grows downwards from 0x7C00

// Display: "Hello"
//
mov $0xe,%ah
mov $72,%al
int $0x10
mov $101,%al
int $0x10
mov $108,%al
int $0x10
int $0x10
mov $111,%al
int $0x10

label_forever:
hlt
jmp label_forever

//-----------------------------------------------
// strings:
//-----------------------------------------------
//
msg:
.asciz "Hello World"

//-----------------------------------------------
//--------- BOOT SIGNATURE 512 BYTES ----------
//-----------------------------------------------
. = _start + 510
.byte 0x55
.byte 0xaa


Esse é um código antigo que resolvi tocar pra frente ...

OBS IMPORTANTE:
Esses últimas linhas do código não devem ser modificadas, pois esses são essenciais para o computador reconhecer como um "BOOT" ... ou seja: é uma assinatura de "boot" com 512 bytes:

OBS: é apenas um BOOT que escreve "Hello" ...

Para uma referência interessante, recomendo uma olhadela no código do UNIX 6 ( arquivo: bootasm.S ):
02: https://github.com/mit-pdos/xv6-public

E uma referência de um pequeno DOS:
04: http://www.sde.cs.titech.ac.jp/~gondow/udos/index.html




  


2. Re: Projeto Genesis

???
gokernel

(usa Linux Mint)

Enviado em 11/06/2019 - 11:34h


Olá pessoal !

Novidade ... projeto cancelado !!!

Código base mudou para aqui:
https://github.com/gokernel2017/C_COLECTION/blob/master/boot.S

O projeto foi cancelado, pensei e vou seguir um conselho de um amigo( uma vez ele falou ):

01: "Quando se faz muitas coisas, adquire-se um conhecimento vasto mas superficial ..."
02: "O bom é manter o foco para se especializar !!! "


O código vai servir apenas como base ...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts