mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-01-13 16:16:31 +00:00
Update FAQ.DD, Strategy.DD
This commit is contained in:
parent
bab88689b3
commit
f256afb8b2
2 changed files with 5 additions and 5 deletions
|
@ -1,7 +1,7 @@
|
||||||
$WW,1$$FG,5$$TX+CX,"Frequently Asked Questions"$$FG$
|
$WW,1$$FG,5$$TX+CX,"Frequently Asked Questions"$$FG$
|
||||||
|
|
||||||
$TR,"How come it is public domain, not GPL?"$
|
$TR,"How come it is public domain, not GPL?"$
|
||||||
$ID,2$$FG,2$Terry A. Davis$FG$, wrote all of TempleOS over a span of $FG,2$$TX,"15.0",D="DD_TEMPLEOS_AGE"$$FG$ years (full-time). ZealOS, written over a span of $FG,2$$TX,"3.1",D="DD_ZEALOS_AGE"$$FG$ years (part-time), is a fork of TempleOS. It can run on bare metal 64-bit PC's from about 2007-2019 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and can stand alone. 100% of the public-domain operating system source code is included on all distros, from the kernel to the compiler to the applications, including public-domain BIOS-mode boot loaders! See $LK,"::/Doc/Credits.DD"$.
|
$ID,2$$FG,2$Terry A. Davis$FG$, wrote all of TempleOS over a span of $FG,2$$TX,"15.0",D="DD_TEMPLEOS_AGE"$$FG$ years (full-time). ZealOS, written over a span of $FG,2$$TX,"3.2",D="DD_ZEALOS_AGE"$$FG$ years (part-time), is a fork of TempleOS. It can run on bare metal 64-bit PC's from about 2007-2019 with no layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$. It is independent and can stand alone. 100% of the public-domain operating system source code is included on all distros, from the kernel to the compiler to the applications, including public-domain BIOS-mode boot loaders! See $LK,"::/Doc/Credits.DD"$.
|
||||||
$ID,-2$$TR,"Shouldn't it be GNU/ZealOS?"$
|
$ID,-2$$TR,"Shouldn't it be GNU/ZealOS?"$
|
||||||
$ID,2$ZealOS executes 100% public-domain operating system code. Public-domain boot-loaders were even written, so we do not require Grub. Optional UEFI-compatible ZealOS distro builds can be made using Limine, a BSD-2 licensed bootloader, but this is never required for BIOS-mode. See $LK,"::/Doc/Credits.DD"$.
|
$ID,2$ZealOS executes 100% public-domain operating system code. Public-domain boot-loaders were even written, so we do not require Grub. Optional UEFI-compatible ZealOS distro builds can be made using Limine, a BSD-2 licensed bootloader, but this is never required for BIOS-mode. See $LK,"::/Doc/Credits.DD"$.
|
||||||
$ID,-2$$TR,"Don't you use GNU's gcc?"$
|
$ID,-2$$TR,"Don't you use GNU's gcc?"$
|
||||||
|
@ -55,11 +55,11 @@ $ID,2$If you use Grub, you $FG,2$chain-load$FG$ like Windows. See $LK,"Boot",A=
|
||||||
$ID,-2$$TR,"How do I get Kernel.ZXE to boot?"$
|
$ID,-2$$TR,"How do I get Kernel.ZXE to boot?"$
|
||||||
$ID,2$The boot-loaders must be patched by you running $LK,"BootHDIns",A="MN:BootHDIns"$() or $LK,"BootMHDIns",A="MN:BootMHDIns"$(). Those will write the block address into the boot-loader because the boot-loaders do not navigate file systems to find the $LK,"Stage2",A="FI:::/Kernel/KStart16.ZC"$ if you relocate it.
|
$ID,2$The boot-loaders must be patched by you running $LK,"BootHDIns",A="MN:BootHDIns"$() or $LK,"BootMHDIns",A="MN:BootMHDIns"$(). Those will write the block address into the boot-loader because the boot-loaders do not navigate file systems to find the $LK,"Stage2",A="FI:::/Kernel/KStart16.ZC"$ if you relocate it.
|
||||||
$ID,-2$$TR,"Why is there some 16-Bit code?"$
|
$ID,-2$$TR,"Why is there some 16-Bit code?"$
|
||||||
$ID,2$ZealOS is 64-bit. Like all PC operating systems, the boot-loader starts in 16-bit real-mode. ZealOS calls a few $FG,2$BIOS$FG$ info routines, switches to VGA-640x480x4bit, switches to 32-bit, then, 64-bit mode. There is an odd thing called a $FG,2$$TX,"PCI BIOS",HTML="http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf"$$FG$ which is 32-bit used for $FG,2$PCI$FG$ config space access. If supported, ZealOS calls $LK,"that",A="FI:::/Kernel/PCIBIOS.ZC"$ a couple times, otherwise using Port I/O for PCI. It must temporarily drop-out-of 64-bit mode for that and stop multi-tasking.
|
$ID,2$ZealOS is 64-bit. Like all PC operating systems, the MBR boot-loader starts in 16-bit real-mode. ZealOS calls a few $FG,2$BIOS$FG$ info routines, switches to 32-bit, then, 64-bit mode. There is an odd thing called a $FG,2$$TX,"PCI BIOS",HTML="http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf"$$FG$ which is 32-bit used for $FG,2$PCI$FG$ config space access. If supported, ZealOS calls $LK,"that",A="FI:::/Kernel/PCIBIOS.ZC"$ a couple times, otherwise using Port I/O for PCI. It must temporarily drop-out-of 64-bit mode for that and stop multi-tasking.
|
||||||
$ID,-2$$TR,"Why are you pushing 32-bit values on the stack?"$
|
$ID,-2$$TR,"Why are you pushing 32-bit values on the stack?"$
|
||||||
$ID,2$$FG,2$PUSH EAX$FG$ : All stack operations in 64-bit mode are 64-bits.
|
$ID,2$$FG,2$PUSH EAX$FG$ : All stack operations in 64-bit mode are 64-bits.
|
||||||
$ID,-2$$TR,"Why are you using 32-bit insts and not setting high 32-bits?"$
|
$ID,-2$$TR,"Why are you using 32-bit insts and not setting high 32-bits?"$
|
||||||
$ID,2$$FG,2$XOR EAX,EAX$FG$ : Operations on 32-bit registers clear the high 32-bits.
|
$ID,2$$FG,2$XOR EAX, EAX$FG$ : Operations on 32-bit registers clear the high 32-bits.
|
||||||
$ID,-2$$TR,"How do you use the FS and GS segment registers."$
|
$ID,-2$$TR,"How do you use the FS and GS segment registers."$
|
||||||
$ID,2$$FG,2$MOV RAX,FS:[RAX]$FG$ : FS can be set with a $FG,2$WRMSR$FG$, but displacement is RIP relative, so it's tricky to use. FS is used for the current $LK,"CTask",A="MN:CTask"$, GS for $LK,"CCPU",A="MN:CCPU"$.
|
$ID,2$$FG,2$MOV RAX,FS:[RAX]$FG$ : FS can be set with a $FG,2$WRMSR$FG$, but displacement is RIP relative, so it's tricky to use. FS is used for the current $LK,"CTask",A="MN:CTask"$, GS for $LK,"CCPU",A="MN:CCPU"$.
|
||||||
$ID,-2$$TR,"How do I set ORG for position of code?"$
|
$ID,-2$$TR,"How do I set ORG for position of code?"$
|
||||||
|
|
|
@ -6,9 +6,9 @@ Windows is a car.
|
||||||
|
|
||||||
ZealOS is a motorcycle -- if you lean-over too far, a motorcycle will crash. Don't do that! There are no side air bags on a motorcycle. DOS and C64 had no memory protections and ran in ring-0, with no security. This saves an order of magnitude complexity.
|
ZealOS is a motorcycle -- if you lean-over too far, a motorcycle will crash. Don't do that! There are no side air bags on a motorcycle. DOS and C64 had no memory protections and ran in ring-0, with no security. This saves an order of magnitude complexity.
|
||||||
|
|
||||||
Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks and is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system allocates just contiguous files -- you load and save whole files at once. Also, ZealOS does not do multimedia. In theory, memory will fragment with lots of big files. The system would fall to pieces with multimedia.
|
Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks and is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system allocates just contiguous files -- you load and save whole files at once. In theory, memory will fragment with lots of big files.
|
||||||
|
|
||||||
A three button mouse is like a leg you cannot put weight on. ZealOS just does hardware everybody has, with no divergent code bases for each machine's custom hardware. There is one graphics driver instead of 50 for different GPUs. This saves an order of magnitude complexity and makes for a delightful API, so developer's code is not like a frayed rope end.
|
A three button mouse is like a leg you cannot put weight on. ZealOS primarily just does hardware everybody has, avoiding divergent code bases for each machine's custom hardware. There is one CPU-driven graphics driver, instead of 50 for different GPUs. This saves an order of magnitude complexity and makes for a delightful API, so developer's code is not like a frayed rope end.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue