Find the answer to your Linux question:
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 11
My apologies for the topic name. I used it on purpose to catch your attention. Ok, most people who swicthed to Linux were formerly (if not presently) using Windows. I ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Jul 2005
    Posts
    32

    Does Linux use DLL's?


    My apologies for the topic name. I used it on purpose to catch your attention. Ok, most people who swicthed to Linux were formerly (if not presently) using Windows. I just wanna know how applications in Linux handles big applications. And furthermore, how does Linux implement the equivalent of the Registry in Windows? How about uninstalling an application with multiple files scattered in different directories? Please enlighten me.

  2. #2
    Linux User Krendoshazin's Avatar
    Join Date
    Feb 2005
    Location
    London, England
    Posts
    471
    Yes linux does use dll's, however the name dll isn't a generic computer science term it's just what windows calls it, it's a function library and in linux they're called libraries and pretty much always have the postfix of .so.
    Configuration data for programs and scripts used by the local system are stored in the directory /etc, the windows registry is a good idea in theory, but poorly implemented and poorly maintainable without third party applications, /etc would be the equivalent, but is in no way an inferior design.

    Programs are maintained by package managers, these keep track of what files the package placed on the system and where they are, the location of these files are then used when the package is removed in order to make sure that the files are removed. It can also be used as a term for managers that download and install software for you, resolving dependencies in the process etc since it's function is package based, however the basic package manager manages packages on the local system.

  3. #3
    Linux Guru
    Join Date
    Oct 2001
    Location
    Täby, Sweden
    Posts
    7,578
    Actually, "DLL" is a generic computer science term -- A "Dynamically Linked Library" is just that, a library which, rather than being linked statically into the executable, is linked dynamically at runtime. It just so happens that Microsoft chose the generic name as the name of their implementation as well.

    In most Unix systems, the object and executable file format is called ELF (Executable and Linking Format). A part of ELF is the Shared Object specification (hence the filename suffix ".so"), which is the ELF implementation of DLLs. The name "shared object" is, of course, derived from the fact that they are (usually relocatable) objects that are shared by several processes simultaneously.

    Mind you that the ELF shared object system is far superior to Microsoft's DLL implementation, though, in that shared objects can be versioned. That way, one system can have several independent versions of the same shared object installed simultaneously, as to maintain binary compatibility for compiled executables. Microsoft's DLL implementation has no concept of versioning, so when one program overwrites an existing DLL with a newer or older version that it wants, that is what is known as "DLL Hell".

    It is also well worth mentioning that since the Linux kernel supports unlinking files that are in use, shared objects can be upgraded while the system is running, as opposed to Windows, which needs to be rebooted in order to upgrade or otherwise replace DLLs that are being used by system services.


    As for the "registry", I'd like to clarify that a bit. It's fair to say that Linux has no equivalent of the Windows registry. That's not a bad thing, however -- I'd like to point out that I strongly disagree with Krendoshazin's statement that "the windows registry is a good idea in theory", because it isn't. It's just a stupid round-about for storing the same kind of information that can already be stored in real config files. The only reason that I can find for the Windows registry is that Microsoft wanted data to be stored in a proprietary, binary format, as to prevent interoperation. It's particularly stupid since the entire registry is stored in one monolithical file, which makes it very prone to corruption.

    GNOME, however, has something that can be compared to the Windows registry -- "gconf". In contrast to the Windows registry, however, it actually does something that cannot easily be done with ordinary config files, though. It allows several configuration databases to be cascaded on top each other, which provides an easy and rather elegant means of storing system defaults and read-only values. I'm still in part opposed to gconf, however, for reasons that I won't go into further here. I'd surmise that KDE has something similar to gconf.


    As for "how Linux handles big applications", I don't really understand the question. What makes a "big application" different from a "small application"?

  4. #4
    Just Joined!
    Join Date
    Jul 2005
    Posts
    32
    Quote Originally Posted by Dolda2000
    As for "how Linux handles big applications", I don't really understand the question. What makes a "big application" different from a "small application"?
    Great! That's a lot of knowledge for the subject. As for the question above, its a typo. What I was trying to ask was how are big applications handled in Linux. The DLL methodology (or shared objects) answered it already, before that I was actually believing that DLL's are a Microsoft technology. So in case Linux does have its own technology for loading "big" applications, that's what I liked to know. But then, DLL's are not a Microsoft invention so that settles the point. Thanks a lot.

  5. #5
    Linux User Krendoshazin's Avatar
    Join Date
    Feb 2005
    Location
    London, England
    Posts
    471
    Quote Originally Posted by Dolda2000
    As for the "registry", I'd like to clarify that a bit. It's fair to say that Linux has no equivalent of the Windows registry. That's not a bad thing, however -- I'd like to point out that I strongly disagree with Krendoshazin's statement that "the windows registry is a good idea in theory", because it isn't. It's just a stupid round-about for storing the same kind of information that can already be stored in real config files. The only reason that I can find for the Windows registry is that Microsoft wanted data to be stored in a proprietary, binary format, as to prevent interoperation. It's particularly stupid since the entire registry is stored in one monolithical file, which makes it very prone to corruption.
    That's exactly the reason why I said it was poorly implemented, but I think what you're disagreeing on really comes down to opinion, I've worked a lot with databases and know how fast a properly implemented and maintained database can be, you could teach a child to create a program to organise data from a structured ini file, but a proper database system could have it's advantages, perhaps it won't, that's yet to be seen.

  6. #6
    Linux Guru
    Join Date
    Oct 2001
    Location
    Täby, Sweden
    Posts
    7,578
    Well, I was a bit unclear -- the "one big file" argument wasn't what I meant as the reason why the registry is a bad idea in itself.

    The reason that I said that the registry is a bad idea is that it confers no new functionality. It does absolutely nothing that couldn't already be done with the INI file calls. In that manner, it is a bad idea since it adds yet another useless abstraction layer to Windows, which increases the complexity of that already over-complex system and thus increases chances of fault even more.

    If something's useless, then you leave it out -- you don't just include it since it seems neat. Also known as the KISS principle.

    I think that the NIH syndrome and completely ignoring the KISS principle like this are the two primary reasons why Windows is so bad as it is.

  7. #7
    Linux User Krendoshazin's Avatar
    Join Date
    Feb 2005
    Location
    London, England
    Posts
    471
    You make a good point, I agree with that, the /etc system is simple and effective, allowing programs to grab a specific file and not have to search through that file for its data, I think it would be hard to keep up with such a simple and effective method

  8. #8
    Linux Guru bigtomrodney's Avatar
    Join Date
    Nov 2004
    Location
    Ireland
    Posts
    6,132
    Probably worth mentioning - to the best of my knowledge the Windows registry does not have a shrink or reindex operation and as such becomes fragmented or grows larger. As explained to me this is why Windows systems become slower as time goes on, due to loading and filtering through bigger files as time goes on.

  9. #9
    Linux Guru
    Join Date
    Oct 2001
    Location
    Täby, Sweden
    Posts
    7,578
    That's probably true to a large extent, but as far as I know, the largest reason for Windows getting slower over time is DLL Hell, which I described above. See the Wikipedia link in particular.

  10. #10
    Linux User Krendoshazin's Avatar
    Join Date
    Feb 2005
    Location
    London, England
    Posts
    471
    I think the biggest cause of slowdown is the fact that the registry relies on the program to remove it's own data, and most don't, I'm sure the other things are a contributing factor aswell, although since I can't say for sure you may well be right

Page 1 of 2 1 2 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •