When were remote repositories, for any package manager, invented and implemented?
When was the concept of remote repositories invented
historypackage-managementrepository
Related Solutions
You could try something like this:
apt-get -s upgrade | awk '/^Inst/ {print $2}' |
xargs apt-cache policy |
awk '/:$|^$/ && ! /Version table:/ {print "\n" $0 } ; /:\/\// { print $2 }'
Output (run just now on my debian sid system) looks like this:
sqlite3:
http://my.local.mirror.redacted/debian
libsqlite3-0:
http://my.local.mirror.redacted/debian
libsqlite3-0:i386:
http://my.local.mirror.redacted/debian
python-newt:
http://my.local.mirror.redacted/debian
libnewt0.52:
http://my.local.mirror.redacted/debian
libruby:
http://my.local.mirror.redacted/debian
http://my.local.mirror.redacted/debian
mercurial:
http://my.local.mirror.redacted/debian
mercurial-common:
http://my.local.mirror.redacted/debian
http://my.local.mirror.redacted/debian
sysstat:
http://my.local.mirror.redacted/debian
libmilter1.0.1:
http://my.local.mirror.redacted/debian
Some of the packages have two URLs. That's because my system is amd64 with i386 as an added architecture, and these packages have both amd64 and i386 versions available for upgrade.
If you prefer to have the full output line, so that it looks like this:
mercurial-common:
990 http://my.local.mirror.redacted/debian unstable/main amd64 Packages
990 http://my.local.mirror.redacted/debian unstable/main i386 Packages
then just delete { print $2 }
from the second awk
script.
The first system to support multiple concurrently-executing processes, or at least to simulate the concurrent execution of multiple processes, was the Atlas system developed at Manchester University in the UK in the early sixties. The reference for that is the paper describing the system, The Atlas supervisor, written by Tom Kilburn, R. Bruce Payne, and David J. Howarth, and published in 1961 at the AFIPS Computer Conference:
An object program is halted (by S.E.R.'s) whenever access is required to a block of information not immediately available in the core store.
[...]
While one program is halted, awaiting completion of a magnetic tape transfer for instance, the co-ordinator routine switches control to the next program in the object program list which is free to proceed.
Processes waiting for data are suspended and placed in the background until the data is available.
You can find out more about the Atlas system and the history of operating systems in Per Brinch Hansen’s The Evolution of Operating Systems. His Classic Operating Systems book reprints quite a few pioneering papers, including the Atlas paper referenced above.
The concept of multi-programming, as described above, was first described by Christopher Strachey in his 1959 paper, Time sharing in large, fast computers.
What eventually became remembered as time-sharing wasn’t quite the same as the above; time-sharing, which might be more familiar to people used to modern multi-user, multi-tasking systems, was invented in 1959 by John McCarthy at MIT; see The Evolution of Operating Systems for references. The first system demonstrating time-sharing was CTSS, in late 1961 on an IBM 709, described in An experimental time-sharing system, written by Fernando Corbato, Marjorie Merwin-Daggett, and Robert C. Daley, published in 1962. CTSS already had daemons which might qualify as the earliest form of background processes (in the modern sense of that phrase).
See also The history of context switch on Retrocomputing, and John McCarthy’s own Reminiscences on the history of time sharing.
If you’re referring to background processes from a shell perspective, they appeared along with job control in the C shell, where Jim Kulp implemented it sometime around 1980 (the feature was available in 4BSD, released in late 1980).
Best Answer
I have not followed closely the history, but there was no big bang, only evolution. There were large software repository on the net in the early nineties, and probably even in the eighties. The archive CTAN for TeX started in 1992. Hobbes for OS/2 started around the same time, I think. There were some for Linuxes, for BSD Unices, for Windows, for TCL/Tk ... In the mid nineties they became available on DVD as many people did not get enough bandwidth to download from FTP archives. (company names include Infomagic, Pacific High tech, Walnut Creek, Prime Time Freeware, ...). Linux existed in distributions, and still does. People could download very early, if they had the bandwidth. Well organized packaging came progressively ... and required developping standards. The early packaging systems could not manage dependencies, and removing a package was a risky business. Keeping track of what was installed came in. And things slowly improved. Not that slowly when you think of it.
I should add that much of the technology relies on version management techniques that started evolving in the early eighties (probably late seventies), but not over the network. Possibly the earliest tool in that line is
make
, designed by Stuart Feldman in 1977 at Bell Labs, and allegedly produced in a single night.