Volume 2 — Kernel Mode — some typos

Errare est humanum. Any typos, inaccuracies, editorial mistakes, big or small - please post here.

Volume 2 — Kernel Mode — some typos

Postby PeterU » Wed Feb 05, 2020 10:48 am

Unlike my previous typo dumps, this one is incomplete and will be serialized in this thread as I:

* have not finished reading Vol 2 yet
* want to make sure I don't miss the deadline for getting at least some of my observed errata in the final releases

Contents, at a glance (full page, not brief contents synopsis by same title) — very own custom file sytstem (end of page)
p2 — eludes this author.. (three dots for an ellipsis)
p2 — Macs were originally PowerPC based (what happened to the 68k era?)
p4 — Table 1-2 — consistency of spaces between iPad and model numbers
p5 — a WikiPedia article
p5 — hoveringa bit under 3000mAh
p7 — Apple pay related
p9 — even the i-devices aren’t (standardise iDevices??)
p9 — proprietary lightning
p9 — consistency of Firewire vs FireWire
p9 — since around MacOS 10.4 and the 2005 Macs — (wasn’t it earlier than that? The original iPod was FireWire only!)
p10 — ThunderBolt vs Thunderbolt
p10 — The Mac pro sports
p10 — Only the Macbook Air
p10 — MiniDisplay Port / mini display port
p11 — AppleUSBHSIC USB High Speed InterChip (Celluar)
p12 — followed by the lightning connector
p13 — host over lightning
p13 — USB serial to lightning cable
p16 — objective-C class
p16 — SMbios data might be corrupted
p16 — SMbios emulated by the
p17 — 0x10 bigEndian 1 if little endian (below, 0, denoting little endian) — ummm, which one denotes bigEndian then, if 1 == little and below is 0 == little ??
p19 — footnote period
p20 — Processor Excecution Mode
p24 — A12, the processor codenamed ” “
p24 — trillion FOPS — (FLOPS?)
p25 — iPhone8x — (iPhone8,x)
p29 — BlueTooth combo
p30 — BlueTooth
p30 — Bluetooth Low energy
p30 — readily work wit
p30 — the BlueTooth component
p31 — the dameon
p31 — tethering over bluetooth
p31 — binary used in Bluetool — is
p37 — only avilble on debug SEPOS
p41 — will become avoidable — unavoidable
p41 — value to it can be at the beginning of the line — value, so it can be
p42 — not #defines as PRIVATE — #defined
p43 — An interesting observation is tht — (footnote)
p43 — - The Broadcom
p48 — Kernel Adress Sanitizer
p48 — objective-C APIs
p59 — registration is performed by The only user
p67 — (no typo, just the description of MACFramework and its utility make me think maybe it’s “RootKitKit”!)
p72 — Loading kext requires — kexts
p72 — less restrictivce — more restrictive?
p72 — Kext code signatures
p73 — but not elimitate the threat
p74 — to contact kext(8) — kextd
p75 — includes the Kexts
p78 — 3-16-b <key< — (the hex of the XML is correct, but not the text listing)
p80 — first checked if it an — (it is an)
p80 — load opertions are started from user mode
p80 — two private static variable — s
p81 — Fig 3-18 — declareExceutable
p81 — Depdendencies→getObject
p83 — exeuctable
p83 — unless already prelinked) — delete paren
p83 — jetissoned — jettisoned
p83 — This section contents — section’s
p83 — initiazer pointers
p83 — due to the kext loading — add closing paren
PeterU
 
Posts: 7
Joined: Sun Apr 28, 2019 8:44 pm

Re: Volume 2 — Kernel Mode — some typos

Postby morpheus » Wed Feb 05, 2020 2:25 pm

I've been waiting for this! Thank you! And superb timing as I'm doing a final update by the weekend! I really hope you can find more!
morpheus
Site Admin
 
Posts: 738
Joined: Thu Apr 11, 2013 6:24 pm

Re: Volume 2 — Kernel Mode — some typos

Postby PeterU » Thu Feb 06, 2020 9:59 am

p84 — boot initializtion
p87 — The sysextd, a daemon residing in the SystemExtensions.framework. — not a sentence?
p87 — overwhich
p100 — Darwin 18 Adds
p108 — eslewhere
p108 — AArch64
p108 — Fig title The aarch64
p110 — Priveleged-Access-Never
p112 — in ARM64 the x18 register — capitalisation inconsistent with other references to X18 register
p114 — but thin copyin* — missing “a” in front of thin?
p115 — ARM’s Priveleged eXecute Never — Privileged – also font
p119 — per-cpu data structure
p122 — Output 4-34:Analyzing — (add space between : and Analyzing)
p123 — proprietary interfacy
p124 — use this to support set_cthread_ self — extra space
p124 — HyperVisor.framework or Hypervisor.framework ??
p124 — (specifically, though — through
p128 — OpenFirmware — add space for Open Firmware
p130 — eachotther
p137 — continue start
p141 — footnote period
p142 — all 2018 mac models
p142 — no direct USB access* — * should be ** to match its footnote
p144 — image – The
p145 — submittin audio buffers
p147 — from memory Exper/ — (in title of experiment box: remove this?)
p148 — past millenium — millennium
p148 — Although start_first_cpu open sourced — is open sourced
p153 — not #define, this is just ignored — defined
p153 — CPU identfcation
p155 — cloc.c — missing close parens
p156 — XNU CPU Power Management (XPCM)
p160 — 5-35: font on ifnet_attach
p163 — (I assume BS”D is intentional and I just am missing the clever reference!)
p163 — Posix — POSIX (consistency)
p164 — adopt FreeBSD implementation — missing “the”
p164 — GNU Public License — GNU General Public License
p164 — evolved from to the present day
p165 — font on proc_init and tty_init
p166 — 18: discussed in chapter 7
p166 — 21: subsystem: are initialized
p166,167 — items 29, 31, 32 — font for method names not consistent with other list items
p167 — DTrae initialization
p170 — Personae::
p170 — MemoryStatus information: Continent on CONFIG_MEMORYSTATUS — Contingent
p172 — getting the bsd info of
p172 — they can be passed two — to
p175 — user mdoe
p177 — varaibles
p178 — fork(2) — (font)
p178 — it the target thread — it is
p178 — eliminated when proper system sharing — move quote to beginning of “when”
p180 — encpasulated binary
p184 — generateing
p187 — same objet
p187 — Table 6-17 fo_write missing closing parens
p196 — later, more adequate time — “opportune”, perhaps?
p196 — aio BSD — missing “from”
p196 — process is singaled
p196 — specificaiocpb — (space)
p197 — Fig6-27 — asnyc_workqs
p197 — dequed from the
p204 — allocatorand
p206 — forbidden by a callto
p211 — array ufstable entries — missing “of”
p215 — code singing information
p216 — chapter 11
p216 — 512 through 16,348 — 16,384
p219 — ioctl(2)-style predefined control codes, a user mode caller — sentence stops early
p224 — watchers. recall
p224 — populates the kfs_event record — errant space
p224 — and Spotlight’s mds — close parens after mds?
p228 — 0x40084a47 — (font)
p228 — filecooredinationd
p230 — vfs_context_is64bit — (appears to have duplicate purpose from item above it in table)
p232 — ioflg, A MACF check
p250 — FileVault wasn’t introduced in 10.7 — it appeared in 10.3 for home folders only (encrypted sparse image IIRC) but was only full-disk as of FileVault 2 in 10.7.
p252 — every 3 days,
p252 — aMaintenace priority
p253 — oid vs OID consistency
p271 — are inherit by its threads — inherited
p271 — macro is #define in — defined
p271 — In intel architectures
p271 — machine_task.c — (small font)
p272 — protected by the task_objectq_lock — close parens
p273 — Scheudling information
p273 — scheudling modes
p274 — kkernel_thread_start — (is that double K correct?)
p274 — thread_act.c — small font
p278 — a SEND right to another — (font)
p280 — Platform expert
p284 — showin — shown in
p284 — (Performance or efficiency
p285 — Fig9-10 — nice(2) levels go from +20 to 0 to +20
p287 — XNU’s averages was
p290 — all scheduler implementation — implementations
p291 — Fig9-15 — quanum_timer_expire
p292 — therad_dispatch
p295 — best facily for tracing
p298 — artificial — close parens
p298 — deadlines expires — d
p300 — runs a timer callasking idle threads
p301 — qeueues
p303 — being used in its allocation — close parens
p306 — waiting for that lock)
p307 — Ledgers are pure Mach — a pure
p307 — system call in practive
p308 — kills is outright — it
p308 — outpus a message
p310 — major drawback cause Linux — caused
p310 — decreasing
p315 — kernel space, All
p317 — essential the same — essentially
p318 — 4: The host priveleged port
p322 — confusing prototype, — .
p327 — replaced with pointers vm_copy_t objects — pointers to
p332 — transforming them into an arbitrary kernel memory allocation primitives
p333 — Inspecting mach
p336 — introdcuced
p337 — translation the in-kernel ipc_kmsg structures — translation of the
p337 — mnl_msg_complete() FLIPC layer to free the message — missing “is called” etc?
P337 — to the any remote
p338 — a mach port name
p338 — 3: — end with question mark
p340 — bottom layer – pmap handles — another hyphen after pmap?
P341 — ascending adress order
p341 — union is instead treading as a — treated
p348 — footnote chose to overlook it — “.”
p348 — sepcified offset
p350 — one of conditions to not hold — the conditions
p350 — specically crafted
p352 — simplest one to explore are — ones
p352 — does not free the object — close parens
p352 — identity for the operation — close parens
p353 — This is simple 24-byte structure — a simple
p354 — 11-11: referece and refrenced
p358 — setting of — (is?)
p358 — Four threshold — There are four threshold
p359 — shared_region.c — close parens
p360 — Apple protect pager’s
p362 — Fairplay encryption
p364 — The upls are kalloc
p366 — ever idiosyncratic — ever more(?)
p367 — straighforward
p367 — clipbboard-style device
p368 — Memory Coherence — bold the M, not the C
p371 — The arm pmap
p373 — refers to data strcture — the data structures
p374 — KMA_PAGEABLE — close parens
p377 — the OSMalloc tags does not map — do not
p384 — @@BOOT and @@JETSAM
p384 — from used mode — user
p384 — resepective zone elements
p386 — per-cpu cache
p388 — a non-standard extensions
p394 — noone
p395 — Fig13-1 boudnary
p398 — meant to for use
p400 — no drivers as loaded — are
p400 — real mtch cannot be found
p402 — in user mode (sentence?)
p404 — One of the most — Some
p405 — but you can get specific — (unfinished?)
p406 — all Libkern — (+font consistency)
p407 — falls on public members — (static?)
p411 — functionaly — functionally
PeterU
 
Posts: 7
Joined: Sun Apr 28, 2019 8:44 pm

Re: Volume 2 — Kernel Mode — some typos

Postby morpheus » Thu Feb 06, 2020 1:00 pm

Mr Upfold, you're the man! Just in time! I am finalizing by the end of this week and was afraid you wouldn't read and find all my typos - but you rose to the challenge! Thank you so much!!! All of these are going in!
morpheus
Site Admin
 
Posts: 738
Joined: Thu Apr 11, 2013 6:24 pm

Re: Volume 2 — Kernel Mode — some typos

Postby PeterU » Fri Feb 07, 2020 6:57 am

... and I've finished the book. Let's call it JITting.

p414 — get[Child/Parent]Iterator — close parens
p415 — Table 13-23: Device Address Resoultion
p419 — and are appropriately named.,
p419 — IOCommandGates are mutual exclusion primitives similar to a critical sections
p421 — IOKit drivers thus have two ways installing their handlers — of
p425 — when LP64 bit is #define — d
p428 — instead of using the iokit_uer_client_trap
p428 — Table 13-36: when EMULATE_ASYNC_IOCONNECT_64 — close parens
p428 — for structure arguments — close parens
p428 — over a dozen argument — s
p428 — ool vs OOL?
p428 — an wakePort
p428 — an IOExternalMethodArgument structure — s
p428 — Listing 13-37: calarInput — s
p430 — and then pass them — passes
p430 — easy to find to to a similar signature — due to?
p434 — The IOPRCMessage — IORPCMessage
p435 — IORegistry* APIs — font?
p437 — fireawalling
p439 — many Apple-specific extension — s
p443 — (Listing is not on next page despite note)
p446 — several files bsd/kern — missing "in"
p448 — pr_init callbck
p449 — Fig14-14: decapsuate — decapsulate
p450 — Fig14-15, 4: owning socked it resolved — socket is resolved
p452 — There is asecond callback
p454 — As client bind their sockets — clients
p454 — given to it as an argument — close parens
p454 — can be marked as attach — attached
p456 — annotated flow a DTrace — flow of a
p462 — setsockopt(2) with SO_NKE — close parens
p468 — the packeted is marked


--

Thank you for all your work across the trilogy! What your next endeavour gains, the Darwin world will miss!
PeterU
 
Posts: 7
Joined: Sun Apr 28, 2019 8:44 pm


Return to Errata

Who is online

Users browsing this forum: No registered users and 1 guest