Homebrew OS Development: Difference between revisions

From DisNCord Community Wiki
Jump to navigation Jump to search
Update astral section
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Projects]]
This is a general summary of what OSes are being developed on DisNCord.
This is a general summary of what OSes are being developed on DisNCord.


=== Open Computing Kit (OCK) ===
=== Open Computing Kit (OCK) ===
A joint project between Elisia, Sadmac356, Griffin, Europa, and others, [https://github.com/open-computing-kit Open Computing Kit] is an operating system that aims to be as GNU-independent as possible, including a [https://github.com/open-computing-kit/ockernel kernel written in Rust] and its [https://github.com/open-computing-kit/OCKcore own set of coreutils]. It is presently in the very early stages of active development.
A joint project between Velleda, Sadmac356, Griffin, Europa, and others, [https://github.com/open-computing-kit Open Computing Kit] is an operating system that aims to be as GNU-independent as possible, including a [https://github.com/open-computing-kit/ockernel kernel written in Rust] and its [https://github.com/open-computing-kit/OCKcore own set of coreutils]. It is presently in the very early stages of active development.
[[File:SeshOS3.png|thumb|SeshOS as of August 6th, 2024]]


=== SeshOS ===
=== SeshOS ===
Written by Mineman, SeshOS is one of the more esoteric OSes on DisNCord. It has the beginnings of a GUI and shell in the kernel, but no memory management.
Written by Mineman, SeshOS is one of the more esoteric OSes on DisNCord. As of 10/15/2022 it has a working malloc thanks to Krabs and Mathewnd.


SeshOS has support for one filesystem: tar ramfs.  
SeshOS has support for one filesystem: tar ramfs.  
Has very basic SMP setup, and has support for the PC Speaker.


Its source code is located at https://github.com/mine-man3000/SeshOS.
Its source code is located at https://github.com/mine-man3000/SeshOS.
[[File:SeshOS2.png|thumb|SeshOS in its current state as of September 1st, 2022]]


Techflash also rewrote the entire thing in C and ported bits of his OS to this.
=== Pics Of Bread Awful scRipting Interpreter System for Neat Architectures (POBARISNA) ===
=== Pics Of Bread Awful scRipting Interpreter System for Neat Architectures (POBARISNA) ===
Written by Krabs, POBARISNA is an operating system with a JavaScript-based microkernel design that currently only runs on PowerPC macs. There are prospective plans for ports to other "Neat Architectures" (which Krabs defines as "not a PC/BIOS/UEFI x86 system"), such as SPARC variants and ARM.
Written by Krabs, POBARISNA is an operating system with a JavaScript-based microkernel design that currently only runs on PowerPC macs. There are prospective plans for ports to other "Neat Architectures" (which Krabs defines as "not a PC/BIOS/UEFI x86 system"), such as SPARC variants and ARM.


The project can be found on [https://gitlab.com/christiancrowle/pobarisna GitLab].
The project can be found on [https://gitlab.com/sarahcrowle/pobarisna GitLab].


The JavaScript interpreter used in POBARISNA is [https://duktape.org/ Duktape], an easily embeddable interpreter with a nice API. However, Duktape 2.x has some awkward tooling and a lack of solid control over execution. Therefore, there are plans to replace it with [https://gitlab.com/christiancrowle/dorktape Dorktape], which will hopefully serve as a modernized fork of the engine.
The JavaScript interpreter used in POBARISNA is [https://duktape.org/ Duktape], an easily embeddable interpreter with a nice API. However, Duktape 2.x has some awkward tooling and a lack of solid control over execution. Therefore, there are plans to replace it with [https://gitlab.com/sarahcrowle/dorktape Dorktape], which will hopefully serve as a modernized fork of the engine.


Being that PowerPC OpenFirmware is a slightly under-documented platform, [[PowerPC OpenFirmware Implementation Details]] should serve as helpful to anyone looking to do something similar.
Being that PowerPC OpenFirmware is a slightly under-documented platform, [[PowerPC OpenFirmware Implementation Details]] should serve as helpful to anyone looking to do something similar.
Line 23: Line 27:


=== picotalk ===
=== picotalk ===
Written by Waterpear, picotalk is a Smalltalk interpreter that aims to be a bare-metal system for embedded use. It is currently in a very limited state; only the base object model and a preliminary bytecode VM are operational.
Written by Waterpear, picotalk is a Smalltalk interpreter that aims to be a bare-metal system for embedded use.
 
An early attempt to implement a system from scratch in C existed, but has been abandoned. Instead, the plan is to recreate the original Smalltalk-80 system, build an RPC layer to allow the development tools to operate over a serial link, and strip out features not needed for embedded systems such as the GUI. A "zeroth prototype" written in Python is in progress, and can run some of the Smalltalk development tools.


=== Rotom OS ===
=== Rotom OS ===
Line 45: Line 51:


Its current main goal is to have a usable command line interface while also having fun developing the system.
Its current main goal is to have a usable command line interface while also having fun developing the system.
 
[[File:Astral neofetch.png|alt=Astral running Neofetch on Oct 11, 2022|thumb|Astral running Neofetch on Oct 11, 2022]]
[[File:Astral running Bash.png|thumb|alt=Astral running Bash builtins on Sept 11, 2022|Astral running Bash builtins on Sept 11, 2022]]


=== Techflash OS (TFOS) ===
=== Techflash OS (TFOS) ===
Line 55: Line 60:
* A basic boot procedure
* A basic boot procedure
* Enabling a few CPU features
* Enabling a few CPU features
* (broken) support of a few basic interrupts, such as the [[wikipedia:Intel_8253|PIT]]
* Support of a few basic interrupts, such as the [[wikipedia:Intel_8253|PIT]] and keyboard.
* A very basic framebuffer console
* A very basic framebuffer console
* Starts of an ELF loader
* Serial and Parallel support for logging

Latest revision as of 18:36, 8 September 2024

This is a general summary of what OSes are being developed on DisNCord.

Open Computing Kit (OCK)

A joint project between Velleda, Sadmac356, Griffin, Europa, and others, Open Computing Kit is an operating system that aims to be as GNU-independent as possible, including a kernel written in Rust and its own set of coreutils. It is presently in the very early stages of active development.

SeshOS as of August 6th, 2024

SeshOS

Written by Mineman, SeshOS is one of the more esoteric OSes on DisNCord. As of 10/15/2022 it has a working malloc thanks to Krabs and Mathewnd.

SeshOS has support for one filesystem: tar ramfs.

Has very basic SMP setup, and has support for the PC Speaker.

Its source code is located at https://github.com/mine-man3000/SeshOS.

Techflash also rewrote the entire thing in C and ported bits of his OS to this.

Pics Of Bread Awful scRipting Interpreter System for Neat Architectures (POBARISNA)

Written by Krabs, POBARISNA is an operating system with a JavaScript-based microkernel design that currently only runs on PowerPC macs. There are prospective plans for ports to other "Neat Architectures" (which Krabs defines as "not a PC/BIOS/UEFI x86 system"), such as SPARC variants and ARM.

The project can be found on GitLab.

The JavaScript interpreter used in POBARISNA is Duktape, an easily embeddable interpreter with a nice API. However, Duktape 2.x has some awkward tooling and a lack of solid control over execution. Therefore, there are plans to replace it with Dorktape, which will hopefully serve as a modernized fork of the engine.

Being that PowerPC OpenFirmware is a slightly under-documented platform, PowerPC OpenFirmware Implementation Details should serve as helpful to anyone looking to do something similar.

An early screenshot of POBARISNA running Duktape in OpenFirmware
An early screenshot of POBARISNA running Duktape in OpenFirmware

picotalk

Written by Waterpear, picotalk is a Smalltalk interpreter that aims to be a bare-metal system for embedded use.

An early attempt to implement a system from scratch in C existed, but has been abandoned. Instead, the plan is to recreate the original Smalltalk-80 system, build an RPC layer to allow the development tools to operate over a serial link, and strip out features not needed for embedded systems such as the GUI. A "zeroth prototype" written in Python is in progress, and can run some of the Smalltalk development tools.

Rotom OS

Written by SED, Rotom OS is an operating system with little information to glean from anything except for its code and a few images. It attempts to be as simple as possible, with ring 3 not yet being implemented.

Rotom OS

styx

Written by Sirocyl and others, styx is an operating system with many ideas, some of which will be listed here:

  • Applications will be double-click to run, much like Windows or macOS.
  • Libraries should live with their application in packaging, similar to Windows.
  • Installation will be done through drag-and-drop, taken from macOS.
  • The system will be as (trans)portable as possible, similar to Classic macOS.
  • The word "styx" is not an acronym, nor will the operating system's governing body ever be comprised of one member.
  • The system will be consent-first, something that flies in the face of traditional operating systems like Windows and macOS.

There are many more than are stated here in their Discord server, due to there being too many to list here effectively.

Astral

Written by Mathewnd, Astral is a monolithic kernel written in C. It is still at its early stages of development and has the beginnings of a userland.

It has a growing port collection with a few examples being Bash, Doom, Binutils, Coreutils and NASM.

Its current main goal is to have a usable command line interface while also having fun developing the system.

Astral running Neofetch on Oct 11, 2022
Astral running Neofetch on Oct 11, 2022

Techflash OS (TFOS)

Written by Techflash, Techflash OS is an operating system that is still very early in development.

It current has very little implemented except for the following:

  • A basic boot procedure
  • Enabling a few CPU features
  • Support of a few basic interrupts, such as the PIT and keyboard.
  • A very basic framebuffer console
  • Starts of an ELF loader
  • Serial and Parallel support for logging