I've been interested in web browser development for a while now. Trying to find a lightweight web browser than can be built independently from source and still supports the ability to view the average modern web page is extremely difficult. I feel like the main browser developers now have so much of a monopoly over web development that they managed to become the web standards committee, taking this job away from the W3C which originally maintained web standards. They control what standards become part of the web and even eliminate the need for certain products. Products like Flash and Silverlight became practically obsolete with the advent of HTML 5. While Flash and Silverlight weren't exactly a boon for Free and Open development, the current web standards are so difficult to develop for that independent commercial and Free/Open development alike are both at a loss to keep up.

Some of the browsers I was able to build myself included Netrider, D+ and lynx. Netrider ( https://sourceforge.net/projects/netrider/ ) is based on an older version of webkit. It has a FLTK front end, but was designed to easily allow for other front end development using other GUI libraries. I've used it with SDL and other options. I also ported it to work on Windows so it provided a cross-platform solution. D+ is an older fork of Dillo. Unlike Dillo it works on a variety of operating systems including FreeDOS. Lynx is a text based browser.

There were several text browsers at one point but now development seems to have stopped. Originally one could surf the web using just a text based browser but trying to do so now, is extremely difficult. Many web pages just don't render well in text alone. This is doubly troubling because it's removed the ability for many to use text based browsers and it's made it more difficult for those who are visually impaired to surf the web. I often used text browsers to make sure that the web pages I created rendered well and were easy to navigate. This was one test I used to ensure the pages were user friendly for the visually impaired and the browsers they often use. Some other older text browser projects include links, links2, elinks, w3m. Links was an interesting project as far as text browsers go because it allowed some viewing of graphics using the Linux framebuffer or SDL.

Fifth ( https://github.com/clbr/fifth ) is also an interesting web browser alternative. It's available as a package for TinyCore Linux. Like Netrider, it's based on an older version of webkit and provides an FLTK front end. Unlike Netrider, it's not as portable to other platforms such as Windows.

I looked at netsurf at one point because it's one of the few active independent web browser projects out there. I was unable to build it myself from scratch. It had several libraries, little documentation on building and I had difficulties finding out which version of which library worked with the others. So, I had no luck getting it to build independently as a cohesive project.

Some suckless.org developers solved the issue of getting a modern day web browser to build from source by adopting surf. Surf uses webkit and a GTK GUI front end. The Linux from Scratch project currently includes lynx, links and these browsers in their documentation: https://www.linuxfromscratch.org/blfs/view/svn/xsoft/graphweb.html

There are several interesting independent browser development projects but like surf, they typically use libraries such as webkit or gecko from a larger web development project.

Some independent operating systems are trying to find a way around the browser issue by developing their own. Ladybird from SerenityOS is an example of this: https://ladybird.org/

Some developers are trying to simplify browser development by creating an alternative to the HMTL 5 standard. This is where Gemini comes in. Unfortunately, Google has renamed their AI to Gemini as well which makes it difficult to search for information on the Gemini protocol. One can read more about Geminispace here: https://geminiprotocol.net/ There was an interesting critique of the Gemini protocol from the developer of curl: https://daniel.haxx.se/blog/2023/05/28/the-gemini-protocol-seen-by-this-http-client-person/ I'm not sure if any of his issues have been addressed but so far, Gemini hasn't hit the mainstream for replacing the World Wide Web and HTML 5. I have to say, I do like the looks of the Gemini based web sites. However, not all Gemini browsers can render all the sites. The protocol is still evolving and some functionality is experimental. So, it seems to share some similar issues with World Wide Web surfing.

The problem of being able to easily build a web browser from source without requiring a huge number of libraries has been around for a while now. It appears that it will continue to be an issue for independent operating systems and lower resource computers for a long time to come. It would be great to find solutions that would make web browser development less of a monopoly only attempted by major players. I'm surprised groups like the Free Software Foundation don't feel this is an area that should be considered for their High Priority Projects. I guess many believe that as long as there are Free, Libre, Open Source browsers out there that provide source code, it shouldn't matter that it requires a large organization just to build them while building from source is out of reach for the average developer. However, my personal philosophy is that one of the key advantages of Open Source is to be able to build and modify the code for yourself. If I'm unable to do that with a project, it loses a lot of its usefulness for me.

Here's a short but in no way all inclusive list of some web browser projects that avoid using major web libraries such as as webkit and gecko:
https://ladybird.org/index.html
https://www.netsurf-browser.org/
https://github.com/CobaltBSD/neosurf
https://dillo.org/
https://sourceforge.net/projects/dplus-browser/
https://github.com/textbrowser/dooble
https://lynx.invisible-island.net/

That's a quick rundown of the state of alternative browser development. If I've missed any other relevant FLOSS browser or Open protocol options, you can reach me on Mastodon and let me know.
Considering how hard it is to get computers (still waiting over a month) and computer parts, now is a great time to look into bringing new life to your old hardware.

While I often see information shared about how Linux brings new life to older computers, my personal experience ( http://www.distasis.com/cpp/slin.htm ) hasn't been as good as some of the glowing articles. When I investigate further, a lot of the successes have been for single purpose servers (typically command line with no desktop support) or single function usage like home theater systems. Many Linux distributions are aimed at the latest hardware and can be just as resource intensive as Windows systems. It's interesting to note that many of the low resource optimizations for Linux originated from the Android project not from the kernel project itself and they are slowly being integrated into the Linux kernel project. Some FLOSS development projects and companies like Google which produces Android don't even want to be bothered with 32 bit systems and want to concentrate on 64 bit only. It can be more efficient to run Linux or other Free operating systems on new minimal hardware like a Raspberry Pi than to try to get something working on an old computer. One can also find systems similar to the Raspberry Pi but supporting X86 so Windows CE and other Windows like software becomes an option. There's even an Android operating system port called Android-X86.

I've often seen Puppy Linux touted as a great system for older computers, but I could never get it to work with my hardware. Slackware is an interesting choice that can be lightweight, but the Lilo boot loader doesn't work for certain types of hard drives and one would need to find a way to independently get grub on those systems. TinyCore Linux is really interesting but it can require a lot of RAM to run properly. Debian has worked on many older systems and there are many great Debian variants. However, even Debian is removing some of their drivers for older hardware. Plus, they've updated to systemd. So, if you want a system you can maintain yourself with minimal dependencies where a package does one thing well per the Unix philosophy, a systemd based OS won't be the way to go.

Some Linux distributions still worth checking out for use with older systems are:
AntiX, a Debian based distribution without systemd
ToriOS, a Debian based distribution catering to older computers
NanoLinux, a TinyCore Linux distribution that uses Nano-X instead of X Windows
Grml, a Debian based distribution, command line, bootable rescue CD

I've also looked into OS options for older computers that were not Linux based. Both FreeBSD and FreeDOS can be more lightweight alternatives than Linux. However, both options typically have less hardware support than Linux. FreeDOS also tends to have more proprietary software and few active Open Source projects available for it. If you're interested in a very lightweight DOS alternative for old hardware, check out the XFDOS project. It offers several Open Source programs for DOS including a lightweight browser.

I've never had any luck with ReactOS. Again, hardware support is an issue. It can run some very complex Windows programs quite well, but it often fails on simple ones I commonly use. While I've recently seen posts that they want to hire development help, I've never found them responsive when I've volunteered to offer my programming skills. Wine seems to be able to run more Windows programs successfully than Reactos and Linux has better hardware support. So, a Linux system with Wine might be a good option for Windows users who want to switch. However, if switching to Linux, I'd personally rather rebuild my Open Source software for Linux rather than try to use it on Wine. I'd love to find some other viable options besides ReactOS. I do remember reading something on the ReactOS forum about a Wine based fork to ReactOS. Haven't been able to find any details though. Some DOS projects mentioned adding partial support for Windows programs using options like HX DOS Extender. However, they only seem to support Win32 console options. I've seen some suggestions of creating a FLOSS OS similar to a Win 3.1 system with a GUI/desktop built on top of a FreeDOS system, but have not been able to find any active projects. Without GUI support for DOS based Windows alternatives, a project like XFDOS using Nano-X seems the best way to go. Nano-X provides basic APIs somewhat compatible with Xlib and Win32 and there's enough support to build FLTK based applications. If anyone finds other viable options in this area, please let me know. I would love to add my programming skills to such a project.

If you have a Windows computer, you can keep running Windows and use FLOSS programs to improve functionality. I've upgraded Windows systems before, but the results are typically sluggish and eventually I end up having to put another operating system on to keep using the machine.
The one thing that seems consistent across platforms is that older versions of operating systems seem to run better on older hardware than newer ones. Developers continue to write software that is more bloated, more complicated and more dependent on other software. Many news sources do not recommend running older operating systems especially Windows. So using older operating systems to keep older hardware alive goes against average advice. If you don't have other options and need to run an older operating system on your hardware, two security concepts to look into are sandboxing and security by obscurity. On Linux systems, Linux containers are a good sandboxing option. You can also try to avoid running as root or admin whenever you access the Internet. You can even disconnect from the Internet completely for security purposes and use options like sneaker net ( http://www.distasis.com/cpp/snet.htm ) to update your systems when needed.

Here are some FLOSS recommendations for low resource or older computers. Some are specifically for Windows or Linux and some are cross-platform portable.


Cross-platform applications:

Web Browser - Netrider
https://sourceforge.net/projects/netrider/

Web Browser - D+
https:/sourceforge.net/projects/dplus-browser/

Web Browser - lynx
https://lynx.invisible-island.net/

Graphics editor - Lodepaint
https://sourceforge.net/projects/lodepaint/

Graphics editor - grafx2
http://grafx2.chez.com/

Command line graphics editor - GraphicsMagick
http://www.graphicsmagick.org/

Command line sound conversion/player - SoX
http://sox.sourceforge.net/

Music player - MilkyTracker
https://milkytracker.titandemo.org/

PDF viewer - MuPDF
https://mupdf.com/

Ebook reader - Bard
https://github.com/festvox/bard
I have a patched version that works better on Windows.

Windows emulator - BoxedWine
https://github.com/danoon2/Boxedwine


DOS Resources:

DOS distribution - XFDOS
https://sourceforge.net/projects/fltk-dos/

DOS emulator - DOSBox
https://www.dosbox.com/


Windows specific and Windows portable versions:

Web browser - Mozilla Firefox, Portable Edition Legacy 52
https://portableapps.com/apps/internet/firefox-portable-legacy-52

Web browser - Chrome Portable
https://portableapps.com/node/60675

Java - Java Portable
https://sourceforge.net/projects/portableapps/files/Java%20Portable/
Install in CommonFiles subdirectory at the same level as where the portable browsers are installed. Java Portable version 8 works on XP and Vista. I've used jPortable_8_Update_66.paf.exe but later versions will probably work as well.

Web browsers - other options
http://rtfreesoft.blogspot.com/
Haven't tried them, but there are several ports of browsers to older hardware.

Web browser - RetroZilla
https://github.com/rn10950/RetroZilla

Web browser - Supermium
https://github.com/win32ss/supermium

IM - Miranda NG
https://github.com/miranda-ng/miranda-ng

Sandox - Sandboxie
https://github.com/sandboxie-plus/Sandboxie
https://www.sandboxie.com/GettingStarted

Firewall - Simplewall
https://github.com/henrypp/simplewall

Host-based Intrusion Detection System - ossec
https://github.com/ossec/ossec-hids

PDF viewer - SumatraPDF
https://www.sumatrapdfreader.org/free-pdf-reader.html

Image editor - I.mage
http://www.memecode.com/image/

ISO access - WinCDEmu
https://portableapps.com/apps/utilities/wincdemu-portable
If you can't find a copy of WinXP Virtual CD Control Panel for accessing ISO files or it doesn't work on your system, you can try WinCDEmu.

CD and DVD creation - rktools
https://www.microsoft.com/en-us/download/details.aspx?id=17657
This isn't FLOSS, but it's very useful for creating CDs and DVDs from the command line.

GWBasic
https://github.com/microsoft/GW-BASIC
The original source code of Microsoft GW-BASIC from 1983 is available under a MIT license.


Linux/POSIX software:

Window manager - JWM
https://joewing.net/projects/jwm/

Terminal software - urxvt
http://software.schmorp.de/pkg/rxvt-unicode.html


If you have other alternatives (operating systems or FLOSS software) that work on older hardware that you'd like to recommend, please let me know ( http://www.distasis.com/connect.htm ). I would love to find some other options. I'm also actively looking for operating system projects that need (and actually want) volunteers to help port lightweight software to them. Would be interested in hearing how others are coping with keeping older hardware alive. Hope you'll share your own articles, blogs, projects with everyone.

April 2025

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 30th, 2025 10:50 am
Powered by Dreamwidth Studios