hello friends! new(ish)!

/aosg/ Alternative Operating System General: Difference between revisions

From InstallGentoo Wiki v2
Jump to navigation Jump to search
>Alien
(New section: Object Oriented OS)
(Add new section on real-time OS)
 
(13 intermediate revisions by 3 users not shown)
Line 25: Line 25:
* [https://desuarchive.org/g/thread/91547471 RISC-V and Arduino], didn't last long either.
* [https://desuarchive.org/g/thread/91547471 RISC-V and Arduino], didn't last long either.
* [https://desuarchive.org/g/thread/91602550 thread 17], and OP delivers the complete OP text, wherein also an OS library is started.
* [https://desuarchive.org/g/thread/91602550 thread 17], and OP delivers the complete OP text, wherein also an OS library is started.
* [https://desuarchive.org/g/thread/91694115 thread 18], [https://desuarchive.org/g/thread/91776271 thread 19] and [https://desuarchive.org/g/thread/91901199 thread 20], and OP stays the course
* threads [https://desuarchive.org/g/thread/91694115 18], [https://desuarchive.org/g/thread/91776271 19], [https://desuarchive.org/g/thread/91901199 20], [https://desuarchive.org/g/thread/91996963 21], [https://desuarchive.org/g/thread/92024443 21], [https://desuarchive.org/g/thread/92093824 22], [https://desuarchive.org/g/thread/92130458 23], [https://desuarchive.org/g/thread/92146643 24], [https://desuarchive.org/g/thread/92241764 25], [https://desuarchive.org/g/thread/92276556 26], and OP stays the course.
 
Some more recent threads also got washed out due to a big cross-board flood. A complete, updated list can always be found at [https://desuarchive.org/g/search/subject/aosg/type/op/ Desuarchive].


== List of Notable Alternative Operating Systems ==
== List of Notable Alternative Operating Systems ==
Line 50: Line 52:
* https://eltaninos.org/ minimal linux distro assembled and partly written by an anon
* https://eltaninos.org/ minimal linux distro assembled and partly written by an anon
* https://www.freertos.org/ FreeRTOS, a real-time operating system for microcontrollers
* https://www.freertos.org/ FreeRTOS, a real-time operating system for microcontrollers
* https://vmssoftware.com/ OpenVMS, the decendant of VMS that ran on big VAX machines, famous for uptimes measured in decades, especially when running VAXcluster.
* https://vmssoftware.com/ OpenVMS, the decendant of VMS that ran on big VAX machines, famous for uptimes measured in decades, especially when running VAXcluster. A [http://sanyalnet-openvms-vax.freeddns.org:82/ public OpenVMS server] is available for testing.  
* https://github.com/jnode/jnode Jnode, a semi dead Java based OS.
* https://github.com/jnode/jnode Jnode, a semi dead Java based OS.
* http://www.cse.psu.edu/~deh25/cmpsc473/assignments/HW234/cucs-470-89.pdf The Synthesis Operating System, where parts of the kernel is synthesized on demand, also see [https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.4871], [https://wiki.c2.com/?SynthesisOs] and [https://blog.regehr.org/archives/1676]
* http://www.cse.psu.edu/~deh25/cmpsc473/assignments/HW234/cucs-470-89.pdf The Synthesis Operating System, where parts of the kernel is synthesized on demand, also see [https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.4871], [https://wiki.c2.com/?SynthesisOs] and [https://blog.regehr.org/archives/1676]. One thread [https://desuarchive.org/g/thread/92024443/#q92079724 expanded on the idea], and it was [https://desuarchive.org/g/thread/92276556/#q92305104 proposed] to do some defensive publications on what is tentatively called [[ShimOS]].
* https://www.gnu.org/software/hurd/ HURD, a GNU project that was overtaken by Linux; Stallman is still cross.
* https://www.gnu.org/software/hurd/ HURD, a GNU project that was overtaken by Linux; Stallman is still cross.
* https://visopsys.org/ VisOpsys is an alternative operating system for PC compatible computers, in development since 1997, this system is small, fast, and open source.
* https://visopsys.org/ VisOpsys is an alternative operating system for PC compatible computers, in development since 1997, this system is small, fast, and open source.
Line 69: Line 71:
* http://toastytech.com/guis/alto.html Xerox Alto, the very first OS with a GUI, quite extraordinary
* http://toastytech.com/guis/alto.html Xerox Alto, the very first OS with a GUI, quite extraordinary
* http://www.jbox.dk/sanos/ SanOS an extremely small OS to do one thing: run a single java server application
* http://www.jbox.dk/sanos/ SanOS an extremely small OS to do one thing: run a single java server application
* http://cap-lore.com/CapTheory/KK/ Keykos  
* http://cap-lore.com/CapTheory/KK/ Keykos
* https://resea.org/ Resea ([https://github.com/nuta/resea source] on Github)
* https://nakst.gitlab.io/essence Essence is a new desktop OS
* https://aero.andypy.dev/aero_kernel/index.html Aero] (source on Github) is a new modern, experimental, UNIX-like operating system following the monolithic kernel design. Supporting modern PC features such as long mode, 5-level paging, and SMP (multicore), to name a few.
* https://www.freedos.org/ Freedos is an open source DOS-compatible OS (source on Github). There are several GUIs to chose from, such as OpenGEM.
* https://axleos.com/ AxleOS is a hobby microkernel x86_64 OS with userspace (source on Github).
* https://artilleryos.org/ ArtilleryOS describes itself as a unique graphical operating system that combines the simplicity and power of Unix-like systems with a tiling window management environment. Featuring a custom-designed kernel, ArtilleryOS offers an efficient and user-friendly computing experience. (source on GitHub).
* https://gitlab.com/sortix/sortix Sortix describes itself as a small self-hosting operating-system aiming to be a clean and modern POSIX implementation. It is a hobbyist operating system written from scratch with its own base system, including kernel and standard library, as well as ports of third party software.


=== Object Oriented OS ===
=== Object Oriented OS ===
Line 78: Line 87:
* https://blackberry.qnx.com/en QNX, a compact micro kernel based OS for embedded use. It used to have a GUI but that is gone, and Photon was replaced by Qt, a QNX engineer even made a [https://membarrier.wordpress.com/2017/04/12/qnx-7-desktop/ desktop-like OS with QNX]. While QNX not advertises there is a hobbyst/education program, just contact a QNX sales rep, they can provide you free license. tdelellis at blackberry dot com can probably help you. There are builds for x86/64, arm and even for riscv aswell.
* https://blackberry.qnx.com/en QNX, a compact micro kernel based OS for embedded use. It used to have a GUI but that is gone, and Photon was replaced by Qt, a QNX engineer even made a [https://membarrier.wordpress.com/2017/04/12/qnx-7-desktop/ desktop-like OS with QNX]. While QNX not advertises there is a hobbyst/education program, just contact a QNX sales rep, they can provide you free license. tdelellis at blackberry dot com can probably help you. There are builds for x86/64, arm and even for riscv aswell.
* https://github.com/MannyPeterson/HeliOS Helios
* https://github.com/MannyPeterson/HeliOS Helios
=== Real-Time OS ===
These are quite common in embedded systems. There is an extensive list and discussion over in [https://hackaday.com/2024/11/13/making-sense-of-real-time-operating-systems-in-2024/ Hackaday] ([https://archive.is/wZBQs Archive])


=== Operating Systems for Amiga ===
=== Operating Systems for Amiga ===
Line 83: Line 95:
* https://www.morphos-team.net/ MorphOS, a closed source Amiga-like operating system targeting the PowerPC architecture
* https://www.morphos-team.net/ MorphOS, a closed source Amiga-like operating system targeting the PowerPC architecture
* https://aros.sourceforge.io/ AROS Research Operating System, another Amiga-like operating system designed around the AmigaOS 3.1 API
* https://aros.sourceforge.io/ AROS Research Operating System, another Amiga-like operating system designed around the AmigaOS 3.1 API
* https://github.com/h5n1xp/CuriOS CuriOS is closely modelled upon the original AmigaOS architecture with a few modern twists like enforced policies and better suppor for multicore processors.
There is also the Icaros Desktop, which describes itself as an Amiga-like operating system for the PC platform, with a full desktop environment, distributed on a bootable media.


=== Plan 9 Family ===
=== Plan 9 Family ===
Line 103: Line 117:
* https://pdos.csail.mit.edu/6.828/2016/xv6.html a simple Unix-like teaching operating system
* https://pdos.csail.mit.edu/6.828/2016/xv6.html a simple Unix-like teaching operating system
* https://web.stanford.edu/class/cs140/projects/pintos/pintos.html is another simple Unix-like teaching operating system, used at Stanford.
* https://web.stanford.edu/class/cs140/projects/pintos/pintos.html is another simple Unix-like teaching operating system, used at Stanford.
* https://github.com/yhzhang0128/egos-2000 implements every component of an operating system for education with only 2000 lines of code. It can run on a RISC-V board and the QEMU software emulator. There is a [https://egos.gitbook.io/egos-projects/ set of 6 course projects designed around the OS] available.


=== Microkernels ===
=== Microkernels ===
Line 108: Line 123:
* https://fosdem.org/2023/schedule/event/microkernel2023/attachments/slides/5837/export/events/attachments/microkernel2023/slides/5837/2023_02_05_Decky_Microkernel_Landscape_2023.pdf The Microkernel Landscape in 2023
* https://fosdem.org/2023/schedule/event/microkernel2023/attachments/slides/5837/export/events/attachments/microkernel2023/slides/5837/2023_02_05_Decky_Microkernel_Landscape_2023.pdf The Microkernel Landscape in 2023
* http://www.microkernel.info/ Overview of microkernels
* http://www.microkernel.info/ Overview of microkernels
Microkernels can roughly be divided into 3 families (Mach, GNOSIS, L4) and categories (capability-based, pure vs. impure, traditional vs. direct message passing).
List of microkernels by generation:
*First generation: RC 4000, Accent, Mach, Exec, MINIX, GNOSIS/KeyKOS, EROS, CapROS
*Second generation: L3, L4 and reimplementations (Hazelnut, Pistachio, UNSW/NICTA ports, etc.)
*Third generation: OKL4, Fiasco, seL4, NOVA


List of microkernels:
List of microkernels:
Line 119: Line 141:


==== L4 Family of Microkernels ====
==== L4 Family of Microkernels ====
L4 is [http://www.cse.unsw.edu.au/~cs9242/02/lectures/01-l4/01-l4.html comprehensibly explained in these lecture notes].
There are many members, the most important are:
There are many members, the most important are:
* L4 - can run Linux variants such as L4Linux
* L4 - can run Linux variants such as L4Linux
Line 147: Line 170:
* https://faculty.cc.gatech.edu/~calton/publications/sosp95.pdf Optimistic Incremental Specialization: Streamlining a Commercial Operating System
* https://faculty.cc.gatech.edu/~calton/publications/sosp95.pdf Optimistic Incremental Specialization: Streamlining a Commercial Operating System
* https://faculty.cc.gatech.edu/~calton/publications/specializationTOCS.pdfSpecialization Tools and Techniques for Systematic Optimization of System Software
* https://faculty.cc.gatech.edu/~calton/publications/specializationTOCS.pdfSpecialization Tools and Techniques for Systematic Optimization of System Software
* http://www.cse.unsw.edu.au/~cs9242/current/ Lectures on operating systems


== /aosg/ Book Club ==
== /aosg/ Book Club ==

Latest revision as of 22:07, 13 November 2024

Because it's fun to think about what could have been or what might be.

After a thread on /g/, one anon expressed an interest to turn this into a general, and here are some notes to keep to build up a FAQ.

Threads

OP has not yet mastered 4chan posting, so there is as yet no easy way to locate old threads. Manual list:

Some more recent threads also got washed out due to a big cross-board flood. A complete, updated list can always be found at Desuarchive.

List of Notable Alternative Operating Systems

Object Oriented OS

These are written in an object oriented language and everything is an object.

  • http://www.o3one.org/ OZONE is from 2004 and is described by the author as So what makes it object-oriented? Well, just about everything in the kernel is an object. Threads, processes, devices, files, logical names, event flags are all objects. You can assign an logical name to objects. So for example, you could create an event flag and assign a logical name to it. Then other processes can access that event flag and synchronize between them.

Embedded OS

  • https://blackberry.qnx.com/en QNX, a compact micro kernel based OS for embedded use. It used to have a GUI but that is gone, and Photon was replaced by Qt, a QNX engineer even made a desktop-like OS with QNX. While QNX not advertises there is a hobbyst/education program, just contact a QNX sales rep, they can provide you free license. tdelellis at blackberry dot com can probably help you. There are builds for x86/64, arm and even for riscv aswell.
  • https://github.com/MannyPeterson/HeliOS Helios

Real-Time OS

These are quite common in embedded systems. There is an extensive list and discussion over in Hackaday (Archive)

Operating Systems for Amiga

There is also the Icaros Desktop, which describes itself as an Amiga-like operating system for the PC platform, with a full desktop environment, distributed on a bootable media.

Plan 9 Family

OS Written in Assembly

Educational OS

Microkernels

The idea is to minimise the kernel and have all services running as services at lower privileges and in a way that the services can be restarted after a crash. Microkernels often work by message passing, and that can cause an overhead. Mach had major performance issues. Some resources:

Microkernels can roughly be divided into 3 families (Mach, GNOSIS, L4) and categories (capability-based, pure vs. impure, traditional vs. direct message passing).

List of microkernels by generation:

  • First generation: RC 4000, Accent, Mach, Exec, MINIX, GNOSIS/KeyKOS, EROS, CapROS
  • Second generation: L3, L4 and reimplementations (Hazelnut, Pistachio, UNSW/NICTA ports, etc.)
  • Third generation: OKL4, Fiasco, seL4, NOVA

List of microkernels:

  • Exec (Amiga) - the Executive at the deepest level of Amiga OS is a microkernel.
  • Minix is famously microkernel based and the author, Tanenbaum, slogged it out with Linux Torvalds and his decision to make Linux a monolithic kernel rather than a microkernel based OS.
  • Magenta, based on Little Kernel and later renamed into Zircon - this powers Fuchsia.
  • Mach, later GNU Mach - chosen to power HURD.
  • https://drewdevault.com/2022/06/13/helios.html Helios draws inspiration from seL4, and uses a capability-based design for isolation and security. It is used in The Ares Operating System (see above).
  • https://managarm.org/ Managarm is a pragmatic microkernel-based OS with fully asynchronous I/O. (Github)
  • L4 is a family of microkernels

L4 Family of Microkernels

L4 is comprehensibly explained in these lecture notes. There are many members, the most important are:

  • L4 - can run Linux variants such as L4Linux
  • seL4 - high security microkernel
  • L4re AKA Fiasco.OC, used by Kernkonzept.

Emulators

A full install, or even a live CD, is not necessarily needed, sincfe there are emulators.

  • https://copy.sh/v86/ JS VM with lots of OS, including one for Serenity OS.
  • http://simh.trailing-edge.com/ SimH (History Simulator) is a collection of simulators for historically significant or just plain interesting computer hardware and software from the past. Of special note is VAX/VMS where a hobbyist license is provided by Hewlett-Packard Corporation.

Misc

Resources for OSDEV

/aosg/ Book Club

/aosg/ News