Skip to content

Commit

Permalink
Publish pull/10 (built from linux-kernel-labs/linux#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
Circle CI committed Feb 25, 2018
1 parent 74095f1 commit f4c1167
Show file tree
Hide file tree
Showing 138 changed files with 39,850 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
+-------------------+ ^
0xFFFFFFFF | | |
| | | Kernel space
| | |
+-------------------+ v
0xC0000000 | | ^
| | | User space
| | |
| | |
| | |
| | |
| | |
| | |
| | |
0x00000000 +-------------------+ v

32bit Virtual Address Space
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
+---------------+ +--------------+ +---------------+ -\
| Application 1 | | Application2 | ... | Application n | |
+---------------+ +--------------+ +---------------+ |> User space
| | | |
v v v -/
+--------------------------------------------------------+ -\
| System Call Interface | |
+--------------------------------------------------------+ |
| | | |
v v v |> Kernel space
+--------------------------------------------------------+ |
| Kernel | |
+--------------------------------------------------------+ |
| Device drivers | |
+--------------------------------------------------------+ -/
| | | -\
v v v |> Hardware
-/
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
+---------------------------------+
| Virtual Filesystem Switch |
+---------------------------------+
^
|
v
+---------------------------------+
| Device Mapper |
+---------------------------------+
^
|
v
+---------------------------------+
| Generic Block Layer |
+---------------------------------+
^
|
v
+--------------------------------+
| I/O scheduler |
+--------------------------------+
^ ^
| |
v v
+--------------+ +--------------+
| Block device | | Block device |
| driver | | driver |
+--------------+ +--------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
+---------------------------------------------------------+
| application programming (EGC, SPG, PP, SPRC, IOC, etc.) |
+---------------------------------------------------------+

+----------------------------------+
| system programming (PC, SO, CPL) |
+----------------------------------+
user space
----------------------------------------------------------=-
kernel space
+--------------------------+
| kernel programming (SO2) |
+--------------------------+

----------------------------------------------------------=-

+----------------------------------+
| hardware (PM, CN1, CN2, PL ) |
+----------------------------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
+-----+ +--------+ +---------+ +---------+
| App | | File | | Network | | Display |<--+
| | | Server | | Server | | Server |-+ |
+-----+ +--------+ +---------+ +---------+ | |
| ^ | | User
-|-|----------------------------------------=-|-|-------=-
| | | | Kernel
| | | |
| | | |
| | | |
| | Reply +----------------------------+ | |
| +--------| |----+ |
+--------->| Micro kernel |------+
Request | (IPC, Memory, Scheduler) |
| |
+----------------------------+
|
v
+--------------------------------------------------------+
| Hardware |
+--------------------------------------------------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
+---------------------------+
| Berkeley Socket Interface |
+---------------------------+

+---------------------------+
| Transport layer |
+-------------+-------------+
| TCP | UDP |
+-------------+-------------+

+---------------------------+
| Network layer |
+-----+---------+-----------+
| IP | Routing | NetFilter |
+-----+---------+-----------+

+---------------------------+
| Data link layer |
+-------+-------+-----------+
| ETH | ARP | BRIDGING |
+-------+-------+-----------+

+---------------------------+
| Queuing discipline |
+---------------------------+

+---------------------------+
| Network device drivers |
+---------------------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
^ ^ ^
| stat | open | read
v v v
+------------------------------------------------------------+
| Virtual Filesystem Switch |
| |
| |
| /-------\ /--------\ /--------\ |
| | inode |<----------+ dentry |<----------+ FILE | |
| \---+---/ \----+---/ \---+----/ |
| | | | |
| | | | |
| v v v |
| +-------+ +--------+ +-------+ |
| | inode | | dentry | | page | |
| | cache | | cache | | cache | |
| +-------+ +--------+ +-------+ |
| |
+------------------------------------------------------------+
^ ^
| |
v v
+-------------+ +-------------+
| Filesystem | | Filesystem |
| driver | | driver |
+-------------+ +-------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
+-----------+
| |
+------------------>| Memory |<-----------------+
| | | |
| +-----------+ |
| ^ |
| | |
v v v
+--------------+ +---------------+ +---------------+
| | | | | |
| Processor A | | Processor B | | Processor C |
| | | | | |
| | | +-----------+ | | +-----------+ |
| | | | Process 1 | | | | Process 1 | |
| | | +-----------+ | | +-----------+ |
| | | | | |
| +----------+ | | +-----------+ | | +-----------+ |
| | kernel | | | | Process 2 | | | | Process 2 | |
| +----------+ | | +-----------+ | | +-----------+ |
| | | | | |
| | | +-----------+ | | +-----------+ |
| | | | Process 3 | | | | Process 3 | |
| | | +-----------+ | | +-----------+ |
+--------------+ +---------------+ +---------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
+-----+ +-----+ +-----+
| App | | App | | App |
+-----+ +-----+ +-----+
| | | User
=--|-------=--------|--------=-------|-------------------=-
| | | Kernel
v v v
+--------------------------------------------------------+
| System Call Interface |
+--------------------------------------------------------+
| |
v v
+-----+ +-----+
| |<---------------------------->| | Kernel
| |<---+ +------->| | functions
+--+--+ | | +-----+
| | | ^
| | +-----+ | |
|+------+---->| |<---+ |
|| | +-----+ |
|| | |
vv | v
+--++-+ | +-----+
| | +------------------------>| | Device
| |<---------------------------->| | Drivers
+--+--+ +--+--+
| |
v v
+--------------------------------------------------------+
| Hardware |
+--------------------------------------------------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
+-------+
| linux |
+-+-----+
|
+------+--------+---------+---------+--------------+--------------+
| | | | | | |
| v v v v v v
| +------+ +-------+ +-------+ +--------+ +---------------+ +---------+
| | arch | | block | | certs | | crypto | | Documentation | | drivers |
| +------+ +-------+ +-------+ +--------+ +---------------+ +---------+
|
+-------+----------+--------+---------+--------+--------+---------+
| | | | | | | |
| v v v v v v v
| +----------+ +----+ +---------+ +------+ +-----+ +--------+ +-----+
| | firmware | | fs | | include | | init | | ipc | | kernel | | lib |
| +----------+ +----+ +---------+ +------+ +-----+ +--------+ +-----+
|
+-----+------+---------+------------+------------+------------+
| | | | | | |
| v v v v v v
| +----+ +-----+ +---------+ +---------+ +----------+ +-------+
| | mm | | net | | samples | | scripts | | security | | sound |
| +----+ +-----+ +---------+ +---------+ +----------+ +-------+
|
+------+--------+--------+
| | |
v v v
+-------+ +-----+ +------+
| tools | | usr | | virt |
+-------+ +-----+ +------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
+-----------+
| |
+------------------->| Memory |<------------------+
| | | |
| +-----------+ |
| ^ |
| | |
v v v
+---------------+ +---------------+ +---------------+
| | | | | |
| Processor A | | Processor B | | Processor C |
| | | | | |
| +-----------+ | | +-----------+ | | +-----------+ |
| | Process 1 | | | | Process 1 | | | | Process 1 | |
| +-----------+ | | +-----------+ | | +-----------+ |
| | | | | |
| +-----------+ | | +-----------+ | | +-----------+ |
| | Process 2 | | | | Process 2 | | | | Process 2 | |
| +-----------+ | | +-----------+ | | +-----------+ |
| | | | | |
| +-----------+ | | +-----------+ | | +-----------+ |
| | kernel | | | | kernel | | | | kernel | |
| +-----------+ | | +-----------+ | | +-----------+ |
+---------------+ +---------------+ +---------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
+---------------+ +--------------+ +---------------+
| Application 1 | | Application2 | ... | Application n |
+---------------+ +--------------+ +---------------+
| | |
v v v
+--------------------------------------------------------+
| Kernel |
| |
| +----------------------+ +-------------------+ |
| | Process Management | | Memory Management | |
| +----------------------+ +-------------------+ |
| |
| +------------+ +------------+ +------------+ |
| | Block I/O | | VFS | | Networking | |
| +------------+ +------------+ +------------+ |
| |
| +------------+ +------------+ +------------+ |
| | IPC | | Security | | Crypto | |
| +------------+ +------------+ +------------+ |
| |
| +------------+ +------------+ +------------+ |
| | DRM | | ALSA | | USB | |
| +------------+ +------------+ +------------+ |
| ... |
+--------------------------------------+-----------------+
| Device drivers | arch |
| | |
| +----+ +-----+ +--------+ +----+ | +----------+ |
| |char| |block| |ethernet| |wifi| | | machine 1| |
| +----+ +-----+ +--------+ +----+ | +----------+ |
| +----------+ +-----+ +----+ +---+ | +----------+ |
| |filesystem| |input| |iio | |usb| | | machine 2| |
| +----------+ +-----+ +----+ +---+ | +----------+ |
| +-----------+ +----------+ +---+ | |
| |framebuffer| | platform | |drm| | ... |
| +-----------+ +----------+ +---+ | |
+-------------------------+----+-------+-----------------+
| | |
v v v

+--------------------------------------------------------+
| Hardware |
+--------------------------------------------------------+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pull/10/_images/kernel-virtmem-map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pull/10/_images/paging.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pull/10/_images/read.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pull/10/_images/read2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pull/10/_images/write.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pull/10/_images/write2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 48 additions & 0 deletions pull/10/_sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
=====================
Linux Kernel Teaching
=====================

This is a collection of lectures and labs Linux kernel topics. The
lectures focus on theoretical and Linux kernel exploration.


The labs focus on device drivers topics and they resemble "howto"
style documentation. Each topic has two parts:

* a walk-through the topic which contains an overview, the main
abstractions, simple examples and pointers to APIs

* a hands-on part which contains a few exercises that should be
resolved by the student; to focus on the topic at hand, the student
is presented with a starting coding skeleton and with in-depth tips
on how to solve the exercises

This content is based on the `Operatings Systems 2
<http://ocw.cs.pub.ro/courses/so2>`_ course from the Computer Science
and Engineering Department, the Faculty of Automatic Control and
Computers, University POLITEHNICA of Bucharest.

You can get the latest version at http://github.com/linux-kernel-labs.

To get started build the documentation from the sources:

.. code-block:: c
cd tools/teaching && make docs
then point your browser at **Documentation/output/labs/index.html**.

.. toctree::

lectures/so2.cs.pub.ro.rst
lectures/intro.rst
labs/vm.rst
labs/exercises.rst
labs/introduction.rst
labs/kernel_modules.rst
labs/kernel_api.rst
labs/device_drivers.rst
labs/interrupts.rst
labs/deferred_work.rst
labs/memory_mapping.rst
labs/device_model.rst
Loading

0 comments on commit f4c1167

Please sign in to comment.