Commit Graph

187 Commits

Author SHA1 Message Date
Integral
56c16b9ba0
Replace make with $(MAKE) in Makefile
According to GNU Make Manual,

Recursive make commands should always use the variable MAKE, not
the explicit command name "make".
2024-11-11 13:57:43 +08:00
Andrew Kreimer
98201b85aa Fix typos via codespell
atleast -> at least
encouter -> encounter
2024-10-04 19:08:50 +03:00
Andrew Lin
84cc7fee1c
Fix typo (#265)
Change return-object programming to return-oriented programming.
2024-07-22 01:56:37 +08:00
Hao.Dong
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
jouae
74a450ba92
Fix a typo
Delete the duplicate word "otherwise"

Before and after:
otherwise, otherwise -> otherwise
2024-07-03 18:46:45 +08:00
Jim Huang
7bcc4fbf46
Merge pull request #263 from pao0626/command-permission-changes
Add sudo for file access permissions
2024-07-03 17:04:14 +08:00
HJ Pao
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
jouae
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
cvvletter
0a27a0140f
Fix typo (#257) 2024-05-05 19:19:43 +08:00
yeh-sudo
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
Yo-Jung Lin
86b5e86e5b Refine description in request_threaded_irq usage 2024-04-21 01:09:32 +08:00
Yo-Jung Lin
8cd1c6a322 Refine wordings 2024-04-21 01:09:32 +08:00
Jim Huang
56f566abe6 Provide a tasklet-free example
Co-authored-by: Bob Mottram <bob@freedombone.net>
2024-04-21 01:09:28 +08:00
0xff07
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
Jim Huang
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
Jim Huang
d92fcd1ce4
Merge pull request #248 from vax-r/Fix_typos
Fix typo
2024-04-16 04:58:07 +08:00
weihsinyeh
6640ccdc0f
Fix unmatched quotation (#251) 2024-04-13 13:37:28 +08:00
Yo-Jung Lin
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
vax-r
a700043862 Fix typo
Correct "dynamicly" to "dynamically" and correct "initialised" to
"initialized".
2024-02-01 15:09:23 +08:00
Jim Huang
15f9a4999b Proofread 2023-12-22 21:22:32 +08:00
Jim Huang
e631ad9267 Proofread 2023-12-22 21:02:18 +08:00
Jim Huang
e61a0d6174 Enforce consistent name scheme 2023-12-22 20:40:27 +08:00
keytouch
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
Amit Dhingra
3490cd7c41
Fixed Typo (#243)
Close #242
2023-10-24 02:31:57 +08:00
Jim Huang
b99354a02f
Merge pull request #238 from visitorckw/fix-grammar-error
Fix grammar
2023-10-07 17:22:32 +08:00
Kuan-Wei Chiu
c0abff2dea Fix grammar
The verb 'suggest' is used with the gerund form.
2023-10-07 17:15:19 +08:00
heartofrain
a8558121d9 Revise the depiction of return type of proc_create(). 2023-10-07 16:50:23 +08:00
Amit Dhingra
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
Amit Dhingra
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
Kuan-Wei Chiu
ee617a1e53 Fix typo 2023-09-04 04:58:31 +08:00
Kuan-Wei Chiu
d45485f637 Remove duplicated words 2023-09-04 04:53:07 +08:00
Shih-Sheng Yang
34eb62045e
Fix typo 2023-09-03 13:06:13 +08:00
Kuan-Wei Chiu
292339e628 Fix typo
Capitalized the first letter in a sentence.
2023-09-02 19:57:53 +08:00
visitorckw
e976c32ceb Fix typo 2023-09-01 04:32:57 +08:00
Jim Huang
7c4e64e51a Proofread 2023-08-10 15:27:11 +08:00
Jim Huang
55aee85570 Always use Debian GNU/Linux explicitly 2023-08-10 15:05:19 +08:00
Jim Huang
261332c805 Proofread 2023-08-10 15:02:31 +08:00
Jim Huang
12be76c5dc Proofread 2023-08-10 14:39:31 +08:00
Jim Huang
fae9ac44d4 Proofread 2023-08-10 10:26:11 +08:00
Jim Huang
ae308fd092 Proofread 2023-08-10 10:06:39 +08:00
Jim Huang
e6e8e48d81 Proofread 2023-08-10 10:00:50 +08:00
Tyler Fanelli
4f0fa3b17c headers: Update header installation for Fedora 2023-07-08 00:00:20 -04:00
Peter Lin
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
Chih-En Lin
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
Chih-En Lin
b0d4204405 Relocate Archlinux code snippet to avoid confusion
Close #185
2023-02-23 21:03:49 +08:00
Andy Shevchenko
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
linD026
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
Peter Lin
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
Peter Lin
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
Iûnn Kiàn-îng
9c25e59b43
Convey secure boot specific considerations (#177) 2022-11-10 22:24:37 +08:00