[HN Gopher] I quit my job to focus on SerenityOS full time
       ___________________________________________________________________
        
       I quit my job to focus on SerenityOS full time
        
       Author : there
       Score  : 818 points
       Date   : 2021-05-28 16:47 UTC (6 hours ago)
        
 (HTM) web link (awesomekling.github.io)
 (TXT) w3m dump (awesomekling.github.io)
        
       | nightowl_games wrote:
       | Andreas is the best part about this project. He's just _nice_.
       | He's a good person. It makes me want to contribute and work with
       | him because I feel like I'll learn from him.
       | 
       | Too many elite programmers are total jerks!
        
         | llaolleh wrote:
         | Kindness goes a long way. One kind thing someone does stays
         | with you for a very long time.
        
         | airhead969 wrote:
         | OMG. That reminds me of the Xen dude, of a potential hire at a
         | startup who demanded "make it a big number" salary, and
         | countless people who know some about one domain assuming their
         | ex-food doesn't emanate odor.
         | 
         | Also, there's the sociological fallacy of assuming the biggest
         | jerk must be the most talented, when it may well be a facade to
         | impress people. There are some talented jerks, but all the
         | talent in the world doesn't matter if no one will work with
         | you.
         | 
         | PS: Shout-out to Steve Kablink for being awesome.
        
           | steveklabnik wrote:
           | <3
        
           | [deleted]
        
         | gardaani wrote:
         | He has a lot of happy commits! :^) https://happy-
         | serenityos.linus.dev
        
       | andrey-g wrote:
       | Love his videos. Helped me get back into coding and c++.
        
       | barrenko wrote:
       | Serenity now!
       | 
       | (Sorry, had to)
        
         | thelastinuit wrote:
         | CHIMICHANGA!
        
       | faraaz98 wrote:
       | Been following him and this project for a while. Son of a gun
       | (and the awesome community) finally did it
        
       | bitigchi wrote:
       | Kudos to Andreas! I will definitely try Serenity.
       | 
       | Hopefully this activity going on will help make alternative
       | operating systems popular like Haiku popular among developers.
        
       | l9i wrote:
       | If you find Andreas' work inspiring and/or useful, you may
       | consider supporting him in pursuing his passion:
       | 
       | - https://github.com/sponsors/awesomekling/
       | 
       | - https://www.patreon.com/serenityos
       | 
       | - https://www.paypal.com/paypalme/awesomekling
       | 
       | (source: https://awesomekling.github.io/about/)
        
       | leg100 wrote:
       | Windows NT/9x/2000 represented the high point for aesthetics.
       | 
       | Light grey, rectilinear, clear delineation, all contributed to
       | being easy on the eye and functional.
       | 
       | Glad to see it make a comeback.
        
         | MetaWhirledPeas wrote:
         | That style is a bit too brutalist for my tastes. I prefer a
         | splash of color, like with BeOS or something like that.
        
           | slver wrote:
           | Windows did have color accents, like the dark blue selection,
           | it's just a bit muted and stale by modern standards.
           | 
           | It's a good idea to keep the chrome be chrome-like so color
           | can be reserved for meaningful elements (like red for
           | warning, green for safe, blue for selection etc.).
           | 
           | Notice that although end-user apps are all colorful and fancy
           | these days, that most pro apps have remained very
           | conservative, erring to light or dark gray and using color
           | semantically only (think photoshop, 3dsmax, autocad etc.).
           | This tells us something.
        
             | Aeolun wrote:
             | Except programming apps and IDE's?
        
           | jagger27 wrote:
           | Check out the included themes! There are throwback themes for
           | various 90s operating systems.
        
         | einpoklum wrote:
         | I also like those a lot, especially, Windows 2000, but the
         | thing is that their aesthetic is also tied up in my memory with
         | the period in my life when I was exposed to that interface,
         | things I went through, hopes and aspirations and challenges and
         | feelings... people didn't live through the 1990s or early 2000s
         | don't have any of that emotional overlay; it's just another UI
         | style for them.
        
         | zem wrote:
         | i think it was specifically win2k that got it right. the 9x
         | series still felt a bit clunky, even at the time.
        
           | auxym wrote:
           | Rebooting everytime you changed a setting in 9X got annoying
           | pretty fast.
           | 
           | Win2k brought the NT kernel to the masses, which was a huge
           | improvement. True multi-user support, for starters.
        
       | ncmncm wrote:
       | What a great little project! Each bit adds to what came before.
       | 
       | Just don't be reluctant to delete code when its time has come,
       | and it can continue improving indefinitely.
        
         | elisee wrote:
         | Bit by bit indeed! The birthday posts here give a nice overview
         | of how much the system has evolved over its couple years of
         | existence: https://www.serenityos.org/happy/
         | 
         | The monthly progress videos are also nice in that regard.
        
       | o_p wrote:
       | >I chose the name SerenityOS because I wanted to always remember
       | the Serenity Prayer.
       | 
       | Whats with operating systems and religion
        
         | supernintendo wrote:
         | The majority of the human population is religious. Software is
         | generally created by humans so it doesn't seem unlikely that
         | some of that influence would rub off on their work (same as any
         | other work of art really).
        
         | pengaru wrote:
         | > Whats with operating systems and religion
         | 
         | Confirmation bias; religion is _everywhere_ , no reason to
         | expect it to be exceptionally absent from
         | computing/programming/operating systems etc.
        
         | sbarre wrote:
         | Have you never been in a debate about vim vs. emacs?
        
           | hedberg10 wrote:
           | There is no debate.
        
             | whatshisface wrote:
             | I think Vim won by virtue of already being installed.
        
               | jraph wrote:
               | Ehhh. Vi is already installed, and it is often not Vim.
               | 
               | Nano, on the other hand...
        
         | dwrowe wrote:
         | He opened with the explanation of doing this after coming out
         | of rehab for drug addiction - I wouldn't say it is related to
         | "religion", rather a nod/reminder for himself in why he's doing
         | it. Nothing beyond that it seems.
        
         | phaemon wrote:
         | You need to be pretty smart to write an OS, and only dumb
         | people and smart people are religious. Atheism is the belief
         | for mediocre minds. ;)
        
           | HideousKojima wrote:
           | Just like yhe midwit meme:
           | https://knowyourmeme.com/photos/2054904-iq-bell-curve-midwit
        
             | phaemon wrote:
             | I'd not heard of that but it seems fairly accurate. It
             | seems related to pg's idea of middle-brow dismissal.
        
           | dang wrote:
           | Please don't take HN threads further into flamewar, let alone
           | religious flamewar god help us.
           | 
           | https://news.ycombinator.com/newsguidelines.html
        
             | phaemon wrote:
             | Fair enough Dan. I do have a tendency to walk the line but
             | I like to think I'm reasonable enough to know when to
             | backpedal. Apologies to yourself and Jagger. I'll try and
             | be nicer.
        
           | jagger27 wrote:
           | Care to expand on those bold assertions?
        
             | phaemon wrote:
             | I'm not sure what you consider bold about the assertions so
             | it's difficult to expand. I am certainly not the sharpest
             | tool in the shed, and I'm religious, so that provides at
             | least circumstantial evidence for my initial statement.
             | 
             | Do you think I should consider that atheists could be dumb
             | too? Most of the ones I've spoken to seem fairly convinced
             | that they're reasonably smart.
        
               | jagger27 wrote:
               | Alright it's clear you're only here to rile people up.
               | Not sure why you think that's appropriate here.
        
               | phaemon wrote:
               | It's appropriate because it will improve your thinking to
               | consider that I might just be right.
               | 
               | Edit: I happened to see your response since deleted.
               | Don't worry, I'm not offended. I will say that HN at its
               | best invites intellectual exploration. Take all your
               | comments in this thread and look at them. What thoughts
               | did you provoke? What did you add?
        
               | [deleted]
        
               | jagger27 wrote:
               | I'm sorry, do you think you're being "intellectually
               | explorative" with unsubstantiated statements like
               | "atheism is for the mediocre mind"?.
        
               | dang wrote:
               | Please do not respond to a bad comment by breaking the
               | site guidelines yourself. It only makes everything worse.
               | 
               | https://news.ycombinator.com/newsguidelines.html
        
               | phaemon wrote:
               | My apologies for upsetting you. Please see upthread for
               | my apology to yourself and Dan.
        
         | slackfan wrote:
         | Proper software development is indistinguishable from
         | mysticism.
        
         | nwsm wrote:
         | I suspect you have 1 other example. How many can you come up
         | with that have nothing to do with religion?
        
           | whatshisface wrote:
           | The one other example is obviously either FreeBSD, whose
           | mascot is a demon, or OSX, which itself is a religion. ;)
        
             | krapp wrote:
             | Also, for better or worse, TempleOS.
        
               | nwsm wrote:
               | This is what I was referencing. Though I think the other
               | poster may know and was making a joke.
        
         | dang wrote:
         | Please don't post flamebait and/or unsubstantive comments here.
         | 
         | https://news.ycombinator.com/newsguidelines.html
         | 
         | Edit: unfortunately it looks like that's basically all you've
         | been posting to HN. We ban such accounts, so I've banned this
         | one. If you don't want to be banned, you're welcome to email
         | hn@ycombinator.com and give us reason to believe that you'll
         | follow the rules in the future.
        
         | [deleted]
        
         | dotcommand wrote:
         | > Whats with operating systems and religion
         | 
         | Many daemons lurk in OSes. Sometimes religion provides the
         | comfort and safety you need to face the horrors hiding in
         | operating systems.
        
         | NikolaNovak wrote:
         | I'm a relatively vocal atheist, but Serenity Prayer is a pretty
         | useful/accepted creed to live by if you can get over the very
         | first word, so I can't say it bothers me much; and while I
         | realize there's one other OS that's much more explicitly
         | religion-oriented, I'm not sure it's quite a significant
         | pattern yet...                 "(God), give me grace       to
         | accept with serenity       the things that cannot be changed,
         | Courage to change the things       which should be changed,
         | and the Wisdom to distinguish       the one from the other."
        
           | jagger27 wrote:
           | This is the version I'm familiar with:                   God,
           | grant me the Serenity         To accept the things I cannot
           | change...         Courage to change the things I can,
           | And Wisdom to know the difference.
        
             | bombcar wrote:
             | It's basically "should I use sudo or not" as a prayer.
        
         | HideousKojima wrote:
         | Don't go hating on my boy Terry (pbuh):
         | 
         | "The got rid of CD/DVD. they are coming for our guns."
        
           | Cyberdog wrote:
           | "You know the secret? The difference between heaven and hell?
           | It's, like, doing your work. You feel really shitty if you
           | don't do your work. If you do your work, it's fucking
           | awesome."
        
       | jcelerier wrote:
       | And yet some people say that C++ is not a productive language :)
        
         | pjmlp wrote:
         | In the 90's we had all desktop OSes going C++, even if the
         | kernel was mostly C or C subset from C++.
         | 
         | OS/2 with C/Set++, Motif++ on UNIX, BeOS, Symbian, Windows with
         | OWL/VCL/MFC, Mac OS with MPW/PowerPlant, Copland (granted this
         | one went nowhere).
         | 
         | Then FOSS UNIX with C everywhere as part of GNU manifesto, the
         | Java million dollar push happened, and the rest is history.
        
       | ffhhj wrote:
       | SerenityOS looks impressive.
       | 
       | Programming in assembly is like playing with Legos. Last year I
       | started creating my own pet OS in a Bochs virtual machine,
       | compiling with nasm. Created the boot loader and UI, but then
       | realized what I really wanted to implement wasn't the low level
       | layer.
       | 
       | For that reason I placed the project aside and moved to the
       | highest level, creating a distributed command-line console in
       | Javascript that connects to Node.js based servers. If I ever
       | complete my dreamed OS then I can either translate it into
       | assembly, or build a JS interpreter.
       | 
       | At this point the console allows creating programs with UI
       | controls, launch processes without blocking the console, and
       | terminating them just clicking a button, as well as connecting to
       | other servers to perform tasks.
        
       | colesantiago wrote:
       | Brilliant, hopefully Rust can come to SerenityOS quicker than we
       | thought.
       | 
       | Huzzah!
        
       | gigatexal wrote:
       | The OS work is fantastic, and a feat for sure. But his personal
       | story of triumph over vices is more compelling to me. I recall
       | his interview on the C++ podcast, he's got an amazing story.
        
       | imiric wrote:
       | It's so refreshing to see a from-the-ground-up built hobby
       | project like this. We need more operating systems that don't
       | track users, show ads, or have decades of accumulated ~~cruft~~
       | backwards compatibility. The design goals will appeal to anyone
       | who was into computers back then. Well done. Doing all this in 3
       | years is impressive and inspiring. I think you won't have to
       | worry about sustaining your family much longer ;)
       | 
       | Running this on real hardware would be great. Future weekend
       | project...
        
       | ChrisMarshallNY wrote:
       | This sounds great. I'm a big believer in "do what you love."
       | 
       | It's nice to hear the positive feedback on this guy. Sounds like
       | he's doing well.
        
       | ExcavateGrandMa wrote:
       | Oh my god! awesomekling on drugz...
       | 
       | I was unaware you were doing bad thing with your body and
       | mind...(drugz) :D
       | 
       | you looked very rational and intelligent on footages...
        
       | FranchuFranchu wrote:
       | Wow, that must be a really big milestone for SerenityOS. Not many
       | hobby OSs end up making enough money for the developer to sustain
       | himself.
        
         | tachyonbeam wrote:
         | Not many hobby projects of any kind for that matter. IMO he
         | gets this kind of support not just because of the value added
         | by SerenityOS itself, but because of the value he adds by
         | making YouTube streams and other content. People feel like they
         | can learn a lot about programming from him.
        
       | arduinomancer wrote:
       | 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.
       | 
       | https://www.youtube.com/watch?v=ZOzZ8R4gphE
        
       | codetrotter wrote:
       | I've been following Andreas and SerenityOS since the very
       | beginning and this is absolutely very cool news. I am so psyched
       | to see where SerenityOS will go!!
        
       | mythz wrote:
       | 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:
       | 
       | https://youtu.be/ZOzZ8R4gphE
       | 
       | 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:
       | 
       | https://www.youtube.com/watch?v=7ZdKlyXV2vw
       | 
       | 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 missing JS APIs (including eval)
       | to render "Canvas Cycle" JS demos:
       | 
       | https://youtu.be/b3a5V45LLss which he optimizes in his next video
       | https://youtu.be/tGmaO8agfY4
       | 
       | With full control over the entire OS, Kernel, GUI, etc. It's got
       | lots of tightly integrated innovative features like its GUI GML
       | language for creating native UIs where he creates a GML
       | Playground in this video https://youtu.be/1QYBvTy9QKE then uses
       | it to be build the OS's new Font UI Picker dialog in the next
       | https://youtu.be/Fa9SwYfH2NI which is now so sophisticated that
       | the WidgetGallery has been converted to using it
       | https://github.com/SerenityOS/serenity/pull/5741
       | 
       | Since Andreas is so productive he's the only developer who I'm
       | able to watch live coding which makes for an inspirational
       | background score whilst coding, his commentary explaining his
       | thoughts whilst he codes is so informative that they're basically
       | HowTo's on how to implement each OS/App/Browser feature.
        
       | ksec wrote:
       | >SerenityOS [1]
       | 
       |  _Graphical Unix-like operating system for x86 computers.
       | 
       | SerenityOS is a love letter to '90s user interfaces with a custom
       | Unix-like core. It flatters with sincerity by stealing beautiful
       | ideas from various other systems.
       | 
       | Roughly speaking, the goal is a marriage between the aesthetic of
       | late-1990s productivity software and the power-user accessibility
       | of late-2000s *nix. This is a system by us, for us, based on the
       | things we like._
       | 
       | [1] https://github.com/SerenityOS/serenity
        
         | dvfjsdhgfv wrote:
         | It seems very interesting. Anyone has an idea whet the minimal
         | system requirements are?
        
           | jagger27 wrote:
           | It runs pretty well on a Pentium 4. I wrote the Starfield
           | screensaver for Serenity (poorly) and it pegs the P4, for
           | what it's worth. It's runs great in QEMU on any modern CPU.
        
           | genezeta wrote:
           | It's generally aimed at being run on QEMU. But it can be
           | installed on bare metal at your own risk. This [1] mentions:
           | 
           | > Current hardware support is extremely limited. [...] x86
           | [...] Most successful hard disk installations have been on
           | Pentium 4 era hardware [...] 2 GB parallel ATA or SATA IDE
           | disk [...] no support for USB but some machines will emulate
           | PS/2 keyboards and mice in the BIOS via USB [...] having real
           | PS/2 input devices is recommended [...] A minimum of 128 MB
           | RAM and a Pentium III class CPU [...] No GPU suport [...]
           | VESA BIOS [...] No wifi [...] only three network card chipset
           | [...] The sole sound card supported is the SoundBlaster 16
           | ISA
           | 
           | The HW compatibility list [2] is pretty short also.
           | 
           | [1] https://github.com/SerenityOS/serenity/blob/master/Docume
           | nta...
           | 
           | [2] https://github.com/SerenityOS/serenity/blob/master/Docume
           | nta...
        
           | [deleted]
        
           | boricj wrote:
           | I've netbooted it on my ASUS A7N8X Deluxe motherboard with an
           | Athlon XP processor and 1 GiB of RAM (~2003 era). I haven't
           | tried older museum pieces, but the unofficial CPU requirement
           | is a Pentium III-class CPU or better.
        
       | GekkePrutser wrote:
       | > SerenityOS is a love letter to '90s user interfaces with a
       | custom Unix-like core.
       | 
       | More like a love letter to Windows 95 :) It doesn't really have
       | much in common with the Unix GUIs available around that time,
       | which were mostly Motif-based (think FVWM, CDE etc).
       | 
       | In fact it looks so Windows-like (including the applications)
       | that my first impression was that this was another go at making
       | something like ReactOS. But clearly it isn't.
       | 
       | It looks nice though I was never a big fan of the W95 UI. I'm
       | interested to see what it's about. I'll give it a spin.
       | 
       | PS: Fair play for being so open about your addiction. It will
       | help other people face the problem too.
        
       | jacobmischka wrote:
       | Congratulations Andreas, I've been working my way through your
       | entire history of videos and loving it. I just doubled my monthly
       | sponsorship, can't wait to see what's to come!
        
       | 5tefan wrote:
       | Don't know if I am hacker minded enough to take a look. But he
       | has a point though... no-nonsense and a straight forward GUI back
       | on the menu would be great. I hate how I am held hostage by
       | shitty designer ideas. I am a power user.
        
       | shadykiller wrote:
       | Good luck with everything !
        
       | [deleted]
        
       | dang wrote:
       | Looks like the main relevant past threads are:
       | 
       |  _SerenityOS: Writing a Full Chain Exploit_ -
       | https://news.ycombinator.com/item?id=26115141 - Feb 2021 (9
       | comments)
       | 
       |  _Introduction to SerenityOS Programming_ -
       | https://news.ycombinator.com/item?id=22479132 - March 2020 (43
       | comments)
       | 
       |  _Pledge() and Unveil() in SerenityOS_ -
       | https://news.ycombinator.com/item?id=22116914 - Jan 2020 (28
       | comments)
       | 
       |  _SerenityOS: From Zero to HTML in a Year_ -
       | https://news.ycombinator.com/item?id=21212294 - Oct 2019 (52
       | comments)
       | 
       |  _SerenityOS - a graphical Unix-like OS for x86, with 90s
       | aesthetics_ - https://news.ycombinator.com/item?id=19986126 - May
       | 2019 (179 comments)
        
       | Koshkin wrote:
       | > _SerenityOS is a love letter to '90s user interfaces_
       | 
       | Indeed, the desktop theme looks very similar to Windows 95 or
       | ReactOS.
        
       | devit wrote:
       | I'm surprised that either anyone actually uses such an OS (beyond
       | toying with it), or that there are enough people willing to pay
       | without using the OS.
       | 
       | What's the explanation for this?
        
         | mythz wrote:
         | Personally I want to encourage a very talented developers
         | continued development of his ambitious SerenityOS vision whose
         | journey is thoroughly documented in his YouTube channel which
         | is an amazing treasure resource for learning how different
         | parts of the OS/Kernel/GUI/Browser/JS VM/x86 Emulator/etc are
         | implemented.
         | 
         | At first I never expected SerenityOS would ever be advanced
         | enough to use, but seeing how much it has progressed and the
         | active community that's garnered around it has made me a
         | believer.
         | 
         | Up until now he's been developing as a side project, I'm
         | excited to see where he can take it working on it full-time.
        
         | elisee wrote:
         | Andreas has been making videos
         | (https://www.youtube.com/c/AndreasKling/videos) sharing his
         | journey: technical ones working on some part of the system, as
         | well as more personal ones talking about his philosophy,
         | struggles and moments of joy.
         | 
         | I'm just one of many but I'm guessing his sincerity combined
         | with his technical abilities make it all very compelling to
         | watch and contribute with money or code, even though the system
         | isn't at a point where you would want to use it.
         | 
         | Basically: it's a fun, open, ambitious project whose story is
         | being told mainly through videos, with a kind and interesting
         | person behind it.
        
       | reacharavindh wrote:
       | It warms my heart to see someone that is skilled, passionate and
       | patient to pursue a project like this full time. True hacker
       | spirit lives on.
       | 
       | The only other effort like that has been on my mind for a long
       | time is bcachefs that is mostly churned on by a single developer
       | slowly making progress and aiming high.
       | 
       | I could only wish the very best to people and projects like
       | this!!
        
       | billconan wrote:
       | I'm curious, how can someone implement device drivers (without
       | knowing hardware details.) for a self-made OS like this?
        
         | raggi wrote:
         | It seems to only target very commonly ported and generally
         | understood hardware, and not many things. 32bit Intel, no arm.
         | Bochs VBE and Intel graphics, e1000 and rtl8192 nics. They're
         | very sensible targets as they'll let you run with event
         | performance on most virtual machine platforms as they're
         | commonly emulated and mature.
        
           | jhgb wrote:
           | It would be cool to have something similar but specifically
           | targeting Raspberry Pi these days. There you don't have a lot
           | of variability either, and it might even turn out useful
           | relative to its "bigger" (or "bloated"?) competitors.
        
         | breckinloggins wrote:
         | General tips:
         | 
         | 1. Start with a QEMU emulated device. QEMU is more forgiving
         | than real hardware and you can study, understand, and debug the
         | "hardware impersonation side" of the QEMU code to see what
         | happens when you set a bit in some register.
         | 
         | 2. Pick a simple device. Don't start with the USB stack or
         | Ethernet. Maybe try to reimplement the UART driver first.
         | 
         | 3. Don't freak out about "device driver architecture" stuff
         | like whether you need lock-free queues or allocation-free
         | algorithms or ring buffers or... whatever. Just get it working.
         | 
         | 4. Write a userspace program that uses the driver you'd like to
         | see working. That'll motivate you to finish it.
         | 
         | 5. Repeat. Until eventually you know how to write device
         | drivers. :)
        
         | FranchuFranchu wrote:
         | Usually hobby OS developers only write drivers for well
         | documented hardware like the e2k
        
         | boricj wrote:
         | Here's an example with the NE2000 network card (PCI only). I've
         | tested it both on QEMU and with a real RTL8029AS card. Probably
         | the most important thing is quality, RTL-level reference
         | documentation. When you hit a dead-end, having a battle-tested
         | Linux or BSD driver to peek at helps a lot, because hardware
         | has quirks and the documentation might not tell the whole
         | story.
         | 
         | SerenityOS currently doesn't have a lot of tooling to help
         | debugging drivers aside from kprintf() and kubsan. Other
         | operating systems may offer more advanced capabilities, such as
         | NetBSD's rump kernel where you can run drivers in userland for
         | example.
         | 
         | https://github.com/SerenityOS/serenity/pull/5191
        
       | adam12 wrote:
       | "Hello friends" I can hear his voice. That's a great opener.
        
       | squarefoot wrote:
       | The more I see those small graphical OSes like this one, Kolibri,
       | etc. the more I wish they were ported (or better conceived from
       | the beginning) to be run on ARM systems. Those small cheap boards
       | with video output would find the best possible companion when
       | bare metal programming is too hard and a full fledged Linux
       | distro would be overkill. Give me a compiler, then libraries for
       | gpio and hardware, GUI, low level networking, etc. and I can
       | choose between a huge load of cheap boards to build a lab
       | instrument panel, my new home IoT dashboard, a portable
       | communication device, a music synthesizer, etc. It looks to me as
       | those two worlds are in need of each other but they don't know
       | that yet.
        
         | xyproto wrote:
         | There's always Arch Linux ARM, FreeBSD, NetBSD, OpenBSD and
         | RiscOS. They all run on a Raspberry Pi 4.
         | 
         | What are you looking for that those aren't covering?
        
         | stuaxo wrote:
         | Linux had all sorts of 386isms at the beginning.
         | 
         | Having watched this project for a bit it probably will gain an
         | ARM port in the next year or two.
         | 
         | Since there is already a emulator, it will probably gain the
         | ability to run x86 serenity OS apps at some point after that.
        
       | barbarbar wrote:
       | From 3 months rehab to build an os and more. That is just
       | outright incredible. Maybe the boring day job before lead to the
       | addiction. Anyway an insane comeback.
        
       | slver wrote:
       | While I'm hit heavily by nostalgia looking at this UI and I
       | actually appreciate the simplicity and utility of it, I think it
       | would've been nice to bring it in the 21-st century by making it
       | vector-based and scalable, so it works on modern displays. Gone
       | are the days when all displays had the same DPI around 100, and
       | we could craft things out of single pixel bevels.
       | 
       | We just need good, legible displays. And modern tech delivers.
       | But the software needs to match.
        
         | elisee wrote:
         | For what it's worth it does support 2x density
         | (https://github.com/SerenityOS/serenity/pull/4966) and there's
         | a design doc about High-DPI:
         | https://github.com/SerenityOS/serenity/blob/master/Documenta...
        
       | wespiser_2018 wrote:
       | Awesome project! Keep it up!
        
       | matheusmoreira wrote:
       | Wow that's freaking awesome. First time I saw this project was
       | years ago on 4chan's technology board. I remember the progress
       | reports and videos on the Daily Programming Thread. Now it's here
       | and has become a full time job for the developer. Must be awesome
       | to be able to work on stuff like this.
        
       | darig wrote:
       | Can't wait for your live-streams from the back of your car before
       | you leap in front of a train.
        
       | la6471 wrote:
       | Keep it up Andreas and don't give up ever , your story is
       | inspiring to many.
        
       | ketanhwr wrote:
       | Following this for almost 3 years now, it really is an amazing
       | achievement. His YouTube streams are very helpful in learning a
       | lot about Systems, Unix and good programming methodologies.
       | Cheers to him for taking the leap of faith!
        
         | paintstripper wrote:
         | That sounds super interesting, is there a link you can share?
        
           | lawl wrote:
           | https://www.youtube.com/c/AndreasKling/videos
        
       | T3RMINATED wrote:
       | big mistake
        
       | digitalsin wrote:
       | Really excited to see this! I've been following the project for a
       | while and seeing the progress that is being made is just mind
       | blowing.
        
       | thelastinuit wrote:
       | I should quit my job and work on embedded systems and satellites
       | but i guess i don't have the courage. Best of things to this
       | dude.
        
       | zamadatix wrote:
       | Hey Andreas (assuming you're still reading these threads) I'm so
       | happy to see you reach this point with Serenity. I remember
       | seeing your project pop up here (early 2019 I think?) and just
       | being absolutely blown away by the undertaking. What I love most
       | about the project after following it since though is you've
       | really shown it's absolutely doable, not only by you or superstar
       | programmers but by folks willing to put the time in, and along
       | the way made so many others realize this whether they contribute
       | to Serenity or not. Your YouTube videos are absolutely great and
       | there is just something about it all (probably the "under one
       | roof" philosophy) that makes showing the "adding/fixing this
       | little piece" so much more consumable. In short, thank you for
       | doing all of this for not only yourself but everyone else now
       | involved with the project.
       | 
       | Anyways I always told myself I should chip in for all of the
       | great content over the years and so now I've joined your Patreon
       | - here's to hoping more are able to as well and you can continue
       | living the dream!
        
       | winter_blue wrote:
       | Wow, Andreas Kling is really inspiring.
       | 
       | I need to get my mental space together (from the ADHD mess that
       | it currently is), and start working on some of software
       | engineering projects/goals.
       | 
       | I really hope I can.
        
       | truth_seeker wrote:
       | > While at Apple, I really enjoyed how most of the software was
       | made under one roof. Not only did this enable super tight
       | integrations, but it made the system extremely hackable for its
       | developers, and you could always find the experts somewhere
       | nearby. I thought I could try bringing that same feeling to the
       | open source world, so I decided that SerenityOS wasn't going to
       | be a patchwork of packages - no, we're building everything
       | ourselves! From kernel to web browser, and everything in between.
       | 
       | I love it. Good luck.
        
       | haskellandchill wrote:
       | Hi Andreas, I'd love to interview you sometime about addiction.
       | Sounds like you have a strong perspective and are comfortable
       | sharing your story. I'm still rebuilding things so I won't be
       | launching my media production company for another year or so but
       | I'll probably reach out on Twitter someday ;)
        
       | xacky wrote:
       | What's more is that it also has a full web browser that is not
       | based on webkit/blink/gecko but its own independent engine.
        
         | DC-3 wrote:
         | Unless anyone can name a counter example it's probably the most
         | advanced open source browser engine except for the WebKit
         | family, the Gecko family, and NetSurf. Never mind the whole OS
         | - that alone is worthy of Andreas being able to work full time
         | on the project!
        
           | forgotpwd16 wrote:
           | Don't know about SerenityOS' but Dillo (predating even
           | NetSurf) is pretty nice minimal browser with independent
           | layout engine and there's Abaco (for Plan 9) which supports
           | most of HTML4. That said from your list you miss KHTML
           | (WebKit's parent; have diverged significantly since),
           | Trident, EdgeHTML, Presto, and of course, Servo. All without
           | doubt advanced engines. It's disappointing that both
           | Microsoft and Opera didn't open sourced their own after
           | retiring them.
           | 
           | Edit: Oops, didn't see the "open source" clause. So Trident,
           | EdgeHTML, and Presto don't count.
        
             | DC-3 wrote:
             | I daresay Serenity might have the edge on Abaco and perhaps
             | even Dillo. Servo I totally forgot. I didn't realise KHTML
             | was still a thing.
        
             | asddubs wrote:
             | KHTML is dead since 2016 though
        
           | zamadatix wrote:
           | Not to make it sound any less impressive (because it truly is
           | an amazing effort) but it's basically first place there
           | simply because the criteria excludes every other like engine
           | better and there is no remaining option that's worse. Well
           | technically (the now deprecated) KHTML is missing many of the
           | things now supported but that spawned the "WebKit Family" so
           | I don't think that counts (and it supports other things
           | Serenity's doesn't). Well Lynx might actually be behind in
           | compliance... but it's not exactly aiming for the same
           | goalpost.
        
             | DC-3 wrote:
             | I see your point. I guess I was trying to make the point
             | (that perhaps everyone on HN is already aware of) that
             | there really is an incredibly limited number of active
             | browser projects even marginally capable of being used for
             | the modern web so any new one deserves huge support.
        
           | fanick wrote:
           | Arachne
        
           | sanxiyn wrote:
           | Servo is miles ahead.
        
         | roywashere wrote:
         | I just backed his Patreon just because of this!
        
         | krapp wrote:
         | But I've been told by Hacker News multiple times that
         | developing an independent browser is impossible without the
         | means of a multi-million dollar corporation.
        
           | tachyonbeam wrote:
           | I mean, it kind of is. You can make a basic browser, sure,
           | but you'll have a hard time implementing video playback,
           | canvas, JavaScript and everything else, while also delivering
           | good performance and rendering everything accurately. Yes, I
           | know his browser has JS support, but the performance is
           | likely at least an order of magnitude slower than V8 or
           | Firefox... And then there's CSS, and the fact that HTML, JS
           | and CSS keep growing and having more functionality added
           | every month. That's not to minimize his accomplishments,
           | browsers are just immensely complex pieces of software.
           | Complex enough that Opera killed their own browser engine
           | because they didn't have the manpower to maintain it anymore,
           | and are now using WebKit.
           | 
           | All of that being said, it all depends on your expectations.
           | You can totally make a browser that is capable of going to
           | web forums and posting on Hacker News, browsing the
           | SerenityOS website and maybe even Wikipedia for instance. If
           | you want to build something that supports pre-2005 HTML/JS,
           | that's probably quite feasible.
        
             | adenozine wrote:
             | Just a nitpick, but I'm pretty sure Opera was gutted of
             | engineers as well after their acquisition fiasco with that
             | Chinese outfit. I don't think they had as much manpower as
             | the good ol days AND not enough manpower to compete with
             | the old engine.
             | 
             | I'm on mobile or I'd go find a source, but I'm fairly
             | certain some key people left before all that went down.
             | 
             | Not that maintaining a web browser is easy, but they WERE
             | doing it, to varying success.
        
               | tachyonbeam wrote:
               | It's not just Opera though. Microsoft Edge is using also
               | Webkit. I'm legit worried that if Mozilla ever tanks, we
               | could have a complete WebKit browser monoculture.
        
               | adenozine wrote:
               | Sure, I wasn't addressing that though. I just meant that
               | it's a little inaccurate to say Opera couldn't do it
               | because of the turmoil and turnover, and that's on top of
               | the fact that browser engines are immensely technical
               | projects.
               | 
               | I'm worried about that as well, but it's not really fair
               | to attribute blame to most people at Opera, especially
               | prior to the China thing. Things were okay there for a
               | long time before that.
        
               | krapp wrote:
               | >I'm legit worried that if Mozilla ever tanks, we could
               | have a complete WebKit browser monoculture.
               | 
               | Does that really matter much, if it's open source? A lot
               | of software converges on one or a few standard libraries
               | or applications.
        
               | insulanus wrote:
               | Yes, it matters a lot. One of the reasons people want
               | open source is to be able to "fork away" from a popular
               | project, if the leadership team of that project takes a
               | direction that people disagree with. Obviously this goal
               | is impossible to meet, if the project is closed-source,
               | or has an onerous license.
               | 
               | There is another cost that people don't talk about as
               | much, and that is the cost to understand a large, alien
               | codebase enough to be able to understand and change it.
               | If the effort to contribute is too high, you can't get a
               | second group of programmers to rally around the fork, and
               | the new project will fizzle.
               | 
               | As an example, Google understands the economics of code
               | very well. They know that there is little threat to
               | market dominance for them to release Android or Chromium
               | as open source.
        
               | OJFord wrote:
               | It'd be quite a huge and significant step in the web
               | becoming a single stack or implementation, rather than a
               | set of open standards with various interoperable
               | implementations.
        
             | ncmncm wrote:
             | Like telecomm, wifi, and USB standards, web browsing
             | protocol standards are deliberately overcomplicated as a
             | way to legally fend off competition. Anytime a big
             | corporation gets its hooks into a Standard, one can expect
             | its complexity to grow forever unless an individual at said
             | corporation prevents it.
        
               | jeofken wrote:
               | Truly, while the web also now being better than at the
               | time of activex and flash etc. I'd wager the only rescue
               | for a new free non-WebKit would be simple ways to use
               | external programs - maybe yet a challenge for language
               | design.
        
               | tachyonbeam wrote:
               | IMO, it's more that the standards are overcomplicated as
               | a result of (unhealthy) competition. This is maybe less
               | true now, but my impression has been that until recently,
               | Firefox and Chrome were both always racing to implement
               | some new proprietary feature before the other browsers
               | could design an equivalent. There were no standards. In
               | fact, even before that, the way JavaScript was created is
               | that Brendan Eich, at NetScape, implemented it in two
               | weeks. The same was true of many other browser features,
               | they were rushed into production in order to outdo other
               | browsers and have this new feature first, and then
               | everyone was kind of stuck having to support every half-
               | baked feature because some websites made use of them.
        
               | Siira wrote:
               | It's probably not so much deliberate complexification, as
               | reluctant simplification. The system will become complex
               | all by itself when there is little pressure to streamline
               | it.
        
             | rogerclark wrote:
             | In the span of about 2 years, the Serenity browser has gone
             | from nothing to where it is now. It already supports
             | JavaScript and the canvas API.
             | 
             | Do you think you could build this in 2 years? The answer is
             | yes, you could.
        
               | badthingfactory wrote:
               | I think this is where the ninety-ninety rule is typically
               | invoked.
        
               | tachyonbeam wrote:
               | Sure, but like I said, having some JS support is one
               | thing, building a fast JS engine is another. The same
               | goes for canvas, I mean, you have to realize, there is
               | WebGL support on the web now, but also the Web Audio API,
               | WASM, etc. It never stops growing. There's even talk
               | about adding machine learning features to WASM.
               | 
               | Again, this isn't to minimize the accomplishment, this is
               | great, it's just to say, while building a hobbyist
               | browser must be fun for sure, and I'm sure this browser
               | can be useful to browse many websites out there,
               | particularly if said websites intentionally restrict
               | which HTML features they use. However, it's probably not
               | realistic to think you could compete with the commercial
               | browsers. They have dozens of people who have been
               | working full-time on those projects for two decades and
               | they are constantly adding new features.
               | 
               | I think if Andreas Kling was here, he would probably
               | agree. I'm sure his goal was never to replace
               | Chrome/Firefox or compete with them, but rather to learn,
               | educate, and have fun. I congratulate him on his success
               | and for reaching the milestone of being able to sustain
               | himself from his passion project.
        
           | DC-3 wrote:
           | Eh, it kinda is. The Serenity browser has seen a huge amount
           | of grassroots development work that most projects couldn't
           | dream of and it's still quite a way off usable for what most
           | people consider every-day browsing tasks.
        
           | typon wrote:
           | Every time I hear V8 mentioned, people talk about it like
           | it's some sort of sacred tablet given to us mortals by Lord
           | Google. It's good, but its just another interpreter/compiler.
        
             | EvilEy3 wrote:
             | Just because you don't like cult around it, doesn't mean
             | you have downplay V8. No, it's not just another
             | interpreter/compiler. V8 is an incredible feat of
             | engineering.
        
           | dvfjsdhgfv wrote:
           | Even if you somehow manage to fully implement all of JS with
           | decent performance, you will finally hit the wall with video
           | DRM - your users will never be able to watch Netflix, for
           | example.
        
             | roywashere wrote:
             | Widevine is the first DRM to be really open to be ported.
             | They suck the least of all DRM systems. This is the DRM
             | used in the Chrome browser and Firefox. I think it would be
             | _possible_ (not easy, or logical, but possible) that
             | Serenity Browser gets Widevine at some point.
        
               | dvfjsdhgfv wrote:
               | I don't think so. See "I tried creating a web browser,
               | and Google blocked me" [0] and the related HN discussion
               | [1].
               | 
               | [0] https://blog.samuelmaddock.com/posts/google-widevine-
               | blocked...
               | 
               | [1] https://news.ycombinator.com/item?id=25849800
        
               | coldtea wrote:
               | Don't the content companies need to trust your project
               | with some secret key at some point for this to work?
        
           | Thaxll wrote:
           | That's the 80/20, for day to day it probably does not work.
           | So indeed creating an independent browser is pretty much
           | impossible.
        
           | 1vuio0pswjnm7 wrote:
           | Depends on what is meant by "browser". Browsing HTML is not
           | too difficult.
           | 
           | There is no rule that says a "browser" must match Google's
           | in-house Chrome or its outsourced Firefox (all salaries of
           | Firefox developers are currently paid with money from a deal
           | with Google).
           | 
           | Look at how many browsers exist already for Gemini. How many
           | were funded by advertising. Probably zero. The multi-million
           | dollar corporations have a vested interest in keeping the
           | notion of "browser" so complex that independent authors
           | cannot even contemplate it.
        
       | dpbriggs wrote:
       | I highly recommend checking out his YouTube channel [0]. He's an
       | _incredibly_ thoughtful person and provides good lessons in
       | staying focused and keeping scope down.
       | 
       | I consider him a mentor and his approach to software is something
       | I really resonate with. He has a keen focus on software quality
       | but understands he can't make everything perfect in one sitting.
       | This approach helped me get away from decision paralysis in my
       | projects and at work.
       | 
       | This isn't even mentioning how much I've learned about software
       | in general from his videos. Whether it's debugging kernel
       | bootstrap assembly, porting doom, writing a live feedback GUI
       | editor, implementing syscalls, to messing around with the dynamic
       | loader. He's really got a video for it all.
       | 
       | And he tackles each video with such clarity and careful
       | consideration. I really can't speak higher of the man.
       | 
       | [0] https://www.youtube.com/c/AndreasKling/videos
        
         | LeonM wrote:
         | +1 on this! The game porting series is what got me into
         | watching his videos.
         | 
         | Normally, I can't focus longer than 5 minutes on programming
         | videos, but Andreas's are fantastic to watch! Porting Diablo
         | was just inspiring to see, missing a syscall? No worries, we'll
         | just implement it!
        
         | brodo wrote:
         | I don't know much about OS development or C++ but I still watch
         | his videos because of his thoughts on life as a software
         | engineer.
        
           | thn-gap wrote:
           | Any specific video you would recommend that highlights his
           | thoughts on life as a software engineer?
        
             | dpbriggs wrote:
             | Not the person you're replying too, but I think you might
             | find this video [0] interesting. He's describing his
             | motivations and worries around making a web browser for
             | SerenityOS.
             | 
             | A quote from that video (3:25) really stuck with me. He
             | describes how he saw people joking online that the web-
             | standards are so insane that it's impossible to build a new
             | web-browser:
             | 
             | "The way I respond to that type of energy is to just really
             | want show people that this is silly, not too complicated...
             | mythologizing something that humans have done and humans
             | will do again"
             | 
             | He clarified with a reflection on the hubris of it - new
             | browsers can be made; not impossible; just takes an
             | incredible amount of work taken a step at a time [1]. I
             | really respect that.
             | 
             | Not exactly his thoughts on life _as_ a software engineer,
             | but contains some thoughts on software engineering.
             | 
             | [0] https://youtu.be/-YlVex4nbfw
             | 
             | [1] http://serenityos.org/
        
               | smcnally wrote:
               | These are high praises and more than enough impetus to
               | watch Andreas' videos and check out SerenityOS. Thank
               | you, all.
               | 
               | From tfa:
               | 
               | > With no drugs or other vices to pass the time, the days
               | seemed impossibly long.
               | 
               | Is honest, resonant, and bodes well, but it'll be work to
               | convince myself this [0] is more like ol' skool X than
               | ~WinNT circa 2000 -- it's not making me serene atm.
               | 
               | [0] https://awesomekling.github.io/assets/writing-this-
               | post.png
        
       | ficklepickle wrote:
       | As someone who also traded drugs for programming, I find this
       | incredibly inspiring.
       | 
       | Programming has become my purpose and the thing that brings me
       | joy. Unfortunately, they way I have to program at work really
       | sucks the joy out of it. I would gladly take a pay cut to be able
       | to work on things and in a manner that bring me joy again.
        
       | breckinloggins wrote:
       | I was hoping to see this announcement someday, and I'm thrilled
       | that today is the day. Congrats, Andreas! Extremely well-
       | deserved.
        
       | skeeter2020 wrote:
       | I'm unlikely to ever use this project, follow it closely or
       | interact with the creator but it still makes me extremely happy
       | to see someone working on a project like this, with the goals,
       | motivations and context that Andreas discusses. Thank you for
       | making the world a little bit better at a time when it feels so
       | crazy.
        
       | [deleted]
        
       | tomcooks wrote:
       | Thanks for having the courage to explain your story and keep
       | steady in front of discomfort. A true inspiration, balls of steel
       | as they say.
        
       ___________________________________________________________________
       (page generated 2021-05-28 23:00 UTC)