What are Drivers & DLLs? [Byte Size] | Nostalgia Nerd

Поделиться
HTML-код
  • Опубликовано: 26 окт 2024

Комментарии • 107

  • @lurkerrekrul
    @lurkerrekrul 8 лет назад +56

    Practical explanation for the average computer user;
    Drivers are the bits of software you need to make your new device work, but which usually either aren't available for your particular version of the OS or there will be three different versions with no explanation as to which one you should use. Drivers are also apparently the magical fix for any and all game problems you might be having, since every single game company on the planet will tell you to "Update your drivers." in response to any issues you might be having with their software.
    DLLs are the support files that freeware programs always complain are missing from your system.
    Hope this helps. :)

    • @tomysshadow
      @tomysshadow 7 лет назад +1

      lurkerrekrul That's not really a good explanation of DLLs either, though. They're really a set a functions that a bunch of programs need to use, so they're put together into a neat little recyclable package. A lot of programs need to be able to print things, so you have a print DLL. A lot of programs need to access the internet so you have an internet DLL. The point is to make it so programmers doing similar tasks can share code instead of writing it over and over again.

    • @RaveN_EDM
      @RaveN_EDM 3 года назад +4

      It’s right after “reboot your computer” in terms of tech supposed diagnosis

  • @donnierussellii4659
    @donnierussellii4659 7 лет назад +27

    Sound drivers were eventually moved out of the Windows kernel, fixing a lot of common BSODs. Earlier PCs didn't have the power to stream continuous audio, resulting in stuttering. Another change was Windows keeping an old version of a DLL around for programs that needed it, instead of overwriting it with a new version. In theory a newer DLL wouldn't break the program, but it often did. Windows install size consists of a large percentage of these DLLs.

    • @pepe6666
      @pepe6666 Год назад

      is that why windows is so enormous? :/

  • @awilfox
    @awilfox 6 лет назад +3

    As a low-level programmer on a few Unix-likes (have written kernel code for FreeBSD, and fixed up graphics drivers AND the dynamic linker on Linux)... wow! This may be the first video I've seen on RUclips that explains this accurately, succinctly, and in a way that almost anyone with computing experience should be able to understand. Cheers.

    • @pepe6666
      @pepe6666 Год назад

      yeah its awesome aye. it can be such a simple concept if explained from the right angle. this is a great video

  • @bigoddo
    @bigoddo 8 лет назад +10

    this is super useful to me because in the last 2 months DLLs have become much more known in my life so its nice to have it explained so well! thank you!

  • @talideon
    @talideon 8 лет назад +5

    It would be more accurate to say that the dynamic linker kicks in when the program starts up rather than when the functions within it are called. The only time that libraries are dynamically linked on the fly is as part of, say, a plugin system.

    • @richardvaughn2705
      @richardvaughn2705 7 лет назад +3

      Keith Gaughan ...or when the programmer manually does it using LoadLibrary () and GetProcAddress (). That way the user can get a better error message or sometimes the program can use an alternative library

  • @talideon
    @talideon 8 лет назад +5

    Also, with containers, the idea of statically linking a binary is suddenly fashionable again as it simplifies container deployment. That, however, is something most people who don't work with servers don't need to really know about.

    • @richardvaughn2705
      @richardvaughn2705 7 лет назад +1

      Keith Gaughan mainly because trying to explain to the end user how to install those pesky msvc dll's was always a pain in the arse.

    • @pepe6666
      @pepe6666 Год назад

      i think that programs should be statically linked and should have been for the last like 15 years. saving ram wasn't worth the headache. you see electron apps now etc just trying to establish a common base for themselves & reinvent the platform all over again.

  • @Jikyuu
    @Jikyuu 8 лет назад +1

    Awesome video, very informative ... even if the sudden jump scares (blue screens) scared the crap out of me because I watch it in full screen lol

  • @purpleandgold9600
    @purpleandgold9600 7 лет назад +1

    DLL's have been and sometimes still my biggest beef with PCs. I now know the reason, they're being replaced and that's why most of my older programs are stuffed, also just one many reasons I don't like online direct installs without disks.

  • @quenjankosky7348
    @quenjankosky7348 7 лет назад

    This was a good explanation, explaining libraries on unix and windows systems is hard to do, as well as being a pain.

  • @Lofote
    @Lofote 7 лет назад +1

    WDDM did not allow closer integration with hardware, but were rather made to be compatible to future WIndows versions incl. the NT line starting with Windows 2000.

  • @arvizturotukorfurogep6235
    @arvizturotukorfurogep6235 8 лет назад +39

    Thanks for giving me minor heart-attacks with the sudden blue screens of death.

    • @DyoKasparov
      @DyoKasparov 8 лет назад +8

      Hello 2003 my old friend xD

  • @darkestknightishere
    @darkestknightishere 5 лет назад +3

    Thanks for uploading this video, it was very helpful, can you please remove background sound please.

  • @SigurdKristvik
    @SigurdKristvik 8 лет назад +12

    Drivers & DLL also known as /dev, /sys(/System) and /lib (/Library) in systems like Ubuntu Linux and OSX

    • @alexanderb1245
      @alexanderb1245 8 лет назад +13

      Not quite, these are mere folders. Drivers are still represented by files loaded into kernel space (.ko on Linux, .kext on Mac) and libraries the same (.so on Linux these days and .dylib on Mac).

    • @IgnacioGuerendiain
      @IgnacioGuerendiain 8 лет назад +8

      Actually a dll will be most similar to any .o, .so or .ko on Linux and the .kext and .so on OSX. The directory in which they are stored is more related to the distro, configuration and such.

    • @alexanderb1245
      @alexanderb1245 8 лет назад +2

      Simple .o are usually intermediate steps before linking a shared object (.so) or executable. The big thing though is, in that stage it is up to the user to decide whether to have the linker wrap them up nicely as a static library (for later use during other builds) or shared object, or link into an executable itself. Then again, just nitpicking really. hahaha

    • @talideon
      @talideon 8 лет назад +2

      No, those are two pseudo-filesystems and a directory. /dev exposes devices for use but is more of an interface to the kernel drivers for various devices than anything else. /sys exposes system information and settings.
      On most Unix-like OSs, the equivalent of DLLs is the shared object (SO), which can generally be identified by having '.so' in it's name (MacOS being the exception: it has .dylib instead).
      On Linux and the BSDs, kernel-level drivers are typically either compiled into the kernel itself or are kernel object (ko) files. On Linux, these can be found in /lib/modules.
      Userland drivers (such as printer drivers) are generally shared objects loaded by a daemon that controls userland access to a given device, an example being CUPS, which handles printing on Unix-like OSs, and which other programs spool their print jobs to, or X, which manages screen and HID access for your desktop, and has device drivers talking to graphics cards, input devices, &c.

    • @IgnacioGuerendiain
      @IgnacioGuerendiain 8 лет назад +1

      Cíat Ó Gáibhtheacháin THIS!!

  • @agentgreenland
    @agentgreenland 7 лет назад +8

    thank you for this vid! As an IT professional, I had no idea excactly what dll files were until now! xD

    • @911Salvage
      @911Salvage 7 лет назад +10

      WTF? How is that possible? Your employer must have ridiculously low standards.

    • @procactus9109
      @procactus9109 7 лет назад +5

      @Mouldy, this is the world we live in. When I hear people say 'I work in IT' it means absolute shIT to me.
      I was talking to a self proclaimed 'network guru' he gets a lot of money for doing what he does. But he could not tell me the colour of the wires in a network cable.

  • @teviathon
    @teviathon 4 года назад +2

    Yeah, DLL's have always been my bane. Install a previous version just to get your software to function. Remember this kids, newer is not always better.

  • @Christopher-N
    @Christopher-N 7 лет назад +5

    2:12 Johnny Castaway screen saver :D

  • @clemstevenson
    @clemstevenson 7 лет назад

    Computers are a need-to-know thing for me...It's not, and never has been, a paid job, so I only need to know how these things work when the computer goes wrong. But, of course, there have been problems with missing dynamic link files, where I've had to patch in new copies from on line sources. In the past I have used brute force (inelegant) repair methods for software problems, commonly called 'Format C:'

  • @yuyuko_s75
    @yuyuko_s75 7 лет назад +1

    How is my C64 still in its original box, And still only been used for a week?

  • @robertclark8351
    @robertclark8351 8 лет назад

    The Amiga had link libraries that were required to be re-entrant, a technical capability the Windows DLL didn't emulate. I don't miss 'DLL Hell'.

  • @xereeto
    @xereeto 6 лет назад

    is your background image at 0:57 the windows CEMeNT thing?

  • @brandonevans9342
    @brandonevans9342 8 лет назад +3

    for dll and driver files were they compiled or scripts?
    in other way can u open the file and edit them

    • @izzieb
      @izzieb 8 лет назад +2

      I was under the impression they were compiled binaries.

    • @kyoai
      @kyoai 8 лет назад +9

      A DLL is compiled code. Technically you can use a disassembler program,which tries to translate that compiled code back to human-readable code, however even if it works more often than not it won't be a 100% accurate copy of the original code.

    • @SteveM000100
      @SteveM000100 8 лет назад +3

      If it's .net, you can just probe the functions of the DLL using reflection, reverse engineered a few things like this.

    • @MasticinaAkicta
      @MasticinaAkicta 8 лет назад +2

      a DLL is really a tiny exe file, well tiny, it is a fragment of an exe file, a fragment of a program. Compilers are told in the source course that it isn't an exe but a DLL instead and will compile it as, a DLL.
      You could if you had the source take part of a project that turns into an EXE file and put it in a side file fit for DLL useage. As long as you link it right it works the same.

    • @brandonevans9342
      @brandonevans9342 8 лет назад

      How hard is it to make a driver or port for say OS x from windows

  • @MidnightMechanic
    @MidnightMechanic 7 лет назад +5

    Doom 95 works all the way up to Windows 7 fine. Windows 7 says nuh huh, you now need to download a required .dll file in order to play it. Screw all that noise, don't waste your data, download GLDoom so you can play modern Doom mods people have sunk years into developing.

    • @mergemechanism
      @mergemechanism 7 лет назад +2

      I'm pretty sure most mods would require at least a late-2015 build of ZDoom.

    • @MidnightMechanic
      @MidnightMechanic 7 лет назад +1

      The unfortunate part is stock Intel graphics cards will not work well with newer editions of GZDoom, so you might have to use an older version to play some mods, but it won't be able to play all of them.

  • @razing3223
    @razing3223 7 лет назад

    Stupid question maybe , but , what was that game with the sailor stuck on the island.... ?

    • @MatthewFearnley
      @MatthewFearnley 5 лет назад

      Alin Olar at 2:13? Google Images says: Johnny Castaway

  • @mariuszj3826
    @mariuszj3826 8 лет назад +12

    DLL's used to be a mess on Windows. It's slightly better but they still cause a mess in Windows 10.

    • @q009q009
      @q009q009 7 лет назад +2

      +Lazy Duke Because most Windows applications still ship their own DLLs, which is really a massive waste of space.

    • @Templarfreak
      @Templarfreak 7 лет назад +7

      It is a negligible waste of space. most programs ship their own DLLs because there is no guarantee that other already-existing DLLs, or DLLs that will be made in the future, will be 1:1 compatible with the software in question.

    • @jamegumb7298
      @jamegumb7298 6 лет назад

      Mariusz J
      Just as much a mess on other operating systems. Glibc is a hackjob and just will not stick to any standard so I need to have duplicates for software that does. In addition it is bloated as all hell.

    • @avi8aviate
      @avi8aviate 5 лет назад

      In eventvwr, I always see a warning from wininit saying that custom DLLs are being loaded for every app.

  • @Leonartist
    @Leonartist 8 лет назад

    I think this guy is better than LGR

  • @MrJ0mmy
    @MrJ0mmy 8 лет назад

    interesting video

  • @DankRedditMemes
    @DankRedditMemes 7 лет назад

    on a similar note can we get .COM vs DOS .EXEs?

  • @Foebane72
    @Foebane72 7 лет назад

    I should know all about DLLs, seeing as how I've written some of my own.

  • @shaniqua2154
    @shaniqua2154 3 года назад

    one question can dll files harm your system?

  • @Retrohertz
    @Retrohertz 7 лет назад

    Any idea what the game is at 2:30?

  • @Male_Parent
    @Male_Parent 6 лет назад

    I use a DLL only because I can hold images and use them for an installer

  • @DFX4509B
    @DFX4509B 7 лет назад +4

    Linux world has kmods. :p

    • @richardvaughn2705
      @richardvaughn2705 7 лет назад +2

      Josh Mason kmods are basically stuff linked into the kernel. in Linux dll's are called .o files. They work the same way just use the elf header.

    • @YaroKasear
      @YaroKasear 7 лет назад +4

      richard vaughn .so files. .o files are object code, meant to be linked.

  • @dr.trichome6419
    @dr.trichome6419 6 лет назад

    Just for that im having cake

  • @darthnihiluz5305
    @darthnihiluz5305 7 лет назад

    DLL hell.

  • @yaminipoornathilaka
    @yaminipoornathilaka 4 года назад

    It was good, but it was very fast.

  • @junelangley2800
    @junelangley2800 7 лет назад +1

    I hate the way my drivers seem to delete themselves every so often. I have to install new ones or my mouse stops working every so often.

    • @BertGrink
      @BertGrink 6 лет назад +1

      June Langley it sounds as if you may have some malware on your computer, otherwise this shouldn't happen.
      Unless you have a good technical knowledge about computers, i would recommend that you back up all your important data - e.g. music, videos, pictures, documents et.c. - and then reinstall your O/S from scratch, and finally restore your data from the backup.
      Yes, i know it's a tedious task to do all that, but there are times when it becomes necessary.
      In any case, you should *ALWAYS* back up your files regularly to avoid losing them.

  • @ReverendTed
    @ReverendTed 6 лет назад +1

    winsxs, though. UGH.

  • @junelangley2800
    @junelangley2800 7 лет назад +1

    But why can't I open them in Notepad++ and edit them?

    • @tomysshadow
      @tomysshadow 7 лет назад +5

      June Langley Technically you can, but you're very likely to cause serious errors in doing so.
      It's because they are compiled. Let's say I wanted to write a DLL which provides some basic math abilities. One of the things this DLL can do is calculate the square of a number. I could write code something like this:
      function square(x) {
      result = x * x
      }
      All this does is take the variable x and multiply it by itself, you see. And now, I want to add this to a DLL so other programmers can use this code without typing it out again and again.
      The thing is, it's fairly easy for me, as a human, to see what that code does. It just multiplies x by itself. However, machines don't like human things, like English words and spaces and punctuation it has to read... a computer wants to see bits and bytes, 1s and 0s, just the numbers, all killer no filler. So to accomplish that, I have to compile my code. Compiling means taking that code I can understand and making it so a computer can understand it. The result of this is bytecode.
      For example, in bytecode the number 1 might be a signal that means "multiply" and the number 2 might be a signal that means "variable." So the bytecode might look like this:
      1 - 2 - 2
      Which means "multiply the variable by itself." (Of course real bytecode is more complex than this, but the idea is to take my code and represent it entirely with a bunch of numbers in a row, so the computer won't need to read English text.)
      As such, those DLLs at one point were readable, but if you try and open them now, you'll find they've been compiled to make them fast and efficient for a computer to use, and it's completely unreadable to you.
      That said, there are tools such as IDA or OllyDbg that attempt to take compiled code and make it easier for people to read, that can appear very confusing and are mainly used by malware analysts, to figure out how viruses work and put a stop to them, and also videogame modders sometimes. These can be used to more easily inspect and modify a DLL if you have the knowledge and patience necessary to do so.

    • @pineslasher4325
      @pineslasher4325 3 года назад

      @@tomysshadow fascinating. Thank you for your informative comment.

  • @markusTegelane
    @markusTegelane 7 лет назад +1

    Windows CeMENT

    • @Thrillville109
      @Thrillville109 7 лет назад

      MarkusTegelane Hard as a rock and dumb as a brick.

  • @KSPAtlas
    @KSPAtlas 3 года назад

    The Linux equivalent is .so

  • @venicemackay9244
    @venicemackay9244 8 лет назад

    what about MAC how did that work back then it was better than PC for a lot of things more user friendly but now Mac is shit the i phone for example

    • @gentuxable
      @gentuxable 7 лет назад +2

      Back when? Mac OS/System was not less crashy than Windows before OS X which came out 2001 when XP came out and 2000 was available which was also not that crashy. I could lock up the whole System 7.5 on my PowerBook 520 by using a bad floppy disk! Cooperative multitasking doesn't work, imagine teamwork without a boss! And that was true until Mac OS 9!

    • @venicemackay9244
      @venicemackay9244 7 лет назад

      1995

  • @benoit1335
    @benoit1335 8 лет назад

    do it for linux ;)

  • @excrossbones
    @excrossbones 8 лет назад

    this was a well put together video.. however, after wrestling with it for a while, i decided to give it a thumbs down. Not to say that it was crap but because this is indeed a tricky subject to explain to casual watchers and while this was a good stab at trying to do just that, I don't feel like it was all that clear or simple to fallow unless one has some programming experience and already new how this stuff works. So, the thumbs down is more like holding you to a higher standard. If that makes any sense. I am a fan of your channel after all... if anything, I feel inspired to give it a shot myself! I might not do any better but I should critisize unless I was willing to try it myself, right?

  • @kamiboy
    @kamiboy 8 лет назад

    I'll tell you what drivers and DLL's are. They are not missed since I escaped the horror of PC's.

    • @KuraIthys
      @KuraIthys 8 лет назад +13

      If you're using any kind of computer complicated enough to have an operating system (including all modern mobile phones and tablets, macs, anything running a linux or bsd build, or other similar fairly modern OS), you haven't escaped anything, you're just not aware of how it works.

    • @richardvaughn2705
      @richardvaughn2705 7 лет назад

      Camous all computers, phones, tablets, video game consoles, etc have drivers.

  • @govindsankarmr2716
    @govindsankarmr2716 6 лет назад

    you are too fast.

  • @HDReMaster
    @HDReMaster 8 лет назад

    You sound like Chris Evans only wayyyy cooler