MenuetOS

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description Script error: No such module "Unsubst".Script error: No such module "Check for unknown parameters".

MenuetOS is an operating system with a monolithic preemptive, real-time kernel written in FASM assembly language. The system also includes video drivers. It runs on 64-bit and 32-bit x86 architecture computers. Its author is Ville M. Turjanmaa. It has a graphical desktop, games, and networking abilities (TCP/IP stack). One distinctive feature is that it fits on one 1.44 MB floppy disk.

History

32-bit

MenuetOS was originally written for 32-bit x86 architectures and released under the GPL-2.0-only license, thus many of its applications are distributed under the GPL.[1]

64-bit

The 64-bit MenuetOS, often referred to as Menuet 64, remains a platform for learning 64-bit assembly language programming. The 64-bit Menuet is distributed without charge for personal and educational use only, but without the source code, and the license includes a clause that prohibits disassembly.[2]

Multi-core support was added on 24 Feb 2010. lindbs-os/ ├── boot.asm ├── kernel.c ├── linker.ld ├── Makefile [bits 16] [org 0x7c00]

start:

   cli
   xor ax, ax
   mov ds, ax
   mov es, ax
   ; Carrega o kernel (supondo que esteja logo após o bootloader)
   mov si, msg
   call print
   ; Pula para o kernel
   jmp 0x0000:0x7e00

print:

   mov ah, 0x0E

.next_char:

   lodsb
   cmp al, 0
   je .done
   int 0x10
   jmp .next_char

.done:

   ret

msg db "LindBS: Iniciando kernel...", 0

times 510-($-$$) db 0 dw 0xAA55 void print_char(char c) {

   volatile char* video = (volatile char*)0xb8000;
   video[0] = c;      // caractere
   video[1] = 0x07;   // cor (cinza claro em fundo preto)

}

void kernel_main() {

   const char* message = "Bem-vindo ao LindBS!";
   volatile char* video = (volatile char*)0xb8000;
   for (int i = 0; message[i] != '\0'; i++) {
       video[i * 2] = message[i];
       video[i * 2 + 1] = 0x07;
   }
   while (1);  // loop infinito

} OUTPUT_FORMAT("elf32-i386") ENTRY(kernel_main)

SECTIONS {

   . = 0x7e00;
   .text : {
       *(.text)
   }
   .data : {
       *(.data)
   }
   .bss : {
       *(.bss)
   }

} make run

Features

MenuetOS development has focused on fast, simple, efficient implementation. MenuetOS has networking abilities, and a working TCP/IP stack. Most of the networking code is written by Mike Hibbett.

The main focus of Menuet has been on making an environment for easy assembly programming, but it is still possible to run software written in high-level programming languages on the assembler core. The biggest single effort towards high-level language support is Jarek Pelczar's work in porting C libraries to Menuet.

The GUI at version 0.99 supports display resolutions up to 1920 x 1080 (16 million colours) with window transparency. The OS has support for several classes of USB 2.0 peripherals. MenuetOS ships with the shareware versions of Quake and Doom.[1]

For disk access, MenuetOS supports the FAT32 file system.[3] Write support is only possible to USB connected devices.

As of version 1.49.60, MenuetOS can be booted on UEFI machines as well using Easyboot.

Distributions

32-bit

  • Menuet32
  • GridWorks "EZ" distribution (comprehensive 32-bit archive packages) (CD/HD Boots)

64-bit

The 64-bit main distribution is now proprietary. Several distributions of the 32-bit GPL MenuetOS still exist, including translations in Russian, Chinese, Czech, and Serbian.

See also

References

Template:Reflist

Bibliography

External links

Template:Sister project

Template:Hobbyist operating systems

Template:Real-time operating systems

  1. a b Template:In lang MenuetOS: In Assembler geschriebenes Betriebssystem, golem.de, 2009-08-10
  2. Cite error: Invalid <ref> tag; no text was provided for refs named license
  3. Template:In lang Яков Уваров (30 August 2005) Мал золотник, да дорог, Computerra