-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b37897f
commit 5a2f4e5
Showing
110 changed files
with
3,208 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## $\textnormal{Tinkering Linux}$ | ||
|
||
> - All things I learned related to Linux Kernel. |
23 changes: 23 additions & 0 deletions
23
...ion-LFD103/01-course-introduction/01-course-information/01-welcome-to-LFD103.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
## $\textnormal{Welcome to LFD103}$ | ||
|
||
> - The `Linux Kernel` is the largest component of the Linux ecosystem, <br /> | ||
and is charged with managing the hardware, running user programs, and <br /> | ||
maintaining the security and integrity of the whole system. <br /> | ||
> - It is a 24 hour a day, seven days a week, 365 day a year development <br /> | ||
process that results in a new release once every 9-10 weeks, along <br /> | ||
with several stable and extended stable releases. <br /> | ||
> - At all times, new development and current release integration cycles <br /> | ||
run in parallel. | ||
|
||
> - `LFD103` is designed for anyone interested in becoming a Linux Kernel <br /> | ||
Developer and contributor. | ||
|
||
> - The course aims to ease the Linux Kernel Mentorhship application process. <br /> | ||
> - It also serves as a resource for developers from companies and communities <br /> | ||
that might not be able to take advantage of the mentorship program, and <br /> | ||
want to learn kernel development on their own; as well as a resource for <br /> | ||
experienced engineers new to open source and upstream kernel development that <br /> | ||
are tasked with working with the kernel community. |
16 changes: 16 additions & 0 deletions
16
...3/01-course-introduction/01-course-information/02-course-learning-objectives.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
## $\textnormal{Course Learning Objectives}$ | ||
|
||
> - The course will cover the following. | ||
```plaintext | ||
- Select and configure the development system. | ||
- Provide an overview of Linux Kernel repositories and releases. | ||
- Understand git basics - checking out kernel repositories and working with them. | ||
- Build your first kernel and install it. | ||
- Understand the Linux Kernel Contributor Covenant Code of Conduct. | ||
- Familiarize yourself with the Linux Kernel Enforcement Statement. | ||
- Write kernel patches and test them. | ||
- Understand the do's and dont's of the communications with the kernel community. | ||
- Know who to and how to send patches (checkpath.pl and get_maintainers.pl). | ||
- Re-work patches and act on feedback from reviewers. | ||
``` |
14 changes: 14 additions & 0 deletions
14
...ourse-introduction/01-course-information/03-course-audience-and-requirements.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
## $\textnormal{Course Audience and Requirements}$ | ||
|
||
```plaintext | ||
Audience | ||
- This course is designed for individuals interested in becoming Linux Kernel | ||
developers and contributors. | ||
Knowledge/Skills | ||
- Proficiency in C and shell. | ||
- Kernel development experience desired, but not required. | ||
System Prerequisites | ||
- As far as prequisites go, an x86_64 laptop will be needed. | ||
``` |
20 changes: 20 additions & 0 deletions
20
...Foundation-LFD103/01-course-introduction/01-course-information/04-instructor.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## $\textnormal{Instructor}$ | ||
|
||
> - `Shuah Khan` is a Linux Kernel Fellow at The Linux Foundation. | ||
> - She is an experienced Linux Kernel developer, maintainer, and contributor. | ||
> - `Shuah` maintains the Kernel Selftest framework, USB over IP driver, and cpupower, <br /> | ||
and is an active contributor to the Linux media subsystem. | ||
|
||
> - She has also contributed to IOMMU, and DMA areas. | ||
> - In addition, she is helping with stable release kernel testing. | ||
> - She has presented at several Linux conferences and Linux Kernel Developer keynote <br /> | ||
panels. | ||
|
||
> - She served on the Linux Foundataion Technical Advisory Board. | ||
> - She authored Linux Kernel Testing and Debugging paper published in the Linux <br /> | ||
Journal and wrote several Linux Journal Kernal news articles. |
20 changes: 20 additions & 0 deletions
20
...undation-LFD103/01-course-introduction/02-before-you-begin/01-course-support.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## $\textnormal{Course Support}$ | ||
> - One great way to interact with peers taking this course is via the Class Forum. | ||
> - Class Forum: https://forum.linuxfoundation.org/categories/lfd103-class-forum | ||
> - The forum can be used in the following ways. | ||
```plaintext | ||
- To introduce yourself to other peers taking this course. | ||
- To discuss concepts, tools and technologies presented in this course, or related | ||
to the topics discussed in the course materials. | ||
- To ask questions or report issues with labs or course content. | ||
- To share resources and ideas related to Linux Kernel development. | ||
``` | ||
|
||
> - The class forum will be reviewed periodically by the Linux Foundation staff, <br /> | ||
but it is primarily a community resource, not an `ask the instructor` service. |
20 changes: 20 additions & 0 deletions
20
...oundation-LFD103/01-course-introduction/02-before-you-begin/02-course-timing.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## $\textnormal{Course Timing}$ | ||
|
||
> - This course is entirely self-paced; there is no fixed schedule for going <br /> | ||
through the material. You can go through the course at your own pace, <br /> | ||
and you will always be returned to exactly where you left off when you <br /> | ||
come back to start a new session. | ||
|
||
> - However, we still suggest you avoid long breaks in between periods of work, <br /> | ||
as learning will be faster and content retention improved. | ||
|
||
> - You have unlimited access to this course for 12 months from the date you <br /> | ||
registered, even after you have completed the course. | ||
|
||
> - The chapters in the course have been designed to build on one another. It <br /> | ||
is probably best to work through them in sequence; if you skip or only <br /> | ||
skim some chapters quickly, you may find there are topics being discussed <br /> | ||
you have not been exposed to yet. | ||
|
||
> - But this is all self-paced, and you can always go back, so you can thread <br /> | ||
your own path through the material. |
10 changes: 10 additions & 0 deletions
10
...-Foundation-LFD103/01-course-introduction/02-before-you-begin/03-assessments.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
## $\textnormal{Assessments}$ | ||
|
||
> - While not having lab exercises per se, this course is hands-on, and guides <br /> | ||
you through the processes involved in Linux Kernel development. | ||
|
||
> - At the end of each chapter, you will also find a series of knowledge check <br /> | ||
questions. These questions, just like the labs, were designed with one main <br /> | ||
goal in mind: to help you better comprehend the course content and reinforce <br /> | ||
what you have learned. We would also like to emphasize that you will not be <br /> | ||
required to take a final exam to complete this course. |
9 changes: 9 additions & 0 deletions
9
...ation-LFD103/01-course-introduction/02-before-you-begin/04-course-formatting.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
## $\textnormal{Course Formatting}$ | ||
> - In order to make it easier to distinguish the various types of content <br /> | ||
in the course, we use the color coding and formats below. | ||
|
||
<br /> | ||
|
||
| Course Formmating | | ||
| ----------------- | | ||
| ![Course Formatting](./images/image-course-formatting.png) | |
20 changes: 20 additions & 0 deletions
20
...ux-Foundation-LFD103/01-course-introduction/02-before-you-begin/05-copyright.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## $\textnormal{Copyright}$ | ||
|
||
> - The training materials provided or developed by The Linux Foundation in <br /> | ||
connection with the training services are protected by copyright and other <br /> | ||
intellectual property rights. | ||
|
||
> - Open source code incorporated herein may have other copyright holders and <br /> | ||
is used pursuant to the applicable open source license. | ||
|
||
> - Although third-party application software packages may be referenced herein, <br /> | ||
this is for demonstration purposes only and shall not constitute an endorsement <br /> | ||
of any of these software applications. | ||
|
||
> - All the Linux Foundation training, including all the material provided herein, <br /> | ||
is supplied without any guarantees from the Linux Foundation. The Linux <br /> | ||
Foundation assumes no liability for damages or legal action arising from the <br /> | ||
use or misuse of contents or details contained herein. | ||
|
||
> - Linux is a registered trademark of Linux Torvalds. Other trademarks within <br /> | ||
this course material are the property of their respective owners. |
Binary file added
BIN
+58.8 KB
...3/01-course-introduction/02-before-you-begin/images/image-course-formatting.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions
29
...dation-LFD103/01-course-introduction/03-linux-foundation/01-linux-foundation.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
## $\textnormal{Linux Foundation}$ | ||
|
||
> - `The Linux Foundation` provides a neutral, trusted hub for developers to <br /> | ||
code, manage, and scale open technology projects. | ||
|
||
> - Founded in 2000, the Linux Foundation is supported by more than 1,000 <br /> | ||
members and is the world's leading home for collaboration on open <br /> | ||
source software, open standards, open data and open hardware. | ||
|
||
> - The Linux Foundation's methodology focuses on leveraging best practices <br /> | ||
and addressing the needs of contributors, users and solution providers to <br /> | ||
create sustainable models for open collaboration. | ||
|
||
> - The Linux Foundation hosts Linux, the world's largest and most pervasive <br /> | ||
open source software project in history. It is also home to Linux creator <br /> | ||
Linus Torvalds and lead maintainer Greg Kroah-Hartman. | ||
|
||
> - The success of Linux has catalyzed growth in the open source community, <br /> | ||
demonstrating the commercial efficacy of open source and inspiring <br /> | ||
countless new projects across all industries and levels of the technology <br /> | ||
stack. | ||
|
||
> - As a result, the Linux Foundation today hosts far more than Linux; it is <br /> | ||
the umbrella for many critical open source projects that power corporations <br /> | ||
today, spanning virtually all industry sectors. | ||
|
||
> - Some of the technologies we focus on include big data and analytics, <br /> | ||
networking, embedded systems and IoT, web tools, cloud computing, edge <br /> | ||
computing, automotive, security, blockchain, and many more. |
38 changes: 38 additions & 0 deletions
38
...LFD103/01-course-introduction/03-linux-foundation/02-linux-foundation-events.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
## $\textnormal{The Linux Foundation Events}$ | ||
|
||
> - Over 85,000 open source technologists and leaders worldwide gather at Linux | ||
Foundation events annually to share ideas, learn and collaborate. | ||
|
||
> - Linux Foundation events are the meeting place of choice for open source | ||
maintainers, developers, architects, infrastructure managers, and sysadmins | ||
and technologists leading open source program offices, and other critical | ||
leadership functions. | ||
|
||
> - These events are the best place to gain visibility within the open source | ||
community quickly and advance open source development work by forming | ||
connections with the people evaluating and creating the next generation of | ||
technology. | ||
|
||
> - They provide a forum to share and gain knowledge, help organizations identify | ||
software trends early to inform future technology investments, connect | ||
employers with talent, and showcase technologies and services to influential | ||
open source professionals, media, and analysts around the globe. | ||
|
||
> - The Linux Foundation hosts an increasing number of events each year. | ||
```plaintext | ||
- Open Source Summit North America, Europe, and Japan. | ||
- Embbedded Linux Conference North America and Europe. | ||
- Open Networking and Edge Summit. | ||
- KubeCon + CloudNativeCon North America, Europe, and China. | ||
- Automotive Linux Summit. | ||
- KVM Forum. | ||
- Linux Storage Filesystem and Memory Management Summit. | ||
- Linux Security Summit North America and Europe. | ||
- Linux Kernel Maintainer Summit. | ||
- The Linux Foundation Member Summit. | ||
- Open Compliance Summiit. | ||
- And More. | ||
Link: https://events.linuxfoundation.org/ | ||
``` |
24 changes: 24 additions & 0 deletions
24
...ndation-LFD103/01-course-introduction/03-linux-foundation/03-training-venues.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
## $\textnormal{Training Venues}$ | ||
|
||
> - The Linux Foundation's training is for the community, by the community, and | ||
features instructors and content straight from the leaders of the Linux | ||
Developer community. | ||
|
||
> - The Linux Foundation offers several types of training. | ||
```plaintext | ||
- Classroom | ||
- Online | ||
- On-site | ||
- Events-based | ||
``` | ||
|
||
> - Attendees receive Linux and open source software training that is distribution | ||
flexible, technically advanced and created with the actual leaders of the Linux | ||
and open source software development community themeselves. | ||
|
||
> - The Linux Foundation courses give attendees the broad, foundational knowledge and | ||
networking needed to thrive in their careers today. | ||
|
||
> - With either online or in-person training, the Linux Foundation classes can keep | ||
you or your developers ahead of the curve on open source essentials. |
11 changes: 11 additions & 0 deletions
11
...urse-introduction/03-linux-foundation/04-linux-foundation-training-offerings.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
## $\textnormal{The Linux Foundation Training Offerings}$ | ||
|
||
> - Our current course offerings include: | ||
```plaintext | ||
- Linux programming and development training. | ||
- Enterprise IT and open source system administration courses. | ||
- Open source compliance courses. | ||
Link: https://training.linuxfoundation.org/ | ||
``` |
20 changes: 20 additions & 0 deletions
20
...01-course-introduction/03-linux-foundation/05-linux-foundation-certification.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## $\textnormal{The Linux Foundation Certification}$ | ||
|
||
> - The Linux Foundation certifications give you a way to diffentiate yourself in a | ||
job market that's hungry for your skills. | ||
|
||
```plaintext | ||
https://training.linuxfoundation.org/certification-catalog/ | ||
``` | ||
|
||
> - We've taken a new innovative approach to open source certification that allows | ||
you to showcase your skills in a way that other peers will respect and employers | ||
will trust: | ||
|
||
```plaintext | ||
- You can take your certification exam from any computer, anywhere, at any time. | ||
- The certification exams are either performance-based or multiple choice. | ||
- The exams are distribution flexible. | ||
- The exams are up-to-date, testing knowledge and skills that actually matter in today's | ||
IT environment. | ||
``` |
18 changes: 18 additions & 0 deletions
18
...1-course-introduction/03-linux-foundation/06-training-certification-firewall.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
## $\textnormal{Training Certification Firewall}$ | ||
|
||
> - The Linux Foundation has two separate training divisions: Course Delivery and Certification. | ||
These two divisions are separated by a `firewall`. | ||
|
||
> - The curriculum development and maintenance division of the Linux Foundation Training | ||
department has no direct role in developing, administering, or grading certification exams. | ||
|
||
> - Enforcing this self-imposed firewall ensures that independent organizations and companies | ||
can develop third party training material, geared towards helping test takers pass their | ||
certification exams. | ||
|
||
> - Furthermore, it ensures that there are no secret `tips` (or secrets in general) that one | ||
needs to be familiar with in order to succeed. | ||
|
||
> - It also permits the Linux Foundation to develop a very robust set of courses that do far more | ||
than `teach the test`, but rather equip attendees with a broad knowledge of the many areas | ||
they may be required to master to have a successful career in open source system administration. |
6 changes: 6 additions & 0 deletions
6
...inux-kernel-development/01-introduction/01-intro-to-linux-kernel-development.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
## $\textnormal{Introduction to Linux Kernel Development Process}$ | ||
|
||
> - In this chapter, we will provide an overview of the Linux <br /> | ||
Kernel development process, and we will learn how small <br /> | ||
incremental changes (`patches`) sent to a mailing list get <br /> | ||
included in the upstream kernel. |
10 changes: 10 additions & 0 deletions
10
.../02-intro-to-linux-kernel-development/01-introduction/02-learning-objectives.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
## $\textnormal{Learning Objectives}$ | ||
|
||
> - By the end of this chapter, you should be able to: | ||
```plaintext | ||
- Understand how the Linux kernel is developed. | ||
- Discuss the Linux kernel release cycle and merge window. | ||
- Discuss active kernel releases. | ||
- Explain the concept of kernel trees. | ||
``` |
24 changes: 24 additions & 0 deletions
24
...el-development/02-linux-kernel-development-process/01-about-the-linux-kernel.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
## $\textnormal{About the Linux Kernel}$ | ||
|
||
<br /> | ||
|
||
| Tux | | ||
| --- | | ||
| ![Tux](./images/image-tux.png) | | ||
|
||
<br /> | ||
|
||
> - The `Linux Kernel` is the result of collaborative development efforts from developers | ||
across the globe. | ||
|
||
> - Small incremental changes, also known as `patches`, add new features, make | ||
enhancements, and fix bugs. | ||
|
||
> - It is a 24-hour, seven days a week, and 365 days of continuous development process | ||
that results in a new release once every 2+ months, and several stable and extended | ||
stable releases once a week. New development and current release integration cycles | ||
run in parallel. | ||
|
||
> - A new release comes out once a every 10 to 11 weeks. Releases are time-based rather | ||
than feature-based. That means releases are not held up for features. There is no | ||
set date for these releases. |
42 changes: 42 additions & 0 deletions
42
...inux-kernel-development/02-linux-kernel-development-process/02-release-cycle.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
## $\textnormal{What Does the Release Cycle Look Like?}$ | ||
|
||
> - While the kernel development is a continuous process, at certain points during the | ||
development, when a set of features and bug fixes are ready, a new version of the | ||
kernel is released. | ||
|
||
> - These new version are called `kernel releases`. | ||
> - Linus Torvalds releases a new kernel and opens 2-week merge window. | ||
> - During this merge window, he pulls code for the next release from subsystem | ||
maintainers. | ||
|
||
> - Subsystem maintainers send signed git pull requests to Linux either during the | ||
merge window or before. | ||
|
||
> - All major new development is added to the kernel during the merge window. | ||
> - 10,000+ change sets (patches) get pulled into Linus's tree during these 2 weeks, | ||
at the end of which he releases the first release candidate, known as `rc1`. | ||
|
||
> - At this point, the release cycle moves into a bug fixes-only mode, with a series | ||
of `release candidate (rc)` releases from Linus. | ||
|
||
> - One week after `rc1` is released, `rc2` comes out; `rc3` comes out a week after, | ||
and so on, until all major bug fixes and regressions (if any) are resolved. | ||
|
||
> - The new cycle begins with a 3-week `quiet period`, which starts a week before the | ||
release, and continues through the 2-week merge window. | ||
|
||
> - Maintainers and key contributors are busy getting their trees ready to send pull | ||
requests to Linus. | ||
|
||
> - Please notee that the quiet period isn't formalized, and each sub-system might | ||
handle it differently. | ||
|
||
> - This period isn'tt well advertised, and new developers might see a slow response | ||
from the community. | ||
|
||
| Linux Development Cycle | | ||
| ----------------------- | | ||
| ![Linux Development Cycle](./images/image-linux-development-cycle.png) | |
Oops, something went wrong.