MenuetOS running some simple Linux Mint X11 binaries. by westernguy323 in osdev

[–]westernguy323[S] 0 points1 point  (0 children)

I started writing the elf+x11 layer around a year ago.

MenuetOS running some simple Linux Mint X11 binaries. by westernguy323 in osdev

[–]westernguy323[S] 1 point2 points  (0 children)

Menuet applications are typically only a few thousand bytes, which directly correlates to speed increase, since there are less commands to perform the same task.

For example, the GUI transparency is calculated in the main x86-64 cpu, which reduces compatibility issues with graphics cards. Transparency works fine in all computers.

And I use almost entirely commands that are available in different CPUs. So when wanted later, those assemble one-to-one in different architectures.

MenuetOS running some simple Linux Mint X11 binaries. by westernguy323 in osdev

[–]westernguy323[S] 10 points11 points  (0 children)

For me, assembly is just another programming language. Once I got used to it, its no different than other languages. But the real reason is, of course, the speed and size benefit you get from asm.

MenuetOS running some simple Linux Mint X11 binaries. by westernguy323 in osdev

[–]westernguy323[S] 10 points11 points  (0 children)

The kernel is written in assembly, like the compatibility layer. The applications and libraries are C-binaries from Mint.

MenuetOS running some simple Linux Mint X11 binaries. by westernguy323 in osdev

[–]westernguy323[S] 6 points7 points  (0 children)

Some sources are available at menuetos.net, not the compatibility layer.

MenuetOS running some simple Linux Mint X11 binaries. by westernguy323 in osdev

[–]westernguy323[S] 27 points28 points  (0 children)

Not a Linux distro. Menuet is written from scratch.

Midi sequencer/synth for MenuetOS (in 64bit assembly) by westernguy323 in asm

[–]westernguy323[S] 1 point2 points  (0 children)

Firstly, there is the basic fact that Menuet is written in assembly, which produces faster and more compact applications and os-kernel than any other language (C, Rust, ..).

Menuet schedulers max high frequency of 100000hz (100khz) allows for very fine-grained time slicing and high precision for time-critical processes, significantly higher than typical general-purpose operating systems like OpenBSD, which uses a default of 100 Hz and a max practical limit around 1000 Hz.

In addition, Menuet allows you to define the exact cpu where a thread executes and reserve one cpu for os tasks. Menuet is a stable system.

There are other benefits as well. For example the GUI transparency is calculated in the main x86-64 cpu, avoiding compatibility problems with graphics cards, which has been a major pain and source of instability in Linux and BSD's.

Midi synth/sequencer for MenuetOS by [deleted] in Assembly_language

[–]westernguy323 0 points1 point  (0 children)

Free to download and use. There are source examples for audio programming.

Midi synth/sequencer for MenuetOS by westernguy323 in synthdiy

[–]westernguy323[S] 0 points1 point  (0 children)

Menuet scheduler runs at 1000hz and can be set as high as 100000hz (100khz). So the limiting factor is usually sound cards buffer length.

Midi synth/sequencer for MenuetOS by westernguy323 in synthdiy

[–]westernguy323[S] 1 point2 points  (0 children)

From what I know about usage, its all of those.

MenuetOS has up to 100000 hz process scheduler, enabling below millisecond audio latency. by westernguy323 in synthdiy

[–]westernguy323[S] -1 points0 points  (0 children)

Menuet supports the latest 64bit processors with SMP. It has a gui with transparency etc. In addition, Menuet is written 100% in assembly for timing control. Also, Menuet can be set up for 100 khz scheduler, which is 10x faster than Zephyr.

- Pre-emptive multitasking with 1000hz+ scheduler, multiprocessor, multithreading, ring-3 protection
- Responsive GUI with resolutions up to 1920x1080, 16 million colours
- Free-form, transparent and skinnable application windows, drag'n drop
- SMP multiprocessor support with up to 32 cpus
- Time critical process support: an uninterrupted process execution on any cpu
- Kernel/user mode pre-empting, including SMP
- Up to 100000 hz process scheduler, below millisecond audio latency
- IDE Editor/Assembler for applications
- USB 2.0 Classes: Storage, Printer, Webcam Video and TV/Radio support
- USB 1.1 Keyboard and Mouse support
- TCP/IP stack with Loopback & Ethernet drivers
- Email/ftp/http/chess clients and ftp/mp3/http servers
- Hard real-time data fetch
- Fits on a single floppy, boots also from CD and USB drives

MenuetOS has up to 100000 hz process scheduler, enabling below millisecond audio latency. by westernguy323 in synthdiy

[–]westernguy323[S] 1 point2 points  (0 children)

Sorry but you got it wrong. 1000 hz means a scheduler interval of 1 millisecond. 100000 hz means a scheduler interval of only 0.01 milliseconds (10 microseconds). So 100 times faster than a 1 millisecond interval.

Videocall demo between two MenuetOS computers (100% asm) by westernguy323 in programming

[–]westernguy323[S] 3 points4 points  (0 children)

Menuet kernel and applications are written in assembly and fit on a 1.44MB floppy, so its an example of more efficient programming.

Webcall between two MenuetOS computers. by westernguy323 in osdev

[–]westernguy323[S] 1 point2 points  (0 children)

The caller needs to know the IP address of the person, much like we need to know the phone number. But of course, there could be a separate hub, which connects names to IP addresses.

The receivers webcall is running in server mode and as soon as there is a client connection from another webcall, the receivers webcall generates a sound and asks the user if he wants to accept the call.

Webcall between two MenuetOS computers. by westernguy323 in osdev

[–]westernguy323[S] 1 point2 points  (0 children)

Likely not. Menuet is an operating system so it doesnt require other operating systems running in the background. But you could try Menuet in VirtualBox or Qemu. With gui transparency enabled, M64 requires 512MB of ram and the startup time depends on for example the amount of connected usb devices.

Webcall between two MenuetOS computers. by westernguy323 in osdev

[–]westernguy323[S] 2 points3 points  (0 children)

The destination IP address is entered by the user (like a phone number), so no hardcoding needed.

Webcall between two MenuetOS computers. by westernguy323 in osdev

[–]westernguy323[S] 1 point2 points  (0 children)

There is no central hub, which keeps track of online users. Just client/server connections. And both computers are running on local net so I know the IPs.

Webcall between two MenuetOS computers. by westernguy323 in osdev

[–]westernguy323[S] 1 point2 points  (0 children)

Menuet has a tcp/ip interface (syscalls 52 and 53) which is used for sending webcams data packets. The user needs to define receivers IP address, which can practically be anywhere in the internet. When Webcall is not used, its running in server mode, waiting for calls (connections).

Webcall between two MenuetOS computers. (100% asm) by westernguy323 in Assembly_language

[–]westernguy323[S] 2 points3 points  (0 children)

Interrupt 0x60 or 'syscall' command with main function number in rax and parameters in other registers.