POV-Ray : Newsgroups : povray.off-topic : Somewhat disappointing Server Time
4 Sep 2024 17:22:02 EDT (-0400)
  Somewhat disappointing (Message 11 to 20 of 25)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 5 Messages >>>
From: Darren New
Subject: Re: Somewhat disappointing
Date: 26 Jan 2010 19:26:00
Message: <4b5f8818$1@news.povray.org>
Orchid XP v8 wrote:
> ...which is interesting, given that SUSE is a Novell product. (Although 
> we are talking about OpenSUSE here, so maybe that doesn't count?)

I wasn't talking specifically about one package or another. Just in general.

> ...OK...but isn't this [part of] what package managers are supposed to 
> manage?

Tell me how a Linux package manager is going to tell you whether anyone is 
currently running a program that needs some DLL it's going to replace.

-- 
Darren New, San Diego CA, USA (PST)
   Forget "focus follows mouse." When do
   I get "focus follows gaze"?


Post a reply to this message

From: Invisible
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 04:50:31
Message: <4b600c67$1@news.povray.org>
>> Of course, if I was going to do that, I'd have to sit there and freeze 
>> the VM at the exact point where the error pops up so I can write down 
>> precisely what it said.
> 
> Does it reboot after the install completes? If not, see if the messages 
> are out there somewhere, like with the "dmesg" command or whatever it's 
> called?

It says it's going to "reboot", but there's no BIOS screen. I don't know 
if it just stops one kernel and loads the other or what...

Trying to pause the VM at the right instant would probably be a lot less 
work than trying to figure out Linux.


Post a reply to this message

From: Jim Henderson
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 12:43:07
Message: <4b607b2b$1@news.povray.org>
On Tue, 26 Jan 2010 11:17:47 +0000, Invisible wrote:

> I used to quite like OpenSUSE. However, the other day I installed it
> about 13 seperate times. Let me tell you why.

If you were to ask some questions over in forums.opensuse.org, I'm sure 
someone would be happy to help you out with the issues.

Jim


Post a reply to this message

From: Jim Henderson
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 12:44:18
Message: <4b607b72$1@news.povray.org>
On Tue, 26 Jan 2010 08:18:07 -0500, Warp wrote:

>   Linux doesn't support switching kernels on-the-fly. Not many OSes do.

The stock kernel doesn't, but there is a company that has developed a way 
to patch the live kernel and have the patch take effect.  I forget who it 
is, but I've heard about it and from people who've used it.

Jim


Post a reply to this message

From: Fredrik Eriksson
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 13:45:28
Message: <op.u67fp6uk7bxctx@bigfrog.bredbandsbolaget.se>
On Wed, 27 Jan 2010 18:44:18 +0100, Jim Henderson <nos### [at] nospamcom>  
wrote:
> On Tue, 26 Jan 2010 08:18:07 -0500, Warp wrote:
>
>>   Linux doesn't support switching kernels on-the-fly. Not many OSes do.
>
> The stock kernel doesn't, but there is a company that has developed a way
> to patch the live kernel and have the patch take effect.  I forget who it
> is, but I've heard about it and from people who've used it.

http://www.ksplice.com



-- 
FE


Post a reply to this message

From: Florian Pesth
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 16:09:33
Message: <4b60ab8d$1@news.povray.org>
Am Tue, 26 Jan 2010 16:25:59 -0800 schrieb Darren New:

> Orchid XP v8 wrote:
>> ...which is interesting, given that SUSE is a Novell product. (Although
>> we are talking about OpenSUSE here, so maybe that doesn't count?)
> 
> I wasn't talking specifically about one package or another. Just in
> general.
> 
>> ...OK...but isn't this [part of] what package managers are supposed to
>> manage?
> 
> Tell me how a Linux package manager is going to tell you whether anyone
> is currently running a program that needs some DLL it's going to
> replace.

If it is done correctly, it knows which programs depend on the "DLL" and 
is going to update this programs as well, then - if they are running - it 
will ask the user to restart this programs. At least Ubuntu asks me about 
restarting the program. (Also, if I run an executable it seems "locked", 
at least it refuses to overwrite it - which sounds to me the same as what 
you described, what windows is doing, or do you mean something else?)


Post a reply to this message

From: Jim Henderson
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 16:09:42
Message: <4b60ab96$1@news.povray.org>
On Wed, 27 Jan 2010 19:45:32 +0100, Fredrik Eriksson wrote:

>> The stock kernel doesn't, but there is a company that has developed a
>> way to patch the live kernel and have the patch take effect.  I forget
>> who it is, but I've heard about it and from people who've used it.
> 
> http://www.ksplice.com

That's the one I was thinking of, yes. :-)

Jim


Post a reply to this message

From: Darren New
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 17:11:42
Message: <4b60ba1e@news.povray.org>
Florian Pesth wrote:
> If it is done correctly, it knows which programs depend on the "DLL" 

No, it knows which *packages* depend on the DLL.

There's no good way under Linux (without walking thru /proc and trying to 
parse it, and hoping it doesn't change while you do so) of telling what DLLs 
  a given program is using that isn't in a package. There's also no good way 
of telling what programs are running right now.  There's also no good way of 
figuring out if a currently-running program is compatible with the new DLL 
you just downloaded, even if that running program hasn't loaded that DLL.

(For example, you have your media player running, and you update the media 
player executable and all the codecs. But now you go back to the running 
media player and play a different file, which loads the new codec DLL that 
is now incompatible with the running executable.)

UNIX has always been a "95% is good enough" OS. Linux is doing slightly 
better, but still isn't 100% there.

> (Also, if I run an executable it seems "locked", 

You can't write to a program that's executing, in UNIX. Never could.

What you *can* do is delete the executable while it's running (well, 
technically, "unlink" it), and create a new file with the same name.

In Windows, to delete a file, you have to have write permission, and since 
you don't get write permission to an executing file in Windows (just like in 
UNIX), you can't delete the file.

In UNIX, you don't need any permissions on a file to unlink it from the 
directory its name is in.

-- 
Darren New, San Diego CA, USA (PST)
   Forget "focus follows mouse." When do
   I get "focus follows gaze"?


Post a reply to this message

From: Florian Pesth
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 18:02:40
Message: <4b60c610$1@news.povray.org>
Am Wed, 27 Jan 2010 14:11:40 -0800 schrieb Darren New:

> Florian Pesth wrote:
>> If it is done correctly, it knows which programs depend on the "DLL"
> 
> No, it knows which *packages* depend on the DLL.
> 
> There's no good way under Linux (without walking thru /proc and trying
> to parse it, and hoping it doesn't change while you do so) of telling
> what DLLs
>   a given program is using that isn't in a package.

Right, if you install programs not in the package management, the package 
management doesn't work on this programs. But this is to be expected, 
isn't it?

(BTW, how do you ensure "atomic" process table lookups on any 
multitasking OS? It is not, that you can prevent the starting of new 
processes just after your check, can you?)

 There's also no good
>   way
> of telling what programs are running right now.

Just out of curiosity: Is there any way to tell of a process in windows, 
which executable file it stems from? What happens, if you unmount the 
volume the executable file is on or if the process you are looking at is 
actually a child process from the original one? 

>  There's also no good
> way of figuring out if a currently-running program is compatible with
> the new DLL you just downloaded, even if that running program hasn't
> loaded that DLL.

Again, how do you expect to solve this problem without some form of 
either package management or a different centralized software 
distribution system (for example like the App store for the iPhone)? I 
can always compile a DLL with a same name which is incompatible to what 
some program expects. That can only be solved by package management.

> 
> (For example, you have your media player running, and you update the
> media player executable and all the codecs. But now you go back to the
> running media player and play a different file, which loads the new
> codec DLL that is now incompatible with the running executable.)

If the package management works, this is what happens:
You update the *package* of the media player. When you do this the 
package manager notices, that you have an older version of that package 
installed and checks if you have an instance of the program running (It 
doesn't really matter, if this check is done in a nonstandard way, 
because the package manager knows *exactly*, what version is installed 
and how to check it.). It pops now a window asking you to restart the 
player.

Of course if you don't use the package management you might break the 
system, but thats not different than tinkering with windows on a low 
level.

> 
> UNIX has always been a "95% is good enough" OS. Linux is doing slightly
> better, but still isn't 100% there.

Sure, it is still some way to go (I'm doing some administration on some 
linux machine on my job, but my primary job is using them for physics 
simulations - so its pretty annoying if the stuff doesn't work. And yeah, 
if it works for "practical purposes" its fine for me, even if it is 
technically broken.)

> 
>> (Also, if I run an executable it seems "locked",
> 
> You can't write to a program that's executing, in UNIX. Never could.
> 
> What you *can* do is delete the executable while it's running (well,
> technically, "unlink" it), and create a new file with the same name.
> 
> In Windows, to delete a file, you have to have write permission, and
> since you don't get write permission to an executing file in Windows
> (just like in UNIX), you can't delete the file.
> 
> In UNIX, you don't need any permissions on a file to unlink it from the
> directory its name is in.

Thanks, didn't know that!


Post a reply to this message

From: Darren New
Subject: Re: Somewhat disappointing
Date: 27 Jan 2010 22:03:00
Message: <4b60fe64$1@news.povray.org>
Florian Pesth wrote:
> Right, if you install programs not in the package management, the package 
> management doesn't work on this programs. But this is to be expected, 
> isn't it?

Yep. But notice how this differs from Windows. If it can replace a DLL, it 
means nobody is using it right now, whether that program is in the package 
management system of Windows or not.

> (BTW, how do you ensure "atomic" process table lookups on any 
> multitasking OS? 

Well, you could do something like (for instance) trying to open the 
executable for writing. If it fails, someone is running it. If it succeeds, 
then nobody at this point can "exec" it, because they'll get back that the 
file is busy from the exec call.

At least, that's how it works on serious operating systems, like mainframes. 
Everything you would commonly want to do is atomic in one way or another.

> Just out of curiosity: Is there any way to tell of a process in windows, 
> which executable file it stems from? 

Sure. The task manager does it no problem, so I can't imagine it's hard.

> What happens, if you unmount the 
> volume the executable file is on 

Dunno, offhand. I suspect either it doesn't let you unmount it or the 
process gets killed before the unmount completes.

> or if the process you are looking at is 
> actually a child process from the original one? 

Which would the "original" one be?

>>  There's also no good
>> way of figuring out if a currently-running program is compatible with
>> the new DLL you just downloaded, even if that running program hasn't
>> loaded that DLL.
> 
> Again, how do you expect to solve this problem 

This one is definitely more difficult, yes. In Windows, this is part of what 
the COM system does, or you use NTFS atomic transactions. So either you say 
"replace all these files including the executable" and the executable fails 
so none get replaced, or you put the new COM software out there and 
atomically update the registry to point to the new COM server.

> can always compile a DLL with a same name which is incompatible to what 
> some program expects. That can only be solved by package management.

Sure. I'm just saying that package management systems fall down at some 
point, more or less complexly. You *can* ensure this doesn't happen under 
some systems. UNIX isn't one of them, because the semantics aren't there in 
the atomic parts of the system.

There's a reason it's called the "registry".

> If the package management works, this is what happens:
> You update the *package* of the media player. When you do this the 
> package manager notices, that you have an older version of that package 
> installed and checks if you have an instance of the program running (It 
> doesn't really matter, if this check is done in a nonstandard way, 
> because the package manager knows *exactly*, what version is installed 
> and how to check it.). It pops now a window asking you to restart the 
> player.

How does it know how to check if some random user is using an arbitrary 
program at the moment? Or if that program is running in a way that can't be 
interrupted with a "window"? What if I started some long-running data 
munching job in the background and logged out. Who do you ask if you can 
replace its DLLs? Or if it's not in a package but the DLLs it's using are?

> if it works for "practical purposes" its fine for me, even if it is 
> technically broken.)

Yeah, I grew up on mainframes where the folks writing the OS actually paid 
attention to all the corner cases, so it bugs me when there's no guaranteed 
way to see if something is already running, etc.

It's only since /proc came along that you could even tell if a service was 
already running and not restart it if it was.

> Thanks, didn't know that!

Yeah, Windows doesn't have a problem deleting an open file in general. It 
just has a problem deleting an open file that you specifically said "don't 
let others delete this while it's open." It just happens that the OS opens 
executable code files that way, so it can page out of the files directly 
without copying them to swap space.

-- 
Darren New, San Diego CA, USA (PST)
   Forget "focus follows mouse." When do
   I get "focus follows gaze"?


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 5 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.