Source Code for SunOS 4.1.3 (1992)
github.com
github.com
> This is the SunOS 4.1.3 SUNSRC CD-ROM
which almost sounds like it was an officially distributed archive, somehow? I mean, I can't personally think of any reason for Sun to make a CD distribution of SunOS (was it called the OS/net gate yet?) for purely internal use, although maybe I'm just missing perspective, but the https://github.com/Arquivotheca/SunOS-4.1.3/blob/413/Copyrig... looks to my very-non-lawyer eyes like all-rights-reserved and 4.1.3 was well before opensolaris, so... leak of some kind?
Edit: Looking at the copyright file again, it has a part number. Did Sun license sunos? That certainly feels like it was meant for use outside of Sun, but doesn't really explain why/how
Why wouldn’t cross-compilation be an option?
All of the proprietary unix vendors would sell source licenses to a greater or lesser extent. There's IRIX and AIX source trees out there if you go looking, licensed for university use back in the day.
> https://github.com/Arquivotheca/WinNT5_src_20201004 (Contents from "nt5src.7z") -> Repository unavailable due to DMCA takedown.
But, honestly, who tries to use a Microsoft web property to host the nt5src.7z?
And yet, https://github.com/Arquivotheca/WinCE-src_20201004 is still alive. Go figure.
Goes to show about how much Microsoft still cares about Windows CE, I guess.
>Private Shared Source Code is an optional component of the Windows Embedded Compact 7 Platform Builder toolkit that can be installed during the setup process.
https://www.microsoft.com/en-us/sharedsource/windows-embedde...
GWES and some drivers (eg. filesystems) were "Premium", but this repository doesn't contain it either.
The University/3rd party part was true even for Microsoft with NT and CE in the late 90s/early 00s. My little CS department got a CE dev kit with software, a device, and the source. I goofed around with it and was pretty quickly frustrated.
This also wanders into my memories of hating Sun version numbering and naming. SunOS grew SysV and became Solaris, but it was still SunOS. But it wasn’t. And then they preceded the Java-ism of the minor version being generally accepted as the major and conflictingly published materials both ways.
I feel bad for the devs where what they did made sense to them and then marketing took over. Naming and versioning are hard enough problems alone.
We can get into the weeds with blackbox firmware and what not, but it's darn useful to be able to look at the OS code to figure things out when it's acting weird.
As the other sibling comment here notes, we did that even if we didn't have the source code; we just looked at the Asm instead. People like Andrew Schulman and Matt Pietrek made themselves famous by doing that.
and here I am lazily blowing cache lines with `new Object()` in Java
Unfortunately value types are years away, if they ever land.
If you can prove that that a particular value never escapes the scope, it may be possible to allocate it on the stack instead which also reduces the amount of garbage collection needed later.
And other related reading:
https://web.archive.org/web/20120214195433/http://www.ibm.co...
https://www.javaadvent.com/2020/12/seeing-escape-analysis-wo...
https://vuls.cert.org/confluence/display/historical/CERT+Adv...
Sun Bug ID: 1059621 Synopsis: security hole created by installing sunsrc ... This makes it possible for users on that system to become root.
For `sun4c` kernel architectures (most SPARCs before multiprocessing), I'd try to get the source for 4.1.4. At least some of the older Sun-3 might need an older version, and I recall our Sun-386i systems were stuck at 4.0.x.
Then, unsurprisingly, the old Quantum SCSI disk was only happy enough to make grinding noises and no more. I found a guy making SATA to SCSI adapters meant for these old Suns and paired that to an SSD I had lying around. Hey, look, that now works too.
Finally, by setting up tftp, bootp, and NFS on a FreeBSD VM I was able to net boot the machine and install SunOS 4. My goodness, I had forgotten how slow the thing is, and how much has changed since the 1990s. I was able to get a bunch of more modern stuff to compile, but it was a fight every time.
Next I was going to drag out the old SGI Indigo, but haven't found the energy yet.
I'd be curious if you find a trove of the random open source SunView software from that era. A later SunSite mirror still up is at http://sunsite.informatik.rwth-aachen.de/cgi-bin/ftp.new/ftp... Starting from a Usenet archive, to find the names and original FTP sites of software might help. (Especially programs circa 1990 with names ending in "Tool". There was even a ToolTool.)
There's also commercial software. FrameMaker and Interleaf at the time were arguably nicer than 2022 Microsoft Word, for example.
https://www.sunmanagers.org/1992/0383.html
There were various remedies, including slapping the drive, and dropping it flat onto a desk a very short distance.
Specially because many insist in using their systems as if UNIX V6 was released yesterday, NextSTEP and macOS being the exception, which isn't any surprise given how Steve Jobs looked at UNIX workstations.
The thing I do not understand is why people favour updated 1970s-style UNIX, e.g. Linux and xBSD, when more modern sophisticated later Unixes are right there for the taking, such as Plan 9 and Inferno.
My cynical suspicion is that it's because they are just too hard to understand. I know that I struggle to myself. The conceptual model of '70s UNIX, and (to me) horrible primitive tools such as Vi, are easier to understand than the richer, smarter OSes of the '80s (Plan 9, with integrated networking, proper namespaces, and the whole LAN as your workstation) and '90s (Inferno, which also abstracts away CPU architectures and replaces C with something cleaner and safer).
The bit you’re maybe missing is how different the standard dev process was back then to accommodate how slow build infra was. You (or at least I) typically started compiling something and went for a coffee or whatever because it would take a l o n g time to build anything. So often teams would have a setup where each member had a low-power desktop that was basically just an x terminal and everyone would run their actual builds on a team buildserver. If you had a proper workstation it meant you could generally build your own code directly on your workstation meaning you weren’t contending for resources on the build server with everyone else. So I remember in one team back then one guy left who had a sparc 10 on his desk, so my buddy grabbed that, I swapped from my terrible lunchbox LX to nab my friend’s sparc 5 and suddenly local builds were a possibility for me, meaning a huge increase in productivity.
Nice clean OS's .. with RISC ops that failed on misalignd data which encourage clean cache aware coding styles and programs that pumped data through fast (or simply didn't work at all).
ie. Great dev boxes for cross platform coding - get it right on a Sun and it worked well pretty much across the POSIX space.
The commercial distributions tended to collect cruft without ever throwing any thing away(throwing things away may upset a paying customer that depended on the feature) linux is a cleanroom by comparison. and, as a good bsdite I consider linux an almost unusable mess.
It's partially because more things such as the automounter and NIS were heavily used in the target of a corporate network.
Compare that to openbsd... run hostname, if you want it to persist go ahead and set /etc/myname.
But the main thing was I was not raised on solaris, the system administration was foreign, the tooling sucked. the ports tree was miserable. I was probably going to run bsd anyway, but I had the hardware might as well try solaris.... and now you want me to reset the system in order to fix a minor mistake in the hostname? One insult too many.
Read the link for Solaris 10 I posted, there is literally a section titled:
2. Changing hostname without running sys-unconfig command
> But the main thing was I was not raised on solaris ... and now you want me to reset the system in order to fix a minor mistake in the hostname?Read the article, renaming the host without running sys-unconfig is trivial, and only requires a reboot. It is nowhere near as hard as you are making out.
https://news.ycombinator.com/item?id=31822138
>DonHopkins 4 months ago | parent | context | favorite | on: NFS: The Early Years
NFS originally stood for "No File Security".
The NFS protocol wasn't just stateless, but also securityless!
Stewart, remember the open secret that almost everybody at Sun knew about, in which you could tftp a host's /etc/exports (because tftp was set up by default in a way that left it wide open to anyone from anywhere reading files in /etc) to learn the name of all the servers a host allowed to mount its file system, and then in a root shell simply go "hostname foo ; mount remote:/dir /mnt ; hostname `hostname`" to temporarily change the CLIENT's hostname to the name of a host that the SERVER allowed to mount the directory, then mount it (claiming to be an allowed client), then switch it back?
That's right, the server didn't bother checking the client's IP address against the host name it claimed to be in the NFS mountd request. That's right: the protocol itself let the client tell the server what its host name was, and the server implementation didn't check that against the client's ip address. Nice professional protocol design and implementation, huh?
Yes, that actually worked, because the NFS protocol laughably trusted the CLIENT to identify its host name for security purposes. That level of "trust" was built into the original NFS protocol and implementation from day one, by the geniuses at Sun who originally designed it. The network is the computer is insecure, indeed.
And most engineers at Sun knew that (and many often took advantage of it). NFS security was a running joke, thus the moniker "No File Security". But Sun proudly shipped it to customers anyway, configured with terribly insecure defaults that let anybody on the internet mount your file system. (That "feature" was undocumented, of course.)
While I was a summer intern at Sun in 1987, somebody at Sun laughingly told me about it, explaining that was how everybody at Sun read each other's email. So I tried it out by using that technique to mount remote NFS directories from Rutgers, CMU, and UMD onto my workstation at Sun. It was slow but it worked just fine.
I told my friend Ron Natalie at Rutgers, who was Associate Director of CCIS at the time, that I was able to access his private file systems over the internet from Sun, and he rightfully freaked out, because as a huge Sun customer in charge of security, nobody at Sun had ever told him about how incredibly insecure NFS actually was before, despite all Sun's promises. (Technically I was probably violating the terms of my NDA with Sun by telling him that, but tough cookies.)
For all Sun's lip service about NFS and networks and computers and security, it was widely know internally at Sun that NFS had No File Security, which was why it was such a running inside joke that Sun knowingly shipped it to their customers with such flagrantly terrible defaults, but didn't care to tell anyone who followed their advice and used their software that they were leaving their file systems wide open.
Here is an old news-makers email from Ron from Interop88 that mentions mounting NFS directories over the internet -- by then after I'd told him about NFS's complete lack of security, so he'd probably slightly secured his own servers by overriding the tftp defaults by then, and was able to mount it because he remembered one of the host names in /etc/exports and didn't need to fetch it with tftp to discover it:
>From: Ron Natalie <elbereth.rutgers.edu!ron.rutgers.edu!ron@rutgers.edu> Date: Wed, Oct 5, 1988, 4:09 AM To: NeWS-makers@brillig.umd.edu
>I love a trade show that I can walk into almost any booth and get logged in at reasonable speed to my home machine. One neat experiment was that The Wollongong Group provided a Sun 3/60C for a public mail reading terminal. It was lacking a windowing system, so I decided to see if I could start up NeWS on it. In order to do that, I NFS mounted the /usr partition from a Rutgers machine and Symlinked /usr/NeWS to the appropriate directory. This worked amazingly well.
>(The guys from the Apple booth thought that NeWS was pretty neat, I showed them how to change the menus by just editing the user.ps file.)
>-Ron
I posted about this fact earlier:
https://news.ycombinator.com/item?id=21102724
>DonHopkins on Sept 28, 2019 | parent | context | favorite | on: A developer goes to a DevOps conference
>I love the incredibly vague job title "Member, Technical Staff" I had at Sun. It could cover anything from kernel hacking to HVAC repair!
>At least I had root access to my own workstation (and everybody else's in the company, thanks to the fact that NFS actually stood for No File Security).
>[In the late 80's and early 90's, NFSv2 clients could change their hostname to anything they wanted before doing a mount ("hostname foobar; mount server:/foobar /mnt ; hostname original"), and that name would be sent in the mount request, and the server trusted the name the client claimed to be without checking it against the ip address, then looked it up in /etc/exports, and happily returned a file handle.
>If the NFS server or any of its clients were on your local network, you could snoop file handles by putting your ethernet card into promiscuous mode.
>And of course NFS servers often ran TFTP servers by default (for booting diskless clients), so you could usually read an NFS server's /etc/exports file to find out what client hostnames it allowed, then change your hostname to one of those before mounting any remote file system you wanted from the NFS server.
>And yes, TFTP and NFS and this security hole you could drive the space shuttle through worked just fine over the internet, not just the local area network.]
Sun's track record on network security isn't exactly "stellar" and has "burned" a lot of people (pardon the terrible puns, which can't hold a candle to IBM's "Eclipse" pun). The other gaping security hole at Sun I reported was just after the Robert T Morris Worm incident, as I explained to Martha Zimet:
>Oh yeah, there was that one time I accidentally hacked sun.com’s sendmail server, the day after the Morris worm.
>The worm was getting in via sendmail’s DEBUG command, which was usually enabled by default.
>One of the first helpful responses that somebody emailed around was a suggestion for blocking the worm by editing your sendmail binary, searching for DEBUG, and replacing the D with a NULL character.
>Which the genius running sun.com apparently did.
>That had the effect of disabling the DEBUG command, but enabling the zero-length string command!
>So as I often did, I went “telnet sun.com 25” to EXPN some news-makers email addresses that had been bouncing, and first hit return a couple of times to flush the telnet negotiation characters it sends, so the second return put it in debug mode, and the EXPN returned a whole page full of diagnostic information I wasn’t expecting!
>I reported the problem to postmaster@sun.com and they were like “sorry oops”.
I've mention that one a couple times before:
grin depends on who you ask
https://news.ycombinator.com/item?id=17098824
Steve Jobs had poor enough taste to say that pie menus suck! ;)
https://news.ycombinator.com/item?id=17098179
It's the 30 year anniversary of CHI’88 (May 15–19, 1988), where Jack Callahan, Ben Shneiderman, Mark Weiser and I (Don Hopkins) presented our paper “An Empirical Comparison of Pie vs. Linear Menus”. We found pie menus to be about 15% faster and with a significantly lower error rate than linear menus! So I've written up a 30 year retrospective:
This article will discuss the history of what’s happened with pie menus over the last 30 years (and more), present both good and bad examples, including ideas half baked, experiments performed, problems discovered, solutions attempted, alternatives explored, progress made, software freed, products shipped, as well as setbacks and impediments to their widespread adoption.
Here is the main article, and some other related articles:
Pie Menus: A 30 Year Retrospective. By Don Hopkins, Ground Up Software, May 15, 2018. Take a Look and Feel Free!
https://medium.com/@donhopkins/pie-menus-936fed383ff1
Steve Jobs Thought Pie Menus Sucked “That sucks! That sucks! Wow, that’s neat! That sucks!”
On October 25, 1988, I gave Steve Jobs a demo of pie menus, NeWS, UniPress Emacs and HyperTIES at the Educom conference in Washington DC. His reaction was to jump up and down, point at the screen, and yell “That sucks! That sucks! Wow, that’s neat! That sucks!”
I tried explaining how we’d performed an experiment proving pie menus were faster than linear menus, but he insisted the liner menus in NeXT Step were the best possible menus ever.
But who was I to rain on his parade, two weeks after the first release of NeXT Step 0.8? (Up to that time, it was the most hyped piece of vaporware ever, and doubters were wearing t-shirts saying “NeVR Step”!) Even after he went back to Apple, Steve Jobs never took a bite of Apple Pie Menus, the forbidden fruit. There’s no accounting for taste!
Both the parent article and myself are talking about SunOS - the BSD based precursor to Slowaris . . .
It's an interesting segue you make that strawman's to reinforce my point.
Using SunOS 4 at the time on machines with masses of RAM and disk space was a bit like how vans changed with the first-gen Ford Transit - it was quick and light and you didn't have to stretch halfway across the cab to get 1st gear. You could order one with a radio, and not only that but you could actually *hear* the radio at 70mph. And - it actually did 70mph!
Comparing the SPARCStations we had back then to a modern Mac running OSX is a bit like comparing those first-gen Transits to a nice modern Merc Sprinter. It's still basically the same thing but it's a lot quicker and cleaner and the stereo has bluetooth and everything's bigger and faster and it's a hell of a lot cheaper.
By the 2000s the advantages had more or less vanished and the workstation SKUs were discontinued one by one.
I though POWER was born as a child of IBM and Motorola.
edit right, add to that "digital audio signal processing" .. Virtual Memory paging was horribly obvious for Digital Audio, and that means stereo audio albums and digital audio soundtracks for movies, which was (and is) Big Business. Lots of hard math problems for geeks, lots of sales for business types.
Classic MacOS had pretty much the best UI on any mass-market computer ever made.
And that's the part that its users saw all day every day, and interacted with, and which made Macs desirable.
Not just the front-end of programs: this extended to how to install new programs, how to add drivers or other system components, how to add fonts; how to connect to printers; how to make or break drive connections to other machines; how to connect new drives, and how to remove them. All the daily tasks of running a computer.
But UNIX people, with their gods-awful UI, didn't care about this then and they don't care about it now. UNIX UIs are better than they were but they are still very poor.
The real problem is that all the visionary innovators got old and retired and their replacements don't have the overall vision and don't really understand how stuff works, so they randomly tweak things without understanding.
So Mac OS X's UI was never as good as Classic's, and it's been getting worse and worse for 10-15Y. Read John Siracusa's excellent in-depth reviews of Mac OS X on Ars Technica for details. The generally accepted high point was Snow Leopard, 10.6, and it's been downhill since.
Microsoft never had much of the plot, but what they had hit a high point around 1996-1996 and it's been downhill since. Now, as in the last decade, Windows is a UI train wreck.
But still people bang on about largely irrelevant behind-the-scenes stuff, not understanding that it's the whole picture that matters, not just the UI but not just the backend either.
You were kidding yourself then and you still are.
The year after that I bought an Acorn Archimedes A310. 8MHz ARM2. It was 4x faster in raw single-threaded integer computation than the top-end 80386DX 25MHz with L1 cache that IBM sold, and that was a $10,000 PC.
It was about 10x quicker than your 16MHz machine... and it cost £800.
The point was not the OS, it was the performance, wasn't it?
Being able to add a lot (for the time) of RAM was important too, your A310 doesn't seem to be able to have 16MB.
EDIT: This is a thread about UNIX.
http://www.computinghistory.org.uk/det/3639/Acorn-R140/
RISC iX is broadly BSD 4.3:
https://en.wikipedia.org/wiki/RISC_iX
A contemporary news story:
https://techmonitor.ai/technology/acorn_fleshes_out_its_unix...
Here is what BYTE thought of the successor model, the R260:
https://vintagecomputers.sdfeu.org/mags/byte/Acorn_R260_revi...
With a 4 MIPS CPU in 1987, you didn't need a dedicated GPU for blazingly-fast graphics.
This interactive graphics demo was supplied on a floppy with the machine. You can see it here: https://www.youtube.com/watch?v=mFwpsb75omg
Realtime 3D shaded graphics in 256 colours, with no hardware assistance? I'd rate that as workstation class, certainly.
This is 2 years before the first SPARCstation, which shipped with a monochrome framebuffer as I recall.
The R140 had 1152x900 mono but could display 4096 colours at VGA resolution.
http://chrisacorns.computinghistory.org.uk/docs/Acorn/Brochu...
(Probably it could also be a much less fun scenario than a Mac, with power tripping sysadmins handicapping usage, non-technical users having problems or feeling excluded, etc)
I've spent some time thinking about this, mostly in terms of "why do I like Solaris more than GNU/Linux, even in 2022?". I think it really does boil down to it being 1. a single coherent system, 2. including running on hardware that was designed to run it, 3. with paid support by a company that actually has skin in the game to make the thing work. (And in my case a certain amount of rose-tinted glasses.) IMO, the Bazaar can build amazing things at probably-lower cost (certainly lower per-party) and it has a diversity that is good, but the Cathedral can, in fact, Get Stuff Done and build a more coherent system. And when you're successfully selling workstations at $10k+ a pop you can afford to do high quality engineering:)
I'm sure that's a factor but maybe the particular point in the technology development curve accounts for a lot of the perceived difference. There was a striking qualitative difference between a $2000 computer and a $20000 computer and if you had access to both, the latter felt like some sort of glimpse of the future like you got a ride in a prototype flying car.
A computer that is 10x more expensive than a high-end smartphone is not Indigo² better than a 386. That gap just happened to be a brief and memorable outlier.
If I were attempting to answer that, I would say that Apple de-emphasizes and neglects the unix "powertool" side of the system. But I'm not actually sold on that angle; I actually half-typed and then deleted a comment arguing that Macs are precisely unix workstations - they run a Unix™ OS on mostly custom hardware that is, at least with the latest ARM chips, more powerful than much of the market and which commands a high price (although far less so than was traditional for unix workstations:]).
EDIT: Comment downthread says they're still getting certified as an official Unix, so I've updated this comment to reflect that.
I dont have the wayback urls now but here is a relatively recent example of their marketing to the UNIX crowd, circa 2011.
https://www.apple.com/media/us/osx/2012/docs/OSX_for_UNIX_Us...
1: https://github.com/Arquivotheca/SunOS-4.1.3/blob/413/bin/log...
Who's going to step up?
I don't know for sure because I can't find any information about SunOS licensing, but I think it goes something like,
Oracle has acquired Sun Microsystems, Inc. ("Sun"), you acknowledge that in all cases where the reference is Sun, Oracle will fulfill these obligations as successor in interest to Sun.
When you think about the fact that it’s a log scale what we have now? It’s fucking impressive what people did with orders of magnitude less.
As an anecdote, this os and version was what Kevin Mitnick hacked at Netcom, leading to his eventual capture as detailed in “Takedown”.
/* * @(#)strops.c 1.1 92/07/30 Copyr 1985 Sun Micro
* Assorted string operations /
/ * Compare strings: s1>s2: >0 s1==s2: 0 s1<s2: <0 /
strcmp(s1, s2) register char s1, s2;
{
while (s1 == s2++)
if (*s1++=='\0')
return (0);
return (*s1 - *--s2);
}/* * Returns the number of * non-NULL bytes in string argument. /
strlen(s)
register char s;
{
register int n;
n = 0;
while (*s++)
n++;
return (n);
}https://github.com/Arquivotheca/SunOS-4.1.3/blob/413/games/f...
One of my former employers has millions of lines of code that just assume a bigendian architecture and play fast and loose with byte order as a result. They are probably not gonna port that code off SPARC any time soon. Eventually. But not soon.
So much depth in that statement
One tip you hear is to require a lawyer to be sworn in before a judge before you trust their claims.
In reality looking at this (or any other leaked on unlicensed code) "taints" you pretty much the same as looking at any other code, including -e.g.- GPL/MPL/Apache2, etc code, but you don't see anyone[0] nowadays saying to not look at such code (it used to be a thing back when people were cluelessly afraid of GPL though, but that was decades ago).
The "taint" isn't inherent, it comes from the possibility that you'd rewrite code you've seen so that it is mostly identical and be sued for it (and if that is the case is something that will only be decided by a court). If anything, IIRC when GNU was making their Unix replacement utilities back in the day they recommended people to implement them in as different from Unix a way as they could, but they didn't forbid people who were "tainted" by Unix to contribute to GNU (which, if you think about it, makes perfect sense considering the people who would contribute to it were most likely already Unix programmers). This sort of remains in the current GNU Coding Standards[1]
In fact you are "tainted" the same way by read and/or participating in any codebase that isn't fully owned by yourself - but if that was an actual problem in practice, no programmer would be able to join another company unless what they did there had absolutely nothing to do with any of the companies they worked at previously as experienced programmers would actually be liabilities[2]. Meanwhile in reality programmers jump between companies all the time with their experience being seen as an asset.
[0] don't take that literally, i'm certain some people would recommend against reading GPL/MPL/etc code, but they'd be a very tiny minority - and almost certainly driven by the same old FUDs
[1] https://www.gnu.org/prep/standards/standards.html#Reading-No...
[2] Yes, you can find anecdotes where that happened - John Carmack being sued by ZeniMax would be such a case - but those are very rare exceptions from litigious sue-happy companies and there are literally millions of professional programmers out there