It depended on the compiler, SAS/C could do it that way, as could DICE, and amiga-geekgadgets gcc does it that way when you're using libnix (as opposed to the ixemul.library posix compatibility layer), by linking in an autopen hook library called libauto.a :
From amiga gcc docs We did *not* open intuition.library. gcc does this for you by including proto/intuition.h and linking against libauto.a automatically if -noixemul is used (*else* you need to specify -lauto). However, this works only for OS libraries. Consult the libauto directory, if you want to know how to get the same possibilities for other shared libraries. Using proto/intuition.h you are safe and even source compatible to SAS/C and Dice.
As to having to look up the names, see man page. I *think* you have to use dlsysm(), but maybe that's only with RTLD_LAZY - I don't really know. Ever since I've had a large amount of RAM, I've stopped worrying about opening all the librarys on startup, and thus I don't use dlopen() much - although now you've made me guilty enough about such wasteful laziness that I might go back and find out...
Yes, basically - although I'd guess OSX does it more transparently.
Many amiga C/C++ compilers were set up to compile code that deliberately emulated unix-style linking by doing all the OpenLibrary() calls in a segment executed before main(), in effect making any possible linking failures happen at program startup, rather than bombing out 15 minutes into using the program. Macro Asm programmers, by contrast, tended to only open the librarys when needed - more memory-efficient that way.
It depended on whether the programmer thought it was more useful to have (a) a partially funcional program, or (b) nothing at all if the program wasn't fully functional.
In unix, you have the same choice ( via dlopen() ) , but the default is the (b) rather than the (a). This fits in with the unix philosophy of stringing together small tools with pipes, since a partially functional tool might feed garbage output into the next in the chain.
Re:the copying vs copyright clause
on
At The Crossroads
·
· Score: 2
The problem is not just that with the current system - it's that corporations are pushing to change the status quo too - but in the other direction.
Already, American copyrights last a ridiculously long time - while everything else has been getting faster and faster ("internet time") copyright actually lasts longer than ever it did before - significantly longer than the average human lifespan, in fact - this is to little advantage for individual artists, since they are mortal, but definitely in favour of corporations, which can carry on indefinitely.
Also, in the current system, you have a right to "fair use" of copyrighted material - but the very, very nasty DMCA effectively eliminates that, while paying it lip service, by making it an offence to circumvent the protection on a copyrighted work, where protection is very, very weakly defined.
Thus, big business is pushing the copyright system in the other direction to 'net forces - IMHO, to the detriment of society in general. That is why people are fighting the _new_ copyright legislation. In my opinion, both copyrights and patents should be scaled to "internet time" - Say, 5-10 years for copyright, and 2-4 years for patents.
Re:Cool... is this the modernized Amiga?
on
AtheOS
·
· Score: 1
Standard linux kernels lack the high-speed, conceptually easy to grasp, message passing facilities of, say, QNX or AmigaOS. There is a patch to allow QNX-style message passing in linux - here, but I've never tried it.
The AmigaOS message passing (by reference) is scarier, since the AmigaOS only has "cooperative" (i.e. nothing except for semaphore locks) memory protection, but this means it can be blindingly fast, even with arbitrary-sized messages, since all that is actually done to send a message from process 1 to process 2 is passing a pointer...
Re:News Flash: Most OSes support Cut and Paste!
on
AtheOS
·
· Score: 3
Yeah, and the AmigaOS had 256 independent clipboards units... in 1986... (what's a big new feature in Office2000?)
I particularly like the ClipHistory patch for the amiga, which unifies the clipboards into a history buffer, by shifting clipunit 0->1, 1->2 etc each time you cut and paste to clipunit 0. Very useful, and I wish someone would implement it as part of KDE or something...
Oh, and the clipboard appeared on the filesystem - you could "cd CLIPS:"
A good format although optimised for planar displays rather than the chunky pixels most of us use today. Anyone know a browser that supports these? (presumably referring to amiga IFF Anim 7)
Well, Netscape 4.x on Linux can, and will even render them in-page, with the Xanim netscape plugin (included with Mandrake 7 as/usr/lib/netscape/plugins/xanim.so).
I would guess that the Amiga browsers (Voyager, IBrowse, AWeb) also could, through Amiga DataTypes.
Theseus Logic have some interesting papers on asynchronous logic design on their website, not directly connected to the story, but they're interesting nonetheless.
Check out the AROS project for an open-source attempt at an AmigaOS clone, with source compatiblity on non-amiga hardware, including (bleurgh!) x86... Progress is being made - there's a Quake port.:-)
They're currently in discussion with the Amiga trademark, copyright, and patent holders about the legality of the efforts - it looks increasingly likely that things will be resolved favorably for AROS in the near future.
Display Ghostscript, a part of the GNUStep project is coming along, slowly but surely. - what I want to know is: Seeing as Ghostscript supports PDF as well as PS, will we therefore see a Libre version of the Display PDF technolgy that Quartz is based on ???
Actually, the Amiga was clever about scrolling - the scanlines didn't have to be contiguous in memory, every line (in fact, every group of 8 or 16 horizontal pixels) could come from a different memory location. That's because it had a 3-instruction (MOVE, WAIT, SKIP) beam-synchronised co-processor called the Copper.
Thus, to implement scrolling, rather than copying memory, you just said "change the bitplane pointers to display one line further down at this display coordinate (in fact AGA amigas also had 1/4 pixel positioning for sub-pixel super smooth scrolling.)
It's a quite different programming paradigm, and it's why the Amiga versions of all those old 2D games like Sensible soccer, lemmings, etc, all scroll much better on a 7MHz A500 than a 200Mhz Pentium, and it's why the Amiga, rebadged as the NewTek Video Toaster was king of the mid-range video and animation world for years.
At one stage , a company called Phase 5 produced a Vaporware plan to produce an Amiga successor, in which every pixel could come from an arbitrary memory location.
As an aside, the amiga also had another custom subsystem, the blitter (Block Image Transfer) which shovelled rectangular areas around memory, somewhat like the 2D-acceleration that PC cards came up with some time later, and it did hw-accelerated line drawing and flood fill operations too.
The intersting thing was that the Copper, Blitter and CPU could all trigger CPU interrupts, the Copper could trigger the Blitter, the Blitter and CPU could operate on memory that stored CPU and Copper programs (the Amiga had a unified memory architecture). Thus, you could make really insane self-modifying programs, once you stepped outside the bounds of the operating system - which is why Amiga Demo coders came up with such wierd effects (well, that and the acid.)
Er... The Chernobyl virus (also known as CIH) has been around for quite a while now, it caused havoc a while back and made national news in Britain and Ireland anyway. It can pretty nastily screw up the bios of the computer, necessitating the physical removal of the bios chip in order to use an external reflasher (it's often cheaper to just replace the MoBo), and it also trashes the hard drive data.
It can do this because there is a relatively little difference between many of the motherboard flash interfaces in use, and so "all" the author (CIH) had to do was encode the most common few. Most MoBos ship with the Flash write protect off, and a lot of people don't know to set it.
Windows 98 still runs on top of DOS, BTW, no matter what MS marketroids would have you believe, and the Chernobyl virus infects Windows 9x machines, using bugs (actually design oversights made by MS that can't be corrected without breaking a whole load of other stuff) in the Win32 kernel to jump to supervisor mode.
Quoted from the above link:
What makes the CIH case really serious is that the virus activates destructively. When it happens the virus overwrites most of the data on the computers hard drive. This can be recovered with recent backups.
However, the virus has another, unique activation routine: It will try to overwrite the Flash BIOS chip of the machine. If this succeeds, the machine will be unable to boot at all unless the chip is reprogammed. The Flash routine will work on many types of Pentium machines - for example, on machines based on the Intel 430TX chipset. On most machines, the Flash BIOS can be protected with a jumper. By default, protection is usually off.
Children of the Sun, See your time has just begun, Searching for your ways Through adventures every day. Every day and night With the condor in flight With all your friends in tow, You search for the Cities of Gold.
aaah-ah-ah-ah-aah Wishing for the Cities of Gold aaah-ah-ah-ah-aah Someday we will find The Cities of Gold.
do-do-do-de-do aaah-aah-aah do-do-do-de-do Cities of Gold do-do-do-de-do Cities of Gold
aaah-ah-ah-ah-aah Someday we will find The Cities of Gold...
****************** I will never get this damn tune out of my head....
The problem with info pages compared to man pages isn't really the format - it's the default reader puts most people off (the cmd-line info feels just like an ancient version of emacs, with the attendant arcane key-bindings). Texinfo itself was quite a good idea, producing pretty printed manuals and online help from the same document source.
If you have GNOME installed, try typing toc:info into the Location bar of gnome-help-browser. (KDE has similar functionality, type info:(dir) in the location bar of KDE Help). Info pages are relatively pleasant to read in this format.
I believe the Regina Rexx interpreter compiles on linux. Alas, you'd need applications to support being controlled by it on their side too, like any other embedded scripting language (except maybe something like BRexx, part of Blitz on the Amiga, which automated programs by faking mouse + keyboard events in the amiga intuition input stream)
What was good about ARexx on the amiga wasn't really the language (although it does make message passing very easy, and I did like the . constructs), it was the way that nearly all amiga applications included a message port for rexx scripting support. GNU wanted to do a similar thing with GUILE, but it hasn't really caught on to the extent that Rexx did in the Amiga world - possibly because scheme scares most non-compscis (although it shouldn't, it's actually a wonderful language). Embedded perl+python are becoming more+more popular too - I believe KOffice uses an embedded Python interface for scripting.
Re:Oh Fucking Please! Just give it a rest!
on
Battlefield Earth
·
· Score: 1
The Catholic Church is just a bigger, older cult - Well, it's what happens when a cult gets big enough to take over and control a state (the roman empire), and thus call itself legitimate.
Scientologists are trying the same thing, buying their way into positions of power, and using brainwashing techniques to stay there. As an atheist, I find both institutions pretty sick.
Check out the Psion Series 7 or Netbook (The Netbook is, AFAIK, pretty much just a slightly faster Series 7 with a customisable Flash Card ROM for the OS and business-specific apps instead of the standard EPOC32 applications ROM.)
Netbook: 190MHz StrongARM with 32/64MByte RAM... Series 7: 133 MHz StrongARM with 16/32 MByte RAM..
Personally, I have a Series 5 mx, that's a 16-greyscale model with a 36MHz ARM chip and 16Mbyte RAM. Runs off two AA batteries (and, with my usage patterns, these last weeks.)
Well.. programs do exist that can make CPUs get pretty hot - wrap one in a standard e-mail virus package. Your virus probably won't kill every system, but it will make the odds of a system failure higher.
And remember, an overheated CPU's molecular sturcutere does change - atomic diffusion makes the metal atoms that the silicon is doped with mover around, eventually destroying the p-n junctions that make the CPU work.
That way the GUI preempts non-interactive tasks like it does on Windows 98 and other systems intended for "desktop use" - perhaps linux distros should do this automatically if users select desktop installs, so that the system seems more responsive.
Negative reniceing the window manager may well improve responsiveness too.
Yes, complete with lots of backdoors that are emergent properties of convoluted makefiles, or something ( like that compiler that compiled backdoors into itself...)
>...but I suspect you can't do that on a headless Linux/BSD/Solaris/SCO/... system with a dumb terminal
Screen is a utility to achieve much the same thing as virtual consoles, with the added benefit it works in anything, including xterms... It's included with every mainstream linux distro, at least.
man screen :
Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). Each virtual terminal provides the functions of a DEC VT100 terminal and, in addition, sev eral control functions from the ISO 6492 (ECMA 48, ANSI X3.64) and ISO 2022 standards (e.g. insert/delete line and support for multiple character sets).
That is to say, screen does in user-space what virtual consoles do in kernel space. However, screen is more widely applicable - I can have 10 shell windows open over my dumb terminal's serial line, and flick between them.
Anyone remember the ixemul Amiga shared library? Provided a pseudo-POSIXy layer (but.. er... lacking fork()...you could use vfork() though...) on top of AmigaOS (and later BeOS)
Pretty much all of the GNU tools, and X windows, that are commonly found in a base linux install were then compiled into a distro called GeekGadgets to run on top of the ixemul.library on top of AmigaOS...
A similar approach could, I suppose, be used on top of virtually anything.
It depended on the compiler, SAS/C could do it that way, as could DICE, and amiga-geekgadgets gcc does it that way when you're using libnix (as opposed to the ixemul.library posix compatibility layer), by linking in an autopen hook library called libauto.a :
From amiga gcc docs
We did *not* open intuition.library. gcc does this for you by including proto/intuition.h and linking against libauto.a automatically if -noixemul is used (*else* you need to specify -lauto). However, this works only for OS libraries. Consult the libauto directory, if you want to know how to get the same possibilities for other shared libraries. Using proto/intuition.h you are safe and even source compatible to SAS/C and Dice.
As to having to look up the names, see man page. I *think* you have to use dlsysm(), but maybe that's only with RTLD_LAZY - I don't really know. Ever since I've had a large amount of RAM, I've stopped worrying about opening all the librarys on startup, and thus I don't use dlopen() much - although now you've made me guilty enough about such wasteful laziness that I might go back and find out...
Yes, basically - although I'd guess OSX does it more transparently.
Many amiga C/C++ compilers were set up to compile code that deliberately emulated unix-style linking by doing all the OpenLibrary() calls in a segment executed before main(), in effect making any possible linking failures happen at program startup, rather than bombing out 15 minutes into using the program. Macro Asm programmers, by contrast, tended to only open the librarys when needed - more memory-efficient that way.
It depended on whether the programmer thought it was more useful to have (a) a partially funcional program, or (b) nothing at all if the program wasn't fully functional.
In unix, you have the same choice ( via dlopen() ) , but the default is the (b) rather than the (a). This fits in with the unix philosophy of stringing together small tools with pipes, since a partially functional tool might feed garbage output into the next in the chain.
The problem is not just that with the current system - it's that corporations are pushing to change the status quo too - but in the other direction.
Already, American copyrights last a ridiculously long time - while everything else has been getting faster and faster ("internet time") copyright actually lasts longer than ever it did before - significantly longer than the average human lifespan, in fact - this is to little advantage for individual artists, since they are mortal, but definitely in favour of corporations, which can carry on indefinitely.
Also, in the current system, you have a right to "fair use" of copyrighted material - but the very, very nasty DMCA effectively eliminates that, while paying it lip service, by making it an offence to circumvent the protection on a copyrighted work, where protection is very, very weakly defined.
Thus, big business is pushing the copyright system in the other direction to 'net forces - IMHO, to the detriment of society in general. That is why people are fighting the _new_ copyright legislation. In my opinion, both copyrights and patents should be scaled to "internet time" - Say, 5-10 years for copyright, and 2-4 years for patents.
Standard linux kernels lack the high-speed, conceptually easy to grasp, message passing facilities of, say, QNX or AmigaOS. There is a patch to allow QNX-style message passing in linux - here, but I've never tried it.
The AmigaOS message passing (by reference) is scarier, since the AmigaOS only has "cooperative" (i.e. nothing except for semaphore locks) memory protection, but this means it can be blindingly fast, even with arbitrary-sized messages, since all that is actually done to send a message from process 1 to process 2 is passing a pointer...
Yeah, and the AmigaOS had 256 independent clipboards units... in 1986... (what's a big new feature in Office2000?)
I particularly like the ClipHistory patch for the amiga, which unifies the clipboards into a history buffer, by shifting clipunit 0->1, 1->2 etc each time you cut and paste to clipunit 0. Very useful, and I wish someone would implement it as part of KDE or something...
Oh, and the clipboard appeared on the filesystem - you could "cd CLIPS:"
A good format although optimised for planar displays rather than the chunky pixels most of us use today. Anyone know a browser that supports these? (presumably referring to amiga IFF Anim 7)
/usr/lib/netscape/plugins/xanim.so).
Well, Netscape 4.x on Linux can, and will even render them in-page, with the Xanim netscape plugin (included with Mandrake 7 as
I would guess that the Amiga browsers (Voyager, IBrowse, AWeb) also could, through Amiga DataTypes.
Theseus Logic have some interesting papers on asynchronous logic design on their website, not directly connected to the story, but they're interesting nonetheless.
Check out the AROS project for an open-source attempt at an AmigaOS clone, with source compatiblity on non-amiga hardware, including (bleurgh!) x86... :-)
Progress is being made - there's a Quake port.
They're currently in discussion with the Amiga trademark, copyright, and patent holders about the legality of the efforts - it looks increasingly likely that things will be resolved favorably for AROS in the near future.
TEMPEST-type systems are real technology - have been for quite some time.
Display Ghostscript, a part of the GNUStep project is coming along, slowly but surely. - what I want to know is: Seeing as Ghostscript supports PDF as well as PS, will we therefore see a Libre version of the Display PDF technolgy that Quartz is based on ???
Well, there's Alternic.
There's nothing stopping anyone setting up root servers for an independent DNS system - except persuading people to use it.
Actually, the Amiga was clever about scrolling - the scanlines didn't have to be contiguous in memory, every line (in fact, every group of 8 or 16 horizontal pixels) could come from a different memory location. That's because it had a 3-instruction (MOVE, WAIT, SKIP) beam-synchronised co-processor called the Copper.
Thus, to implement scrolling, rather than copying memory, you just said "change the bitplane pointers to display one line further down at this display coordinate (in fact AGA amigas also had 1/4 pixel positioning for sub-pixel super smooth scrolling.)
It's a quite different programming paradigm, and it's why the Amiga versions of all those old 2D games like Sensible soccer, lemmings, etc, all scroll much better on a 7MHz A500 than a 200Mhz Pentium, and it's why the Amiga, rebadged as the NewTek Video Toaster was king of the mid-range video and animation world for years.
At one stage , a company called Phase 5 produced a Vaporware plan to produce an Amiga successor, in which every pixel could come from an arbitrary memory location.
As an aside, the amiga also had another custom subsystem, the blitter (Block Image Transfer) which shovelled rectangular areas around memory, somewhat like the 2D-acceleration that PC cards came up with some time later, and it did hw-accelerated line drawing and flood fill operations too.
The intersting thing was that the Copper, Blitter and CPU could all trigger CPU interrupts, the Copper could trigger the Blitter, the Blitter and CPU could operate on memory that stored CPU and Copper programs (the Amiga had a unified memory architecture). Thus, you could make really insane self-modifying programs, once you stepped outside the bounds of the operating system - which is why Amiga Demo coders came up with such wierd effects (well, that and the acid.)
The apache site defacement was mentioned. Two whole days before your submission date.
> its slowly becoming more and more possible.
Er... The Chernobyl virus (also known as CIH) has been around for quite a while now, it caused havoc a while back and made national news in Britain and Ireland anyway. It can pretty nastily screw up the bios of the computer, necessitating the physical removal of the bios chip in order to use an external reflasher (it's often cheaper to just replace the MoBo), and it also trashes the hard drive data.
It can do this because there is a relatively little difference between many of the motherboard flash interfaces in use, and so "all" the author (CIH) had to do was encode the most common few. Most MoBos ship with the Flash write protect off, and a lot of people don't know to set it.
Windows 98 still runs on top of DOS, BTW, no matter what MS marketroids would have you believe, and the Chernobyl virus infects Windows 9x machines, using bugs (actually design oversights made by MS that can't be corrected without breaking a whole load of other stuff) in the Win32 kernel to jump to supervisor mode.
Quoted from the above link:
What makes the CIH case really serious is that the virus activates destructively. When it happens the virus overwrites most of the data on the computers hard drive. This can be recovered with recent backups.
However, the virus has another, unique activation routine: It will try to overwrite the Flash BIOS chip of the machine. If this succeeds, the machine will be unable to boot at all unless the chip is reprogammed. The Flash routine will work on many types of Pentium machines - for example, on machines based on the Intel 430TX chipset. On most machines, the Flash BIOS can be protected with a jumper. By default, protection is usually off.
Children of the Sun,
See your time has just begun,
Searching for your ways
Through adventures every day.
Every day and night
With the condor in flight
With all your friends in tow,
You search for the Cities of Gold.
aaah-ah-ah-ah-aah
Wishing for the Cities of Gold
aaah-ah-ah-ah-aah
Someday we will find
The Cities of Gold.
do-do-do-de-do
aaah-aah-aah
do-do-do-de-do
Cities of Gold
do-do-do-de-do
Cities of Gold
aaah-ah-ah-ah-aah
Someday we will find
The Cities of Gold...
******************
I will never get this damn
tune out of my head....
The problem with info pages compared to man pages isn't really the format - it's the default reader puts most people off (the cmd-line info feels just like an ancient version of emacs, with the attendant arcane key-bindings). Texinfo itself was quite a good idea, producing pretty printed manuals and online help from the same document source.
If you have GNOME installed, try typing toc:info into the Location bar of gnome-help-browser. (KDE has similar functionality, type info:(dir) in the location bar of KDE Help). Info pages are relatively pleasant to read in this format.
I believe the Regina Rexx interpreter compiles on linux. Alas, you'd need applications to support being controlled by it on their side too, like any other embedded scripting language (except maybe something like BRexx, part of Blitz on the Amiga, which automated programs by faking mouse + keyboard events in the amiga intuition input stream)
What was good about ARexx on the amiga wasn't really the language (although it does make message passing very easy, and I did like the . constructs), it was the way that nearly all amiga applications included a message port for rexx scripting support. GNU wanted to do a similar thing with GUILE, but it hasn't really caught on to the extent that Rexx did in the Amiga world - possibly because scheme scares most non-compscis (although it shouldn't, it's actually a wonderful language). Embedded perl+python are becoming more+more popular too - I believe KOffice uses an embedded Python interface for scripting.
The Catholic Church is just a bigger, older cult - Well, it's what happens when a cult gets big enough to take over and control a state (the roman empire), and thus call itself legitimate.
Scientologists are trying the same thing, buying their way into positions of power, and using brainwashing techniques to stay there. As an atheist, I find both institutions pretty sick.
www.infidels.org
Check out the Psion Series 7 or Netbook (The Netbook is, AFAIK, pretty much just a slightly faster Series 7 with a customisable Flash Card ROM for the OS and business-specific apps instead of the standard EPOC32 applications ROM.)
Netbook: 190MHz StrongARM with 32/64MByte RAM...
Series 7: 133 MHz StrongARM with 16/32 MByte RAM..
Personally, I have a Series 5 mx, that's a 16-greyscale model with a 36MHz ARM chip and 16Mbyte RAM. Runs off two AA batteries (and, with my usage patterns, these last weeks.)
Er... s/sturcutere/structure/g s/mover/move/g ...
Well.. programs do exist that can make CPUs get pretty hot - wrap one in a standard e-mail virus package. Your virus probably won't kill every system, but it will make the odds of a system failure higher.
And remember, an overheated CPU's molecular sturcutere does change - atomic diffusion makes the metal atoms that the silicon is doped with mover around, eventually destroying the p-n junctions that make the CPU work.
Try running X with nice -n-10
That way the GUI preempts non-interactive tasks
like it does on Windows 98 and other systems intended for "desktop use" - perhaps linux distros should do this automatically if users select desktop installs, so that the system seems more responsive.
Negative reniceing the window manager may well improve responsiveness too.
Yes, complete with lots of backdoors that are emergent properties of convoluted makefiles, or something ( like that compiler that compiled backdoors into itself...)
> ...but I suspect you can't do that on a headless Linux/BSD/Solaris/SCO/... system with a dumb terminal
Screen is a utility to achieve much the same thing as virtual consoles, with the added benefit it works in anything, including xterms...
It's included with every mainstream linux distro, at least.
man screen :
Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). Each virtual terminal provides the functions of a DEC VT100 terminal and, in addition, sev eral control functions from the ISO 6492 (ECMA 48, ANSI X3.64) and ISO 2022 standards (e.g. insert/delete line and support for multiple character sets).
That is to say, screen does in user-space what virtual consoles do in kernel space. However, screen is more widely applicable - I can have 10 shell windows open over my dumb terminal's serial line, and flick between them.
Anyone remember the ixemul Amiga shared library? Provided a pseudo-POSIXy layer (but.. er... lacking fork()...you could use vfork() though...) on top of AmigaOS (and later BeOS)
Pretty much all of the GNU tools, and X windows, that are commonly found in a base linux install were then compiled into a distro called GeekGadgets to run on top of the ixemul.library on top of AmigaOS...
A similar approach could, I suppose, be used on top of virtually anything.
It used to live at www.ninemoons.com/GG/