185 Commits

Author SHA1 Message Date
84cc7fee1c Fix typo (#265)
Some checks failed
build-deploy-assets / build (push) Has been cancelled
deploy-github-page / build (push) Has been cancelled
status-checks / validate (push) Has been cancelled
Change return-object programming to return-oriented programming.
2024-07-22 01:56:37 +08:00
950408472e Add a hook on syscall using Kprobes under x86 (#260)
For x86 architecture, the system call table cannot be used to invoke
a system call after commit 1e3ad78 since v6.9. This commit has been
backported to long term stable kernels, like v5.15.154+, v6.1.85+,
v6.6.26+ and v6.8.5+[1]. In this case, thanks to Kprobes, a hook can be
used instead on the system call entry to intercept the system call.

[1] https://stackoverflow.com/a/78607015

Co-authored-by: Hao Dong <hao.dong.work@outlook.com>
2024-07-05 07:40:53 +08:00
74a450ba92 Fix a typo
Delete the duplicate word "otherwise"

Before and after:
otherwise, otherwise -> otherwise
2024-07-03 18:46:45 +08:00
7bcc4fbf46 Merge pull request #263 from pao0626/command-permission-changes
Add sudo for file access permissions
2024-07-03 17:04:14 +08:00
be16ad6710 Add sudo for file access permissions
Add sudo to commands in Chapter 8 for example module interaction.

The "myvariables" in the module are set with 0660 permissions
via __ATTR(), preventing direct user access.

Options to fix this:
1. Instruct users to use 'sudo' to read/write files.
2. Relax the permission settings to 0666.

This commit adopts the sudo method to maintain security constraints.
2024-07-03 16:31:53 +08:00
7a6dd1f582 Modify the descritions of seq_file and flowchart
7.4 The seq_file is missing the behavior that occurs when it
directly returns NULL after the start step.

Also, in the flowchart, the first decision where `return is NULL`
is `Yes` points to nothing, which is not defined in ISO 5807.

ISO 5807 section 10.3.1.2 states logic path of a decision,
"Each exit from a symbol be accompanied by the appropriate
condition values to show the logic path which it represents,
so that the conditions and the associated references are identified."

The behavior of pointing to nothing does not have associated
references and does not indicate the relation of this logic path.

Refs:
	1. The Liunx Kernel Module Programming Guide
	   7.4 Manage /proc file with seq_file
	2. ISO-5807-1985
2024-07-02 23:47:43 +08:00
0a27a0140f Fix typo (#257) 2024-05-05 19:19:43 +08:00
617a1d4d52 Improve readibility
Add \cpp before |main()| to improve readibility so that it won't look
like "|main()|" in the paragraph.
2024-04-25 14:49:43 +08:00
86b5e86e5b Refine description in request_threaded_irq usage 2024-04-21 01:09:32 +08:00
8cd1c6a322 Refine wordings 2024-04-21 01:09:32 +08:00
56f566abe6 Provide a tasklet-free example
Co-authored-by: Bob Mottram <bob@freedombone.net>
2024-04-21 01:09:28 +08:00
3e472c84fd Describe atomic context in spinlock section (#254)
Aquiring a spinlock makes the holder enter atomic context. Extra
attention is needed in atomic context. In particular, functions
that may sleep must not be used. Add this detail to the spinlock
section.
2024-04-16 21:25:46 +08:00
f5893d8140 Remove the crypto section due to poor maintenance
The past content in the crypto section lacks informative descriptions,
and there should be a proper procedure to demonstrate how Linux
cryptography works. Due to poor maintenance, let's drop the section.
2024-04-16 05:39:11 +08:00
d92fcd1ce4 Merge pull request #248 from vax-r/Fix_typos
Fix typo
2024-04-16 04:58:07 +08:00
6640ccdc0f Fix unmatched quotation (#251) 2024-04-13 13:37:28 +08:00
b9a10fe17b Replace SA_xxx IRQ flags with the IRQF_xxx ones
The SA_xxx flags has been removed for years. Nowadays the kernel uses
the IRQF_xxx flags to specify IRQ behaviors. Adjust the descriptions
in the book accordingly.
2024-04-09 19:39:18 +08:00
a700043862 Fix typo
Correct "dynamicly" to "dynamically" and correct "initialised" to
"initialized".
2024-02-01 15:09:23 +08:00
15f9a4999b Proofread 2023-12-22 21:22:32 +08:00
e631ad9267 Proofread 2023-12-22 21:02:18 +08:00
e61a0d6174 Enforce consistent name scheme 2023-12-22 20:40:27 +08:00
a60e84a060 syscall: rename module name to syscall_steal
In Debian, the name syscall conflicts with this patch:
in debian kernel source tree:
debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch
mailing list url:
https://lore.kernel.org/lkml/1415245982.3398.53.camel@decadent.org.uk/T/#u
which introduces a parameter named syscall.x32. So change our name.
2023-12-22 20:14:42 +08:00
3490cd7c41 Fixed Typo (#243)
Close #242
2023-10-24 02:31:57 +08:00
b99354a02f Merge pull request #238 from visitorckw/fix-grammar-error
Fix grammar
2023-10-07 17:22:32 +08:00
c0abff2dea Fix grammar
The verb 'suggest' is used with the gerund form.
2023-10-07 17:15:19 +08:00
a8558121d9 Revise the depiction of return type of proc_create(). 2023-10-07 16:50:23 +08:00
8150c1dead Change word in tasklet description
The word 'defator' is unable to be found in a lexicon. Change the word
'defator' with 'drawbacks' which should imply the negative meaning intended
in the sentence.
2023-10-06 23:13:09 +02:00
bf523b2332 Simplify code by removal of outer struct
Two struct completion(s) are encapsulated within another 'struct machine'.
Simplify the code by removing the outer struct and let the struct
completion(s) be self-standing.

Update description in tex to match code.
2023-09-28 06:02:39 +00:00
ee617a1e53 Fix typo 2023-09-04 04:58:31 +08:00
d45485f637 Remove duplicated words 2023-09-04 04:53:07 +08:00
34eb62045e Fix typo 2023-09-03 13:06:13 +08:00
292339e628 Fix typo
Capitalized the first letter in a sentence.
2023-09-02 19:57:53 +08:00
e976c32ceb Fix typo 2023-09-01 04:32:57 +08:00
7c4e64e51a Proofread 2023-08-10 15:27:11 +08:00
55aee85570 Always use Debian GNU/Linux explicitly 2023-08-10 15:05:19 +08:00
261332c805 Proofread 2023-08-10 15:02:31 +08:00
12be76c5dc Proofread 2023-08-10 14:39:31 +08:00
fae9ac44d4 Proofread 2023-08-10 10:26:11 +08:00
ae308fd092 Proofread 2023-08-10 10:06:39 +08:00
e6e8e48d81 Proofread 2023-08-10 10:00:50 +08:00
4f0fa3b17c headers: Update header installation for Fedora 2023-07-08 00:00:20 -04:00
421b9b04fe Introduce static key in optimizations section
This patch introduces static key technique and adds a kernel module
to demostrate how to use static key to optimize an almost unlikely
branch, the module can interact with userspace thru a character device.

Signed-off-by: Peter Lin <peterlin@qilai.dev>
2023-05-02 10:33:36 +08:00
d2d54ca639 Remove sleep_on family
Since the commit b8780c363d80 ("sched: remove sleep_on() and friends
"), the description about sleep_on is incorrect and the example code has
been fixed by replacing it with wait_event family. Let's also fix the
description to match the corrected code.
2023-04-27 10:20:48 +08:00
b0d4204405 Relocate Archlinux code snippet to avoid confusion
Close #185
2023-02-23 21:03:49 +08:00
b8bbcd8a07 treewide: Replace kernel.h by printk.h
The kernel.h should be discouraged for use.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2023-02-23 12:54:30 +02:00
78e3e062c4 syscall: Use openat() instead of open()
Since sys_open is deprecated and some architectures don't support it.
We switch the implementation to sys_openat.

Moreover, in some architectures like x86-64, the prototype of syscall,
for example, openat(), might have been changed to struct pt_regs [1]
but we cannot promise that so support the two types
(sys_openat and pt_regs).

Also, to prevent other untraced tasks print out the information, add
the uid checking in our_sys_openat().

[1] https://lore.kernel.org/lkml/20180405095307.3730-1-linux@dominikbrodowski.net/

Close #159
2022-12-25 14:27:03 +08:00
3133ee5293 Add error message when sha256 algorithm is not supported
It failed silently when crypto_alloc_tfm() failed, so add an error
message to inform the developer to enable sha256 algorithm support.

Signed-off-by: Yu Chien Peter Lin <peterlin.tw@pm.me>
2022-12-12 23:07:20 +08:00
55e7a155fa Fix typo in interrupt handlers section
%s/assembler/assembly language/

Signed-off-by: Yu Chien Peter Lin <peterlin.tw@pm.me>
2022-12-11 14:46:08 +08:00
9c25e59b43 Convey secure boot specific considerations (#177) 2022-11-10 22:24:37 +08:00
9892214764 Fix typo (line 1019) (#174)
Changed "The choose of two different functions depend on whether ..." to
"The choice between two different functions depends on whether ..."
2022-10-24 21:52:05 +08:00
b950a100f6 Merge pull request #124 from tzuyichan/patch
Fix grammar
2022-10-23 00:28:11 +08:00