The Cookie Machine - Click here to drag window

DUMMY TEXT - Real text set in assets/js/theCookieMachine.js

Views: 2,251β€…    Votes:  4β€…    βœ… Solution
Tags: drivers   nvidia   kernel   xorg   nouveau  
Link: πŸ” See Original Answer on Ask Ubuntu πŸ”—

URL: https://askubuntu.com/q/1009652
Title: What is the difference between graphics drivers in the kernel, and graphics drivers for Xorg?
ID: /2018/02/25/What-is-the-difference-between-graphics-drivers-in-the-kernel_-and-graphics-drivers-for-Xorg_
Created: February 25, 2018    Edited:  February 25, 2018
Upload: November 24, 2022    Layout:  post
TOC: false    Navigation:  false    Copy to clipboard:  false


Difference between two files

Differences can be found on many levels. For this limited answer the size differences and application differences are described.

Size differences

$ ll /usr/lib/xorg/modules/drivers/nouveau_drv.so
-rw-r--r-- 1 root root 221200 Jul  6  2017 /usr/lib/xorg/modules/drivers/nouveau_drv.so
$ ll /lib/modules/4.14.20-041420-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko
-rw-r--r-- 1 root root 3646510 Feb 16 15:53 /lib/modules/4.14.20-041420-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko

The kernel Nouveau module is 16 times larger than the Xorg driver. This implies the kernel module does a lot more.

There are additional Xorg drivers some systems (especially laptops) will have:

In Debian the 2D graphics drivers for the X.Org Server are packaged
individually and called xserver-xorg-video-*.[7] After installation
the 2D graphics driver-file is found under
/usr/lib/xorg/modules/drivers/. The package xserver-xorg-video-nouveau
installs nouveau_drv.so with a size of 215β€―KiB, the proprietary Nvidia
GeForce driver installs a 8β€―MiB-sized file called nvidia_drv.so …

The nvidia_drv.so is 37 times larger than nouveau_drv.so.

Application differences

The kernel Nouveau module is a .ko file and the Xorg driver is a .drv.so file type. This question asks what the difference is between the two file types. The best answer (IMO) states:

In laymen terms:

Kernel modules (ko) run in kernel space, user modules (so) run in user
space.

Kernel spaces facilitate (or not) access to a variety of functions
that user space does not.

Kernel modules are always executed in kernel space and if buggy or
erroneous, can freeze the system.

User space is β€œprotected” and a buggy module or app is less likely to
crash the system.

⇧ Slow Boot Time on Ubuntu 17.10.1 (systemd-analyze blame results) Find the power supply hardware information for a PC using Ubuntu's command-line  β‡©