Web design has come a long way since those halcyon days of Web 1.0. There are plenty of rules about how to make a clean and efficient website, but sometimes it’s more fun to throw them out and just be creative instead. In that vein, [Simone] has curated a wonderful collection of websites that emulate the computer desktop experience online.
The collection’s website very much fits this theme. Upon visiting, an Award BIOS screen flashes up. From there, we get a Windows 95-like interface full of links to other sites that emulate a computer desktop layout. There’s even a 3D screensaver that pops up if you mouse away for too long.
There’s Browso.app, which semi-accurately tells you information about your computer in a theme reminiscent of MacOS 9. Meanwhile, clicking on “It Is As if You Were Doing Work” will take you to a weird game that’s compelling in its replication of office banality. Nightwave Plaza offers exquisite vaporwave vibes, while others simply intend to faithfully recreate various OSes in a browser window.
It’s a fun collection of websites that go from the weirdly afamiliar to downright impressive recreations of former realities. It’s certainly fun to click around for a while and see what’s out there. We do love some good web ephemera around these parts!
Ever wonder what makes a cellphone’s operating system secure, or what that app you just installed is saying about you behind your back? In a brand new video series, [Jiska] gives us a peek into different topics in smartphone software reverse engineering.
For instance, her latest video, embedded below takes us through some steps to poke at Apple’s RTKit OS, which is the realtime OS that runs inside most of their peripheral devices, including AirPods, but also on their bigger devices too. We don’t know much about RTKit OS, but [Jiska]’s trick in this video is to get a foothold by looking through two different RTKit OS versions and noting which symbols are common — these are probably OS function names. Now you’ve got something to look for.
Each of the videos is short, to the point, and contains nice tips for perhaps the intermediate-to-advanced reverser who is looking to get into phones. Heck, even if you’re not, her demonstrations of the Frida dynamic tracing tool are worth your time.
And if you want a longer introduction into the internals of cellphones, we heartily recommend her talk, “All Wireless Stacks Are Broken“.
Continue reading ““Reversing Shorts” Demystify Phone Security” →
[Esperantanaso] has long been involved in producing homebrew 8-bit computers. His various builds could all achieve different things, but he grew frustrated that applications written for one could not be easily run on another. He recently took a big leap forward in this area, though, cooking up his own 8-bit operating system called WheatSystem.
The work initially began with BreadSystem, which relied on applications existing in bytecode. This would then be run by the BreadSystem OS which would handle the requisite conversion to the machine code of the system it ran on. However, the work quickly got out of hand when it came to implementing advanced features like the file system and floating-point handling. BreadSystem was looking likely to be too heavy to run on lightweight 8-bit systems.
That led to the development of WheatSystem, which kept the bytecode runtime environment, unified heap, and a memory permission system from BreadSystem. Fancier features like granular memory permissioning, automatic garbage collection, and file system directories were dropped.
WheatSystem quickly became a basic and functional OS. To demonstrate it, [Esperantanaso] created WheatBox 55A1, a small homebrew computer based on the ATmega328. It readily runs simple applications like a prime number generator or a basic RPG.
Creating one’s own OS is no mean feat, even at the 8-bit level. We’ve seen it done before, and it never fails to impress.
Continue reading “WheatSystem Is A Homebrew 8-Bit OS” →
Ever wondered what it would take to roll your own OS? [Sebastian]’s Snowdrop OS might just provide you with some insight into that process, and maybe even some inspiration.
[Sebastian] created Snowdrop completely from scratch, using only x86 assembly language. It’s more than just bare-bones, and boasts a number of useful utilities and programs including a BASIC interpreter and linker (for creating standalone BASIC executables.) That’s not even touching on the useful essentials, like multitasking and a GUI framework. There are even a number of resources specifically for making game development easier. Because as [Sebastian] puts it, what’s a operating system without games?
Interested in giving Snowdrop a try, or peek at the source code? The binaries and sources section has all you need, and the other headings at the top of the page will send you to the various related goodies. If you have a few minutes, we recommend you watch a walkthrough of the various elements and features of Snowdrop in this video tour (embedded after the page break.)
Snowdrop is an ambitious project, but we’re not surprised that [Sebastian] has made it work; we’ve seen his low-level software skills before, with his fantastic efforts around the classic stand-up arcade game, Knights of the Round.
Continue reading “Homebrew An OS From Scratch? Snowdrop Shows How It’s Done” →
[pmig96] loves PalmOS and has set about on the arduous task of reimplementing PalmOS from scratch, dubbing it Pumpkin OS. Pumpkin OS can run on x86 and ARM at native speed as it is not an emulator. System calls are trapped and intercepted by Pumpkin OS. Because it doesn’t emulate, Palm apps currently need to be recompiled for x86, though it’s hoped to support apps that use ARMlets soon. Since there are over 800 different system traps in PalmOS, he hasn’t implemented them all yet.
Generally speaking, his saving grace is that 80% of the apps only use 20% of the API. His starting point was a script that took the headers from the PalmOS SDK and converted them into functions with just a debug message letting him know that it isn’t implemented yet and a default return value. Additionally, [pmig96] is taking away some of the restrictions on the old PalmOS, such as being limited to only one running app at a time.
As if an x86 desktop version wasn’t enough, [pmig96] recompiled Pumpkin OS to a Raspberry Pi 4 with a ubiquitous 3.5″ 320×480 TFT SPI touch screen. Linux maps the TFT screen to a frame buffer (dev/fb0 or dev/fb1). He added a quick optimization to only draw areas that have changed so that the SPI writes could be kept small to keep the frame rate performance.
[pmig96] isn’t the only one trying to breathe some new life into PalmOS, and we hope to see more progress on PumpkinOS in the future.
Life is all about the little joys — such as waking up in the morning and realizing there’s still plenty of time before you have to actually get up. Or getting up anyway to watch a delightful sunrise as the city slowly wakes up, or as [Andreas Kling] chose, porting your favorite development tool to the operating system you wrote.
With the aesthetics of ’90s UI design and the functionality of a simpler 2000s Unix-style system core in mind, and personal reasons to keep himself busy, [Andreas] started SerenityOS a little while back. Of course, writing your own operating system is always a great educational exercise, but it takes a certain amount of commitment to push it beyond an experimental playground phase. So ideally, you’d eventually want to use it as your actual main system, however, as software developer, [Andreas] was missing one crucial component for that: git. Well, he decided to change that and just port it — and as someone who likes to record his hacking sessions, you can watch him along the way.
Admittedly, watching someone tweaking some build tools and compiler settings would normally sound anything but overly exciting, but it adds a few more layers to it when doing so for a work-in-progress OS written from scratch — from digging into libc implementations to an almost reverse engineering approach to the build environment. If you take pleasure in people’s thought process in problem solving and (spoiler alert) their success, you will enjoy watching [Andreas]. On the other hand, if you’re more curious about a fresh approach at a desktop operating system, SerenityOS itself might be worth looking into. Of course, there are other options for that as well.
Continue reading “Reaching Serenity: Porting Git To A Homebrew Operating System” →
Decades of post-apocalyptic Hollywood movies have taught us that once all the trappings of our civilisation have been stripped away, it’s going to be kinda cool. We’re all going to wear slightly dusty looking 1980s motorcycling gear, and we’re going to drive really cool cars. Except of course Mad Max is fantasy, and the reality is likely to be unspeakbly grim. The future [Virgil Dupras] is anticipating is not a post-nuclear wasteland though, instead he’s trying to imagine what access to computing might look like in a world where the global supply chain has broken down. His solution is CollapseOS, an operating system designed for resilience and self-replication, that runs upon the minimal hardware of an 8-bit Z80.
It’s a pretty basic operating system so brace yourself if you are expecting a 64-bit fully multithreading kernel. Instead, you’re looking at a kernel, an assembler, and a text editor. One of the stated aims is that it can compile assembly language for a wide range of target CPUs, but it does not make it clear whether this means the OS itself will support those platforms. The self-replication is a fascinating feature though.
It’s an interesting question: what computing hardware would be available to the would-be hacker in a world in which all parts must be scavenged? The Z80 and other processors like it fit the bill admirably in one sense as it is possible to create a working computer using them with fairly minimal tools and knowledge, but we can’t help wondering whether the days when almost any electronic junk pile would contain one are now past. So what other easily accessible computing platforms might be created from post-apocalyptic junk in 2019? Remember, with no laptop and IDE you can’t just put an Arduino bootloader on that ATmega328 you desoldered from an old thermostat. As always the comments are open.
Image: Damicatz [CC BY 2.5].