DUGL Player 1.0 Alpha1 - DOS SMP (Announce)
Hi! Thanks for working on DUGL 
> yes SMP with DOS isn't easy, as we need to make DOS kernel threading
> aware/reentrant, but a first SMP impementation that just use the other
> cores, and save the state of MMX, XMM registers on thread switch and with
> the constraint to never call DOS/BIOS functions outside a single thread.
> should be doable. let's see.
I agree that avoiding parallel calls to the kernel is a good solution for now. There even were games or demoscene demos which just loaded all data before switching to protected mode, so they needed no DOS extender to call the kernel from protected mode.
The kernel already has the InDOS flag which helps you to avoid calling it while it already is busy. And It is okay to lock the kernel to the first CPU core.
If you want to handle multiple parallel kernel calls, you can use the same strategy as Windows 3.x in 386enh mode and swap all swappable data of the kernel to create relatively independent instances of the running kernel. It used that to be able to run multiple DOS windows seemingly in parallel. You would have to use a very modern WfW 3.11 compatible FreeDOS kernel version.
Of course multi-core DOS could be made arbitrarily complex - there already are Jack's UDMA drivers for SATA, but modern disks and SSD support multithreaded I/O with several transactions being active at the same time. I do NOT think that a DOS kernel should try to do this.
---
FreeDOS / DOSEMU2 / ...
Complete thread:
- DUGL Player 1.0 Alpha2 - FFK, 28.02.2026, 04:59 (Announce)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- DUGL Player 1.0 Alpha1 - rr, 28.02.2026, 12:57
- DUGL Player 1.0 Alpha1 - FFK, 28.02.2026, 22:47
- DUGL Player 1.0 Alpha1 - Zyzzle, 01.03.2026, 05:29
- DUGL Player 1.0 Alpha1 - FFK, 01.03.2026, 10:50
- DUGL Player 1.0 Alpha1 - DOS SMP - mceric, 01.03.2026, 12:27
- DUGL Player 1.0 Alpha1 - DOS SMP - FFK, 01.03.2026, 21:50
- DUGL Player 1.0 Alpha1 - RayeR, 01.03.2026, 15:52
- DUGL Player 1.0 Alpha1 - FFK, 01.03.2026, 17:58
- DUGL Player 1.0 Alpha1 - RayeR, 02.03.2026, 18:20
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 23:21
- DUGL Player 1.0 Alpha1 - RayeR, 02.03.2026, 18:20
- DUGL Player 1.0 Alpha1 - FFK, 01.03.2026, 17:58
- DUGL Player 1.0 Alpha1 - Zyzzle, 03.03.2026, 02:25
- DUGL Player 1.0 Alpha1 - DOS SMP - mceric, 01.03.2026, 12:27
- DUGL Player 1.0 Alpha1 - FFK, 01.03.2026, 10:50
- DUGL Player 1.0 Alpha1 - Zyzzle, 01.03.2026, 05:29
- DUGL Player 1.0 Alpha1 - FFK, 28.02.2026, 22:47
- DUGL Player 1.0 Alpha1 - Zyzzle, 28.02.2026, 14:48
- DUGL Player 1.0 Alpha1 - FFK, 28.02.2026, 23:20
- DUGL Player 1.0 Alpha1 - Zyzzle, 01.03.2026, 01:43
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 02:15
- DUGL Player 1.0 Alpha1 - RayeR, 02.03.2026, 05:14
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 09:08
- DUGL Player 1.0 Alpha1 - RayeR, 02.03.2026, 18:25
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 23:30
- DUGL Player 1.0 Alpha1 - Zyzzle, 03.03.2026, 02:15
- DUGL Player 1.0 Alpha1 - RayeR, 03.03.2026, 02:33
- DUGL Player 1.0 Alpha1 - FFK, 04.03.2026, 12:26
- DUGL Player 1.0 Alpha1 - RayeR, 03.03.2026, 20:59
- DUGL Player 1.0 Alpha1 - FFK, 03.03.2026, 22:13
- DUGL Player 1.0 Alpha1 - Laaca, 05.03.2026, 07:00
- DUGL Player 1.0 Alpha1 - RayeR, 05.03.2026, 17:30
- DUGL Player 1.0 Alpha1 - Laaca, 05.03.2026, 07:00
- DUGL Player 1.0 Alpha1 - FFK, 03.03.2026, 22:13
- DUGL Player 1.0 Alpha1 - Zyzzle, 03.03.2026, 02:15
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 23:30
- DUGL Player 1.0 Alpha1 - RayeR, 02.03.2026, 18:25
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 09:08
- DUGL Player 1.0 Alpha1 - Zyzzle, 02.03.2026, 10:58
- DUGL Player 1.0 Alpha1 - FFK, 02.03.2026, 16:59
- DUGL Player 1.0 Alpha1 - RayeR, 02.03.2026, 05:14
- DUGL Player 1.0 Alpha1 - FFK, 28.02.2026, 23:20
- DUGL Player 1.0 Alpha3 - FFK, 26.03.2026, 02:47
- DUGL Player 1.0 Alpha3 - Zyzzle, 05.04.2026, 20:37
- DUGL Player 1.0 Alpha3 - FFK, 06.04.2026, 17:28
- DUGL Player 1.0 Alpha3 - Zyzzle, 05.04.2026, 20:37
- DUGL Player 1.0 Alpha1 - rr, 28.02.2026, 12:57
Mix view