图形化类Unix操作系统-SerenityOS
2021-11-20 21:00:14 阿炯

SerenityOS 是一个用于 x86 计算机的图形化的类 Unix 操作系统。采用C++开发并在2类的BSD协议下授权。

A graphical Unix-like operating system for desktop computers!


This is a system by us, for us, based on the things we like.

SerenityOS 是一封写给具有自定义类 Unix 内核的 90 年代用户界面的情书。它通过从其他各种系统窃取美丽的想法来真诚地奉承。简言之,其目标是 1990 年代后期生产力软件的美学与 2000 年代后期 *nix 的高级用户可访问性之间的结合。


内核特征

具有抢占式多线程的 x86(32 位)和 x86_64(64 位)内核
硬件保护(SMEP、SMAP、UMIP、NX、WP、TSD……)
具有 ARP、TCP、UDP 和 ICMP 协议的 IPv4 堆栈
ext2 文件系统
POSIX 信号
可清除内存
/proc 文件系统
伪终端(带有 /dev/pts 文件系统)
文件系统通知
CPU 和内存分析
SoundBlaster 16 驱动程序
VMWare/QEMU 鼠标集成

System services

启动/会话守护进程 (SystemServer)
合成窗口服务器(WindowServer)
文本控制台管理器 (TTYServer)
DNS 客户端(LookupServer)
网络协议服务器(RequestServer 和 WebSocket)
软件混合声音守护进程 (AudioServer)
桌面通知(NotificationServer)
HTTP 服务器 (WebServer)
远程登录服务器(TelnetServer)
DHCP客户端(DHCPClient)

Libraries

C++ 模板和容器 (AK)
事件循环和实用程序 (LibCore)
2D 图形库 (LibGfx)
OpenGL 1.x 兼容库 (LibGL)
GUI 工具包 (LibGUI)
跨进程通信库(LibIPC)
HTML/CSS 引擎 (LibWeb)
JavaScript 引擎 (LibJS)
Markdown(LibMarkdown)
音频 (LibAudio)
数字信号处理/合成器链 (LibDSP)
PCI 数据库 (LibPCIDB)
终端仿真 (LibVT)
进程外网络协议 I/O (LibProtocol)
数学函数 (LibM)
ELF 文件处理 (LibELF)
POSIX 线程(LibPthread)
高级线程(LibThreading)
传输层安全 (LibTLS)
HTTP 和 HTTPS (LibHTTP)
IMAP (LibIMAP)

用户空间

类 Unix 的 libc 和用户空间
带有管道和 I/O 重定向的 Shell
在线帮助系统(终端和 GUI 版本)
网络浏览器(浏览器)
C++ IDE (HackStudio)
桌面合成器(钢琴)
电子邮件客户端(Mail)
各种桌面应用程序和游戏
颜色主题

SerenityOS 四周年记:拥有自己的编程语言和浏览器

2022年10月中旬消息,据 SerenityOS 博客介绍:自2018年10月10日 SerenityOS  存储库迎来第一次提交 ,距今已满四周年。

SerenityOS 是一个类似 Unix 的操作系统,但是带有图形化界面,适合 x86 计算机。结合了类 Unix 内核和 1990 年代生产力软件的外观和体验,其界面类似 90 年代的 Win98/NT。其作者是来自瑞典的程序员 Andreas Kling ,在 2018 年完成了为期 3 个月的毒瘾康复计划后,Andreas 发现 “自己有很多时间,没有什么可以做的 ”,接着就用了将近三年的时间全职创建 SerenityOS 。该项目最初只是想做一个操作系统内核,但随着社区的壮大和贡献者的增加,现在已经诞生了属于 SerenityOS 的内存安全的编程语言jakt,以及跨平台 Web 浏览器 Ladybird。最初使用 C++ 语言开发,但随着系统本身的壮大和普及,内存安全成为了一个大问题。社区最初尝试了 Rust 等用多种语言进行了原型设计,却发现它们都不适合这个项目,只好创建了属于自己的 jakt 编程语言。最初的 Jakt 原型使用 Rust 编写,如今 jakt 已实现自举:Jakt 编译器本身也用 Jakt 编写。

目前 SerenityOS 已可以满足基本的办公需求(虽然内核还不太稳定),还移植了一些经典的 PC 游戏。游戏运行在 LibGL (SerenityOS 社区对 OpenGL API 的实现) 之上。游戏的渲染由 LibSoftGPU 完成,这也是 SerenityOS 社区自研的一款使用 SIMD 的软件光栅化器。截止2022年10有 SerenityOS 已有 750+ 贡献者,社区在持续壮大中。作者称最新的目标是在 SerenityOS 内部构建所有组件和工具,不依赖任何第三方库,我愿称之为轮子王。

SerenityOS的创始人Andreas自述其心路历程


本节系作者Andreas Kling是操作系统SerenityOS的创始人,他于2023年2月分享了自己全职开源后如何获得资金赞助,并且希望能给正在为开源项目资金发愁的建设者们一点小小的启发。

开源项目的商业化,是经久不衰的话题。一方面,参与开源项目的人们希望能够脱离变现的压力,用心打磨产品/项目;另一方面,由于无法从中谋生,“用爱发电”的方式很难让人们心无旁骛地将开源项目发扬光大,不利于开源项目的可持续化。对于该问题,安德烈亚斯·克林(Andreas Kling)有话要说。来自瑞典的他是操作系统SerenityOS的创始人。这是一款类似Unix的图形化桌面操作系统,该操作系统在去年曾长期霸榜在GitHub排行榜第二的位置。

2018年,这款操作系统功能日益强大,虽然还未能与主流操作系统相媲美,但其设计理念和功能受到了广大开发者的喜爱,已经成功开花结果,成为了一个活跃的开源社区。2021年5月,他决定全职开发和运营SerenityOS。对于他来说,甚至是在整个开源界来说,这都是一件非常需要勇气但也很令人兴奋的事情。也因为如此,如何让这个开源项目更可持续化,让更多爱好者参与贡献,成为了最主要的课题。对此,他公布了自己全职运营SerenityOS时可以获得资金和赞助的途径,希望能给正在为开源项目资金发愁的建设者们一点小小的启发。

资金来源渠道

开源本身并不是一种商业模式,而是一种构建软件和协作开发的方式。因此开源项目想要在早期就获得大资本的青睐几乎是不太可能的,所以个人赞助/捐赠是许多开源项目资金主要来源途径。

主要来源:个人赞助/捐赠

2019年4月,安德烈亚斯·克林在GitHub上创建了一个Patreon。当时SerenityOS还处于早期,连安德烈亚斯·克林甚至都觉得自己似乎有些异想天开,虽然几乎没有抱有什么期待,但还是很好奇,想看看会发生什么。但令人惊讶的是,有几个人真的报名参加了。后来当GitHub Sponsors开放的时候,安德烈亚斯·克林第一时间选择了加入。当时GitHub Sponsors的激励机制是零费用参与,并且为前5,000美元的捐赠提供匹配服务。这一次吸引到了更多人参与。如今已经有不少人为通过这两个平台向其捐赠,让他不用提供任何商品/服务作为回报,可以花更多时间在SerenityOS的工作上。他还提供了部分统计数据作为参考(截止至2022年10月29日)。


“不过,”安德烈亚斯·克林开玩笑地说,“早期我还会密切地关注这些数字,因为很吸引人,但后来它变成了压力的来源,所以现在我只在做账的时候每月检查一次。”

次要收入来源:YouTube

在SerenityOS项目的早期,他就积极活跃在YouTube上。在项目大概进行到6个月的时候,他就开始在YouTube上发相关的视频,虽然这些视频很笨拙,但是人们似乎很喜欢看一个人从零开始,逐步建立一个新的操作系统的过程。后来频道的关注人数越来越多,数据也开始上升,就可以以广告的形式变现。广告的收入取决于上传新视频的频率及其浏览量。虽然YouTube不允许披露详细的分析结果,但安德烈亚斯·克林还是给出了一个当月预估的广告收入:315美元。

在这315美元的收入里,还包含了“频道会员”的收入。YouTube允许你为频道会员单独创建内容,相当于付费订阅专属内容。但安德烈亚斯·克林没有使用这个功能,因为他更倾向于让每个人都看到他做的一切。但这的确会是一个能够扩展收入来源的方式。

第三产业的收入来源:周边产品

随着项目的受喜爱程度越来越高,越来越多人要求安德烈亚斯·克林提供与SerenityOS有关的周边产品,比如T恤和杯子等。最后安德烈亚斯·克林在Teespring上创建了个按需印刷的商店。不过,这一部分的收入波动比较大,大家不会重复购买同一个周边产品,所以你必须付出一些精力来提供新的设计或产品。


非收入部分①:赞助/本土广告

当一个项目/产品得到足够的关注之后,就会有广告商找上门来。安德烈亚斯·克林收到过包括但不限于手机游戏、VPN服务、编程课程、云平台等产品的Pr需求。但到目前位置,他还没有接过任何广告。主要是因为安德烈亚斯·克林给自己定的一个规则:不为自己没使用过的东西做广告。

唯一一个接近于接广告的合作,是当他开始使用CLion IDE时,JetBrains(即CLion的公司)的人为其提供了3个一年的许可证代码,用于他YouTube观众的抽奖。安德烈亚斯·克林表示,因为自己每天都在使用CLion,所以他很乐意与其合作,不过到目前为止还是只属于友情合作的程度,并未正式以广告的方式合作。

非收入部分②:风险资本

安德烈亚斯·克林表示,也曾经有一些风险投资公司找上门来,希望投资或认购他的项目,但他并没有打算出售他的项目,安德烈亚斯·克林更愿意看见有许多相信他的小捐助者,而不是一个巨大的投资者来告诉他该做什么。

特殊部分:会计和税收

不得不说,上述所有情况都不属于稳定的、正式的收入方式,所以瑞典税务部门对如何税收等事宜并没有过多的指导和要求。但安德烈亚斯·克林并想确保所有与项目相关的资金问题都是正确的,同时也想确保自己支付了所有该支付的税款,为此,他专门聘请了一位会计顾问来负责相关事宜。

根据会计顾问给出的提议,安德烈亚斯·克林成立了一家公司,以便处理财务相关的事情。因此他在2021年成立了公司Cerphus Software AB。虽然聘请财务人员花费了一点钱,但他表示,公司已经平稳的运转中,除了开发部分的偶尔的支出,会计服务是他唯一的真正的开支。

要谋生,亦要谋爱

总结了一下,上述提到的收入,让安德烈亚斯·克林在当月得到4200美元(约人民币28900元)的收入。尽管安德烈亚斯·克林的生活并不富裕,尽管瑞典的税收也很高,但这也足以让他和他的家人生活收支平衡。他认为,虽然可以在其他方面赚更多的钱,但能够自由地在SerenityOS上工作的价值是无限大的。对于开源项目商业化本身来说,基于开源项目合理、有效的商业模式,将开源产品与社区做好,才能打造一个卓越、可持续的开源项目。让参与共建的贡献者得到合理的奖励,才能激励更多人参与进来,将开源项目发扬光大。



最新版本:


官方主页:https://www.serenityos.org/