1 00:00:00,850 --> 00:00:01,890 In this video, 2 00:00:01,940 --> 00:00:07,670 I will talk about the things you need to know before you take this course. The projects in this course 3 00:00:07,670 --> 00:00:13,550 can be running both in virtual machine and real machine. If you want to test the projects in your computer. 4 00:00:13,820 --> 00:00:20,810 I highly recommend using a test computer with no hard disk and other peripherals. 5 00:00:20,810 --> 00:00:23,030 And the processor needs to support 1g huge page. 6 00:00:23,570 --> 00:00:25,640 So your test computer should be like this, 7 00:00:26,150 --> 00:00:31,010 the processor should be manufactured in year 2013 or later. 8 00:00:31,610 --> 00:00:35,380 The computer has no other devices except cpu and ram. 9 00:00:36,170 --> 00:00:39,800 If you want to use a keyboard, you need a ps/2 keyboard. 10 00:00:40,670 --> 00:00:46,910 The reason we use test computers is that unlike we write user programs, the operating system runs in bare metal machines. 11 00:00:46,910 --> 00:00:50,860 our code has control of the computer. 12 00:00:51,350 --> 00:00:53,450 When we test the code in the real machine, 13 00:00:53,760 --> 00:01:00,230 if our code contains errors and we don’t have interrupt handlers, the computer will restart. 14 00:01:00,860 --> 00:01:03,700 As a result, we could reset the computer frequently. 15 00:01:04,340 --> 00:01:08,150 Therefore, running the projects in a test computer is a good choice. 16 00:01:09,420 --> 00:01:15,080 What we are going to talk about next is usb flash drive. In this course, 17 00:01:15,090 --> 00:01:18,090 we write our system in a usb flash drive and boot the computer from it. 18 00:01:19,110 --> 00:01:25,200 When you write the project into usb flash drive, I recommend using rufus to do the task if you use windows 19 00:01:25,200 --> 00:01:25,740 . 20 00:01:26,590 --> 00:01:32,800 Because rufus can list the usb drive for you and if you don’t plug usb drive in the computer, 21 00:01:33,160 --> 00:01:39,880 no device will be showing in the list. So it can prevent us from writing into a wrong device which could overwrite 22 00:01:39,880 --> 00:01:41,100 the data in that device. 23 00:01:41,830 --> 00:01:44,110 We will see how to use it in the next section. 24 00:01:45,520 --> 00:01:51,880 Now, let's talk about the source code itself, this course focuses on teaching you how to write a simple 25 00:01:51,880 --> 00:01:55,240 system and show you the fundamentals of operating system. 26 00:01:55,810 --> 00:01:58,840 Building a simple operating system is not an easy task. 27 00:01:59,560 --> 00:02:04,850 It requires us to be familiar with the hardware architecture and low-level stuffs. 28 00:02:06,230 --> 00:02:12,170 The primary goal of this caucus is making sure that you understand the content in each lecture and what 29 00:02:12,170 --> 00:02:13,460 the code is actually doing. 30 00:02:14,460 --> 00:02:20,820 The content is delivering in a concise, easy to understand way, therefore I will keep the minimum checks 31 00:02:20,820 --> 00:02:23,220 in the code. In the following lectures, 32 00:02:23,250 --> 00:02:28,140 you could see we still have a lot of checks in the code to keep the operating system working. 33 00:02:28,980 --> 00:02:35,070 Adding more checks could distract you from the real stuff of the course. Once you learn the details 34 00:02:35,070 --> 00:02:39,840 of building the system, you can add more checks yourself to make the system more robust.