1 00:00:00,210 --> 00:00:01,680 Hello there, you beautiful people. 2 00:00:01,680 --> 00:00:06,480 And welcome to this video where we're going to be learning how to turn source code into run programs 3 00:00:06,480 --> 00:00:08,280 with our own little modifications. 4 00:00:08,280 --> 00:00:13,560 So in this video, you're going to learn how to download source code, edit it and use the new C compiler 5 00:00:13,560 --> 00:00:16,740 to turn that code into reasonable binary programs. 6 00:00:16,770 --> 00:00:21,570 You're also going to learn how to install software from source code using the make command. 7 00:00:21,570 --> 00:00:26,550 And we're also going to modify the code slightly so that we can see that it is indeed our modified code 8 00:00:26,550 --> 00:00:27,840 that is being installed. 9 00:00:27,930 --> 00:00:31,830 And by the end of the video you should have a much better understanding of the awesomeness of open source 10 00:00:31,830 --> 00:00:37,080 free software, and you should also know how to compile software from source code for yourself. 11 00:00:37,080 --> 00:00:39,360 So let's go ahead and get right into it. 12 00:00:39,840 --> 00:00:40,410 All right. 13 00:00:40,410 --> 00:00:47,430 So here we are again on the new org website and we can see on the software tab here that we can get 14 00:00:47,430 --> 00:00:49,590 each of the packages scrolling down to the bottom. 15 00:00:49,590 --> 00:00:53,310 That comes with the new operating system. 16 00:00:53,310 --> 00:00:57,780 Now, all the source code for the commands that we've run so far, such as the fine command, the RLS 17 00:00:57,780 --> 00:01:01,950 command and so on, can all be found in this core utils package over here. 18 00:01:01,950 --> 00:01:04,860 So let's go ahead and download this package and take a look at it. 19 00:01:04,860 --> 00:01:08,490 So to do that, we click on the link and it will open up another page. 20 00:01:08,490 --> 00:01:14,010 And if we scroll down to the download section here, it'll give us a couple of links and it tells us 21 00:01:14,010 --> 00:01:19,530 that the stable source releases can be found at this link and the test source releases can be found 22 00:01:19,530 --> 00:01:20,460 at this link. 23 00:01:20,460 --> 00:01:25,320 Now the difference between the stable and test is that stable source releases are known to work. 24 00:01:25,320 --> 00:01:29,880 They've been tested, whereas test source releases maybe where they're trying out new things and you 25 00:01:29,880 --> 00:01:31,050 know, it's not fully stable. 26 00:01:31,050 --> 00:01:33,750 It might it's not final. 27 00:01:33,750 --> 00:01:33,950 Right. 28 00:01:33,960 --> 00:01:35,490 So we're going to try out the stable source. 29 00:01:35,510 --> 00:01:37,050 I'm going to click on that link. 30 00:01:37,050 --> 00:01:43,200 And we can see here that we get a bunch of packages, a bunch of bundles that are that are in a list 31 00:01:43,200 --> 00:01:43,530 format. 32 00:01:43,530 --> 00:01:47,490 And the most recent versions are towards the bottom of the list. 33 00:01:47,490 --> 00:01:53,580 So if we scroll down as far as we can to the bottom of the list, we'll see we get core utils version 34 00:01:53,580 --> 00:01:55,500 8.28. 35 00:01:55,500 --> 00:01:58,380 And what we're going to click on is the one that ends in dot z. 36 00:01:58,380 --> 00:02:03,750 So not the one that ends in dot z cig just the one that ends in dot x z. 37 00:02:03,750 --> 00:02:07,020 So if I go ahead and click on that right now, we'll see that. 38 00:02:07,020 --> 00:02:10,560 We see a pop up come here and I'm going to click Save File, I'm going to click. 39 00:02:10,560 --> 00:02:11,280 Okay. 40 00:02:11,280 --> 00:02:13,950 And that has been saved in our downloads folder. 41 00:02:13,950 --> 00:02:19,320 So if I just if I head over to our downloads folder right now in the terminal and you can see at the 42 00:02:19,320 --> 00:02:24,000 minute I'm in our home directory, I go to the downloads folder and list it out and you can see that 43 00:02:24,000 --> 00:02:29,940 we have got this core utils version 8.2 8xz. 44 00:02:29,970 --> 00:02:37,260 Now that's a compressed tar archive that's been compressed using the x z compression algorithm. 45 00:02:37,260 --> 00:02:42,210 So if I look at that, we'll see with the find command, we'll see that it's x, z, compressed data. 46 00:02:42,240 --> 00:02:48,270 Now X Z is just a compression algorithm, just like the B zip or the GZIP compression algorithms that 47 00:02:48,270 --> 00:02:52,530 we touched on in the file compression and archiving video very briefly, because it's not one of the 48 00:02:52,530 --> 00:02:56,400 more common algorithms, but we can unpack it using the TAA Command. 49 00:02:56,730 --> 00:02:57,780 So let's just do that. 50 00:02:57,780 --> 00:03:03,630 What we can do is we can type TAR and as you know, how to how to extract a file, you give it the X 51 00:03:03,630 --> 00:03:06,240 and F options and then you tell it which archive. 52 00:03:06,240 --> 00:03:11,610 But to extract through the zip compression algorithm, you need to give it the capital j option. 53 00:03:11,610 --> 00:03:16,860 So the lower case j option is for B zip two, but the capital j option is for x zip. 54 00:03:16,860 --> 00:03:20,580 And if you want more information on this, check out the file compression and archiving cheat sheet 55 00:03:20,580 --> 00:03:22,350 that I gave you in the appropriate video. 56 00:03:22,350 --> 00:03:22,770 Okay. 57 00:03:22,770 --> 00:03:28,290 So if we go ahead and press enter, we'll see that we didn't get any information because we didn't give 58 00:03:28,290 --> 00:03:29,460 the talk about the V option. 59 00:03:29,460 --> 00:03:35,670 But if now I use LZ, we'll see that we've now got a new folder called Core Utils 8.28. 60 00:03:35,670 --> 00:03:40,560 So if we see the internet, so we see the intercall utils and take a look, we can see that we've got 61 00:03:40,560 --> 00:03:42,360 a whole bunch of stuff in there. 62 00:03:42,360 --> 00:03:42,720 Okay? 63 00:03:42,840 --> 00:03:50,280 But we can specifically pay attention to this CRC directory now that CRC is short for source and that's 64 00:03:50,280 --> 00:03:51,630 where the source code is kept. 65 00:03:51,630 --> 00:03:57,840 So if we seed into CRC and take a look by clicking the screen, take a look, we can see that we've 66 00:03:57,840 --> 00:03:59,880 got a whole bunch of files in here. 67 00:03:59,880 --> 00:04:02,760 Let's pipe that ls data into the less command. 68 00:04:02,910 --> 00:04:03,690 First of all. 69 00:04:03,720 --> 00:04:07,770 Now, now this makes a bit easier to scroll up and down and you see now we can see that we get loads 70 00:04:07,770 --> 00:04:10,230 of files that end in dot C. 71 00:04:10,230 --> 00:04:16,290 Now that dot C indicates to us that these files are all written in the C programming language, which 72 00:04:16,290 --> 00:04:21,570 is a very common programming language that the new software is written in, given the date of when it 73 00:04:21,570 --> 00:04:24,810 was written being in, you know, the 1980s, 1990s. 74 00:04:24,810 --> 00:04:28,770 So let's take a look at the code behind the LS command. 75 00:04:28,770 --> 00:04:34,650 For example, we could lhs let's just grep out ls we can see that we've got this ls dot c file going 76 00:04:34,650 --> 00:04:35,100 on here. 77 00:04:35,100 --> 00:04:36,120 So let's take a look at it. 78 00:04:36,120 --> 00:04:40,410 Nano ls dot C and there we are. 79 00:04:40,410 --> 00:04:43,590 This is actually the source code in here. 80 00:04:43,590 --> 00:04:46,140 This is all the source code and we maximize it a bit. 81 00:04:46,560 --> 00:04:48,900 The source code for the LS command. 82 00:04:48,900 --> 00:04:50,430 So isn't that awesome right now? 83 00:04:50,430 --> 00:04:55,710 If you had the time, the ability and the intention, you could go through this code and study exactly 84 00:04:55,710 --> 00:04:59,850 what it was doing, which is one of the freedoms that the free software movement aims to. 85 00:04:59,890 --> 00:05:00,460 I give you. 86 00:05:00,970 --> 00:05:06,700 But we can actually also modify this code and recompile it into a running software, which is what we're 87 00:05:06,700 --> 00:05:07,420 going to do now. 88 00:05:07,450 --> 00:05:12,760 Now, this isn't a course on C programming, but in every C program there is a function in there called 89 00:05:12,760 --> 00:05:16,250 the main function, and it's a very important function that always runs. 90 00:05:16,270 --> 00:05:16,640 Okay. 91 00:05:16,690 --> 00:05:21,580 Now I'm going to modify that function so that whenever LHS runs, the computer will print out. 92 00:05:21,610 --> 00:05:23,890 Hello there, you beautiful people onto the screen. 93 00:05:24,100 --> 00:05:28,890 Okay, so I'm going to type a bit of code into the main function that makes that happen. 94 00:05:28,900 --> 00:05:33,550 Now, after preparing a bit for this lecture, I found that the main function in this file starts at 95 00:05:33,550 --> 00:05:36,430 about line 1443. 96 00:05:36,430 --> 00:05:42,550 So if we use Nano's, go to line function using the control and underscore option. 97 00:05:42,550 --> 00:05:48,280 If I put in line one, four, four, three and press enter, you can see that we've ended up at the 98 00:05:48,280 --> 00:05:50,080 main function magic. 99 00:05:50,080 --> 00:05:53,350 So I'm going to line the code right at the top here that does that printing stuff. 100 00:05:53,350 --> 00:05:56,590 So print F and I'm going to put in there. 101 00:05:57,100 --> 00:06:00,040 Hello there, you beautiful people. 102 00:06:00,040 --> 00:06:04,570 And make sure that it ends on a new line with the backslash n character right there. 103 00:06:05,020 --> 00:06:07,480 And I'm just going to tab this over. 104 00:06:07,480 --> 00:06:13,000 It doesn't make a difference, but you know that that's a bit nicer and let's try and get rid of this 105 00:06:13,000 --> 00:06:14,260 extra space at the end line. 106 00:06:14,260 --> 00:06:15,100 It doesn't matter. 107 00:06:15,100 --> 00:06:16,390 But okay, there we are. 108 00:06:16,390 --> 00:06:18,400 So we've put in the function there. 109 00:06:18,430 --> 00:06:18,980 Hello there. 110 00:06:19,060 --> 00:06:22,450 Beautiful people with a new line character. 111 00:06:22,690 --> 00:06:25,020 So the line, it goes to a new line. 112 00:06:25,030 --> 00:06:31,930 Now, if we save the file with control and O and we exit with control of X, we've now modified the 113 00:06:31,930 --> 00:06:34,300 LS commands code, so that's pretty cool. 114 00:06:34,300 --> 00:06:38,860 But now how do we turn this code into a reasonable program and install it on our computer? 115 00:06:39,040 --> 00:06:44,590 Well, because they're written in C, the code needs to be compiled into machine language before it 116 00:06:44,590 --> 00:06:45,190 can be run. 117 00:06:45,190 --> 00:06:49,990 And for that we need a compiler and more specifically a compiler for the C programming language. 118 00:06:50,020 --> 00:06:57,490 Now the new C compiler or CC is the compiler that's used on GNU Linux Systems and we can get it by entering 119 00:06:57,490 --> 00:07:04,810 the following command and that following command is sudo apt get install DCC now for now, I don't want 120 00:07:04,810 --> 00:07:10,300 you to worry too much about this because we'll be explaining in great detail later on what this command 121 00:07:10,300 --> 00:07:12,850 actually means and we'll be doing it in this section of the course. 122 00:07:12,850 --> 00:07:17,110 But in short, what we're doing is we're telling the computer to look on the software repositories available 123 00:07:17,110 --> 00:07:22,090 for Ubuntu and download and install the new C compiler or GCC package. 124 00:07:22,120 --> 00:07:26,410 Again, this will become much clearer in the next few videos, but just type it as I have done so here 125 00:07:26,410 --> 00:07:33,040 and when you're happy press enter and because we've used sudo it will ask us for our password just like 126 00:07:33,040 --> 00:07:34,660 when we've used sudo before. 127 00:07:34,660 --> 00:07:38,080 So I'm just going to enter that in there hopefully correctly. 128 00:07:38,080 --> 00:07:38,950 Fingers crossed. 129 00:07:38,950 --> 00:07:39,280 Nope. 130 00:07:39,580 --> 00:07:40,360 Let's try it again. 131 00:07:41,590 --> 00:07:42,220 There we go. 132 00:07:42,220 --> 00:07:48,310 And now it's saying, hey, we've got to install a whole bunch of packages in order to get this GCC 133 00:07:48,310 --> 00:07:48,910 package. 134 00:07:48,910 --> 00:07:52,180 And it's going to be about 72 megabytes of additional disk space. 135 00:07:52,180 --> 00:07:53,650 Do you want to continue now? 136 00:07:53,650 --> 00:07:54,280 I can just type. 137 00:07:54,310 --> 00:07:55,450 Yes, I'm just going to type. 138 00:07:55,450 --> 00:07:59,170 Why press enter and it's going to go ahead and do that. 139 00:08:00,460 --> 00:08:06,670 And this might take a bit of while depending on your Internet connection, but it appears to have downloaded 140 00:08:06,670 --> 00:08:09,730 it in my case and now it's just doing the installation. 141 00:08:09,730 --> 00:08:14,230 It's going to start unpacking each of those different packages that it's download and we are actually 142 00:08:14,230 --> 00:08:16,450 seeing an installation process happen right now. 143 00:08:16,450 --> 00:08:21,190 We will look into this a lot more in more detail later on in the course, but you can see that we didn't 144 00:08:21,190 --> 00:08:25,360 have to download any wizard and click next, next, next, next, next, agree to any terms of conditions 145 00:08:25,360 --> 00:08:26,170 or anything like that. 146 00:08:26,170 --> 00:08:32,740 Because all of this software is under the new public license and it all gives you the same, same, 147 00:08:32,740 --> 00:08:36,760 uh, different, uh, the same freedoms as each other. 148 00:08:37,179 --> 00:08:39,610 So now that's gone ahead and installed, we didn't have to do anything. 149 00:08:39,610 --> 00:08:42,669 We've now installed the new C compiler and a whole bunch of other stuff. 150 00:08:42,669 --> 00:08:45,370 So now we're ready to compile our code. 151 00:08:45,370 --> 00:08:48,220 Okay, so let's turn our attention to our beautiful source code. 152 00:08:48,220 --> 00:08:53,110 Now, because different computers have different architectures, we need to configure the installation 153 00:08:53,110 --> 00:08:55,120 of this code to our specific machine. 154 00:08:55,240 --> 00:08:58,000 And there's a script that comes with that called Configure. 155 00:08:58,000 --> 00:09:01,540 Now we're in the source, we're in the source folder here. 156 00:09:01,540 --> 00:09:05,710 So let's just go back up the folder with CD, dot, dot to go back up a folder, clear the screen and 157 00:09:05,710 --> 00:09:06,430 take another look. 158 00:09:06,430 --> 00:09:10,780 And you can see here there's a script called Configure and we know it's a script because it's green. 159 00:09:10,780 --> 00:09:15,280 Okay, so let's run that by typing, bash configure and we press enter. 160 00:09:15,490 --> 00:09:22,390 And what this is doing is it's configuring the new C compiler, the GTC, to get make sure that when 161 00:09:22,390 --> 00:09:27,730 it compiles all this, the software that we tell it to, it's going to do it in a way that's appropriate 162 00:09:27,730 --> 00:09:30,070 for our computer's architecture. 163 00:09:31,000 --> 00:09:32,620 And it's making the appropriate adjustments. 164 00:09:32,620 --> 00:09:38,170 And the important thing that this configure script does besides configuring the new C compiler is that 165 00:09:38,170 --> 00:09:40,720 it creates a new file called the Makefile. 166 00:09:40,720 --> 00:09:46,390 Now the Makefile is responsible for the installation of this new software package, but to make the 167 00:09:46,390 --> 00:09:52,300 Makefile work, which is a massive tongue twister, by the way, we need a new command called Make. 168 00:09:52,300 --> 00:09:57,340 So when this thing has finished configuring, we're going to install the make command in a very similar 169 00:09:57,340 --> 00:09:59,680 way to the we just installed the new. 170 00:09:59,800 --> 00:10:01,000 C compiler. 171 00:10:01,060 --> 00:10:05,830 So if we just sit tight here for a second while we see all this beautiful text flying up the screen, 172 00:10:06,460 --> 00:10:07,390 it looks pretty awesome, though, right? 173 00:10:07,400 --> 00:10:11,240 It's like something you might see on like a unlike a film with hackers, you know, and stuff like that. 174 00:10:11,240 --> 00:10:13,420 And it's we're literally doing that right now. 175 00:10:13,420 --> 00:10:15,040 So so be very proud of yourself. 176 00:10:16,120 --> 00:10:16,510 Okay. 177 00:10:16,510 --> 00:10:17,530 So now that's finished. 178 00:10:17,710 --> 00:10:22,720 If we just take a look in this directory, we should be able to see this new file here called the Makefile. 179 00:10:22,720 --> 00:10:26,440 Now, the Makefile is an important file, but we need to to be able to run that. 180 00:10:26,440 --> 00:10:28,030 We need to have the main command. 181 00:10:28,030 --> 00:10:33,640 So to get that we're going to type sudo apt get install make and when we press enter, it's going to 182 00:10:33,640 --> 00:10:39,190 go through a very similar process of installation and now that's all installed very quick, very easy 183 00:10:39,190 --> 00:10:40,090 to install that one. 184 00:10:40,090 --> 00:10:40,510 Okay. 185 00:10:40,510 --> 00:10:46,660 So now when we're in the same folder as the Makefile, if we just run the make command, you can see 186 00:10:46,660 --> 00:10:53,650 that it's going to go through and it's going to compile all of the all of the C files that it finds 187 00:10:53,650 --> 00:10:55,570 have not been compiled recently in. 188 00:10:55,570 --> 00:11:03,790 There are still some changes outstanding, which is effectively all of the C code in this folder, including 189 00:11:03,790 --> 00:11:05,140 our LS file. 190 00:11:05,590 --> 00:11:13,600 So what this is doing is it's compiling it all into, into machine code, into binary code that can 191 00:11:13,600 --> 00:11:15,190 be run on the computer. 192 00:11:15,220 --> 00:11:15,440 Okay. 193 00:11:15,520 --> 00:11:19,690 So this is what's necessary when you run a compiled language like the C programming language. 194 00:11:19,690 --> 00:11:26,260 So when that's done, we'll be able to install the newly compiled programs. 195 00:11:26,260 --> 00:11:31,600 But I'm going to cut the video here to save time and, you know, stop you waiting around too much. 196 00:11:32,930 --> 00:11:33,290 Okay. 197 00:11:33,290 --> 00:11:34,220 Now that's completed. 198 00:11:34,220 --> 00:11:38,250 So what's happened is we found the code for the LZ command. 199 00:11:38,270 --> 00:11:38,560 Okay? 200 00:11:38,720 --> 00:11:45,320 We edited that code, and then we installed something called the new C compiler, which is what's required 201 00:11:45,320 --> 00:11:50,210 to turn that code into machine code that the computer needs in order to run. 202 00:11:50,210 --> 00:11:50,630 Okay. 203 00:11:50,660 --> 00:11:57,050 So what we did is we installed the C compiler and we had to configure that compiler before it would 204 00:11:57,050 --> 00:12:00,530 could work correctly for our computers specific requirements. 205 00:12:00,770 --> 00:12:05,960 So we configure the compiler and then when it was configured, we've just run it using the make command 206 00:12:06,350 --> 00:12:11,600 to make sure that every single bit of code is now turned into machine code. 207 00:12:11,600 --> 00:12:11,910 Okay. 208 00:12:12,020 --> 00:12:17,120 So the only step that remains now that we've got this machine code is to install that machine code in 209 00:12:17,120 --> 00:12:20,180 the required places on our path for it to actually work. 210 00:12:20,180 --> 00:12:26,120 And the way that we can do that is using the pseudo sudo make install command. 211 00:12:26,120 --> 00:12:31,700 So if I click the screen type sudo make install, what it's doing is it's installing all of the stuff 212 00:12:31,850 --> 00:12:32,120 like that. 213 00:12:32,120 --> 00:12:33,080 And that was very, very quick. 214 00:12:33,080 --> 00:12:38,480 We've now installed each of the different pieces of software that came with this version 8.28 of the 215 00:12:38,480 --> 00:12:40,040 core UTILS package. 216 00:12:40,040 --> 00:12:40,400 Okay. 217 00:12:40,520 --> 00:12:43,610 So let's take a look at how that works. 218 00:12:43,610 --> 00:12:44,030 Okay. 219 00:12:44,030 --> 00:12:49,970 So if we just close our terminal and re-open it again, then now if we run the LZ command, we can see 220 00:12:49,970 --> 00:12:55,280 that it says hello there, you beautiful people, every time that it runs because we modified our code 221 00:12:55,280 --> 00:12:56,750 and installed it. 222 00:12:56,750 --> 00:12:59,780 How awesome is that? 223 00:12:59,780 --> 00:13:00,020 Right. 224 00:13:00,020 --> 00:13:03,020 So hooray for open source and free software. 225 00:13:03,020 --> 00:13:07,490 So this is actually a much faster process in reality than what I've showed you here. 226 00:13:07,490 --> 00:13:12,830 So to change back, we would just re-edit the source code, recompile with make, then reinstall with 227 00:13:12,830 --> 00:13:13,760 make install. 228 00:13:13,760 --> 00:13:19,790 So if I head back to our ad downloads, it's actually a much faster process when you get a bit better 229 00:13:19,790 --> 00:13:20,180 with it. 230 00:13:20,180 --> 00:13:21,020 So here we are. 231 00:13:21,020 --> 00:13:22,670 We're in our core utils file. 232 00:13:22,670 --> 00:13:27,380 We're going to go over to our source code folder that we're in there. 233 00:13:27,380 --> 00:13:27,790 Okay. 234 00:13:27,800 --> 00:13:29,300 So let's go to Nano. 235 00:13:29,330 --> 00:13:37,820 LZ C, let's head over to line 1443 and we're going to delete this, this line that I put in there, 236 00:13:37,820 --> 00:13:38,900 save the file. 237 00:13:38,900 --> 00:13:39,400 Okay? 238 00:13:39,440 --> 00:13:47,210 Now if I just clear the screen now all we have to do is do make and sudo make install. 239 00:13:49,550 --> 00:13:50,990 Oh because I'm in the wrong folder. 240 00:13:50,990 --> 00:13:51,590 There we go. 241 00:13:51,620 --> 00:13:55,640 Make and sudo make install. 242 00:13:56,880 --> 00:13:56,990 Okay. 243 00:13:57,090 --> 00:14:01,740 So now notice how the make command is just really compiling the RLS command because it notices that's 244 00:14:01,740 --> 00:14:02,510 what's different. 245 00:14:02,520 --> 00:14:06,870 Let me run with our end to my password there so it can install it. 246 00:14:06,870 --> 00:14:11,850 And now when I close the terminal and reopen it and use the LZ command, now it's back to normal. 247 00:14:11,850 --> 00:14:13,650 So you see how much faster that was, right? 248 00:14:13,680 --> 00:14:19,800 Once we've configured the C compiler once or at least for F for the package, it's really fast to just 249 00:14:19,800 --> 00:14:22,020 go and edit, edit it thereafter. 250 00:14:23,610 --> 00:14:28,200 That's because the main command knew as well that it only needed to recompile the code that was affected 251 00:14:28,200 --> 00:14:32,400 by our change, not the whole package which was new to the system the first time we did it. 252 00:14:32,410 --> 00:14:36,810 Okay, so make is a very clever program and as I say, now that we've installed the new version of the 253 00:14:36,810 --> 00:14:42,180 LZ program, now the hello the You Beautiful People message has disappeared and it's back the way that 254 00:14:42,180 --> 00:14:42,810 it was. 255 00:14:43,700 --> 00:14:48,200 So there you are you beautiful people in this video you've seen her to access source code from the dot 256 00:14:48,200 --> 00:14:48,980 org website. 257 00:14:49,010 --> 00:14:54,650 How to modify that source code and how to use, configure, make and make install to install the new 258 00:14:54,650 --> 00:14:55,310 software. 259 00:14:55,340 --> 00:15:00,440 Now the great thing is you can access and modify the source code for everything on a GNU Linux operating 260 00:15:00,440 --> 00:15:00,890 system. 261 00:15:00,890 --> 00:15:05,750 And if you care to exercise it, you have absolute power over how your computer works. 262 00:15:05,750 --> 00:15:11,180 So hopefully you can see how having open source free software running on your computer is a great asset. 263 00:15:11,180 --> 00:15:16,550 And you also that you can appreciate the effort that the pioneers of such a system took to build it. 264 00:15:16,550 --> 00:15:20,660 But the process that we went through in this video is relatively lengthy, and sometimes you just want 265 00:15:20,660 --> 00:15:23,030 to install software and get on with what you were doing. 266 00:15:23,030 --> 00:15:28,250 So for this, there are massive bodies of maintained and pre compiled code in what are known as the 267 00:15:28,250 --> 00:15:29,870 software repositories. 268 00:15:29,870 --> 00:15:34,220 And we use the repositories in this section actually to install the new C compiler. 269 00:15:34,220 --> 00:15:39,410 And the make command and software repositories are what you'll use to install software 99% of the time 270 00:15:39,410 --> 00:15:42,410 and they come with so many really cool features. 271 00:15:42,410 --> 00:15:46,940 So now that you understand that, yes, you can look up source code and modify how your computer works 272 00:15:47,270 --> 00:15:49,040 however you like manually. 273 00:15:49,040 --> 00:15:53,900 Let's take a look at how the software repositories which give you access to a massive library of software 274 00:15:53,900 --> 00:15:56,150 that is priority pre compiled and ready to go. 275 00:15:56,150 --> 00:15:58,250 So have a look at how they work as well. 276 00:15:58,250 --> 00:16:01,820 So for all that goodness, I'll see you in the next video.