Skip to content

Commit ab7a87f

Browse files
new sections 2
1 parent 0d0fbf3 commit ab7a87f

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

ubuntu-desktop/explanation/what-ubuntu-is-made-from.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,61 @@ A package manager is used to manage your application lifecycle; install, upgrade
4444

4545
## Display server
4646

47+
This ensures that GUI applications can communicate with graphics-related hardware and input devices like the keyboard, mouse, touchscreen, etc.
48+
49+
For example, the Ubuntu Server doesn't ship with a GUI; it runs in headless mode, with no GUI. But it can [install a GUI](https://documentation.ubuntu.com/aws/aws-how-to/instances/launch-ubuntu-desktop/#install-ubuntu-desktop-and-the-snap-store),
50+
and this is possible if your hardware supports graphics components.
51+
When the GUI is installed using `sudo apt-get install -y ubuntu-desktop`, it comes pre-installed with a display server, [desktop environment](#desktop-environment), etc.
52+
53+
The display server consists of a communication protocol and a display server.
54+
55+
- Protocol: Enables communication between the GUI applications and the display server. Examples are [X11](https://en.wikipedia.org/wiki/X_Window_System_core_protocol), [Wayland](https://wayland.freedesktop.org/docs/html/), etc.
56+
- Display server: Implements the protocol. Examples are [X.Org](https://www.x.org/wiki/), [Weston](https://wayland.pages.freedesktop.org/weston/), etc.
57+
58+
Your choice of display server depends on your requirements. For example, you need smoother graphics rendering when gaming or running a modern GPU card.
59+
4760
## Services
4861

62+
These are system applications running in the background. They often automatically start when Ubuntu Desktop boots. You can
63+
manage them using the `systemctl` command-line tool. These applications manage your Wi-Fi, Bluetooth, File System, and other settings.
64+
65+
To list all your services, run:
66+
67+
```shell
68+
systemctl list-units --all --type=service
69+
```
70+
4971
## Shell
5072

73+
A shell is a command-line interface, a non-graphical way to interact with the operating system. You can access it by launching
74+
a Terminal application.
75+
76+
For example, to see your working directory, run `pwd`. To list files in your current directory, you run `ls`.
77+
See [The Linux command line for beginners](https://ubuntu.com/tutorials/command-line-for-beginners#1-overview) for more information about Linux commands.
78+
79+
A shell ends with `$` for non-root users and `#` for root users.
80+
81+
There are several types of shells available:
82+
83+
- Bourne Again Shell (bash):
84+
- shell (sh), etc.
85+
86+
You can automate tasks in a shell. To do that, define your task in a shell script that ends with a `.sh` file type. Then, make the script executable and run it.
87+
For example, you can write a script that greets you with hello and displays the time.
88+
5189
## Kernel
90+
91+
This ensures that the Ubuntu operating system can communicate with the entire hardware. It's stored in a disk drive and loaded into RAM when Ubuntu Desktop boots.
92+
93+
Since Ubuntu Desktop is often run as a virtual machine, it means the host system has its own kernel, and so does Ubuntu Desktop.
94+
You can check the path to where the Ubuntu Desktop kernel binary is stored by running:
95+
96+
```bash
97+
ls /boot/vmlinuz-$(uname -r)
98+
```
99+
100+
There are several use cases of a kernel:
101+
102+
- When a display server is launched, its protocol communicates with the kernel, which then directs the request to the GUI-related hardware (GPU, frame buffer, etc.).
103+
- Storage and CPU resources can be allocated to a launched application running [outside the kernel](https://en.wikipedia.org/wiki/User_space_and_kernel_space).
104+
- An application can be loaded to run inside the kernel using [Extended Berkeley Packet Filter (eBPF)](https://documentation.ubuntu.com/server/explanation/intro-to/ebpf/).

0 commit comments

Comments
 (0)