Homebrew An OS From Scratch? Snowdrop Shows How It’s Done

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”

Pumpkin OS running on x86

Palm OS: Reincarnate

[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.

Reaching Serenity: Porting Git To A Homebrew Operating System

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”

Collapse OS, An OS For When The Unthinkable Happens

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].

Hackaday Links Column Banner

Hackaday Links: October 13, 2019

Trouble in the Golden State this week, as parts of California were subjected to planned blackouts. Intended to prevent a repeat of last year’s deadly wildfires, which were tied in part to defective electrical distribution equipment, the blackouts could plunge millions in the counties surrounding Sacramento into the dark for days. Schools have canceled classes, the few stores that are open are taking cash only, and hospitals are running on generators. It seems a drastic move for PG&E, the utility that promptly went into bankruptcy after being blamed for last year’s fires, but it has the support of the governor, so the plan is likely to continue as long as the winds do. One group is not likely to complain, though;  California amateur radio operators must be enjoying a greatly decreased noise floor in the blackout areas, thanks to the loss of millions of switch-mode power supplies and their RF noise.

Good news, bad news for Fusion 360 users. Autodesk, the company behind the popular and remarkably capable CAD/CAM/CAE package, has announced changes to its licensing scheme, which went into effect this week. Users no longer have to pay for the “Ultimate” license tier to get goodies like 5-axis machining and generative design tools, as all capabilities are now included in the single paid version of Fusion 360. That’s good because plenty of users were unwilling to bump their $310 annual “Standard” license fee up to $1535 to get those features, but it’s bad because now the annual rate goes to $495. In a nice nod to the current userbase, those currently on the Standard license, as well as early adopters, will get to keep the $310 annual rate as long as they renew, and The $495 pricing tier went into effect in November of 2018, while anyone still on the $310 annual price was grandfathered in (and will remain to be). At that time there was still a $1535 tier called Ultimate, whose price will now be going away but the features remain in the $495 tier which is now the only pricing option for Fusion 360. Ultimate users will see a $1040 price drop. As for the current base of freeloaders like yours truly, fear not: Fusion 360 is still free for personal, non-commercial use. No generative design or tech support for us, though. (Editor’s Note: This paragraph was updated on 10/14/2019 to clarify the tier changes after Autodesk reached out to Hackaday via email.)

You might have had a bad day at the bench, but was it as bad as Román’s? He tipped us off to his nightmare of running into defective Wemos D1 boards – a lot of them. The 50 boards were to satisfy an order of data loggers for a customer, but all the boards seemed caught in an endless reboot loop when plugged into a USB port for programming. He changed PCs, changed cables, but nothing worked to stop the cycle except for one thing: touching the metal case of the module. His write up goes through all the dead-ends he went down to fix the problem, which ended up being a capacitor between the antenna and ground. Was it supposed to be there? Who knows, because once that cap was removed, the boards worked fine. Hats off to Román for troubleshooting this and sharing the results with us.

Ever since giving up their “Don’t be evil” schtick, Google seems to have really embraced the alternative. Now they’re in trouble for targeting the homeless in their quest for facial recognition data. The “volunteer research studies” consisted of playing what Google contractors were trained to describe as a “mini-game” on a modified smartphone, which captured video of the player’s face. Participants were compensated with $5 Starbucks gift cards but were not told that video was being captured, and if asked, contractors were allegedly trained to lie about that. Contractors were also allegedly trained to seek out people with dark skin, ostensibly to improve facial recognition algorithms that notoriously have a hard time with darker complexions. To be fair, the homeless were not exclusively targeted; college students were also given gift cards in exchange for their facial data.

For most of us, 3D-printing is a hobby, or at least in service of other hobbies. Few of us make a living at it, but professionals who do are often a great source of tips and tricks. One such pro is industrial designer Eric Strebel, who recently posted a video of his 3D-printing pro-tips. A lot of it is concerned with post-processing prints, like using a cake decorator’s spatula to pry prints off the bed, or the use of card scrapers and dental chisels to clean up prints. But the money tip from this video is the rolling cart he made for his Ultimaker. With the printer on top and storage below, it’s a great way to free up some bench space.

And finally, have you ever wondered how we hackers will rebuild society once the apocalypse hits and mutant zombie biker gangs roam the Earth? If so, then you need to check out Collapse OS, the operating system for an uncertain future. Designed to be as self-contained as possible, Collapse OS is intended to run on “field expedient” computers, cobbled together from whatever e-waste can be scrounged, as long as it includes a Z80 microprocessor. The OS has been tested on an RC2014 and a Sega Master System so far, but keep an eye out for TRS-80s, Kaypros, and the odd TI-84 graphing calculator as you pick through the remains of civilization.

Bringing PalmOS Back To Life

Ten years is almost ancient history in the computing world. Going back twelve years is almost unheard of, but that’s about the time that Palm released the last version of their famed PalmOS, an operating system for small, handheld devices that predated Apple’s first smartphone by yet another ten years. As with all pieces of good software there remain devotees, but with something that hasn’t been updated in a decade there’s a lot of work to be done. [Dmitry.GR] set about doing that work, and making a workable Palm device for the modern times.

He goes into incredible detail on this build, but there are some broad takeaways from the project. First, Palm never really released all of the tools that developers would need to build software easily, including documentation of the API system. Since a new device is being constructed, a lot of this needs to be sorted out. Even a kernel was built from scratch for this project, since using a prebuilt one such as Linux was not possible. There were many other pieces of software needed in order to get a working operating system together running on an ARM processor, which he calls rePalm.

There are many other facets of this project that we aren’t able to get into in this limited space, but if you’re at all interested in operating systems or if you fondly remember the pre-smartphone era devices such the various Palm PDAs that were available in the late ’90s and early ’00s, it’s worth taking a look at this one. And if you’d like to see [Dmitry.GR]’s expertise with ARM, he is well-versed.

Thanks to [furre] for the tip!

Tetris In 446 Bytes

You want to play Tetris. You want to play Tetris on any operating system. You want to play on an old IBM PC, you want to play Tetris on a new MacBook. You want a Tetris that’ll fit inside the master boot record of a disk. You want Tetris as an operating system. You want TetrOS.

Or maybe you don’t, but it’s a fantastic piece of work, and we love tiny demos. Check it out below the break. Or read through the source code in the banner image.

Continue reading “Tetris In 446 Bytes”