SerenityOS update (February 2024)
Summary
TLDRAndreas, Andrew, and Nico host a monthly update on SerenityOS developments. They showcase new features including automatic escalation to superuser when launching apps requiring root access, a ported Sonic fan game, interactive copy utility prompts before overwriting files, hexadecimal dumping utilities, improved calendar event handling, FAT filesystem creation utility, enhancements to hex editor's toolbars and popouts, progress on RISC-V support, and PDF rendering improvements like better colors, more rendered text glyphs, and new image format support.
Takeaways
- 😀 A new password prompt was added when launching apps that require root access from the taskbar
- 📝 Improvements were made to the SDL port while getting the Sonic Robo Blast 2 game running on SerenityOS
- ➕ The cp command now has an interactive mode that asks before overwriting files
- i The cut command gained a new -c flag to select specific characters
- 🔎 The xxd hex dump utility was added to complement the existing hexdump tool
- 🗓 Enhancements were made to the calendar app like better month/year views and basic event support
- 💾 A new utility can create empty FAT filesystem images that could be mounted with future loop device support
- ⚙️ The Hex Editor sidebar panels were improved using a widget container for detachability
- 🤝 Progress was made on RISC-V bringup targeting the SiFive HiFive Unleashed board
- 🖨 PDF rendering gained text support, better colors via CMYK simulation, and CCIT image decoding
Q & A
What new feature was added to help applications that require super user access launch from the taskbar?
-A password prompt was added so that applications like Partition Editor that need root access can request escalation to super user when launched from the taskbar instead of just failing to run.
What game was ported to SerenityOS this month and helped drive SDL improvements?
-A Sonic the Hedgehog fangame called Sonic Robo Blast 2 was ported to SerenityOS by contributors like refrag and yella.
What new flag was added to the CP command line utility?
-An interactive mode flag was added so CP asks if you want to override an existing file when copying instead of just overwriting it automatically.
What is the hex dump utility that was added this month?
-The xxd hex dump utility was added by Nils, providing an alternative hex dumping tool to the existing hexdump command.
What improvements were made to the calendar application this month?
-Domino refactored the month and year views to use GML properties for cleaner code, and senel made it so calendar events now show up when you double click on a day.
What new FAT filesystem creation tool was added?
-A new ms.fat utility was added that can format image files as FAT12, FAT16, or FAT32 filesystems.
How were Hex Editor's side toolbars improved?
-The search results, value inspector, annotations, etc. were moved to use the dynamic widget container, allowing them to be popped out, moved around, and docked.
What Progress was made on the RISC-V port?
-Son and Leon made lots of progress booting Serenity on the HiFive Unleashed board, adding missing kernel functionality needed for RISC-V hardware.
What text rendering improvements were made in the PDF viewer?
-More PDF text glyphs are now rendered instead of omitted, and CMYK images are better simulated to match real printed output.
What new image format can the PDF viewer now display?
-Support was added for the CCIT image compression format thanks to work by Lucas.
Outlines
😊 Improved super user access and escalation in Serenity OS
This paragraph discusses new functionality that prompts for a password when trying to launch apps that require super user access from the taskbar in Serenity OS. This allows for smooth escalation to root access when needed instead of just failing to launch the app. The feature was implemented for the partition editor app and works via the assistant as well.
🤔 Issues with man pages and documentation in command line utilities
This paragraph tries to demonstrate new features in some command line utilities like the -C flag in cut and interactive mode in cp. However, there are issues accessing the man pages for these utilities and the documentation needs to be improved. The difference between cut's -B and -C flags related to bytes versus characters is also unclear.
😎 Progress on FAT filesystem support and mounting image files in Serenity OS
This paragraph shows the new ms-fat utility for creating FAT filesystems and formatting image files as FAT12, FAT16 or FAT32. However, mounting these image files does not work yet since loop device support is still in progress. The hex editor is also demonstrated with its improved toolbar and docking features.
💪 Advances in RISC-V bringup for Serenity OS
This paragraph discusses recent work by contributors to improve RISC-V support in the Serenity OS kernel. This is being done to help boot Serenity on real RISC-V hardware. The device tree support should also aid RISC-V and ARM bringup going forward.
🎉 PDF engine improvements bring better text, images and colors to Serenity OS
This paragraph shows off recent improvements in Serenity's PDF rendering engine. It now handles more text and fonts, has better colors through CMYK simulation, and supports the CCIT image format. This allows more accurate rendering of PDF documents in the PDF viewer.
Mindmap
Keywords
💡Serenity OS
💡Taskbar
💡Sonic Robo Blast 2
💡Command Line Utilities
💡Hex Dump
💡Calendar
💡FAT32
💡PDF rendering
💡RISC-V
💡Developers
Highlights
Applications that require super user access now ask for a password in the taskbar
Ported Sonic Robo Blast 2 game to SerenityOS, driving SDL improvements
Added interactive mode to CP copy utility to prompt before overwriting files
Added cut utility with new -C flag to select specific characters
Added xxd hex dump utility
Improved calendar with better month and year views
Calendar now shows events in month and year views after creating them
Added FAT filesystem creation utility
Hex editor tool windows now use widget containers for better management
Progress on risk 5 support including device tree implementation
PDF engine renders more text content from PDF files
Better color handling for CMYK images in PDF renderer
PDF renderer now supports CCIT image format
Over 1,000 contributors now working on SerenityOS project
Recent progress sets stage for many future improvements to SerenityOS
Transcripts
well hello friends welcome to the
serenity OS update for February
2024 it's been another comfy month in
the project we've had just over 800
commits from about 50 uh individual
authors and the browser stack is by far
the most active area as usual uh and we
already covered that yesterday in the
ladybird update but uh we do still see a
bunch of development happening in random
places throughout all of Serenity OS so
today uh myself Andrew and Nico are
going to show you some of the stuff
that's been going on in February uh and
I think we'll start with
um this new thing in taskbar where uh
applications that require super user
access so rout to access basically uh
such as partition editor it now asks for
a password Here previously it would just
fail so if you were to try to run it
from the command line as a normal user
it will complain and say that oh I can't
I have to be root because I need to open
raw block
devices um but launching it from
the uh taskbar um it now automatically
tries to escalate to super user so if I
type in my password here which is Foo uh
it will well it will fail to actually
find a partition table because I'm
booting um dis L using this or not dis L
but I'm I'm booting without a partition
table using a qmu feature uh so it's
it's still fails to bring our partition
editor but even so um this is very very
nice because when you're launching apps
from uh taskbar I'm not sure if we have
anything else that requires root um but
when you're launching apps in this way
you don't want to just fail um if it
requires root access it wants to you
want to be prompted for a password uh
and this should also work in assistant
so if I were to run partition editor
from here yeah it also ask for a
password let me type it wrong password
yeah
that also works um maybe I should be
allowed to try again if I type the wrong
password that seems like it could be a
little bit of a good feature
anyway then uh oh uh the automatic
escalation to super user here in in GUI
was implemented by Hugh so thank you
Hugh for working on this I think it's a
really really nice quality of life thing
um a totally different thing that is
also new this month and a bunch of
people have contributed to I think well
um somebody named refrag and also yella
has been helping out uh but we have a
port of this um I guess Sonic fan game
called Sonic Robo blast um two and let's
see if it actually launches yes it seems
to
um so this has driven a bunch of
improvements to our sdl port as well
this month uh and it's some kind of
Sonic game I'm not a big Sonic gamer
myself but I can
certainly
appreciate that um that this
exists and
um well I I don't know how to play uh
other than running around and I assume
I'm supposed to take these
Rings uh it also has my Mouse controls
but I don't understand how they're
supposed to work I'm probably meant to
um run without the
magical um VM Mouse
driver anyways uh if you enjoy playing
sonic Robo Blast 2 you can now do so on
Serenity OS thanks to refrag so thank
you refrag for reporting this game and
um I'm just going to get out of
here and apparently it crashes on exit
but it has a cool app icon that's pretty
nice uhhuh
uh-huh okay well might be something to
look into with our sdl Port there uh
anyways then we have some um command
line utility uh improvements this month
so I know the CP utility received a new
flag so uh Eric implemented the
interactive mode for CP which is when
you have a file and you're trying to
copy it um and the copy would overwrite
another file it will now ask if you want
to override it you can say like nuh-uh I
don't want to um or you can say yeahaha
I do want to so that was added by Eric
thank you Eric uh it's really nice that
our um various utilities sort of keep
getting more and more command line Flags
added to them and then what did I do
here I brought up the
help
accidentally I'm supposed to open the
man page for CP but I guess we don't
have
one we do wait a minute so why doesn't
it take me there what is
this this doesn't work right at all
okay
so I think the IDE no this this needs um
this needs to be fixed but uh we're not
going to do that right
now um and then Kyle did something
called cut- C which I'm not familiar
with but that's like uh select only
these characters with
cut does cut have a man
page oh of course it does it's really
cool that um we have more and more Man
pages for
everything and of course you can can
browse them in this beautiful app which
it's kind of strange that this isn't how
you browse Man pages on other unixes
because like why isn't
it
um okay so cut but I don't see any
examples for dash C so I guess we have
to figure out and- C is missing in the
options list
too okay well we are finding all kinds
of issues here so I guess we have to
guess what cut- C does so it's supposed
to select only these character
characters so I will make a list of
characters I guess so uh Fu and then we
will cut um only the
O what does that
do invalid by SL character position
oh
okay
um oh is it like I only want that one
character
so wait so I'm removing a specific
character is that it so if I Echo test
and I would cut out character
to okay and how is that different from
Dash
B hm bytes versus
characters okay well I'm not exactly
sure what the difference is but if you
know please leave a comment explaining
what the difference is um all right and
then the final command line utility that
uh was added this month xxd which is uh
hex dump utility so we can now hex dump
our password file and it looks like
this and we actually had hex dump before
uh which has just like a slightly
different output format and I'm not sure
why but like most unixes have both xsd
and hex dump I've been on machines in
the past that had only one or the other
so I'm like familiar with both but I
don't know what the backstory is like um
I'm sure there's there's history there
but um xxd was added this month by Nils
so thank you Nils for adding xxd now the
uh hex dumping story on Ser OS is
getting pretty
good all right let's uh visit somebody
else
well hello friends I'm going to talk
about a couple uh sorted changes to
Serenity this month uh first of all
we've got the calendar so uh the past
couple uh months uh we've been improving
the calendar bit by bit uh it's still
quite uh quite basic but this month uh
Domino made some changes to the way that
the month view and year view work
internally so this is a little bit
cleaner and um now it's hand handled via
gml property so uh thanks for that
Domino and also in the uh realm of
events uh senel made it so that after I
enter an event here uh some something
happens at this day at 3 p.m.
for 5
minutes um so before we would just see
that oh there's an event on this day we
don't even see it in the year view but
now if I double click here we can see
that uh there are some events here now
uh this is definitely uh First Step um
but we didn't have this before and I can
even add a new event and something
else Happ these um maybe this thing
starts at 8:00 p.m. and goes for 3 hours
um and now after we see that we can see
that uh that event also shows up here
though it doesn't uh
doesn't show the end time and it doesn't
let me it doesn't show the duration and
it doesn't let me edit the event so
there's uh still quite a lot we can do
to make the calendar uh more of a fully
fledged calendar application U but it's
been coming along nicely these last
couple months so thanks for everyone
who's been working on
that all righty don't need to save that
so uh implicit field added something
interesting this month which is a uh fat
FS uh creation utility so if I create an
empty file here that is 128 megab and
call it fat 32.
IMG this takes a little bit longer than
it probably should to write out these
128 megabytes to our EXT2 file system
but after that I can call this um
ms.fat
utility which doesn't quite have that
many options but it does let us choose
between fat 12 fat 16 and fat 32 U which
have all had implementations in our
kernel
recently
um all right so if I make fs. fat type
32 on F 32.
IMG um this will create
a fat
32 it will format that empty file it
created as fat 32 now unfortunately we
can't actually um Mount that file cuz we
don't have Loop device support the line
saw in the prq that's something that um
leav is working on so hopefully we can
get that in soon and start mounting
files all over the place but um you you
just have to trust me that this is uh
fat 32 for for a second here um so that
brings us to our our next demo here
which is inex
editor and let's open this fat 32. IMG
file
yes um so we can see that this fat 32
IMG file does have the fat header at the
top it says it's fat 32 it's got
some uh text there and I believe this
also has some x86 code in here to act as
a master boot record
um so very cool and of course the rest
of the file system is completely
empty but um ah what I wanted to show in
HEX editor today is that uh Sam
and um a little bit on the on the side
of Tim lead better have been improving
this guey a lot so what uh what Sam
added was the fact that um you know
we've always had well we've had for a
while these extra um
toolbars or these extra tools the uh the
search results the value inspector and
Sam M at these annotations I believe
Onre um
added that
recently sure and now this this bite is
highlighted um but what was uh new this
month is that now all of these toolbars
are using the dynamic widget container
that torson added last year uh I believe
it was in the fall so not only can we
I'm not sure if this was in before but
we can collapse these these tool windows
inside this um this widget here on the
right side but we can also pop out so if
I wanted to pop out the value inspector
here um it would pop out and I can move
it around the screen and whatever else
and as
I edit things here I can go back to my
value inspector and see that it is I
believe it's looking at this maybe it's
not but I mean of course I can full
screen this it doesn't really do much
but if I close the X here maybe this
should be a different button um it will
pop back in uh which is pretty nice so
this is a really cool uh toolbar feature
that uh like I mentioned torson added
last year I'm not sure how many
applications are using it um I imagine
this could be useful for hack Studio or
other applications we have that have uh
interesting toolbar windows and can also
drag these around and and move which one
is on top which is pretty awesome so uh
nice work uh Sam and torson and uh a
little bit on Tim's part for helping us
improve the hex Editor to make it uh
make it
snappy all right and the last thing I
want to talk about today is that uh
we've been having a lot of improvement
on the risk five front so this is
something that son and Leon and um uh
film have been working on um though I
think film is a little bit busy with
school lately but son and Leon have been
chatting it up in the risk 5 Channel
lately they've been adding all sorts of
features to help son uh boot there I
believe it's a Sci-Fi
Vision
2 uh single board computer they have on
their desk um I believe there's still
some some local patches that need to go
in before we can actually demo that
either in qmu or um before they can send
us a a video of them booting it booting
Serenity on that uh single board
computer but uh those fixes have been
going in um been a little bit less
activity on the arm 64 front um um as
the contributors who are interested in
that have been working on other things
but uh it's good to see the risk five
support go in and I know that Leon has
been working a lot on the
um the device tree support um which
should help uh both risk VI and uh arm
64 uh going forward for whatever boards
we want to support for that so um nice
work on the kentel front from them all
right uh well hello friends I'm Nico
Andreas asked me me to demo a few
improvements uh in PDF Tech in seren
here this month uh so let's take a look
uh on my screen I have uh two versions
of um seren PDF engine the old un busted
version on the left and the new and
unbedded app which is basically all of
seren's PDF code like seren text
rendering seren's image decoders seren
everything it's just like a very small
thin Coco window that shows the bit map
that uh s's code um renders if you use
PDF Vier and ceni everything should look
the same and behave the same except the
U are much nicer over there of course
okay so uh here's the the first uh
example PDF um like one big different
there's like basically three
improvements one is better colors this
second is better like more text and the
third is like a new image format uh
which we'll all look at so for these two
um example or for this one example PDF
as you can tell um we render we now
render all the text that's on the page
um well we don't on the left side and
there's like a bunch of pages in here
and on the left hand side you can tell
like we like get quite a bit right
already we have like nice colors um for
the most part um and lots of images on
the right hand side we now do text and
if you like close look closely you'll
also see that the shade of green at the
top is um a little less uh shrill on the
right and the reason for that is that we
now um for images that use the device
CMYK cutter based we now simulate how uh
this int uh this ink would look um if
you printed that on paper um so here's
like an example this is a photograph of
my screen so we can like enhance a
little bit and zoom in on this screen
text here and enhance a little more and
as you can tell um a pixel consists of
three little lights one red one green
one blue and um a bitmap basic controls
for every pixel how bright these three
lights are so I think this is like
pretty well known if you do the same for
like a book here's a photograph of a
book that I'm currently reading over and
over again we can enhance that little
tool like zoom in zoom in zoom in a lot
more and you can tell like here you can
see the white of the page in the
background and there there's four four
colors that get printed um there's uh
cyan over here then magenta over here
and over here yellow over here and black
uh over here which is abbreviated
CMYK and you uh this printing technology
I think is called off offset printing or
something like that I don't know a ton
about it but you can tell that the like
yellow dots are kind of like an
rectangular grid
the magenta dots are also an uh
rectangular grid that's rotated 45°
relative to the yellow grid and then the
Canan grid is rotated 22.5 de relative
to the yellow grid probably just
eyeballing and black is uh rotated
22.5 degrees in the other
direction and so if you have a cmk bit
map um this is like meant to be printed
and if you print
this um on paper then normally um not
normally then you don't end up like with
these Trill colors you get when you just
do like the math conversion where you uh
invert all the cmy um channels and then
multiply them by the inverted um K
Channel um so now we get
like something that looks more close uh
looks much closer to what you get if you
like actually printed this page and this
is also what all the other um PDF
viewers
do um so yeah um better texts and better
colors um here's another example of a
file that looked like mostly okay
previously but now we get like the uh
ellipses and the quotes
right and yeah like most other Pages
were before uh we're fine before already
I guess uh we know also get these
bullets
right another example of a PDF that's I
think
uh teachers people who speak Vietnamese
how to speak Japanese
but I don't know Vietnamese so maybe I
don't maybe that language is wrong um
and you can also tell that we now show
like both the Japanese and the
Vietnamese text uh while we didn't do
that
previously
um and we you can also like slightly see
the CMYK improvement over
here and uh this little thing that we
all already got right before is uh like
yet another font type um but we that
support for that is a new uh and then
here's the the third new thing uh we now
have support for the ccit image format
or at least for like some forms of it uh
this was implemented by Lucas so thank
you
Lucas so now like on the next page I
think the the background of this text is
also
ccit and here's like a last demo PDF
which aren't on the same page so on the
left L that's um again uh we get like
way more glyphs and
um on some pages that's very dramatic
you can also tell we don't draw rotate
the text quite right yet we like know
the direction but we don't rotate the
glyphs
um yeah and that's basically all I had
um so we'll see what happens next month
uh
and that's all the stuff we wanted to
show you today so thank you so much for
stopping by and uh checking out what
we've been working on uh thank you so
much to my co-hosts Andrew and Nico
really really nice to have you on here
and um if you want to come chat you'll
find us in the serenity OS Discord
server uh there's a link to that in the
video description um we're always open
for new developers and um it's really
cool we recently passed 1,000
contributors on
GitHub and I think that's awesome um
over a thousand people have worked on
Serenity OS at this point and can't
believe how far we've come and somehow
in a way it still feels like it is just
the beginning um
so very interesting times anyways thanks
for checking this out today and I will
see you all next time bye
Browse More Related Video
5.0 / 5 (0 votes)