HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Let's port Diablo to SerenityOS!

Andreas Kling2 HN recommenders · recommended in 3 months, 2021-2022
YouTube
82K views · 5 years ago · demo · evergreen

Andreas Kling ports the game Diablo to SerenityOS, his from-scratch Unix-like operating system, using the devilutionX project. The roughly 80-minute session shows what porting third-party software to the OS involves.

HN commenters recommend it as a demonstration of SerenityOS's hackability and fast iteration across all layers of the system.

Operating systems & kernelsSoftware practice, open source & careersC, C++, Rust, Go & systems languages#serenityos#andreaskling#porting#c++#diablo#oshacking

6 comments from Hacker News

@maybevain2022 · in “Early stages of Google Docs support in the Ladybird browser”

Not sure what your source for ”doesn’t support 3rd party software” is, so it’s unclear what that actually means, but there are numerous examples on Andreas’ YouTube channel about porting software to Serenity, e.g. Diablo [1]. Maybe the text you read refers to the OS itself and all first party software being written without external dependencies? [1] ▶ this video

CitesView on HN
@stolen_biscuit2022 · in “SerenityOS Browser now passes the Acid3 test”

Yeah there are app porting guidelines: link Andreas also uploaded 2 videos on his youtube channel of him porting Diablo and Duke Nukem to SerenityOS ▶ this video link

CitesView on HN
@mythz2022 · in “Serenity OS: Interview”

Maybe, but I've not seen anyone iteratively make changes to all layers of the OS and get instant feedback as Andreas frequently does. The Diablo port is a good example of this, whether it's missing C++ APIs, unsupported lang features, missing SDL port impl, toggling kernel features - it all gets done in a 1hr sit down session to produce a shiny new Diablo port. ▶ this video Another nice quality of SerenityOS is that the entire OS is written in modern C++ with everything being written from scratch to use the standard AK libraries which the entire OS and components use, i.e. there isn't any existing App that brings in their own string types or other utils.

RecommendsView on HN
@mythz2021 · in “SerenityOS: Year 3 in Review”

One of SerenityOS goals I find as its most compelling USP is that it aims to be a "pure" OS free of any 3rd Party libs/binaries so that everything is in the project source tree and nothing needs to rely on or sync with any other upstream project, resulting in anyone can always fix & test any issue or add any feature immediately. A good highlight of this is in the Diablo port to SerenityOS: ▶ this video Whether it's missing C++ APIs, unsupported lang features, missing SDL port impl, toggling kernel features - it all gets done in a 1hr sit down session to produce a shiny new Diablo port. It was a characteristic Andreas experienced at Apple where all code and expertise for macOS was maintained in-house. This does mean everything inc. the OS, Kernel & all default Apps like the Browser needs to be developed from scratch for SerenityOS, but its Browser is making good progress as seems the SerenityOS project and development approach resonates with a lot of devs where it's been able to attract a vibrant community with a number of active contributors. I see a number of benefits of this approach starting with SerenityOS has to be one of the best code-bases to study and learn about OS development where you can see how all components integrate together in a consistent code-base (as well as being able to follow it being developed in real-time with 100s of videos on youtube.com/andreaskling), it enables cohesive behavior and appearance with everything using the same singular library set, it's e

RecommendsView on HN
@arduinomancer2021 · in “I quit my job to focus on SerenityOS full time”

Haven't heard of this project till seeing this post. Checked out his youtube channel and the video on porting Diablo to SerenityOS in an hour is pretty interesting to watch if you've ever wondered what its like to port software. ▶ this video

RecommendsView on HN
@mythz2021 · in “I quit my job to focus on SerenityOS full time”

Thrilled Andreas has managed to receive enough community support to be able to take this big step and is able to focus on Serenity OS fulltime. SerenityOS is an inspiring from scratch grassroots OS effort which plans to build the entire POSIX OS, Kernel and core Apps from scratch, one of the Apps their is their LibWeb browser engine complete with their own LibJS JS VM which already passes the ECMAScript test suite. One of its USPs is that the entire OS is contained within its single source tree where anyone can make changes to its code-base and instantly reboot the OS in seconds with the changes, never seen this done for an OS before, the turn around time allows for some impressive dev iteration speed. A good preview of this hackability is in his Diablo port, whether it's missing C++ APIs, unsupported lang features, missing SDL port impl, toggling kernel features - it all gets done in 1 sit down session to produce a shiny new Diablo port: ▶ this video Andreas videos on developing LibWeb/LibJS is one of the best resources I've found explaining how to implement a multi-process web browser, e.g. in this video he goes through the HTML Specs which have enough info in them to develop a HTML spec parser whose behavior is the same across all browser engines: link It's been awesome to see LibWeb/LibJS evolve over time, every time he sits down it gets a bit more capable. Typically it's to implement features for rendering a different website. Here's a nice example where LibWeb gains missin

RecommendsView on HN
2021: Year of the Linux Gaming Desktop - Andrew Kelley42:38

2021: Year of the Linux Gaming Desktop - Andrew Kelley

Zig SHOWTIME
15K views • 5 years ago
Browser hacking: Let's make "Cookie Clicker" playable in Ladybird!1:44:18

Browser hacking: Let's make "Cookie Clicker" playable in Ladybird!

Andreas Kling
15K views • 4 years ago
RIP Windows: Linux GPU Gaming Benchmarks on Bazzite48:13

RIP Windows: Linux GPU Gaming Benchmarks on Bazzite

Gamers Nexus
1.1M views • 11 months ago
Run containers on bare metal already!41:12

Run containers on bare metal already!

Bryan Cantrill
40K views • 10 years ago
Is It Time to Rewrite the Operating System in Rust?1:09:18

Is It Time to Rewrite the Operating System in Rust?

InfoQ
310K views • 7 years ago
Data Oriented GUI in Rust by Raph Levien - Bay Area Rust Meetup1:05:59

Data Oriented GUI in Rust by Raph Levien - Bay Area Rust Meetup

Rust Programming Language
83K views • 8 years ago
Containers and Steam: Putting games under pressure | FOSDEM 202020:11

Containers and Steam: Putting games under pressure | FOSDEM 2020

Collabora
13K views • 6 years ago
TypeScript is being ported to Go | interview with Anders Hejlsberg1:01:31

TypeScript is being ported to Go | interview with Anders Hejlsberg

Michigan TypeScript
102K views • 1 year ago
Windows Was The Problem All Along7:38

Windows Was The Problem All Along

Dave2D
1.9M views • 1 year ago
Servo Architecture: Safety and Performance45:05

Servo Architecture: Safety and Performance

linux conf au 2017 - Hobart, Australia
12K views • 9 years ago
Console Hacking 2016 (33c3)53:44

Console Hacking 2016 (33c3)

media.ccc.de
166K views • 9 years ago
Containers From Scratch • Liz Rice • GOTO 201842:54

Containers From Scratch • Liz Rice • GOTO 2018

GOTO Conferences
321K views • 8 years ago
Leaping the chasm from proprietary to open: A survivor's guide43:28

Leaping the chasm from proprietary to open: A survivor's guide

Bryan Cantrill
14K views • 11 years ago
I made a NES emulator in 15 minutes15:04

I made a NES emulator in 15 minutes

Bisqwit
389K views • 14 years ago
Lars Bergstrom - Beyond Safety and Speed: How Rust Fuels Team Productivity22:19

Lars Bergstrom - Beyond Safety and Speed: How Rust Fuels Team Productivity

Rust Nation UK
18K views • 2 years ago
Implementing (part of) a BitTorrent client in Rust4:09:16

Implementing (part of) a BitTorrent client in Rust

Jon Gjengset
115K views • 3 years ago
Stanford Seminar - The Soul of a New Machine: Rethinking the Computer1:26:02

Stanford Seminar - The Soul of a New Machine: Rethinking the Computer

Stanford Online
76K views • 6 years ago
Golang UK Conf. 2016 - Liz Rice - What is a container, really? Let's write one in Go from scratch23:00

Golang UK Conf. 2016 - Liz Rice - What is a container, really? Let's write one in Go from scratch

GopherCon UK
33K views • 10 years ago
Handmade Hero Day 001 - Setting Up the Windows Build1:13:51

Handmade Hero Day 001 - Setting Up the Windows Build

Molly Rocket
465K views • 11 years ago
Bryan Cantrill on Jails and Solaris Zones1:45:47

Bryan Cantrill on Jails and Solaris Zones

PapersWeLove
34K views • 10 years ago