1
00:00:00,000 --> 00:00:10,000
In this video we'll talk about hardware essentials.

2
00:00:10,000 --> 00:00:13,920
So you need to have a little bit of understanding of computer hardware in order to address it

3
00:00:13,920 --> 00:00:17,600
the right way from the Linux operating system.

4
00:00:17,600 --> 00:00:22,240
Computer hardware ensures that you can use computers for useful purposes.

5
00:00:22,240 --> 00:00:27,520
And in the computer hardware there is the Central Processing Unit, or CPU, which receives

6
00:00:27,520 --> 00:00:31,440
and executes instructions that are issued by computer programs.

7
00:00:31,440 --> 00:00:34,240
It's a core component of your computer.

8
00:00:34,240 --> 00:00:38,799
And it works with Random Access Memory, or RAM, which holds data that currently running

9
00:00:38,799 --> 00:00:41,000
computer programs are using.

10
00:00:41,000 --> 00:00:46,599
RAM is important, and in many cases you'll never have enough of it.

11
00:00:46,599 --> 00:00:51,200
The hard disks are the components that are used to permanently store data.

12
00:00:51,200 --> 00:00:56,639
Most computers have at least one, and many computers have more hard disks.

13
00:00:56,639 --> 00:01:01,200
And peripherals are typically included to perform other operations as well.

14
00:01:01,200 --> 00:01:05,120
And the type of peripherals really depend on the functionality that you are using your

15
00:01:05,120 --> 00:01:06,959
computer for.

16
00:01:06,959 --> 00:01:09,919
To work with the hardware we have the operating system.

17
00:01:09,919 --> 00:01:14,959
The operating system is defined as the main program that makes your computer work.

18
00:01:14,959 --> 00:01:19,839
Linux is an operating system, Windows is an operating system, and there are other operating

19
00:01:19,839 --> 00:01:21,680
systems.

20
00:01:21,680 --> 00:01:25,120
And the operating system as such performs different functions.

21
00:01:25,120 --> 00:01:31,839
It controls the hardware, it manages files, it runs programs, and it provides a user interface.

22
00:01:31,839 --> 00:01:35,559
These are the core functions of the operating system.

23
00:01:35,559 --> 00:01:40,080
Now the operating system needs to communicate with the hardware, and in order to do so it

24
00:01:40,080 --> 00:01:42,400
uses drivers.

25
00:01:42,400 --> 00:01:47,440
Without a proper driver, which we call kernel modules in Linux land, the computer cannot

26
00:01:47,440 --> 00:01:50,320
do anything with the hardware.

27
00:01:50,320 --> 00:01:55,839
The Linux drivers can be provided by the open source community or by the hardware vendor.

28
00:01:55,839 --> 00:01:58,959
We call those proprietary drivers.

29
00:01:58,959 --> 00:02:04,440
Now sometimes you may find yourself in a situation where your computer works with custom hardware.

30
00:02:04,440 --> 00:02:08,919
That means hardware that is not based on a PC-like architecture.

31
00:02:08,919 --> 00:02:13,800
Your laptop, your server, and everything else is based on PC-like architecture, but on Linux

32
00:02:13,800 --> 00:02:17,639
embedded systems are commonly used as well.

33
00:02:17,679 --> 00:02:22,199
Embedded hardware systems have all the hardware on one single board, and they need to be programmed

34
00:02:22,199 --> 00:02:23,720
in a different way.

35
00:02:23,720 --> 00:02:29,039
You can think of appliances like airplane video systems or microwave ovens, and there

36
00:02:29,039 --> 00:02:31,320
are many more.

37
00:02:31,320 --> 00:02:34,440
Working with embedded systems is significantly different.

38
00:02:34,440 --> 00:02:40,039
An operating system is created, and it's flashed to a CMOS chip instead of installed on the

39
00:02:40,039 --> 00:02:42,720
hard drive of the computer.

40
00:02:42,720 --> 00:02:47,320
And on embedded Linux, specific architectures are often used.

41
00:02:47,320 --> 00:02:52,399
To build an image for specific architectures, you need to go through a process that is known

42
00:02:52,399 --> 00:02:54,759
as cross-compilation.

43
00:02:54,759 --> 00:03:00,440
That means that you prepare the image on one platform, typically that would be your laptop,

44
00:03:00,440 --> 00:03:05,199
and you flash it to another platform, and that would be the embedded device.

45
00:03:05,199 --> 00:03:10,240
A commonly used Linux-based platform to do so is Yocto.

46
00:03:10,240 --> 00:03:13,960
And Raspberry Pi is a common embedded hardware system.

47
00:03:13,960 --> 00:03:16,520
These are available for not too much money.

48
00:03:16,520 --> 00:03:19,479
It's nice to play if you want to work with embedded hardware.

