Hot answers tagged

50

The shrinkwrap issue was a vicious circle perceived by the computer industry in the late 1980s to early 1990s. In essence: With many different processors and binary formats, it was difficult for a commercial “killer app” to gain enough market share to bring users to Unix; Without the strong commercial user and software base, there was little incentive to ...


46

This goes back to early versions of Make, and isn’t specific to GNU’s implementation; as explained by the author of the original Make, Stuart Feldman: Why the tab in column 1? Yacc was new, Lex was brand new. I hadn't tried either, so I figured this would be a good excuse to learn. After getting myself snarled up with my first stab at Lex, I just did ...


33

You get SIGPIPE only if you try to write to a pipe that has no readers anymore. The idea is that typical unix processes run to produce output. If the output is going to a pipe, but no one is reading from a pipe, the process got useless and may be killed. You never get SIGPIPE reading from an input pipe. If you read from an input pipe that has no writers ...


30

As far as I can tell, the phrase "other crontabs" refers not to other versions of cron, but to the per-user crontabs. The description of the differences certainly fits with the differences between user crontabs and the system crontab. The passage of text itself is not part of the upstream cron source but is part of the Debian packaging of cron. The ...


19

Using SCO UNIX describes the history of XENIX and SCO UNIX and provides a brief summary of the technical differences. As Raffzahn explains, SCO UNIX is the successor to XENIX. XENIX is a licensed version of UNIX; it was called XENIX because initially, AT&T didn’t allow its licensees to use the UNIX trademark. This was relaxed in 1989, which allowed SCO ...


19

There is not a single Unix line ('Unix' is not unique). The numbers measure different things. Anyone who forked a variant of Unix was free to start a whole new sequence of numbering. Seventh edition Unix came from the 'classic' Unix lineage out of Bell Labs, latterly known as 'Research Unix'. Meanwhile, presumably because of its flexibility, there were many ...


16

GNUMake does not only accepts tab, If you don't like tab as prefix, it is editable with the use of the special variable .RECIPEPREFIX See: https://www.gnu.org/software/make/manual/html_node/Special-Variables.html The first character of the value of this variable is used as the character make assumes is introducing a recipe line. If the variable is empty (as ...


16

Because $foo may itself start with a hyphen and look like an option or an operation, which would cause misinterpretation of the command line. Using -z or -n guarantees that no matter the contents of $foo, it will never be interpreted as an option. The BSD 2.11 man page for test says: The test grammar is inherently ambiguous. In order to assure a degree of ...


16

DEMOS was an extension of 2.9 BSD, and all the commands, utilities, etc. were kept in place with their original names and everything. The major areas of said extension were: Add a rudimentary Russian "locale" support for KOI8-R (a modified KOI-8). Almost all of BSD was extremely ASCII-centric, so it took a very significant amount of time and ...


13

The commands are more or less the same ones we're used to from BSDs. Examples cat and ls are clearly visible on this image from the Russian wikipedia page. But some things, such as the shell, appear to have translated error messages. For example, you can see Команда не найдена, or "Command not found". And this looks like it's running the C shell, ...


12

Yes, certainly. the method of bracketing control structures used in the Bourne Shell was ripped straight from Algol 68, in which loop “bodies” were enclosed between do and od. This is a quote about it (from wikipedia): Stephen Bourne's coding style was influenced by his experience with the ALGOL 68C compiler[2] that he had been working on at Cambridge ...


12

The V1 Unix B manpage uses .s as the extension for intermediate assembly files used during the build. This is the earliest use of .s that I can find, and would correspond to November 1971 at the latest. There were assemblers on systems with file systems before Unix, but none that I’m aware of used .s. Some like DECsys don’t appear to have extensions; other ...


11

A Brief History of BSD Net/1, Net/2 I found the answers while browsing the old OpenBSD release notes today. The release note of OpenBSD 4.4 contains a brief history of BSD Net/1 and Net/2. While it doesn't answer exactly what code or which features were removed and rewritten from the BSD codebase (time for me to start digging up the source code and Usenet ...


10

2.9BSD, being a self-hosting operating system, includes all the source code and all the tools necessary to build it. That includes the C compiler, the assembler, and everything. There is no mention anywhere of any of this being renamed for DEMOS, so it's a safe bet that they had the same name. DEMOS is similar in spirit to something like Russian Fedora Remix,...


10

Depends on what you mean by "OS support". Early Unix (and all other OS) used video terminals that replaced the teletypes of even earlier Unixes. These video terminals started supporting graphics and a bit later also color graphics. The first color graphics video terminal from DEC was the VT241 with Regis and Sixel graphics from 1983. BTW, Sixel ...


10

Probably wasn't a Unix release per se, but the GUI you happened to use,such as raw x-windows (which would be my guess). There were other GUI's layered on top of x-windows, and it wouldn't surprise me if there were GUIs predating x-windows. Initially, as I'm sure you know, Unix was solely a console-controlled OS. So the first color available would likely ...


8

What exactly were the technical advantages that made their Unix worth more than Xenix? For most parts: The Name. Otherwise it's simply the next release of SCO's unixoide OS. They were only sold in parallel for a short time (ca 1989/90). While the latest Xenix version was based on System V R2.3, SCO Unix started out as System V R3.2. But using the same ...


8

The argument from consistency: The majority of test commands are of the form -flag value. For example, test -e foo.bar - does file foo.bar exist? test -n "$VAR" fits into that model, and is therefore consistent. The first mention of test I could find in 'man' pages is to this link to the PWB (Programmer's Work Bench) shell aka Mashey shell, it in ...


6

Ultimately, there is no air-tight justification for any design choice in a computing language, because alternative designs can easily be defined. The rationale for make is that Makefiles are parsed using an ad hoc line-oriented algorithm which classifies whether a line is a rule body or not based on the leading tab. You can literally implement a parser for ...


5

Note: This answer is to an extent speculative, and I’m not sure I can find sources for some of the claims I make here. So I cannot say for certain that this is the definitive reason. But I find it pretty plausible. The test command actually provides three forms of (non-)emptiness checking: test "$a" test -n "$a" vs test -z "$a"...


5

If you want to get it running on a modern Posix system, here's what you can do. Get the source from this archive. (This is a more recent version than the one cited in the other answer.) Follow the instructions to obtain the files bsearch.c, Makefile, etc. In smiley.c, there is a function explain, which looks like this: static int explain(s) char ...


4

In 2021 Arch Linux 32 and FreeBSD 12.2 still works on a Pentium-class machine in text mode, specifically on a Pentium 166 MMX with 64MB of RAM. Arch Linux 32 provides i486, i686 (Pentium Pro or better), and pentium4 builds. FreeBSD requires i686-class machine starting with version 13.0. On the user experience side, expect: boot time to the text login prompt ...


3

[Erm, I'm not really sure if that question is serious. Or does the OP really believe the crontab implementation used in Unbuntu is the only one there is and ever has been?] Crontab is a data file for cron, a program like any other in unix or unixoide systems, implemented many times and in many ways. At that point it might be important to keep in mind that ...


3

One other difference: Xenix 2.3.2 did not have a block buffer cache. Every version of SCO Unixs I've used did. Consequence: On an IBM PS/2 model 80 (?, 20 MHz 386, Micro Channel) the max throughput to the hard drive was 35 KB/s. On an AST Research 486 with a DPT SmartCache SCSI controller (high end for 1992!) we maxed out at 45 KB/s.


2

There are already many good answers here, but I just wanted to add that Bash in version 4 introduced the |& and &> operators to "merge" the two streams. |& combines stderr and stdout and sends them both to stdout: $ curl -v example.com |& grep text/html < Content-Type: text/html; charset=UTF-8 <meta http-equiv="...


1

My copy of The Bell System Technical Journal v57#6 part 2, July-August 1978 (see it here and elsewhere - an issue entirely concerned with the "Unix Time-Sharing System" doesn't mention using Unix as a phone switch OS though it talks about many other applications. Some of those applications include being a support system for a phone switch ("No....


1

There were a number of companies which shipped UNIX-derivatives configured for single-user operation, even if UNIX itself was thoroughly multi-tasking. Broadly speaking these booted straight into a shell rather than having init or equivalent which forked multiple processes. I came across one in the UK which had a range of machines which could either boot CP/...


Only top voted, non community-wiki answers of a minimum length are eligible