Benno Bielmeier [Thu, 12 Aug 2021 07:43:38 +0000 (07:43 +0000)]
Fix typo: concurent -> concurrent
Jim Huang [Wed, 11 Aug 2021 13:01:07 +0000 (21:01 +0800)]
Merge pull request #54 from fennecJ/patch
Fix typo
fennecj [Wed, 11 Aug 2021 10:34:23 +0000 (18:34 +0800)]
Fix typo
Jim Huang [Wed, 11 Aug 2021 07:08:08 +0000 (15:08 +0800)]
Make insmod/rmmod more consistent
Jim Huang [Tue, 10 Aug 2021 10:24:17 +0000 (18:24 +0800)]
Merge pull request #53 from fennecJ/patch
Fix incorrect path
fennecj [Tue, 10 Aug 2021 10:22:33 +0000 (18:22 +0800)]
Fix incorrect path
There should be a space between uname and -r
Jim Huang [Mon, 9 Aug 2021 16:55:56 +0000 (00:55 +0800)]
Merge pull request #51 from ChinYikMing/fix-init-mesg
Fix init message
ChinYikMing [Mon, 9 Aug 2021 16:48:19 +0000 (00:48 +0800)]
Fix init message
Jim Huang [Mon, 9 Aug 2021 15:59:59 +0000 (23:59 +0800)]
Remove out-of-date information
Jim Huang [Mon, 9 Aug 2021 15:57:30 +0000 (23:57 +0800)]
Annotate NULL
Jim Huang [Mon, 9 Aug 2021 15:46:37 +0000 (23:46 +0800)]
Fix wording
Jim Huang [Mon, 9 Aug 2021 15:26:01 +0000 (23:26 +0800)]
Point to corresponding kernel header
Jim Huang [Mon, 9 Aug 2021 15:23:08 +0000 (23:23 +0800)]
Annotate more commands
Jim Huang [Mon, 9 Aug 2021 15:01:34 +0000 (23:01 +0800)]
Introduce \src to generate Linux kernel source hyperlinks
The new command \src was introduced for preliminary hyperlink generation
which points to Linux kernel source code. At present, stable/linux.git
was referred:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
We might switch to specific LTS kernels once requested.
Jim Huang [Mon, 9 Aug 2021 14:37:20 +0000 (22:37 +0800)]
Revise the path of Linux kernel headers
This patch uses the relative path to Linux kernel headers in source tree
rather than what they are usually inclused in LKM. It would be great to
introduce \href with appropriate hyperlinks to Linux kernel tree.
Jim Huang [Mon, 9 Aug 2021 14:05:08 +0000 (22:05 +0800)]
Clarify kernel header inclusion
Both <linux/module.h> and <linux/kernel.h> are essential headers, and
LKM should include them. Here, we do not use the fully qualified path
specifying the headers.
Jim Huang [Mon, 9 Aug 2021 14:00:57 +0000 (22:00 +0800)]
Change the header file which defines sys_delete_module
Jim Huang [Mon, 9 Aug 2021 13:41:50 +0000 (21:41 +0800)]
Annotate function calls
Jim Huang [Mon, 9 Aug 2021 13:35:19 +0000 (21:35 +0800)]
Annotate more commands
Jim Huang [Mon, 9 Aug 2021 13:19:40 +0000 (21:19 +0800)]
Annotate 'mknod' command
Jim Huang [Mon, 9 Aug 2021 13:17:22 +0000 (21:17 +0800)]
Add hyperlinks to microkernel examples
Jim Huang [Mon, 9 Aug 2021 13:12:04 +0000 (21:12 +0800)]
Update tLDP hyperlink
Jim Huang [Mon, 9 Aug 2021 13:11:15 +0000 (21:11 +0800)]
Add hyperlink to Understanding The Linux Kernel
Jim Huang [Mon, 9 Aug 2021 13:07:35 +0000 (21:07 +0800)]
Fix layout with \LaTeX
Jim Huang [Mon, 9 Aug 2021 12:53:35 +0000 (20:53 +0800)]
Always mention \LaTeX rather than plain text form
Jim Huang [Mon, 9 Aug 2021 12:51:12 +0000 (20:51 +0800)]
Fix cross reference
Jim Huang [Mon, 9 Aug 2021 12:40:09 +0000 (20:40 +0800)]
Use the newer entries for Linux kernel documentation
Jim Huang [Mon, 9 Aug 2021 12:35:24 +0000 (20:35 +0800)]
Annotate the path
Jim Huang [Mon, 9 Aug 2021 12:31:03 +0000 (20:31 +0800)]
Remove out-of-date kernel source descriptions
Jim Huang [Mon, 9 Aug 2021 12:23:12 +0000 (20:23 +0800)]
Update .gitignore
Jim Huang [Mon, 9 Aug 2021 12:20:38 +0000 (20:20 +0800)]
Unify the annotations
This patch enforces the annotations by means of the following:
* \cpp : C/C++ code, functions, variables, macros, symbols
* \sh : commands, executable files
* \verb : path and filenames
Jim Huang [Mon, 9 Aug 2021 11:20:35 +0000 (19:20 +0800)]
Merge pull request #49 from henrybear327/latex/add_very_style_inline_code
Add \cpp and \sh syntax for inline code
Chun-Hung Tseng [Mon, 9 Aug 2021 06:37:46 +0000 (23:37 -0700)]
Add inline code blocks by using newmintinline
We can now use \cpp|...| and \sh|...| to add inline code blocks, which
resembles the \verb|...| syntax
Signed-off-by: Chun-Hung Tseng <henrybear327@gmail.com>
Jim Huang [Mon, 9 Aug 2021 09:27:05 +0000 (17:27 +0800)]
Merge pull request #50 from VxTeemo/patch-1
Fix minor typo
VxTeemo [Mon, 9 Aug 2021 09:21:56 +0000 (17:21 +0800)]
fix minor typo
verb warp wrong at line 330 "linux/.config"
Jim Huang [Mon, 9 Aug 2021 05:24:13 +0000 (13:24 +0800)]
Merge pull request #48 from fennecJ/patch
Temporary fix release action failed issue
fennecj [Mon, 9 Aug 2021 05:04:12 +0000 (13:04 +0800)]
Temporary fix release action failed issue
Jim Huang [Sun, 8 Aug 2021 18:37:34 +0000 (02:37 +0800)]
Merge pull request #47 from fennecJ/patch
Remove _minted-lkmpg directory after compiled pdf
fennecj [Sun, 8 Aug 2021 18:14:24 +0000 (02:14 +0800)]
Remove _minted-lkmpg directory after compiled pdf
The _minted-lkmpg directory should be removed AFTER all compile work is
done.
Jim Huang [Sat, 7 Aug 2021 20:59:03 +0000 (04:59 +0800)]
Merge pull request #46 from arushsharma24/patch-1
Fix typo
Arush Sharma [Sat, 7 Aug 2021 20:53:07 +0000 (02:23 +0530)]
fix minor typo
Fixes a very minor typo.
Jim Huang [Sat, 7 Aug 2021 17:50:42 +0000 (01:50 +0800)]
Make program style consistent again
Hsin-Hsiang Peng [Sat, 7 Aug 2021 17:29:50 +0000 (01:29 +0800)]
Fix alignment problem in code block (#45)
In rendered HTML, the line number should be right aligned, and
code should be left aligned accordingly.
In addition, this patch added the basic build instructions, so that
someone can generated the PDF and HTML files.
Close #44
Jim Huang [Sat, 7 Aug 2021 17:24:59 +0000 (01:24 +0800)]
Apply editorial changes
This patch makes source listing shorter and more compact, that helps
when browsing.
Jim Huang [Sat, 7 Aug 2021 16:29:24 +0000 (00:29 +0800)]
Drop the deprecated init_module() and cleanup_module()
Jim Huang [Sat, 7 Aug 2021 15:33:37 +0000 (23:33 +0800)]
Enforce consistent style
Execute "make indent" before submitting patches.
Jim Huang [Sat, 7 Aug 2021 10:53:06 +0000 (18:53 +0800)]
Mention the availability of PDF pre-release
Jim Huang [Sat, 7 Aug 2021 10:49:24 +0000 (18:49 +0800)]
Tweak pdfLaTeX related commands
Jim Huang [Sat, 7 Aug 2021 10:35:28 +0000 (18:35 +0800)]
Tidy the rest of chapters
Jim Huang [Sat, 7 Aug 2021 10:29:39 +0000 (18:29 +0800)]
Shorten chardev
Jim Huang [Sat, 7 Aug 2021 03:02:49 +0000 (11:02 +0800)]
Tidy section: Optimizations
Jim Huang [Sat, 7 Aug 2021 02:59:15 +0000 (10:59 +0800)]
Tidy section: The Device Model
Jim Huang [Sat, 7 Aug 2021 02:56:16 +0000 (10:56 +0800)]
Tidy section: Crypto
Jim Huang [Sat, 7 Aug 2021 02:54:19 +0000 (10:54 +0800)]
procfs4: Shorten and indent
Jim Huang [Sat, 7 Aug 2021 02:35:52 +0000 (10:35 +0800)]
Tidy section: Interrupt Handlers
Jim Huang [Sat, 7 Aug 2021 02:27:05 +0000 (10:27 +0800)]
Tidy section: Scheduling Tasks
Jim Huang [Sat, 7 Aug 2021 02:24:08 +0000 (10:24 +0800)]
Tidy section: Replacing Print Macros
FIXME: we should rewrite this section
Jim Huang [Sat, 7 Aug 2021 02:15:49 +0000 (10:15 +0800)]
Tidy section: Avoiding Collisions and Deadlocks
Jim Huang [Sat, 7 Aug 2021 02:07:22 +0000 (10:07 +0800)]
Tidy section: Blocking Processes and threads
Jim Huang [Sat, 7 Aug 2021 01:52:03 +0000 (09:52 +0800)]
Update document maintainer information
asas1asas200 [Fri, 6 Aug 2021 10:08:05 +0000 (18:08 +0800)]
proc_ops: Be aware of kernel API changes (#13)
The proc_ops structure is defined in <include/linux/proc_fs.h> since
Linux v5.6+.
In older kernels, file_operations structure is used for custom hooks in
/proc file system. However, it contains some members that are unnecessary
in VFS, and every time VFS expands file_operations set, /proc code comes
bloated.
On the other hand, not only the space, but also some operations were
saved by this structure to improve its performance.
Jim Huang [Thu, 5 Aug 2021 12:50:22 +0000 (20:50 +0800)]
Merge pull request #43 from dancek/master
Rewrite CSS to support scaling
Hannu Hartikainen [Thu, 5 Aug 2021 10:37:55 +0000 (13:37 +0300)]
Rewrite CSS to support scaling
This changes the layout to use the default font size with a reasonable
max width and margins around the body. Elements that would overflow on
narrow displays are changed to wrap (.author) or present a scroll bar as
necessary (figure, .verbatim, .fancyvrb). The properties on html and
body are set such that there is no full-document vertical scrolling.
Inline math is displayed in the same size as the surrounding text.
Jim Huang [Thu, 5 Aug 2021 06:28:12 +0000 (14:28 +0800)]
cat_nonblock: Use canonical name scheme and fix unintended assignment
Jim Huang [Wed, 4 Aug 2021 18:39:09 +0000 (02:39 +0800)]
Merge pull request #39 from fdgkhdkgh/master
Fix typo
吳建興 [Wed, 4 Aug 2021 18:16:36 +0000 (02:16 +0800)]
Fix typo.
RinHizakura [Wed, 4 Aug 2021 15:42:10 +0000 (23:42 +0800)]
Revise hello-5 and its output (#38)
For the example module hello_5, the book showed the incorrect output
in corresponding with its execution results.
In addition, this patch changes from myintArray[2] = {-1, -1} to
myintArray[2] = {420, 420}, which help the readers distinguish from
the kernel messages.
Jim Huang [Wed, 4 Aug 2021 02:03:06 +0000 (10:03 +0800)]
Merge pull request #37 from fdgkhdkgh/master
Fix typo
吳建興 [Wed, 4 Aug 2021 01:33:21 +0000 (09:33 +0800)]
Fix typo.
There is a typo in chapter 0.6.3.
Jim Huang [Mon, 2 Aug 2021 22:29:52 +0000 (06:29 +0800)]
Minor wording tweak
demonsome [Mon, 2 Aug 2021 15:01:34 +0000 (23:01 +0800)]
procfs1: Fix parameter descriptions (#34)
In "procfs1.c," the "buffer" is actually the second parameter of procfile_read().
The "offset" is the fourth one.
demonsome [Mon, 2 Aug 2021 14:59:19 +0000 (22:59 +0800)]
Unify device node name "/proc/helloworld" (#33)
The file name "proc helloworld" was not consistent with that of the later
sentences. The latter sentences use the device node name "/proc/helloworld".
Jim Huang [Mon, 2 Aug 2021 07:15:49 +0000 (15:15 +0800)]
Mention the online publication
Jim Huang [Mon, 2 Aug 2021 06:17:59 +0000 (14:17 +0800)]
Merge pull request #32 from focaaby/master
Publish GitHub Pages with GitHub Actions
Jerry Wang [Sun, 1 Aug 2021 21:51:00 +0000 (22:51 +0100)]
Publish GitHub Page with GitHub Action
Add a new Github Action to publish to the GitHub page. Use twtug/lkmpg
image for reproducibility.
Ref:
- sysprog21#27
- https://github.com/TeXtw/docker-lkmpg
Jim Huang [Sun, 1 Aug 2021 18:57:31 +0000 (02:57 +0800)]
Tidy section: system calls
Jim Huang [Sun, 1 Aug 2021 15:32:02 +0000 (23:32 +0800)]
Tidy section: device files
fennecJ [Sun, 1 Aug 2021 18:42:39 +0000 (02:42 +0800)]
Generate HTML via make4ht (#20)
This patch generates HTML files with "make4ht" in the "html" directory.
Known issues with "make4ht":
Running "make4ht -suf html5 -d html lkmpg.tex" will cause the following
flaws:
1. The layout was unsatisfying.
2. After parsing TeX, it stoped at "\tableofcontents" with errors.
3. Several unneeded files were generated.
4. No way to specify the destination filename for HTML generation.
Solutions/workaround:
1. Use customized configuration file "html.cfg" to specify the layout style.
2. Turn off the \tableofcontents section when using make4ht. However, this
results in the lack of table of contents in HTML. It can be fixed by
appending "\Configure{tableofcontents*}{chapter,section,subsection}"
to configuration file.
3. The build system removes the temporary files.
4. Use a symbolic link "index.html" to "lkmpg.html".
Hsin-Hsiang Peng [Sun, 1 Aug 2021 18:24:09 +0000 (02:24 +0800)]
Add package xparse (#31)
The package xparse should be included since
\NewDocumentCommand is part of it
Jim Huang [Sun, 1 Aug 2021 14:41:28 +0000 (22:41 +0800)]
Remove out-of-date versioing scheme
Jim Huang [Sun, 1 Aug 2021 14:21:42 +0000 (22:21 +0800)]
Merge pull request #29 from ekangmonyet/master
Delete existing release asset before releasing
Ekang Monyet [Sun, 1 Aug 2021 12:19:26 +0000 (20:19 +0800)]
Delete existing release asset before releasing
Use mknejp/delete-release-assets to delete existing asset.
This approach might not be optimal if softprops/action-gh-release
supports upserting [1].
[1] https://github.com/softprops/action-gh-release/pull/134
ekangmonyet [Sun, 1 Aug 2021 11:39:12 +0000 (19:39 +0800)]
Dockerized PDF deployment in GitHub Actions (#28)
Add a new GitHub Action to build and release the PDF file after every
push to master. Use texlive/texlive docker image for the sake of
reproducibility in preparation for future build tools like make4ht .
Progress #27 - Reproducible TeX build environment using Docker
Jim Huang [Sun, 1 Aug 2021 08:21:01 +0000 (16:21 +0800)]
Tidy section: Character Device drivers
Jim Huang [Sun, 1 Aug 2021 07:03:25 +0000 (15:03 +0800)]
Tidy section: Preliminaries
Jim Huang [Sun, 1 Aug 2021 06:15:59 +0000 (14:15 +0800)]
Zircon kernel was formerly called Magenta
The renaming appeared in 2017.
Jim Huang [Sat, 31 Jul 2021 15:39:03 +0000 (23:39 +0800)]
Merge pull request #24 from fennecJ/patch
Fix grammar
fennecj [Sat, 31 Jul 2021 15:19:44 +0000 (23:19 +0800)]
Fix grammar
demonsome [Sat, 31 Jul 2021 15:03:16 +0000 (23:03 +0800)]
chardev: Revise comment on device node (#23)
The device file create in this example is "chardev".
So input command "sudo cat /dev/chardev" will get a valid message
"I already told you %d times Hello world!"
fennecJ [Fri, 30 Jul 2021 06:47:22 +0000 (14:47 +0800)]
Fix dead link (#21)
Jim Huang [Fri, 30 Jul 2021 05:44:35 +0000 (13:44 +0800)]
Add information for contributing
Jim Huang [Thu, 29 Jul 2021 16:40:58 +0000 (00:40 +0800)]
Merge pull request #19 from fennecJ/master
Fix typo
fennecj [Thu, 29 Jul 2021 11:52:22 +0000 (19:52 +0800)]
Fix typo
linD026 [Thu, 29 Jul 2021 08:10:52 +0000 (16:10 +0800)]
Avoid strlen by assigning explicit length of string for proc_read (#18)
Since the address of buffer is userspace address, it may trigger an unexpected fault on strlen(buffer).
On Ubuntu 20.04.2 LTS ( 5.8.0-63-generic ), using strlen(buffer) will result in the following:
[ 2168.010930] /proc/buffer1k created
[ 2177.014347] BUG: unable to handle page fault for address:
00007fbbc2a17000
[ 2177.014355] #PF: supervisor read access in kernel mode
[ 2177.014358] #PF: error_code(0x0000) - not-present page
[ 2177.014361] PGD
80000003c61d0067 P4D
80000003c61d0067 PUD
3ee6c5067 PMD
40e1ff067 PTE 0
[ 2177.014369] Oops: 0000 [#1] SMP PTI
[ 2177.014376] CPU: 7 PID: 4750 Comm: cat Tainted: P W OE 5.8.0-63-generic #71~20.04.1-Ubuntu
[ 2177.014387] RIP: 0010:procfile_read+0xb/0x20 [procfs2]
[ 2177.014393] Code: Unable to access opcode bytes at RIP 0xffffffffc1253fe1.
[ 2177.014396] RSP: 0018:
ffffbc84412cbe78 EFLAGS:
00010286
[ 2177.014400] RAX:
ffffffffc1254000 RBX:
0000000000020000 RCX:
ffffbc84412cbef0
[ 2177.014403] RDX:
0000000000020000 RSI:
00007fbbc2a17000 RDI:
ffffa057d2708f00
[ 2177.014406] RBP:
ffffbc84412cbe80 R08:
0000000000000001 R09:
0000000000000000
[ 2177.014409] R10:
0000000000000000 R11:
0000000000000000 R12:
ffffa0581de8ccc0
[ 2177.014411] R13:
ffffa057d2708f00 R14:
ffffbc84412cbef0 R15:
00007fbbc2a17000
[ 2177.014415] FS:
00007fbbc3bfa580(0000) GS:
ffffa0582dbc0000(0000) knlGS:
0000000000000000
[ 2177.014418] CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
[ 2177.014421] CR2:
ffffffffc1253fe1 CR3:
00000003c611c004 CR4:
00000000003606e0
[ 2177.014424] Call Trace:
[ 2177.014435] proc_reg_read+0x66/0x90
[ 2177.014441] vfs_read+0xaa/0x190
[ 2177.014446] ksys_read+0x67/0xe0
[ 2177.014451] __x64_sys_read+0x1a/0x20
[ 2177.014458] do_syscall_64+0x49/0xc0
[ 2177.014464] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 2177.014467] RIP: 0033:0x7fbbc3b18142
[ 2177.014472] Code: c0 e9 c2 fe ff ff 50 48 8d 3d 3a ca 0a 00 e8 f5 19 02 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
[ 2177.014476] RSP: 002b:
00007ffcf2d20d78 EFLAGS:
00000246 ORIG_RAX:
0000000000000000
[ 2177.014479] RAX:
ffffffffffffffda RBX:
0000000000020000 RCX:
00007fbbc3b18142
[ 2177.014482] RDX:
0000000000020000 RSI:
00007fbbc2a17000 RDI:
0000000000000003
[ 2177.014485] RBP:
00007fbbc2a17000 R08:
00007fbbc2a16010 R09:
0000000000000000
[ 2177.014487] R10:
0000000000000022 R11:
0000000000000246 R12:
0000560f8ff081f0
[ 2177.014490] R13:
0000000000000003 R14:
0000000000020000 R15:
0000000000020000
[ 2177.014635] CR2:
00007fbbc2a17000
[ 2177.014639] ---[ end trace
b71ff05c1b0a10f6 ]---
[ 2177.184174] RIP: 0010:procfile_read+0xb/0x20 [procfs2]
[ 2177.184176] Code: Unable to access opcode bytes at RIP 0xffffffffc1253fe1.
[ 2177.184177] RSP: 0018:
ffffbc84412cbe78 EFLAGS:
00010286
[ 2177.184178] RAX:
ffffffffc1254000 RBX:
0000000000020000 RCX:
ffffbc84412cbef0
[ 2177.184179] RDX:
0000000000020000 RSI:
00007fbbc2a17000 RDI:
ffffa057d2708f00
[ 2177.184180] RBP:
ffffbc84412cbe80 R08:
0000000000000001 R09:
0000000000000000
[ 2177.184180] R10:
0000000000000000 R11:
0000000000000000 R12:
ffffa0581de8ccc0
[ 2177.184181] R13:
ffffa057d2708f00 R14:
ffffbc84412cbef0 R15:
00007fbbc2a17000
[ 2177.184182] FS:
00007fbbc3bfa580(0000) GS:
ffffa0582dbc0000(0000) knlGS:
0000000000000000
[ 2177.184182] CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
[ 2177.184183] CR2:
ffffffffc1253fe1 CR3:
00000003c611c004 CR4:
00000000003606e0
Jim Huang [Tue, 27 Jul 2021 02:10:16 +0000 (10:10 +0800)]
Open Software License is not popular. Explicitly refer to OSI
2011eric [Mon, 26 Jul 2021 05:10:34 +0000 (13:10 +0800)]
Use unified command prompt (#11)
This patch enforces the assumption of using as a non-root user. That is,
it is necessary to specify sudo for the essential commands such as
insmod and rmmod. In addition, most command prompts should start with
$ (dollar sign).
Jim Huang [Sun, 25 Jul 2021 19:18:06 +0000 (03:18 +0800)]
Merge pull request #12 from
25077667/style-tweaks
Fix trivial tweak for missing comma
25077667 [Sun, 25 Jul 2021 18:10:34 +0000 (02:10 +0800)]
Fix trivial tweak for missing comma
Jim Huang [Sun, 25 Jul 2021 05:50:18 +0000 (13:50 +0800)]
Tidy section: hello world
Wei-Lun Tsai [Sat, 24 Jul 2021 01:14:46 +0000 (09:14 +0800)]
Trivial fix for writing style