liam_on_linux: (Default)

(Repurposed HN comment.)

The BSD/Linux thing was there right from the start, but it was more complicated than a simple us-vs-them. The thing is that there were a whole bunch of competing commercial Unix-like OSes in the 1980s.

But there were other prejudices as well.

In Proper Grown-Up Unix terms, PCs were toys, poorly-made weird little things that were no more than office equipment. So nothing worth using ran on the 386.

There was no local bus yet, no IDE or EIDE, slow AT expansion bus, no processor cache, and so on -- meaning a forest of proprietary or semi-proprietary extensions and buses and special slots. This opened up a market for a vendor to port to Brand X PCs and Brand X's own weird storage and display.

Enter Interactive Corp, which tried to combat this, and worked on Unix ports for various vendors' hardware. Expensive OS for expensive machines.

And there was SCO which wasn't proud, wasn't fancy, ran on commodity kit, and didn't try to be a general purpose OS like that white lab-coat brigade expected. So SCO Xenix worked, and you could run apps on it, but in the box there was no C compiler, no networking, no X11, nothing. It was a runtime-only OS and it was still expensive.

Everyone sneered at it but it did the job. I put in a lot of it.

Then if you weren't paying, someone else was who would never see the word "Unix", there were all the vastly expensive RISC boxes with their vastly expensive expansions and vastly expensive -- well, everything. Sun, HP, DEC, IBM, SGI, loads of company would sell you rooms full of workstations, single-user minicomputers with big screens. They cost as much as a house.

Actual BSD ran on actual minicomputers that cost as much as a small street of houses and those dudes wouldn't even look at PCs.

Which left a market for enterprising vendors squeezing Unix-like things onto low end kit.

Various flavours of BSD, including BSD/OS; SCO Xenix in both 286 and 386 versions; Interactive 386ix; several vendors' own-brand licensed Unixes, including Dell, later, an official Intel one that mainly ran on Intel's own pizza-box workstations.

And all the proprietary computer vendors entered the game too. Commodore did Unix for high-end Amigas; Atari did Unix for high-end STs; Acorn did Unix for high-end Archimedes; Apple did Unix for high-end Macs, allegedly originally just to get a US military deal; etc. etc.

All these are still $1000 per instance OSes though.

Then, universally scorned, MWC Coherent, a real Unix-like OS for $99... and QNX, which was apparently good but mainly focused on real-time stuff, and cost more than the casual could afford.

(As a European I never saw this but it was in all the ads in all the US mags. There was a lot of "cheap" American stuff we didn't get over here, like paid-for shareware. We had metered phone calls so no BBS scene. Only rich Americans got that stuff.)

Coherent was so good that AT&T accused them of theft and sent Dennis Ritchie around to check. He came back and said, no, it's legit.

And Andy Tanenbaum's Minix, a toy for students, not for real work, but essentially free with a book.

These latter indirectly showed that you _could_ copy AT&T's holy grail and make it work, so while Richard Stallman was building all the tools but choosing the wrong kernel and sabotaging the whole thing, along came this Finnish kid with his learning exercise, and excited beardies on Usenet said that it actually worked and it was at least as good as Minix and was getting to Coherent levels.

So the point is, there was a spectrum, from legendary machines made from purest unobtainium, to ludicrously expensive x86 stuff for very specific (and ludicrously expensive models) of PC kit, to the still ludicrously expensive SCO that got no respect, to "cheap" stuff that nobody had in Europe because it had no business purpose. There was legendary free stuff in America but it only ran on room sized computers that cost as much as a lottery win, so I never saw it. "Free" as in "it's free if you're so rich it doesn't matter."

And "free" shareware that was "free" as in "the phone bill to get it will cost more than just buying a commercial version in a shiny box".

But there _was_ a spectrum, from vastly expensive to "a small business will pay for this", down to theoretical stuff in America that you could dream about... which paved the way until the point where an ordinary PC was a 32-bit machine with a memory management unit and hundreds of megs of disk and several megs of RAM, and suddenly, this Lin-Min-Gnu-ix thing was doable, if you had a beard and a checked shirt with black jeans and wore hiking boots every day. 
liam_on_linux: (Default)
In the context of the `apt` command, `update` means "refresh the database containing the current index of what versions are in the configured repositories". It does not install, remove, upgrade or change any installed software.

I wonder if this is because of people lacking historical context?

The important things to know are 3 concepts: dependencies, recursion, and resolution.

The first Linux distributions, like SLS and Yggrasil and so on, were built from source. You want a new program? Get the source and compile it.

Then package managers were invented. Someone else got the source, compiled it, bundled it up in a compressed archive with any config files it needed and instructions for where to put its contents on your computer.

As programs got more complex, they were built using other programs. So the concept of "dependencies" appeared. Let's say text editor "Superedit" can import RTF (Revisable Text Format) files, and save RTF (Rich Text Format) files. It does not read these formats itself: it uses another tool, rich_impex, and rich_impex needs rft_import and rtf_export.

(Note: RTF and RFT are real formats and they are totally different and unrelated. I picked them intentionally as their names are so similar.)

If you need a new version of Superedit, then you first need new version of rich_impex. But rich_impex needs rtf_import and rtf_export.

So in the early days of Linux with package managers, e.g. Red Hat Linux 4, if you tried to install superedit.2.rpm, it would fail, saying it needed rich_impex-1.1.rpm. This is called a dependency.

And if you tried to install rich_impex-1.1.rpm, it said you needed rft_import 1.5 and rtf_export 1.7.

So to install Superedit 2, you had to try, fail, note down the error, then go try to install rich_impex, which would fail, then note down the error, then go install rft_import 1.5, and rtf_export 1.7.

THEN you could install rich_impex 1.1.

THEN you would find that it was now possible to install superedit_2.rpm.

It was a lot of work. Installing something big, like KDE 1, would be almost impossible as you had to go find hundreds of these dependencies, by trial and error. It could take days.

Debian was the first to fix this. To its package manager, dpkg, it added another tool on top: apt.

Apt did automatic dependency resolution. So when you tried to install superedit 2, it would check and find that superedit-2 needed rich_impex-1.1 and install that for you.

This is no use if it does 1 level and stops. It would fail when it couldn't install rich_impex because that in turn had its own dependencies.

So what is needed is a tool that goes, installs your dependencies, and their dependencies, and their dependencies, all the way down, starting with the ends of each chain. This requires a  programming technique called recursion:
https://dev.to/rapidnerd/comment/62km

Now, let's imagine that superedit-2, which depends on rich_impex, which depends on rft_import and rtf_export.

But sadly, the maintainer of rft_import got run over by a bus and died. So, no new versions of rft_import. That means no new version of rich_impex which means no new version of superedit.

So someone comes along, reads the source code of rft_import, thinks they could do it better, and writes their own routine. They call it import_rft because they don't want to have to fix any bugs in rft_import.

The writer of rich_impex does a new version, rich_impex 2. They switch the import filter, so rich_impex 2 uses import_rtf 1.0 and rft_export 1.8.

Superedit 3 also comes out and it uses rich_impex 2. So if you want to upgrade from superedit 2 to superedit 3, you need to upgrade rich_impex 2 to v3. To get rich_impex 3, you need to remove rft_import and install a new dependency, import_rft.

When you start doing recursive solution to a problem, you don't know where it's going to go. You find out on the way.

So apt has 2 choices:

[1] recurse, install newer versions of anything needed, until you can upgrade the target package (which could be "all packages"), but don't add anything that isn't there

OR

[2] recurse, install all newer versions of anything needed INCLUDING ADDING NEW PACKAGES, until the entire distribution has been upgraded

#1 is meant for 1 program at a time, but you can tell it to do all programs. But it won't add new packages.

So if you use `apt-get upgrade` you will not get superedit 3, because to install superedit 3, it will have to install rich_impex 2, and that means it would need to remove rft_import and install import_rft instead. `upgrade` won't do that -- it only installs newer versions. So your copy of superedit will be stuck at v2.

#2 is meant for upgrading the whole installed system to the latest version of all packages, including adding any new requirements it needs on the way.

If you do it, it will replace superedit 2 with superedit 3, because `dist-upgrade` has the authority to remove the rft_import module and install a different one, import_rft, in its place.

Neither of them will rewrite the sources listed in /etc/apt/sources.list. Neither of them will ever upgrade the entire distro to a new release. Neither of them will ever move from one major release of Ubuntu or Debian or Crunchbang or Mint or Bodhi or whatever to a new release.

All they do is update that version of the distribution to the newest version of that release.

"Ubuntu 20.04" is not a distribution. "Ubuntu" is the distribution. "20.04" is a release of the distribution. It's the 32nd so far. (W, H, B, D then through the alphabet from E to Z, then back to A. Now we're at F again.)

So `dist-upgrade` does not upgrade the release. It upgrades your whole DISTRO but only to the latest version of that release.

If you want a new release then you need `do-release-upgrade`.

Do not use `apt upgrade` for upgrading the whole distro; `apt dist-upgrade` does a more thorough job. `apt upgrade` will not install superedit 3 because it won't add new packages or remove obsolete ones.

In the old days, you should have used `apt-get dist-upgrade` because it will replace or remove obsoleted dependencies.

Now, you should use `apt full-upgrade` which does the same thing.

Relax. Rest assured, neither will ever, under any circumstances, upgrade to a new release.
liam_on_linux: (Default)
Ted Nelson, creator of Project Xanadu, widely-hailed as the inventor of hypertext. Xanadu never quite happened; what we got was a very watered-down version, the WWW.

Nelson's written several books, none of which I've read - but now, I really want to. In a series of bite-sized, sub-15-min videos, he presents his jaundiced but remarkably perceptive and insightful overview of the history of the personal computer - he's been there since the start.

Videos 0 through 4 are excellent high-level overviews. Number 5 is on hypertext, his specialist field, and he starts letting his bias show a bit; numbers 6 and the concluding N are, with the best will in the world, rants - but amusing ones and still informative as anything you could hope to find.

Strongly recommended viewing.

Read more... )
liam_on_linux: (Default)
In the beginning were the dinosaurs: Erwise, Cello, Mosaic, Lynx and things. Nobody under 40 remembers them and they're all long extinct. Everyone used Mosaic anyway, which was FOSS from the NCSA.

Nobody's heard of the NCSA any more, which is a shame as they also gave the world Apache and without them there wouldn't be a Web. They made something useful out of Tim Berners-Lee's work at CERN, but timbl and CERN are far more famous.

Odd, really, that neither CERN nor the NCSA ostensibly have anything to do with the Internet.

Mosaic begat loads of different browsers. All were also called Mosaic. Many were proprietary, "enhanced" versions, which actually weren't.

Only one was any good. Called - surprise! - Mosaic, it came from a company also called Mosaic. (Are you following all this?) Developed under the codename "Mozilla" - the Godzilla of Mosaics, you see - it was Mosaic with embedded pictures and FTP and cool stuff like that. Hey, it was 1994. People complained about the confusing name so the company renamed itself Netscape and renamed their browser Netscape as well, which isn't confusing at all. It was shareware, vastly successful, created the original 1990s Web and was killed off by Microsoft giving Internet Explorer away for free.

But as Ben Goldacre likes to say so much that he has put it on a T-shirt: "I think you'll find it's a little more complicated than that."

For starters, IE 1 was an optional extra for Windows 95, you had to buy it, and it was utterly crap. IE, incidentally, is also based on Mosaic, via Spyglass. MICROS~1 didn't write IE themselves, they just bought it in. You'd be surprised how many "Microsoft" products were not actually written by Microsoft: Powerpoint, Visual Basic, SQL Server, Defender, Frontpage, Mail and lots of others.

IE2 was free, but still rubbish. So was IE3.

So everyone used Netscape. A few even paid for it and Netscape Inc did tremendously well. This pissed off Microsoft, who don't really like anyone else making big money off their platform. So they worked away on IE until eventually, after about four versions, it was actually just about usable, kinda sorta ish.

And it was freeware.

Netscape wasn't, officially. It went through various stages, including being free only for non-profits and educational institutions, but it ended up proprietary, closed-source shareware. Home and non-commercial or non-profit use was free, businesses were meant to buy licences. Which most didn't.

It went through a whole bunch of versions, all of which were market-leaders in their time.

Netscape 1 was just a browser.

Netscape 2 added an email client and USENET news-reader. Not RSS, what we call a news-reader today, that hadn't been invented yet. Netscape 2 was a fair bit bigger than Netscape 1.

Netscape 3 Gold added web-page editing too. It was bigger still.

Netscape 4 sort of forked, internally: there was Netscape Communicator, a suite including a browser + email + news + address book + web editor + a proprietary shared diary - a huge app for the times,

And separately, there was Netscape Navigator, which was just a browser once again and thus was relatively svelte and quick - so naturally it never got updated past 4.0.x.

In the end, once IE was usable enough, everyone used that instead. Netscape Communicator was big, sluggish, took loads of memory and was inefficient - and it cost money. For instance, every time the window was resized, it re-rendered the entire page, as the rendering engine built a static page display for the current window dimensions. This was at the time when live window resizing was a trendy new feature of Windows - it was an extra in the same Plus! pack for Windows 95 that introduced IE to an indifferent world, and had even been retro-fitted on to MacOS 8.

Netscape complained that IE, a rival for their commercial product, was being given away for free - which counts as illegal restraint of trade. In response, MICROS~1 just bundled it with Windows and blithely claimed it had always been there, even though it wasn't in Windows 95 or Windows NT 3 and they also offered it for Mac and Unix. The US Department of Justice, remarkably, swallowed this, even though it was demonstrably utter bollocks, and let MICROS~1 off.

When Netscape Corp was bought out by AOL and broken up, the company's last act was to make the as-yet-unfinished Communicator 5 open source under its original codename of Mozilla.

After more than two years of work, this eventually became the Mozilla Application Suite, also the basis for AOL's Netscape 6 and 7. Netscape 6 was based on the unfinished Mozilla 0.6 code, and Netscape 7 on the final but unpolished Mozilla 1.0. AOL then outsourced it; Netscape 8 was based on Firefox 1 and Netscape 9 on Firefox 2. All were freeware; Mozilla itself was FOSS.

Mozilla was the Linux browser. It was the best FOSS browser, but that was because it was also pretty much the only FOSS browser. It was also a huge big lumbering thing, like Communicator before it, and it was unpopular on Windows and Mac (although I used it myself, as I am not a big Microsoft fan, as you might have worked out.)

Then Dave Hyatt and some mates, including a chap called Ben Goodger, stripped Mozilla down to just a browser, reinventing Navigator as if it were a new concept. They called it Mozilla Phoenix. Rising from the ashes, you see.

Phoenix the BIOS people complained.

They renamed it Firebird.

Firebird the FOSS database people complained.

They renamed it Firefox, which is a made-up word and obscure enough that nobody minded. It did brilliantly and still is today. The Mozilla Foundation consequently abandoned the Mozilla Internet Suite. The legendary open-source community took it up, renamed it Seamonkey and it's still updated. I still use it occasionally myself. It's OK. It hasn't lost any weight, but the relentless advance of computer technology means that it's no biggie any more.

Firefox is now under some threat from Google Chrome (one of whose developers being a certain Ben Goodger). Chrome is based on Apple's Webkit but with a better UI than Safari (a project headed, amongst others, by one Dave Hyatt). Webkit is Apple's cleaned-up, enhanced version of KDE's KHTML rendering library from the Konqueror browser. Webkit is so much better that KDE have given up on KHTML and now use Webkit too.

Now there are basically four main families of browser:
  • Internet Explorer. Windows-only nowadays, but to most people, IE is The Internet. IE6 sucks bigtime, but tons of big companies are wedded to it, so it shambles on, undead. I suppose that makes it a sort of zombie used by dinosaurs, which actually sounds kind of cool. IE 7 and 8 are sort of OK, if you're the sort of person who doesn't mind sharing needles with strangers.

  • Mozilla, AKA Firefox, Seamonkey, Camino and loads of others.

  • Both, ironically, while being lifelong bitter rivals, are descended from Mosaic.

  • Then there's Webkit, AKA KHTML, AKA Chrome, Safari, Konqueror, the Nokia Symbian browser and others. It was developed from scratch in the late 1990s.

  • And Opera, doing its own idiosyncratic thing for seventeen years. "MultiTorg" coexisted with Mosaic back when giants walked the Earth.
  • December 2025

    S M T W T F S
     123456
    7891011 1213
    14151617181920
    21222324252627
    28293031   

    Syndicate

    RSS Atom

    Most Popular Tags

    Style Credit

    Expand Cut Tags

    No cut tags
    Page generated Jan. 3rd, 2026 10:23 pm
    Powered by Dreamwidth Studios