AOSC OS/Retro - An Introduction
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 287 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/57096 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2022240 / 287
2
4
6
8
12
17
21
23
31
35
37
41
44
45
46
47
50
62
65
66
67
68
71
73
81
84
85
86
90
92
94
100
102
105
111
114
115
116
117
118
121
122
124
127
131
133
135
137
139
140
141
142
145
149
150
156
164
165
167
169
170
171
172
174
176
178
180
183
184
189
190
192
194
198
205
206
207
208
210
218
220
224
225
229
230
232
235
236
238
239
240
242
243
244
245
246
249
250
253
260
262
264
267
273
274
277
282
283
287
00:00
Intrusion detection systemComputer hardwareOpen sourceHome pageLocal ringNetwork topologyIndependence (probability theory)Point (geometry)SoftwareLogical constantDerivation (linguistics)SoftwareRepository (publishing)Maxima and minimaCommitment schemeComputer hardwareLocal ringOpen sourceReading (process)Device driverPresentation of a groupComponent-based software engineeringPhysical systemData storage deviceSoftware suiteProcess (computing)File viewerCoprocessorInterface (computing)Hard disk driveGraphics softwareComputerSoftware testingBootingState transition systemSoftware maintenanceUsabilityFocus (optics)Computer fontGoodness of fitDerivation (linguistics)WordHome pageNetwork topologyConfiguration spaceAxiom of choiceMathematical singularityServer (computing)Library (computing)Formal languageDistribution (mathematics)Different (Kate Ryan album)Multiplication signEqualiser (mathematics)Functional (mathematics)Proper mapBranch (computer science)Computer animation
07:18
Standard deviationSoftware developerWeightTrailMultiplication signSoftware maintenanceSet (mathematics)PowerPCCore dumpData storage deviceRange (statistics)Network topology10 (number)Personal digital assistantMaxima and minimaPhysical systemAxiom of choiceMereologyComponent-based software engineeringCompilerLogicFlow separationCASE <Informatik>Semiconductor memoryDifferential (mechanical device)Different (Kate Ryan album)Utility softwareSoftwareLevel (video gaming)Repository (publishing)Web pageLimit (category theory)Fluid staticsSoftware developerSpeicherbereinigungLibrary (computing)Radical (chemistry)Linker (computing)Link (knot theory)Sheaf (mathematics)SpacetimeGame theoryScripting languageDefault (computer science)1 (number)Computer fontSystem administratorComputerFormal languageCase moddingInternet service providerMusical ensembleComputer animation
14:28
IntelSoftware testingCompact spaceCompact spacePlastikkarteFlash memoryPoint (geometry)Computer animation
15:00
PlastikkarteWeb 2.0Flash memoryArmWindowPersonal digital assistantCompact space
15:28
Power (physics)Hard disk driveiBookWeb 2.0Musical ensembleHard disk drivePowerPCComputer animation
15:56
PentiumIntegrated development environmentHard disk driveMobile WebPoint (geometry)Expected valueComputer animation
16:22
Information and communications technologyFlash memoryIntegrated development environmentSpectrum (functional analysis)CoprocessorLaptopPhysical systemFirmware
16:54
Product (business)Different (Kate Ryan album)Self-organizationUtility softwareWeb 2.0EmailComputer filePersonal digital assistantService (economics)Cartesian coordinate systemHypermediaIntegrated development environmentSet (mathematics)Multiplication signWeb browserArithmetic meanSoftware suitePhysicalismServer (computing)Product (business)CuboidHard disk drivePhysical systemDemonGraphical user interfaceLine (geometry)Alpha (investment)Workstation <Musikinstrument>WindowComputer animation
19:50
Stress (mechanics)Online chatRepository (publishing)InformationComputer animationMeeting/Interview
20:29
Link (knot theory)Performance appraisalSoftware testingComputer animation
21:05
Electronic data interchangeMultiplication signComputerDifferent (Kate Ryan album)Computer animation
21:41
Portable communications deviceMeeting/InterviewComputer animation
22:14
Cartesian coordinate systemProjective planeMeeting/InterviewComputer animation
23:05
Portable communications deviceSoftwarePatch (Unix)Online helpComputer programMeeting/Interview
23:29
Plug-in (computing)Volume (thermodynamics)Floppy diskGame controllerHard disk driveKernel (computing)SoftwareNP-hardComputer iconPatch (Unix)Optical disc driveComputer programVirtual machinePhysical systemComputerCD-ROMEvent horizonGraphical user interfaceWindowOnline helpPC CardFigurate numberMeeting/Interview
26:27
Figurate numberQuicksortTrailComputer animationMeeting/Interview
26:55
PlanningGame theoryComputerPhysical systemMeeting/InterviewComputer animation
27:28
EmulatorVirtualizationBootingDistribution (mathematics)Interface (computing)ArmFlash memoryComputer animationMeeting/Interview
28:22
Projective planeMeeting/Interview
28:45
Meeting/InterviewComputer animation
29:30
Computer animation
Transcript: English(auto-generated)
00:09
Good day everyone, I'm Min Chung Bai, a maintainer of AOSC OS and AOSC OS Retro from the Ensign Open Source community. Today I would like to share with you our two-year quest for a usable modern Linux experience on vintage hardware,
00:27
with a particular focus on what we have learned and an outline for our design choices. Now you may have never heard of us, but our community has just celebrated its 10th anniversary.
00:40
We spent the most of the past decade attempting to realize a general purpose Linux distribution, AOSC OS. Even though AOSC OS uses the DBKG package manager, it's not a DBN derivative. We designed AOSC OS as an independently maintained distro with a few goals in mind, as advertised on our homepage.
01:05
The first goal is simplified, by which we mean a simplified dependency tree. This means that no package should be split unless necessary, and that we ship software as is. For instance, the LibreOffice upstream ships LibreOffice as a singular software suite.
01:24
Then it will be a singular LibreOffice package in our repository, with all the intended features enabled and comes with all the data required. We chose to do so to reduce confusion and to make sure that our users know what they're installing and what's installed on their systems.
01:44
The second goal is a localized distribution. This means equal functionality across different languages. Most of our contributors are Chinese speakers, and we care that our distro comes with the proper features and support for the CJK languages.
02:03
It's not only about localization of interfaces and programs, but also font rendering quality, character set support, and font choices. In general, AOSC OS ships with all language data, and provides the support to display all these languages.
02:22
The next one is permissive, by which we mean a more liberal, if you will, reading of the slogan, free as in freedom. But freedom here means the choice, the freedom to choose between free and proprietary software. If, say, a user needed the NVIDIA proprietary driver to use with their computers, which is often the case, we will try
02:47
our best to provide them with such a package, so long as NVIDIA is happy or at least okay with us doing that. Same goes for things like Discord and Google Chrome. If the users wanted it and the upstreams let us, we'll make them available from our repository.
03:09
But of course, we'll need to mark them as non-free for the sake of transparency. The next is refined, all but minor improvements.
03:20
Unlike some other distros, we keep our branding and modifications to a minimum. We believe that a good distro should be a useful and ready-to-use tool, one that users use but not to notice all the time. We also actively participate on the upstream side to ensure this goal.
03:40
Much like our long-time commitment to improve localization for the software we ship, for instance, Wine, Matei Desktop, GNOME, and CUPS, or the software that we built in-house. And finally, sustainable, long-term support for aging hardware. The topic of my presentation today will focus on the sustainable aspect of our distribution.
04:05
Two other features, simplified and localized, will also be relevant topics for discussion. We will get to that in a bit. A considerable collective of our community members and contributors love to play
04:21
with retro hardware, and it goes beyond the act of collecting and modding. We believe that there is something romantic about them. The little something missing from our shiny new devices. The crunching hard disk drive, 4x3 screens, bold and quirky designs, repairability.
04:41
Now, what if we get to make them useful again in a familiar way? Here's what AOSC OS Retro came in as an idea. And by the way, as you can see on the slide, this is our community mascot, Anan holding a classic Macintosh. This mascot was kindly designed by Taisung Tan.
05:04
So, what is AOSC OS Retro? AOSC OS Retro is a retro device-friendly derivative of AOSC OS, maintained on a separate branch on the same package tree. This means that AOSC OS Retro essentially shares all the components and basic designs as the mainline distro.
05:26
But it was considerably reconfigured to make it fit and useful for retro devices. To put things into perspective, the mainline AOSC OS base system for AMD64 will easily take up 4
05:41
-5GB of storage space, about 256MB of RAM, and requires an x86-64 compatible computer from 2002 and beyond. AOSC OS Retro for x86 PCs, on the other hand, requires about 400MB of space, 16MB of RAM, and a 486 processor with or without a MAF coprocessor.
06:09
On my baseline test device, which comes with a 33MHz 486SX, the HTOP Process Viewer could take up 16% of the processor time just to refresh its interface.
06:26
Now, by sharing components, I mean that from the kernel, to the init system, to the graphical stack, they are all the same, widely used, and to some extent, standardized components. Yes, that means AOSC OS Retro boots a mainline LTS kernel, long-term support, initializes using systemd,
06:47
manages network with network manager, and runs your graphical programs atop the xorg server and mesa OpenGL library. Now that you have heard the word systemd, well, let me explain.
07:02
systemd does not automatically slow down your system. Heck, it's not even the most memory-intensive one on our minimal retro distribution. That place goes to bash. It's all down to feature configuration at the end of the day.
07:20
So how do you go about doing feature configuration? Let's take systemd for example. It's abundantly clear that you won't be able to flex the full fast systemd feature set on a 486, would you? So why would one want to use a heavier init system such as systemd on such slow devices?
07:40
The practical answer is twofold. One, it will take us less time as maintainers, as we wouldn't have to design a set of sysv65 init scripts on top of all the systemd configurations we adopted, such as services, sockets, temp files, and sysusers configurations.
08:03
And two, for my money, I'm more familiar with and therefore prefer to use systemd commands to configure my system installation. Now, it's time to decide what we care about a certain piece of software package, and what do we expect to do with them.
08:22
When designing AOSC OS Retro, we don't expect for you to use your vintage computers as your main device. Instead, it will be your handy computer for fun, or to do simpler tasks such as replying to emails, connecting to SSH servers, or to play some mod tracker music.
08:42
By this logic, we have cut down systemd as much as possible to keep a minimal set of utilities such as timedayctl, hostnamectl, journald, udefd, and of course systemctl. Virtually everything that does not pertain to providing the basic systemd
09:01
administrative experience were left out, in interest of storage space and memory. Remember, it's hundreds of megabytes of storage and tens of megabytes of ram we're working with. The same logic applies elsewhere, to keep the experience while keeping storage and memory costs to a minimum.
09:21
Say your core utilities are not as heavy as you might imagine, they'll run just fine on your 486. Some other software on the other hand certainly wouldn't. And that leads us from the theoretically good to the realistically bad and ugly.
09:40
I wouldn't for a second claim that our design choices with aos-cos-retro is perfect or even smart. It's adequate, and I'm surprised myself at how it turned out so far. Now, remember the parts about our distro being simplistic and localized. Along with the choice to share components with our mainline distro such as systemd, network manager, and xorg.
10:04
These two features became what I would call self-inflicted agonies in the design and maintenance of aos-cos-retro. Now, simplified dependency tree by not splitting package, this concept works well with devices with adequate or abundant storage.
10:25
This is unfortunately not necessarily the case for our target devices for aos-cos-retro. But not splitting packages means that development data such as headers, pkgconfig data, and static libraries would have to come with each package.
10:44
It was a bad time, and we had to cut down on all the non-man page or non-textinfo documentations, limit static libraries, and go radical with compiler and linker flags. Every single binary aos-cos-retro is built with os or optimized for size, link time optimization, and linked with data section garbage collection.
11:07
Stripping down features by expected usage helps us in lowering the base system size to about 400MB. It's still heavier than what your minimal say DBN or Alpine Linux could
11:20
be, but we have successfully kept the simplified dependency tree that defined aos-cos. You know the benefits that comes with it. Now, the issue turns to localization. This also plays into the storage space game. Out of the 400MB of storage space requirement, the multilingual support took up about 100MB, as shown below.
11:49
That's before you started counting in fonts. I hope you're ready, but the Noto CJK fonts, a default choice for many mainstream distros as well as lesser known ones like us, is about 300MB in size.
12:02
If you're counting the Noto fonts for all the other languages we promised to provide support for, that's another 200MB. There's no way we're going to use it for aos-cos-retro. Thankfully, there's GNU Unifont, which is about 10% of this size, but still, at 30MB, it's becoming one of the heaviest packages in an aos-cos-retro system's installation.
12:26
Not to mention the memory costs of loading such a font. It's not a cheap solution, and as you may say, that we could have easily left it out. But again, as something that makes aos-cos-retro and aos-cos-derivative by
12:42
design, this is a necessary solution, and thus becomes part of our minimum system requirements. The last challenge I would like to outline here is the porting work. aos-cos-retro currently has 9 ports planned, with 5 of them in regular maintenance.
13:01
So you have Dec-Alpha, ARMv4, ARMv6 with hard-flow ABI, ARM7 with hard-flow ABI, 32 -bit x86, long-send 2F, Motorola 68000, and PowerPC G3, G4, and big-endian G5 and beyond. That's a lot, and indeed, a lot of work.
13:22
But it also means that we could run aos-cos on a wide range of retro devices. Your Toshiba libretto, Netbooks, RMS's Yilong 8089D, iMac G4, Amiga, HP Jornada PDAs. Well, this is somehow exciting to me, and that might be because I suffer from a severe case of collectoritis.
13:46
Well, I hope I'm not alone here. The x86 port in particular could mean a huge performance differentiation. This means that aos-cos-retro has to design a wide range of editions to make the best use of different performance levels.
14:04
Your 486s are doomed to run only the bare minimum, your Pentium 2 and K6s could enjoy a graphical interface, whereas owning a Pentium 4 means that you are set to run everything available in the repository.
14:22
Here are a few examples of the devices we have run and tested aos-cos-retro on. So starting from the slowest, here's our x86 baseline tester, an IBM Palm Top PC110. It comes with a low-voltage 46SL running at 33MHz, no folding point unit, 20MB of RAM, and 1GB of compact flash card.
14:48
It's not fast, but I think it's cool to just have things run on it. Aos-cos-retro could only run faster than how it runs on this machine. There's still room for improvement, of course.
15:01
On the ARM front, we have the HP Journada 720, a Windows CE PDA running on a 206MHz strong-arm SA1110 ARMv4 processor, 32MB of RAM, and 1GB of compact flash card.
15:20
Here's when the experience gets more pleasant, and you could comfortably browse the web using the e-links browser. On the PowerPC front, we have the iBook G3 clamshell with a 233MHz PowerPC G3 processor, 192MB of RAM, and an 8GB hard disk drive.
15:43
Here, as you can see, it's running the iSwm desktop. Things run pretty quick on this iBook, and you can even do some basic web browsing using NetServe, or listen to your favorite tracker music. Here we have a Pentium MMX Libretto 100CT and a Pentium M Livebook P1510D.
16:06
Both are UMPCs, or Ultra Mobile PCs, and while performance varies greatly between the two, the point is that you could use AOSC OS Retro for whatever you want, as long as you keep your expectations in check.
16:22
And finally, we have the Yilong AT89D, a laptop once used by RMS himself for its fully Libre system firmware. This measly laptop is actually on the higher end of the AOSC OS Retro performance spectrum. It's got the processor speed and the RAM.
16:42
Here you can see it's running the Trinity desktop environment at KDE 3.4, which is AOSC OS Retro's flagship desktop environment. Now we are getting to the products. What flavors and applications do you get with AOSC OS Retro?
17:03
So we're shipping and planning the following. The first variant is called a base. A base system with no graphical interface becomes pre-installed with administrative tools, networking support, editors, web browsers and downloaders, etc.
17:20
From base we derive a minimal addition, your bare metal AOSC OS Retro installation targeting the lowest of low performance devices such as your 486s, early alpha workstations and strong-arm Windows CE PDAs. Most optional services are not started by default, but it comes with a full set of base variant applications.
17:44
Next, we have the X11, which comes with the ISWM, desktop environment, along with a basic set of graphical utilities such as a web browser, in this case, NetSurf, mail client, in this case, SealFeed,
18:01
file manager, which is XFE, media players, which is Audacious and MPV. And then we have the Trinity, which we have a name pending here, which comes with the KDE3 forked Trinity desktop environment or TDE. This variant targets your upper bound of retro devices
18:21
called Duels, Pentium 4s, Pentium M's, G5s, etc. It comes with a full TDE application suite as well as an upgraded web browser, Pelman. And finally, we have a server addition, which is basically a base system with server applications such as the Apache HTTP daemon.
18:45
Now that I have outlined everything, it's time to look back. Was it worth it, these two years of work? Well, not economically, of course. The bottom line is, it has been an exciting journey and we will likely carry on with it.
19:01
We just need more people. Our small team struggles like a swapping hard disk between projects, and it shows. AOSCOS Retro is by no means perfect, and it's not even finished. But we hope that with time and hopefully more human power, we'll get to realize this distro where we envision it to be,
19:21
such as shipping a multi-CD physical box hobby, which is something I have never owned myself, but I'm nonetheless excited to see it happen. For now, AOSCOS Retro is available from our downloads page. Please try it out and tell us what you think. And if you would like to help as well.
19:41
Thank you, that's all I have, and I'm ready to take your questions and critiques.
20:04
Yeah, this is actually a little stress. I thought people would be like joining the video chat. So I think we're live. We are? Okay. So, Min-Sung, you have a lot of questions. Well, not that many, but I've seen that my own question is the most popular.
20:20
So thanks for this great talk. We have a lot of information here. How can the community help? How can we help the project? So we have a GitHub repository on GitHub AOC Dev, but I can post a link later. Mostly to help with us is to give us ideas about what package you want in the distro
20:48
and we can do the evaluation and testing as to how well it works on the target devices so we can make a guideline on, say, if you introduce Firefox, for instance, would it actually work on all of the target devices? Probably not.
21:07
The other thing you can do is test, especially for the x86 port, to test it on as many devices as you could. Because this is, although it's the most common architecture, it's actually the most difficult one to test for
21:22
because the performance difference is so vast between a x86 and, say, a Pentium 4. It's about 50 times faster. So to put it short, find out GitHub, give us ideas. We also have Telegram, IRC, and Discord.
21:41
Awesome. If we have some old computer somewhere in a drawer and it's supported, we can test it. We can test it and give us feedback. We can get it fixed. Or we can send it to you. Why not? If it's convenient, yeah.
22:01
Yeah, if it's a portable device, probably. Yeah, I mostly work with portable devices myself because I live in a small apartment. It's difficult to have large stuff. Well, there's a couple of questions from Francois. Thank you, Francois, for asking all the questions.
22:20
How large is the team? How large is the team? So as a distro, we share a team to work on the mainline and retro branch, if you will. So for the main line and for the whole distro as itself, we have about 10, 15 active members. They come on and off.
22:41
But we have about four or five people that are on all the time and they're doing the work, writing applications or packaging. Retro, it's mostly a passion project for me and one or two other people. So people think it's cool and people are playing with them, but it's difficult to get people started on working on it.
23:04
Okay. So 10, 15 people. Yeah, that's pretty nice. There's a question from Elem8. I work with a lot of lightweight software that ports well to older systems.
23:20
Would there be an interest in sharing programs like that and the patches I've written to help improve portability and performance? Of course, yeah. That would be great help because one thing we're having trouble with is actually peripheral support for older devices. One thing that comes to mind is PCMCIA support.
23:47
We have a command line program to automatically handle, plug in and unplug events. But when it comes to the desktop, we actually don't have a really good GUI to represent the status of the PCMCIA slots.
24:04
If you use Windows or Mac OS before, you will see that they have a tray icon showing you what's plugged in and what can you do with it. We don't have that on the Linux desktop. The other thing is, funny enough, volume control is actually a problem nowadays for desktop.
24:25
You might have a volume tray. The lightest we can find that's reasonably easy to use is called volume icon. We had to enlist a patch just to make sure it doesn't use GTK3. Once you introduce GTK3, that program is not really usable on anything slower than the Pentium 4.
24:49
Please do send your recommendations our way. It will be very helpful. There's a question on, can I install AOS-COS on a machine with only a floppy disk drive?
25:06
So, presently, no. But what you can do is, if you use a CF card, it will make it easier, but you can still do it with a traditional hard drive. You will have to disassemble your computer, get the hard drive out, get it installed on another Linux machine, and then plug it back in. It will work just fine.
25:24
We are currently working on a floppy installer, so it will be running the muscle libc to make sure it fits within that floppy disk. It's easy to get a Linux kernel trimmed down to that size, about 800 kilobytes, with network support, basic hard drive, and optical drive support.
25:49
Once you put it into the floppy environment, you can plug in your CD drive or whatever. That's helpful to install the system that way. One thing I will note though, if your computer only has a floppy disk drive and it's off
26:02
that era before a CD-ROM drive, so 486 early Pentium, you're probably looking at an hour-long installation. Or it will be shorter than to install Windows on a 33-disk. Do you have some figures on your user base? How many downloads? How many users?
26:26
We don't really track that, but we do know we have users and interests. From emails or issues? We don't collect any sort of figure like that.
26:41
What, you don't track people? We try our best not to and make sure our package doesn't. It's actually in our packaging guideline. We make sure we trim down the telemetry in all the packages we ship. You don't have a popularity contest package? We don't, yeah. What else? Maybe I missed something. Does it come with emulators pre-installed?
27:07
So nowadays, we're still doing the system design, so it's not that we're introducing a lot of packages right now, but it's definitely something on our plan. Game Boy Advance emulator, of course, went very well on older computers or even older NES.
27:26
No, PDP-11 or something like that. Yeah, for sure. But something we have in mind for ARMv6, ARMv7 ports, for the ARM SoCs, it would be great to have a virtual ARC distribution that boots straight into the interface and we can get started with the emulators. They're more than capable of doing it.
27:49
Okay, so that's great. Thank you very much again. We are going to close the Q&A session, the official one, but feel free to hang in here or to join the channel and you can continue to ask questions.
28:07
The next talk is about the old web. Oh, keeping Flash accessible, right? Doesn't it run Flash, AOSC? Well, we can, yeah. Okay, so that's the next talk of the next talk from Ilya Kramer. I'm probably mispronouncing that also. Hopefully, I had Minson correctly.
28:31
Yes, that's perfect pronunciation. Okay, then thanks again. Thanks a lot and I hope you will have a lot of success with your project.
28:44
Thank you. And well, we'll hang in here. So feel free to join.