| .pad | |||
| 0 | 30 B | ||
| 1 | 1.1 MB | ||
| 2 | 1.84 MB | ||
| 3 | 750.32 KB | ||
| 4 | 446.04 KB | ||
| 5 | 1.91 MB | ||
| 6 | 752.07 KB | ||
| 7 | 256.24 KB | ||
| 8 | 254.66 KB | ||
| 9 | 1.92 MB | ||
| 10 | 930.8 KB | ||
| 11 | 1.16 MB | ||
| 12 | 1017.81 KB | ||
| 13 | 1.66 MB | ||
| 14 | 963.66 KB | ||
| 15 | 263.98 KB | ||
| 16 | 1.66 MB | ||
| 17 | 1.94 MB | ||
| 18 | 386.39 KB | ||
| 19 | 1.07 MB | ||
| 20 | 1.99 MB | ||
| 21 | 2 MB | ||
| 22 | 1.6 MB | ||
| 23 | 100.2 KB | ||
| 24 | 1.18 MB | ||
| 25 | 640.6 KB | ||
| 26 | 1.56 MB | ||
| 27 | 1.3 MB | ||
| 28 | 196.06 KB | ||
| 29 | 1.5 MB | ||
| 30 | 236.01 KB | ||
| 31 | 453.61 KB | ||
| 32 | 1.89 MB | ||
| 33 | 911.8 KB | ||
| 34 | 1.57 MB | ||
| 35 | 136.51 KB | ||
| 36 | 803.01 KB | ||
| 37 | 807.13 KB | ||
| 38 | 514.64 KB | ||
| 39 | 1.14 MB | ||
| 40 | 1.94 MB | ||
| 41 | 444.92 KB | ||
| 42 | 1.63 MB | ||
| 43 | 1.09 MB | ||
| 44 | 668.7 KB | ||
| 45 | 852.22 KB | ||
| 46 | 813.65 KB | ||
| 47 | 799.84 KB | ||
| 48 | 1.29 MB | ||
| 49 | 1.35 MB | ||
| 50 | 1.71 MB | ||
| 51 | 434.13 KB | ||
| 52 | 717.31 KB | ||
| 53 | 270 KB | ||
| 54 | 1.58 MB | ||
| 55 | 1.44 MB | ||
| 56 | 936.93 KB | ||
| 57 | 1.95 MB | ||
| 58 | 1.03 MB | ||
| 59 | 1.12 MB | ||
| 60 | 36.61 KB | ||
| 61 | 788.73 KB | ||
| 62 | 1.2 MB | ||
| 63 | 283.34 KB | ||
| 64 | 1.47 MB | ||
| 65 | 537.69 KB | ||
| 66 | 1.43 MB | ||
| 67 | 1.68 MB | ||
| 68 | 1.69 MB | ||
| 69 | 714.48 KB | ||
| 70 | 1.51 MB | ||
| 71 | 1.2 MB | ||
| 72 | 152 KB | ||
| 73 | 328.4 KB | ||
| 74 | 1.01 MB | ||
| 75 | 1.27 MB | ||
| 76 | 1.55 MB | ||
| 77 | 1.61 MB | ||
| 78 | 728.15 KB | ||
| 79 | 1.09 MB | ||
| 80 | 1.46 MB | ||
| 81 | 257.74 KB | ||
| 82 | 1.29 MB | ||
| 83 | 1.65 MB | ||
| 84 | 1.06 MB | ||
| 85 | 534.67 KB | ||
| 86 | 834.44 KB | ||
| 87 | 1008.76 KB | ||
| 88 | 1.4 MB | ||
| 89 | 79.03 KB | ||
| 90 | 469.71 KB | ||
| 91 | 1.41 MB | ||
| 92 | 292.85 KB | ||
| 93 | 850.77 KB | ||
| 94 | 45.73 KB | ||
| 95 | 1.45 MB | ||
| 96 | 1.68 MB | ||
| 97 | 1.07 MB | ||
| 98 | 35.79 KB | ||
| 99 | 629.69 KB | ||
| 100 | 955.73 KB | ||
| 101 | 495.32 KB | ||
| 102 | 1.43 MB | ||
| 103 | 326.24 KB | ||
| 104 | 918.18 KB | ||
| 105 | 1.36 MB | ||
| 106 | 898.48 KB | ||
| 107 | 1.13 MB | ||
| 108 | 290.79 KB | ||
| 109 | 1.04 MB | ||
| 110 | 1.51 MB | ||
| 111 | 675.58 KB | ||
| 112 | 1.77 MB | ||
| 113 | 1.88 MB | ||
| 114 | 199.37 KB | ||
| 115 | 832.53 KB | ||
| 116 | 1.01 MB | ||
| 117 | 1.33 MB | ||
| 118 | 79.23 KB | ||
| 119 | 1.12 MB | ||
| 120 | 1.59 MB | ||
| 121 | 1.03 MB | ||
| 122 | 1.61 MB | ||
| 123 | 497.58 KB | ||
| 124 | 510.79 KB | ||
| 125 | 990.03 KB | ||
| 126 | 371.71 KB | ||
| 127 | 1.44 MB | ||
| 128 | 598.89 KB | ||
| TutsNode.com.txt | 63 B | ||
| [TGx]Downloaded from torrentgalaxy.to .txt | 585 B | ||
| [TutsNode.com] - Developing a Multithreaded Kernel From Scratch! | |||
| 1. Introduction | |||
| 1. Introduction.mp4 | 92.97 MB | ||
| 1. Introduction.srt | 6.84 KB | ||
| 2. Setup And A Brief Explanation Of Kernel Development | |||
| 1. What Is Memory.mp4 | 22.99 MB | ||
| 1. What Is Memory.srt | 4.23 KB | ||
| 2. The Boot Process.mp4 | 40.57 MB | ||
| 2. The Boot Process.srt | 9.45 KB | ||
| 3. Installing What We Need For Real Mode Development.mp4 | 18.39 MB | ||
| 3. Installing What We Need For Real Mode Development.srt | 2.5 KB | ||
| 3. Real Mode Development | |||
| 1. Hello World Bootloader.mp4 | 66.35 MB | ||
| 1. Hello World Bootloader.srt | 20.65 KB | ||
| 1.1 Hello World Bootloader Commit.html | 146 B | ||
| 10. Disk Access And How It Works.mp4 | 15.64 MB | ||
| 10. Disk Access And How It Works.srt | 8.22 KB | ||
| 11. Reading from the hard disk.mp4 | 87.47 MB | ||
| 11. Reading from the hard disk.srt | 16.56 KB | ||
| 2. Understanding Real Mode.mp4 | 25.34 MB | ||
| 2. Understanding Real Mode.srt | 6.07 KB | ||
| 3. Segmentation Memory Model.mp4 | 45.39 MB | ||
| 3. Segmentation Memory Model.srt | 11.15 KB | ||
| 4. Improving Our Bootloader.mp4 | 31.12 MB | ||
| 4. Improving Our Bootloader.srt | 9.19 KB | ||
| 5. Preparing our bootloader to be booted on real hardware.mp4 | 41.52 MB | ||
| 5. Preparing our bootloader to be booted on real hardware.srt | 7.03 KB | ||
| 6. Writing our bootloader to a USB stick.mp4 | 17.5 MB | ||
| 6. Writing our bootloader to a USB stick.srt | 3.86 KB | ||
| 7. Booting the bootloader.mp4 | 14.56 MB | ||
| 7. Booting the bootloader.srt | 845 B | ||
| 8. The Interrupt Vector Table Explained.mp4 | 18.97 MB | ||
| 8. The Interrupt Vector Table Explained.srt | 4.69 KB | ||
| 9. Implementing our own interrupts in real mode.mp4 | 57.71 MB | ||
| 9. Implementing our own interrupts in real mode.srt | 8.74 KB | ||
| 4. Protected Mode Development | |||
| 1. What is Protected Mode.mp4 | 43.07 MB | ||
| 1. What is Protected Mode.srt | 8.95 KB | ||
| 10. Text Mode Explained.mp4 | 17.03 MB | ||
| 10. Text Mode Explained.srt | 3.49 KB | ||
| 100. Process Arguments - Part 2.mp4 | 279.75 MB | ||
| 100. Process Arguments - Part 2.srt | 35.25 KB | ||
| 100.1 Source Code.html | 146 B | ||
| 101. Process Arguments - Part 3.mp4 | 52.55 MB | ||
| 101. Process Arguments - Part 3.srt | 7.54 KB | ||
| 101.1 Source Code.html | 146 B | ||
| 102. Implementing A 'System' Command.mp4 | 188.82 MB | ||
| 102. Implementing A 'System' Command.srt | 23.54 KB | ||
| 102.1 Source Code.html | 146 B | ||
| 103. Implementing program termination.mp4 | 154.11 MB | ||
| 103. Implementing program termination.srt | 20.53 KB | ||
| 103.1 Source Code.html | 146 B | ||
| 104. Handling program crashes.mp4 | 86.32 MB | ||
| 104. Handling program crashes.srt | 11.08 KB | ||
| 105. Creating an exit command.mp4 | 55.96 MB | ||
| 105. Creating an exit command.srt | 7.41 KB | ||
| 105.1 Source Code.html | 146 B | ||
| 106. Handling caps lock, upper case and lower case letters.mp4 | 116.71 MB | ||
| 106. Handling caps lock, upper case and lower case letters.srt | 13.45 KB | ||
| 106.1 Source Code.html | 146 B | ||
| 107. Running multiple tasks at the same time multi-tasking.mp4 | 76.73 MB | ||
| 107. Running multiple tasks at the same time multi-tasking.srt | 8.17 KB | ||
| 107.1 Source Code.html | 146 B | ||
| 11. Writing To The Screen, Hello World Tutorial.mp4 | 153.11 MB | ||
| 11. Writing To The Screen, Hello World Tutorial.srt | 20.18 KB | ||
| 11.1 Source Code.html | 146 B | ||
| 12. Interrupt Descriptor Table Explained.mp4 | 59.54 MB | ||
| 12. Interrupt Descriptor Table Explained.srt | 12.78 KB | ||
| 13. Implementing The Interrupt Descriptor Table.mp4 | 253.01 MB | ||
| 13. Implementing The Interrupt Descriptor Table.srt | 33.13 KB | ||
| 13.1 Source Code.html | 146 B | ||
| 14. Implementing In and Out Functions.mp4 | 84.49 MB | ||
| 14. Implementing In and Out Functions.srt | 10.89 KB | ||
| 14.1 Source Code.html | 146 B | ||
| 15. Programmable Interrupt Controller Explained.mp4 | 28.96 MB | ||
| 15. Programmable Interrupt Controller Explained.srt | 6.51 KB | ||
| 15.1 Source Code.html | 146 B | ||
| 16. Programmable Interrupt Controller Implementation.mp4 | 132.91 MB | ||
| 16. Programmable Interrupt Controller Implementation.srt | 15.99 KB | ||
| 16.1 Source Code.html | 146 B | ||
| 17. Understanding The Heap And Memory Allocation.mp4 | 81.85 MB | ||
| 17. Understanding The Heap And Memory Allocation.srt | 30.35 KB | ||
| 18. Implementing Our Heap.mp4 | 630.1 MB | ||
| 18. Implementing Our Heap.srt | 83.64 KB | ||
| 18.1 Source Code.html | 146 B | ||
| 19. Creating the enable interrupts function.mp4 | 24.12 MB | ||
| 19. Creating the enable interrupts function.srt | 3.64 KB | ||
| 19.1 Source Code.html | 146 B | ||
| 2. Switching To Protected Mode.mp4 | 104.42 MB | ||
| 2. Switching To Protected Mode.srt | 18.48 KB | ||
| 2.1 Source code.html | 146 B | ||
| 20. Understanding Paging.mp4 | 71.29 MB | ||
| 20. Understanding Paging.srt | 26.55 KB | ||
| 21. Implementing Paging.mp4 | 270.08 MB | ||
| 21. Implementing Paging.srt | 36.28 KB | ||
| 21.1 Source Code.html | 146 B | ||
| 22. Modifying the page table.mp4 | 235.62 MB | ||
| 22. Modifying the page table.srt | 30.16 KB | ||
| 22.1 Source Code.html | 146 B | ||
| 23. Preparing To Read From The Hard Disk.mp4 | 23.81 MB | ||
| 23. Preparing To Read From The Hard Disk.srt | 3.65 KB | ||
| 24. Reading from the disk in C with the ATA controller.mp4 | 123.35 MB | ||
| 24. Reading from the disk in C with the ATA controller.srt | 13.07 KB | ||
| 24.1 Source Code.html | 146 B | ||
| 25. Improving Our Disk Driver.mp4 | 109.3 MB | ||
| 25. Improving Our Disk Driver.srt | 13.58 KB | ||
| 25.1 Source Code.html | 146 B | ||
| 26. What is a filesystem.mp4 | 66.71 MB | ||
| 26. What is a filesystem.srt | 11.72 KB | ||
| 27. Creating a path parser.mp4 | 434.16 MB | ||
| 27. Creating a path parser.srt | 49.01 KB | ||
| 27.1 Source Code.html | 146 B | ||
| 28. Creating a disk stream.mp4 | 191.9 MB | ||
| 28. Creating a disk stream.srt | 21.57 KB | ||
| 28.1 Source Code.html | 146 B | ||
| 29. File Allocation Table Explained.mp4 | 174.7 MB | ||
| 29. File Allocation Table Explained.srt | 27.36 KB | ||
| 3. Restructuring Our Project.mp4 | 17.51 MB | ||
| 3. Restructuring Our Project.srt | 2.82 KB | ||
| 30. Starting To Create our FAT File system.mp4 | 163.77 MB | ||
| 30. Starting To Create our FAT File system.srt | 18.06 KB | ||
| 30.1 Source Code.html | 146 B | ||
| 31. Understanding the VFS(Virtual File System) Layer.mp4 | 70.91 MB | ||
| 31. Understanding the VFS(Virtual File System) Layer.srt | 8.61 KB | ||
| 32. Implementing our virtual filesystem core functionality.mp4 | 377.27 MB | ||
| 32. Implementing our virtual filesystem core functionality.srt | 31.34 KB | ||
| 32.1 Source Code.html | 146 B | ||
| 33. implementing FAT16 filesystem driver core functionality.mp4 | 218.01 MB | ||
| 33. implementing FAT16 filesystem driver core functionality.srt | 20.71 KB | ||
| 33.1 Source Code.html | 146 B | ||
| 34. Implementing FAT16 Structures.mp4 | 249.06 MB | ||
| 34. Implementing FAT16 Structures.srt | 24.65 KB | ||
| 34.1 Source Code.html | 146 B | ||
| 35. Implementing The FAT16 Resolver Function.mp4 | 365.56 MB | ||
| 35. Implementing The FAT16 Resolver Function.srt | 39.05 KB | ||
| 35.1 Source Code.html | 146 B | ||
| 36. Implementing the VFS fopen function.mp4 | 238.06 MB | ||
| 36. Implementing the VFS fopen function.srt | 29.38 KB | ||
| 36.1 Source Code.html | 146 B | ||
| 37. Implementing FAT16 fopen function.mp4 | 656.73 MB | ||
| 37. Implementing FAT16 fopen function.srt | 66.64 KB | ||
| 37.1 Source Code.html | 146 B | ||
| 38. Implementing the VFS fread function.mp4 | 63.48 MB | ||
| 38. Implementing the VFS fread function.srt | 7.37 KB | ||
| 38.1 Source Code.html | 146 B | ||
| 39. Implementing FAT16 fread functionality.mp4 | 92.88 MB | ||
| 39. Implementing FAT16 fread functionality.srt | 10.33 KB | ||
| 39.1 Source Code.html | 146 B | ||
| 4. Enabling the A20 line.mp4 | 26.49 MB | ||
| 4. Enabling the A20 line.srt | 2.93 KB | ||
| 4.1 Source Code.html | 146 B | ||
| 40. Implementing the VFS fseek functionality.mp4 | 30.87 MB | ||
| 40. Implementing the VFS fseek functionality.srt | 3.05 KB | ||
| 40.1 Source Code.html | 146 B | ||
| 41. Implementing the FAT16 fseek functionality.mp4 | 63.19 MB | ||
| 41. Implementing the FAT16 fseek functionality.srt | 6.28 KB | ||
| 41.1 Source Code.html | 146 B | ||
| 42. Implementing the fstat VFS functionality.mp4 | 48.93 MB | ||
| 42. Implementing the fstat VFS functionality.srt | 4.9 KB | ||
| 42.1 Source Code.html | 146 B | ||
| 43. Implementing the FAT16 fstat function.mp4 | 64.94 MB | ||
| 43. Implementing the FAT16 fstat function.srt | 6.72 KB | ||
| 43.1 Source Code.html | 146 B | ||
| 44. Implementing the VFS fclose functionality.mp4 | 24.23 MB | ||
| 44. Implementing the VFS fclose functionality.srt | 3.36 KB | ||
| 44.1 Source Code.html | 146 B | ||
| 45. Implementing the FAT16 fclose functionality.mp4 | 74.45 MB | ||
| 45. Implementing the FAT16 fclose functionality.srt | 8.74 KB | ||
| 45.1 Source Code.html | 146 B | ||
| 46. Implementing a kernel panic.mp4 | 21.92 MB | ||
| 46. Implementing a kernel panic.srt | 2.9 KB | ||
| 46.1 Source Code.html | 146 B | ||
| 47. Understanding User Land.mp4 | 98.56 MB | ||
| 47. Understanding User Land.srt | 20.5 KB | ||
| 48. Changing our kernel segment and data descriptors to be written in C.mp4 | 173.81 MB | ||
| 48. Changing our kernel segment and data descriptors to be written in C.srt | 19.78 KB | ||
| 48.1 Source Code.html | 146 B | ||
| 49. Implementing The TSS(Task Switch Segment).mp4 | 123.17 MB | ||
| 49. Implementing The TSS(Task Switch Segment).srt | 13.69 KB | ||
| 49.1 Source Code.html | 146 B | ||
| 5. Creating a Cross Compiler So We Can Code In C.mp4 | 137.57 MB | ||
| 5. Creating a Cross Compiler So We Can Code In C.srt | 11.93 KB | ||
| 50. Implementing Task Foundations.mp4 | 285.75 MB | ||
| 50. Implementing Task Foundations.srt | 35.56 KB | ||
| 50.1 Source Code.html | 146 B | ||
| 51. Implementing Process Foundations Part 1.mp4 | 329.27 MB | ||
| 51. Implementing Process Foundations Part 1.srt | 48.15 KB | ||
| 51.1 Source Code.html | 146 B | ||
| 52. Implementing Process Foundations Part 2.mp4 | 245.74 MB | ||
| 52. Implementing Process Foundations Part 2.srt | 30.27 KB | ||
| 52.1 Source Code.html | 146 B | ||
| 53. Packing the GDT.mp4 | 11.05 MB | ||
| 53. Packing the GDT.srt | 1.67 KB | ||
| 53.1 Source Code.html | 146 B | ||
| 54. Implementing User Land Functionality.mp4 | 152.43 MB | ||
| 54. Implementing User Land Functionality.srt | 21.76 KB | ||
| 54.1 Source Code.html | 146 B | ||
| 55. Creating our first user process application.mp4 | 81.68 MB | ||
| 55. Creating our first user process application.srt | 11.68 KB | ||
| 55.1 Source Code.html | 146 B | ||
| 56. Executing the process and dropping into user land privileges.mp4 | 76.99 MB | ||
| 56. Executing the process and dropping into user land privileges.srt | 10.63 KB | ||
| 56.1 Source Code.html | 146 B | ||
| 57. Changing the paging functionality.mp4 | 58.59 MB | ||
| 57. Changing the paging functionality.srt | 8.54 KB | ||
| 57.1 Source Code.html | 146 B | ||
| 58. Talking with the kernel from userland.mp4 | 89.72 MB | ||
| 58. Talking with the kernel from userland.srt | 28.4 KB | ||
| 59. Creating the interrupt 0x80 for user process to kernel communication.mp4 | 220.93 MB | ||
| 59. Creating the interrupt 0x80 for user process to kernel communication.srt | 29.57 KB | ||
| 59.1 Source Code.html | 146 B | ||
| 6. Loading our 32 bit kernel into memory and working with debugging symbols.mp4 | 356.09 MB | ||
| 6. Loading our 32 bit kernel into memory and working with debugging symbols.srt | 48.76 KB | ||
| 6.1 Source Code.html | 146 B | ||
| 60. Creating the ability to create and execute kernel commands.mp4 | 107.74 MB | ||
| 60. Creating the ability to create and execute kernel commands.srt | 14.53 KB | ||
| 60.1 Source Code.html | 146 B | ||
| 61. Creating our first kernel command.mp4 | 91.96 MB | ||
| 61. Creating our first kernel command.srt | 13.85 KB | ||
| 61.1 Source Code.html | 146 B | ||
| 62. Calling our kernel command.mp4 | 52.32 MB | ||
| 62. Calling our kernel command.srt | 9.02 KB | ||
| 62.1 Source Code.html | 146 B | ||
| 63. Copying strings from the tasks process.mp4 | 141.21 MB | ||
| 63. Copying strings from the tasks process.srt | 18.06 KB | ||
| 63.1 Source Code.html | 146 B | ||
| 63.2 Source Code Minor Change.html | 146 B | ||
| 64. Reading the task's stack.mp4 | 182.44 MB | ||
| 64. Reading the task's stack.srt | 29.26 KB | ||
| 64.1 Source Code.html | 146 B | ||
| 65. Creating the print command in the kernel.mp4 | 121.21 MB | ||
| 65. Creating the print command in the kernel.srt | 20.2 KB | ||
| 65.1 Source Code.html | 146 B | ||
| 66. Understanding keyboard access in protected mode.mp4 | 91.23 MB | ||
| 66. Understanding keyboard access in protected mode.srt | 21.93 KB | ||
| 67. Creating the virtual keyboard layer.mp4 | 143.22 MB | ||
| 67. Creating the virtual keyboard layer.srt | 20.47 KB | ||
| 67.1 Source Code.html | 146 B | ||
| 68. Creating the PS2 port keyboard driver part 1.mp4 | 238.34 MB | ||
| 68. Creating the PS2 port keyboard driver part 1.srt | 27.8 KB | ||
| 68.1 Source Code.html | 146 B | ||
| 69. Improving our interrupt descriptor table design.mp4 | 198.4 MB | ||
| 69. Improving our interrupt descriptor table design.srt | 25.43 KB | ||
| 69.1 Source Code.html | 146 B | ||
| 7. Cleaning our object files.mp4 | 11.42 MB | ||
| 7. Cleaning our object files.srt | 1.75 KB | ||
| 7.1 Source Code.html | 146 B | ||
| 70. Creating a cleaner way to create interrupt handlers in the interrupt descriptor.mp4 | 112.65 MB | ||
| 70. Creating a cleaner way to create interrupt handlers in the interrupt descriptor.srt | 12.9 KB | ||
| 70.1 Source Code.html | 146 B | ||
| 71. Changing The Current Process.mp4 | 74.39 MB | ||
| 71. Changing The Current Process.srt | 10.17 KB | ||
| 71.1 Source Code.html | 146 B | ||
| 72. Creating the PS2 port keyboard driver part 2.mp4 | 138.06 MB | ||
| 72. Creating the PS2 port keyboard driver part 2.srt | 17.25 KB | ||
| 72.1 Source Code.html | 146 B | ||
| 73. Getting a key from the keyboard buffer in user land.mp4 | 86.31 MB | ||
| 73. Getting a key from the keyboard buffer in user land.srt | 13.36 KB | ||
| 73.1 Source Code.html | 146 B | ||
| 74. Creating a putchar command that writes one character to the terminal.mp4 | 62.6 MB | ||
| 74. Creating a putchar command that writes one character to the terminal.srt | 9.73 KB | ||
| 74.1 Source Code.html | 146 B | ||
| 75. Implementing backspace in the terminal.mp4 | 29.72 MB | ||
| 75. Implementing backspace in the terminal.srt | 3.86 KB | ||
| 75.1 Source Code.html | 146 B | ||
| 76. Revising our stream reader.mp4 | 63.01 MB | ||
| 76. Revising our stream reader.srt | 7.97 KB | ||
| 76.1 Source Code.html | 146 B | ||
| 77. Elf Files Explained.mp4 | 155.56 MB | ||
| 77. Elf Files Explained.srt | 31.81 KB | ||
| 78. Implementing The Elf Loader - Part 1.mp4 | 166.5 MB | ||
| 78. Implementing The Elf Loader - Part 1.srt | 21.7 KB | ||
| 78.1 Source Code.html | 146 B | ||
| 79. Implementing The Elf Loader - Part 2.mp4 | 204 MB | ||
| 79. Implementing The Elf Loader - Part 2.srt | 28.43 KB | ||
| 79.1 Source Code.html | 146 B | ||
| 8. Dealing With Alignment Issues.mp4 | 59.92 MB | ||
| 8. Dealing With Alignment Issues.srt | 10.05 KB | ||
| 8.1 Source Code.html | 146 B | ||
| 80. Implementing The Elf Loader - Part 3.mp4 | 34.64 MB | ||
| 80. Implementing The Elf Loader - Part 3.srt | 5.37 KB | ||
| 80.1 Source Code.html | 146 B | ||
| 81. Implementing The Elf Loader - Part 4.mp4 | 138.86 MB | ||
| 81. Implementing The Elf Loader - Part 4.srt | 22.04 KB | ||
| 81.1 Source Code.html | 146 B | ||
| 82. Implementing The Elf Loader - Part 5.mp4 | 250.34 MB | ||
| 82. Implementing The Elf Loader - Part 5.srt | 37.61 KB | ||
| 82.1 Source Code.html | 146 B | ||
| 83. Implementing The Elf Loader - Part 6.mp4 | 145.87 MB | ||
| 83. Implementing The Elf Loader - Part 6.srt | 16.75 KB | ||
| 83.1 Source Code.html | 146 B | ||
| 84. Writing User Programs In C.mp4 | 134.37 MB | ||
| 84. Writing User Programs In C.srt | 18.53 KB | ||
| 84.1 Source Code.html | 146 B | ||
| 85. Implementing system print in stdlib.mp4 | 45.97 MB | ||
| 85. Implementing system print in stdlib.srt | 8.57 KB | ||
| 85.1 Source Code.html | 146 B | ||
| 85.2 Source Code - Revised (Use this one).html | 146 B | ||
| 86. Implementing system get key in stdlib.mp4 | 23.19 MB | ||
| 86. Implementing system get key in stdlib.srt | 3.63 KB | ||
| 86.1 Source Code.html | 146 B | ||
| 87. Implementing Malloc In Our stdlib.mp4 | 183.37 MB | ||
| 87. Implementing Malloc In Our stdlib.srt | 28.09 KB | ||
| 87.1 Source Code.html | 146 B | ||
| 88. Implementing Free In Our stdlib.mp4 | 90.8 MB | ||
| 88. Implementing Free In Our stdlib.srt | 11.07 KB | ||
| 88.1 Source Code.html | 146 B | ||
| 89. Changing the way we map virtual pages for the process.mp4 | 20.41 MB | ||
| 89. Changing the way we map virtual pages for the process.srt | 2.94 KB | ||
| 89.1 Source Code.html | 146 B | ||
| 9. C Code In Protected Mode.mp4 | 67.75 MB | ||
| 9. C Code In Protected Mode.srt | 8.69 KB | ||
| 9.1 Source Code.html | 146 B | ||
| 90. Implementing itoa function.mp4 | 39.68 MB | ||
| 90. Implementing itoa function.srt | 6.08 KB | ||
| 90.1 Source Code.html | 146 B | ||
| 91. Implementing the putchar function.mp4 | 68.54 MB | ||
| 91. Implementing the putchar function.srt | 9.02 KB | ||
| 91.1 Source Code.html | 146 B | ||
| 92. Implementing the printf function.mp4 | 57.17 MB | ||
| 92. Implementing the printf function.srt | 8.17 KB | ||
| 92.1 Source Code.html | 146 B | ||
| 93. Implementing the ability to read lines.mp4 | 86.57 MB | ||
| 93. Implementing the ability to read lines.srt | 12.78 KB | ||
| 93.1 Source Code.html | 146 B | ||
| 94. Creating a shell.mp4 | 82.8 MB | ||
| 94. Creating a shell.srt | 12.31 KB | ||
| 94.1 Source Code.html | 146 B | ||
| 95. Loading other programs from our shell.mp4 | 265.09 MB | ||
| 95. Loading other programs from our shell.srt | 35.62 KB | ||
| 95.1 Source Code.html | 146 B | ||
| 96. Creating some important stdlib functions.mp4 | 112.29 MB | ||
| 96. Creating some important stdlib functions.srt | 16.46 KB | ||
| 96.1 Source Code.html | 146 B | ||
| 97. Memory Mapping malloc in stdlib.mp4 | 85.3 MB | ||
| 97. Memory Mapping malloc in stdlib.srt | 12.51 KB | ||
| 97.1 Source Code.html | 146 B | ||
| 98. Memory Unmapping free In stdlib.mp4 | 117.22 MB | ||
| 98. Memory Unmapping free In stdlib.srt | 15.09 KB | ||
| 98.1 Source Code.html | 146 B | ||
| 99. Process arguments - Part 1.mp4 | 88.53 MB | ||
| 99. Process arguments - Part 1.srt | 11.75 KB | ||
| 99.1 Source Code.html | 146 B | ||
| 5. Assembly Language Catchup | |||
| 1. Assembly Catchup!.html | 214 B | ||
| 2. What is assembly language.mp4 | 37.1 MB | ||
| 2. What is assembly language.srt | 2.35 KB | ||
| 3. Installing the emulator.mp4 | 22.67 MB | ||
| 3. Installing the emulator.srt | 2.57 KB | ||
| 4. Hello World In Assembly.mp4 | 260.84 MB | ||
| 4. Hello World In Assembly.srt | 21.16 KB | ||
| 5. Transistors And Logic Gates Understanding The Processor.mp4 | 139.5 MB | ||
| 5. Transistors And Logic Gates Understanding The Processor.srt | 15.5 KB | ||
| 6. Registers in the 8086.mp4 | 111.58 MB | ||
| 6. Registers in the 8086.srt | 11.58 KB | ||
| 7. Segmentation Memory Model Explained.mp4 | 97.09 MB | ||
| 7. Segmentation Memory Model Explained.srt | 10.61 KB | ||
| 8. The Stack, Subroutines And Endiness Explained.mp4 | 94.05 MB | ||
| 8. The Stack, Subroutines And Endiness Explained.srt | 10.45 KB | ||
| 6. Conclusion | |||
| 1. Bonus Lecture.mp4 | 20.88 MB | ||
| 1. Bonus Lecture.srt | 4.26 KB |

Description
This course is designed to teach you how to create your very own multitasking operating system and kernel from scratch. It is assumed you have no experience in programming kernels and you are taught from the ground up.
Real Mode Development
Real mode is a legacy mode in all Intel processors that causes the processor to start in a legacy state, it performs like the old 8086 Intel processors did back in the way.
In the “Real Mode Development” section of the course we start by learning about the boot process and how memory works, we then move on to creating our very own boot loader that we test on our real machine! This boot loader will output a simple “Hello World!” message to the screen and we write this boot loader in purely assembly language.
In this section we also read a sector(512 bytes) from the hard disk and learn all about interrupts in real mode and how to create them.
This section gives you a nice taster into kernel development, without over whelming you with information. You are taught the basics and enough about the legacy processors to be able to move forward to more modern kernel development further into this course.
Protected Mode Development
In this section we create a 32 bit multi-tasking kernel that has the FAT16 filesystem. Our kernel will use Intel’s built in memory protection and security mechanisms that allow us to instruct the processor to protect our kernel and prevent user programs from damaging it.
This section is very in depth, you are taught all about paging and virtual memory. We take advantage of clever instructions in Intel processors to allow all processes to share the same memory addresses, this is known as memory virtualization. We map memory addresses to point to different physical memory addresses to create the illusion that every process that is running is loaded at the same address. This is a very common technique in kernel development and is also how swap files work (Those files that are used to compensate for when you run out of usable RAM).
We create our own virtual filesystem layer that uses a design that is similar to the Linux kernel. This clever abstraction that will be taught to you was inspired by the instructors knowledge of writing Linux kernel drivers in his past.
You are taught about the design of the FAT16 filesystem and how the FAT16 filesystem is broken down into clusters and that they can chain together. We then implement our very own FAT16 filesystem driver allowing files to be born!
We implement functionality for tasks and processes and write our own keyboard drivers.
In this course you also get to learn how memory management works, we implement the “malloc” and “free” functions creating our very own heap that’s designed to keep track of what memory is being used. Memory management is essential in any operating system and kernel.
Let us not forget that we even create an ELF file loader, we will compile all our operating systems programs into ELF files and allow the loading of binary programs or ELF programs. ELF files contain a lot of information that describes our program for example where our program should be loaded into memory and the different sections of the program.
By the end of this course you will have a fully functioning 32 bit multi-tasking kernel that can have many processes and tasks running at the same time. You will have a working shell that we can use as well.
Assembly language bonus
This is a bonus section designed to bring your assembly skills up to scratch should you struggle a little bit with the assembly language in this course. It’s however advised you come to this course with experience in assembly language, we do use it and its important. Never the less if you want to take a chance on this course with no assembly experience then this section will help point you in the right direction so your able to take what you learned and apply it to the kernel.
Taught by an expert that that has created Linux kernel modules professionally in the work place.
Who this course is for:
Beginner kernel developers who want to learn how to create kernels
Requirements
You must know the C programming language
It is wise have some basic knowledge in assembly language
You should have a Linux operating system, free to install from the internet (We use Ubuntu in this course)
Last Updated 1/2021
| torrent name | size | uploader | age | seed | leech |
|---|---|---|---|---|---|
| 279.8 MB | freecoursewb | 5 months | 0 | 0 | |
| 3.4 GB | freecoursewb | 6 months | 0 | 0 | |
| 581.2 MB | freecoursewb | 8 months | 0 | 0 | |
| 860.5 MB | freecoursewb | 2 years | 11 | 10 | |
| 603.3 MB | freecoursewb | 2 years | 4 | 16 |
All Comments