An operating system written in assembly language, designed to provide an efficient, stable, and user-friendly operating system experience. This operating system only occupies 1.4MB of space, with the latest update on May 10, 2024. MenuetOS not only provides an intuitive operating interface but also has multiple features, making it a versatile operating system. It supports network connections, allowing users to communicate over the network through the TCP/IP protocol stack, access remote resources, and browse the web. Additionally, it supports USB device connections, enabling users to connect USB devices like printers for file printing. It also has multimedia capabilities, allowing users to watch videos, listen to music, and enjoy multimedia entertainment. It supports various file formats, enabling users to play and manage files through the operating system. Users can also play games on this operating system for entertainment.
MenuetOS was created by British software engineers Ville Mikael Turjanmaa and Madis Kalme. They built this operating system using x86 assembly language in 2000. Their goal was to create a platform that is easy to assemble and program, showcasing the simplicity and power of assembly language. They believe that assembly language allows programmers to interact more deeply with hardware, better control system performance and resources, and hope to spark more interest and enthusiasm for assembly language and operating systems through this operating system. The symbolic significance of MenuetOS lies in its demonstration to the world that assembly language is not an outdated, low-level, and difficult-to-operate programming language, but a language capable of developing exciting, modern, and feature-rich operating systems. At the same time, it is a non-traditional example of operating system development, showing the world that developing an operating system does not necessarily have to be based on standards like UNIX or POSIX, nor does it have to rely on existing operating systems, but can be built from scratch according to its own expectations and design philosophy.
MenuetOS has the following features and functions:1. Ultra-small size: The kernel of MenuetOS is only about 64KB in size, making it one of the smallest complete operating systems in the world. This makes it suitable for resource-limited environments, such as old computers or embedded systems.2. Real-time performance: MenuetOS has low latency and high real-time performance. It can perform high-precision task scheduling and responses, suitable for applications that require quick responses, such as audio/video processing or real-time control systems.3. Graphical interface: MenuetOS supports a graphical user interface (GUI), providing window management, graphics rendering, mouse and keyboard input, etc. It supports TrueType fonts and various graphical effects, allowing users to create beautiful graphical interface applications.4. Multitasking support: MenuetOS supports multitasking operations, allowing multiple applications to run simultaneously and providing task switching and scheduling mechanisms. It also has multi-threading support for concurrent execution and inter-task communication.5. Networking features: MenuetOS supports basic networking capabilities, including TCP/IP protocol stack, network sockets, and network file systems. This enables MenuetOS to perform network communications and access remote resources.6. Development tools: MenuetOS provides a complete set of development tools, including an assembly language compiler, debugger, and graphical interface designer. Developers can use these tools to write and debug MenuetOS applications.Other features include:– 1000Hz scheduler, multi-processor, multi-threading, and preemptive multitasking with ring 3 protection – Responsive GUI, supporting high resolution and 16 million colors – Free-form, transparent, and skinnable application windows, supporting drag-and-drop functionality – SMP multi-processor support, up to 32 CPUs – Time-critical process support, allowing uninterrupted execution of processes on any CPU – Kernel/user mode preemption, including SMP – Up to 100000 Hz process scheduler, audio latency below the millisecond level – IDE editor/assembler for applications – USB 2.0 class support, including storage, printers, webcam video, and TV/broadcast – USB 1.1 keyboard and mouse support – TCP/IP stack with loopback and Ethernet drivers – Email/FTP/HTTP/chess client and FTP/MP3/HTTP server – Hard real-time data extraction – Bootable from a single floppy disk, CD, and USB drive.
If you are interested, you can install it in a virtual machine,after installation, start MenuetOS and select 3 to start without modifying the configuration.
Reply to the backendMenuetOS to obtain the operating system.
If you are interested in assembly language, I recommend the assembly language book by Professor Wang Shuang.
Wang Shuang’s “Assembly Language” is a very classic assembly language textbook, loved by many beginners and enthusiasts. If you want to operate or implement something in Wang Shuang’s assembly language environment, it usually involves the following steps:
-
Install DOSBox and MASM32:
-
DOSBox is a tool that simulates a DOS environment, as assembly language typically runs in a DOS environment.
-
MASM32 is Microsoft’s assembler for compiling assembly programs.
Write assembly code: Use a text editor (like Notepad or a more advanced editor) to write assembly code. Ensure the code follows the syntax and conventions in Wang Shuang’s book.
Compile assembly code: In DOSBox, use MASM32 to compile your assembly code. This usually involves the following steps:
-
Switch to the directory containing your assembly code.
-
Use the
masm
command to compile your code.
Link and generate an executable file: After compiling, you need to use a linker (like link
) to convert the compiled object file into an executable file.
Run the program: In DOSBox, directly run the generated executable file to see the program’s results.
Here is a simple example showing how to write, compile, and run a simple assembly program in the DOSBox and MASM32 environment:
Step 1: Install DOSBox and MASM32. Make sure to install them on your computer and configure the MASM path in DOSBox.
Step 2: Write assembly code. Create a text file, such as hello.asm
, and enter the following code:
.model small
.stack 100h
.data
message db 'Hello, World!', 0
.code
start:
mov ax, @data
mov ds, ax
mov ah, 09h ; DOS function number to display string
lea dx, message ; Load address of message into DX
int 21h ; Call DOS interrupt
mov ax, 4C00h ; DOS function number to exit program
int 21h ; Call DOS interrupt
end start
Step 3: Compile the assembly code in DOSBox. Assuming your hello.asm
file is located in C:\ASM
directory, you can do this:
bash
C:\> mount c C:\ASM
C:\> c:
C:\ASM> masm hello.asm
This will generate one or more object files (like hello.obj
).
Step 4: Link the object files.
bash
C:\ASM> link hello.obj
This will generate an executable file (like hello.exe
).
Step 5: Run the program.
bash
C:\ASM> hello
You will see “Hello, World!” output in the DOSBox window.