לפני 4 שנים מישהו בשם אנדראס קלינג התחיל לבנות מערכת הפעלה חדשה. יש סיפור מאחורי זה, אבל לא הכי מעניין אותי. מה כן מעניין – יש מערכת הפעלה חופשית שלמה חדשה, שגדלה בימינו אלו. זאת SerenityOS.

מה שמעניין פה, זה שבנו ממשק דמוי Windows 98, 2000 על בסיס קרנל פוסיקס (כמעט) תקני – אבל הכל עם twist מודרני. למשל, כל ה־man pages כתובים ב־markdown. כל קבצי ה־sys של המערכת (כן גם שם יש sysfs) מחזירים json. מה שיותר מעניין אותי – זה שחלק גדול מהמערכת מפותח לייב- זה אומר, אנשים מצלמים את עצמם מקודדים ומוסיפים פיצ’רים או מתקנים באגים (בעיקר אנדראס עושה את זה, אבל גם לינוקס וגם פיליפ יש להם ערוצים).
חלק מהדברים שמעניין אותי במערכת הזאת:
- ליבה חדשה, שנכתבה מאפס. לא עוד מעא מערכת הפעלה שהיא מחזור של כלי GNU מעל לינוקס, עם ממשק משתמש חדש.
- הקוד כולו כתוב ב־C++ מודרני. כמה מודרני? C++17 וכמה נגיעות של 20. בגדול – משתמשים ב־toolchain שמשמתש ב־gcc הכי חדש. חלק ממערכת הבנייה של מערכת הפעלה עושה bootstrap ל־cross compiler.
- המערכת בגדול, לא משתמשת בשום ספרייה חיצונית – 0 הכל home baked. אין 3rd parties והכל ב־mono repo.
- מימוש מחדש של libc (מצחיק, ממומש בחלקו ב־C++).
- הקרנל תומך במערכת אינטל 32ביט וגם 64, כולל תמיכה ב־SMP. התחילו לעבוד על תמיכה ב־ARM64 (כן, רספברי פאי!)
- מימוש מודרני ל־stl – וממש מורחב. ה־core libraries כוללים תמיכה ב־json או דברים בסיסיים בימינו כמו קידוד base64. כן, וגם.. גם sockets ו־https. (זה כולל מימוש של TLS, לא כל ה־ciphers, אבל – תמיד אפשר לעשות pr ולממש את זה).
- ספריות הפיתוח זמינות גם ללינוקס, בעזרת רכיב שנקרא lagom.
- מסוף ומעטפת לא רעים (המעטפת גם מתקמפלת ללינוקס).
- שרת גרפי בסיסי – תומך בקומפזיציה, אבל ללא האצת חומרה עוד. הוא מרגיש מאוד איטי…
- toolkit שממומש ב־C++ שמאוד מזכיר את Qt. אבל ללא MOC (בנוי מעל AK ולא STL… אז בעצם לא שונה בהרבה מ־Qt).
- מערכת מולטימדיה שכוללת תמיכה ב־flac, mp3 וגם התחלה של VP9 (חדש מהחודש האחרון!).
- תוכנה למציאת זליגת זכרון דמויית valgrind.
- תוכנת ציור שיכולה להתחרות ב־Paint.NET… ומתחילה לאט לאט להוסיף יכולות שיש ל־Photosop/Krita/GIMP.
- סביבת פיתוח… עורך טקסט… עורך markdown
- משחקים מקוריים (סוליטייר וכאלו… לא משהו משוגע)
- מערכת ports ממש חזקה.
- ובטח עוד….
- (וגם דפדפן ומנוע JavaScript שכתובים מאפס… אליהם ארחיב בקרוב).
הינה סקירה של מערכת ההפעלה: https://www.youtube.com/watch?v=_QAsHkEKvN0
למה הסיומת של הכותרת הזאת? כי כל המערכת הפעלה עובדת בעיקר ב־ qemu. חסר לה מלא דרייברים… והיא מפותחת בשביל הכיף וקיימת עבור מפתחים בלבד ולא משתמשים – נכון לכרגע. למרות ההתקדמות המדהימה של המיזם הזה, אני לא חושב שהיא תעבוד על מחשב נורמאלי בזמן הקרוב. אני ארחיב על זה גם בפוסט עתידי.
מעניין, תודה!