Convert Figma logo to code with AI

Harvey-OS logoharvey

A distributed operating system

1,438
105
1,438
2

Top Related Projects

178,031

Linux kernel source tree

30,369

The Serenity Operating System 🐞

14,402

A free Windows-compatible Operating System

1,854

The Haiku operating system. (Pull requests will be ignored; patches may be sent to https://review.haiku-os.org).

Quick Overview

Harvey is an open-source operating system project inspired by Plan 9 from Bell Labs. It aims to create a modern, distributed operating system that builds upon the principles of Plan 9 while incorporating new technologies and ideas. Harvey is designed to be highly portable and efficient, with a focus on simplicity and modularity.

Pros

  • Builds upon the innovative concepts of Plan 9, such as the 9P protocol and unified filesystem interface
  • Highly portable, with support for multiple architectures including x86_64 and ARM
  • Active development community with regular updates and improvements
  • Emphasis on simplicity and modularity, making it easier to understand and modify

Cons

  • Limited hardware support compared to mainstream operating systems
  • Smaller user base and ecosystem compared to more established operating systems
  • Steep learning curve for users unfamiliar with Plan 9 concepts
  • Still in development, with potential stability issues and missing features

Getting Started

To get started with Harvey OS:

  1. Clone the repository:

    git clone https://github.com/Harvey-OS/harvey.git
    
  2. Install required dependencies (example for Ubuntu):

    sudo apt-get install build-essential git golang
    
  3. Build Harvey:

    cd harvey
    ./bootstrap.sh
    ./build.sh
    
  4. Run Harvey in QEMU:

    ./util/run
    

For more detailed instructions and alternative installation methods, refer to the project's documentation on GitHub.

Competitor Comparisons

178,031

Linux kernel source tree

Pros of Linux

  • Massive community support and extensive documentation
  • Wide hardware compatibility and driver support
  • Proven stability and performance in various environments

Cons of Linux

  • Complex codebase with a steep learning curve for new contributors
  • Slower development cycle due to its size and need for thorough testing
  • Higher resource requirements for full kernel compilation

Code Comparison

Harvey:

void
main(int argc, char *argv[])
{
	rfork(RFNAMEG|RFENVG|RFFDG|RFREND);
	boot(argc, argv);
}

Linux:

asmlinkage __visible void __init start_kernel(void)
{
	char *command_line;
	char *after_dashes;

	set_task_stack_end_magic(&init_task);
	smp_setup_processor_id();
	// ... (more initialization code)
}

Harvey is a smaller, more focused operating system inspired by Plan 9, while Linux is a full-featured, widely-adopted kernel. Harvey aims for simplicity and modern design principles, whereas Linux prioritizes compatibility and broad hardware support. The code comparison shows Harvey's concise initialization process compared to Linux's more complex startup routine.

30,369

The Serenity Operating System 🐞

Pros of Serenity

  • More active development with frequent updates and contributions
  • Comprehensive GUI implementation with a desktop environment
  • Broader feature set, including a web browser and various applications

Cons of Serenity

  • Larger codebase, potentially more complex to understand and contribute to
  • Higher system requirements due to GUI and additional features
  • Less focus on POSIX compatibility compared to Harvey

Code Comparison

Harvey (Plan 9-inspired system call):

long
sys_open(char *name, unsigned long omode)
{
    Chan *c;
    c = namec(name, Aopen, omode, 0);
    if(waserror()){
        cclose(c);
        nexterror();
    }
    fd = newfd(c);
    poperror();
    return fd;
}

Serenity (POSIX-like system call):

ErrorOr<FlatPtr> Process::sys$open(Userspace<const Syscall::SC_open_params*> user_params)
{
    VERIFY_NO_PROCESS_BIG_LOCK(this);
    auto params = TRY(copy_typed_from_user(user_params));
    auto path = TRY(get_syscall_path_argument(params.path));
    return open(path->view(), params.options, params.mode);
}

Both systems implement their own unique approaches to system calls, with Harvey following a Plan 9-inspired design and Serenity adopting a more POSIX-like interface.

14,402

A free Windows-compatible Operating System

Pros of ReactOS

  • Larger community and more active development
  • Aims for Windows compatibility, potentially more familiar to users
  • More comprehensive documentation and user guides

Cons of ReactOS

  • More complex codebase due to Windows compatibility goals
  • Slower development progress due to reverse engineering challenges
  • Potentially more vulnerabilities due to mimicking Windows architecture

Code Comparison

ReactOS (C++):

NTSTATUS NTAPI NtCreateFile(
    PHANDLE FileHandle,
    ACCESS_MASK DesiredAccess,
    POBJECT_ATTRIBUTES ObjectAttributes,
    PIO_STATUS_BLOCK IoStatusBlock,
    PLARGE_INTEGER AllocationSize,
    ULONG FileAttributes,
    ULONG ShareAccess,
    ULONG CreateDisposition,
    ULONG CreateOptions,
    PVOID EaBuffer,
    ULONG EaLength)

Harvey (C):

int
kopen(char *path, int mode)
{
    Chan *c;
    c = namec(path, Aopen, mode, 0);
    if(waserror()){
        cclose(c);
        nexterror();
    }
    // ...
}

The code snippets show different approaches to file handling, with ReactOS closely mimicking Windows APIs, while Harvey uses a more Unix-like approach. ReactOS's code is more complex due to Windows compatibility, while Harvey's is simpler and more aligned with Plan 9 principles.

1,854

The Haiku operating system. (Pull requests will be ignored; patches may be sent to https://review.haiku-os.org).

Pros of Haiku

  • More active development with frequent commits and updates
  • Larger community and contributor base
  • Better documentation and user guides

Cons of Haiku

  • Larger codebase, potentially more complex to navigate
  • Steeper learning curve for new contributors
  • Longer build times due to project size

Code Comparison

Harvey:

void
main(int argc, char *argv[])
{
	USED(argc);
	USED(argv);
	print("Hello World\n");
	exits(nil);
}

Haiku:

#include <iostream>

int
main()
{
	std::cout << "Hello World" << std::endl;
	return 0;
}

Both projects aim to create alternative operating systems, but they differ in their approach and implementation. Harvey focuses on a Plan 9-inspired system, while Haiku aims to recreate and improve upon the BeOS experience. The code comparison shows a simple "Hello World" program in each project's preferred language and style, with Harvey using C and Haiku using C++.

Haiku has a more established ecosystem and active community, which can be beneficial for long-term development and support. However, this also means it may be more challenging for newcomers to contribute significantly. Harvey, being smaller, might offer more opportunities for impactful contributions but may lack some of the resources and support available in the Haiku project.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

This is a re-release of the final version of the 4th Edition of Plan 9 from Bell Labs distributed directly by Bell Labs.

4th Edition was originally released by Lucent Technologies in 2002. It was released under the terms the Lucent Public License Version 1.02. 4th Edition continues the development of the same ideas, but in many ways represents the base of what most people think of as "modern" Plan 9 today. The ubiquitous file protocol, 9P, got its first revision, to 9P2000, which caused changes to many parts of the system. It also saw the debut of venti(8) and fossil(4), which began replacing the venerable old file server, fs(4). Authentication largely moved to a separate agent, factotum(4). Updates moved to replica, and the wiki was created. The original release notes for this edition can be found at /sys/doc/release4.ms.

While this release is a recognizable ancestor of the latest Plan 9 available, it is still quite old, and this release is mostly for educational and research purposes. The file protocol and authentication mechanisms are continued in modern Plan 9, though, so researchers looking to run this should have an easier time than with all previous releases. This is a second release of the 4th Edition, marking the final state of Plan 9 as distributed directly by Bell Labs.

The only changes between this release and the original 4th Edition release are the new NOTICE, LICENSE, and README files, and moving the old ones. In particular, any copyright notices attributing things to Lucent Technologies or Bell Labs, or notices on restrictions of their use, should be read as historical; all such rights have been transferred to the Plan 9 Foundation and released as open source. Parts (notably, the fonts) maintain trademark and copyright to their respective parties (such as Bigelow & Holmes Inc.) and were included in Plan 9 by permission; those copyrights are unaffected by the transfer to Plan 9 Foundation and remain in effect per the terms found in this distribution.