Round 290: Dmesg ext, Kernel Log ext, Modprobe ext, Sysctl ext, Procfs ext (20 commands)

ober

aea0723c305523d2393f8d43a4850353e689a307

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 8de94e0..1d551d8 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 290 — Dmesg ext, Kernel Log ext, Modprobe ext, Sysctl ext, Procfs ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| dmesg-filter | :orange_circle: | Filter dmesg output |
+| dmesg-follow | :orange_circle: | Follow dmesg live |
+| dmesg-clear | :orange_circle: | Clear dmesg buffer |
+| dmesg-level | :orange_circle: | Filter by log level |
+| kern-log-view | :orange_circle: | View kernel log |
+| kern-log-search | :orange_circle: | Search kernel log |
+| kern-log-tail | :orange_circle: | Tail kernel log |
+| kern-log-level | :orange_circle: | Set kernel log level |
+| modprobe-load | :orange_circle: | Load kernel module |
+| modprobe-remove | :orange_circle: | Remove kernel module |
+| modprobe-list | :orange_circle: | List loaded modules |
+| modprobe-info | :orange_circle: | Show module info |
+| lsmod-list | :orange_circle: | List kernel modules |
+| depmod-rebuild | :orange_circle: | Rebuild module deps |
+| sysctl-list | :orange_circle: | List sysctl parameters |
+| sysctl-get | :orange_circle: | Get sysctl value |
+| sysctl-set | :orange_circle: | Set sysctl value |
+| sysctl-reload | :orange_circle: | Reload sysctl config |
+| procfs-read | :orange_circle: | Read /proc entry |
+| procfs-write | :orange_circle: | Write /proc entry |
+
 ### Round 289 — User mgmt ext, Group mgmt ext, Login ext, Faillock ext, Getent ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 69c6c79..eabbcc8 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -22383,4 +22383,56 @@
 
 (def (cmd-getent-hosts app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Getent: querying hosts database")))
\ No newline at end of file
+    (echo-message! echo "Getent: querying hosts database")))
+
+;;; Round 290 — Modprobe ext, Sysctl ext, Procfs ext (batch 2)
+
+(def (cmd-modprobe-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Modprobe: listing loaded modules")))
+
+(def (cmd-modprobe-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Module: "
+      (lambda (mod)
+        (echo-message! echo (str "Modprobe: info for " mod))))))
+
+(def (cmd-lsmod-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lsmod: listing kernel modules")))
+
+(def (cmd-depmod-rebuild app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Depmod: rebuilding module dependencies")))
+
+(def (cmd-sysctl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysctl: listing parameters")))
+
+(def (cmd-sysctl-get app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Parameter: "
+      (lambda (param)
+        (echo-message! echo (str "Sysctl: " param))))))
+
+(def (cmd-sysctl-set app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Parameter=value: "
+      (lambda (pv)
+        (echo-message! echo (str "Sysctl: setting " pv))))))
+
+(def (cmd-sysctl-reload app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysctl: reloading configuration")))
+
+(def (cmd-procfs-read app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "/proc path: "
+      (lambda (path)
+        (echo-message! echo (str "Procfs: reading " path))))))
+
+(def (cmd-procfs-write app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "/proc path: "
+      (lambda (path)
+        (echo-message! echo (str "Procfs: writing to " path))))))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 8d377a2..ba825f2 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -23064,3 +23064,57 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Login: listing active sessions")))
 
+;;; Round 290 — Dmesg ext, Kernel Log ext, Modprobe ext (batch 1)
+
+(def (cmd-dmesg-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Filter: "
+      (lambda (flt)
+        (echo-message! echo (str "Dmesg: filtering by " flt))))))
+
+(def (cmd-dmesg-follow app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dmesg: following kernel messages")))
+
+(def (cmd-dmesg-clear app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dmesg: clearing ring buffer")))
+
+(def (cmd-dmesg-level app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Level (0-7): "
+      (lambda (lvl)
+        (echo-message! echo (str "Dmesg: filtering level " lvl))))))
+
+(def (cmd-kern-log-view app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kernel: viewing kernel log")))
+
+(def (cmd-kern-log-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Search: "
+      (lambda (term)
+        (echo-message! echo (str "Kernel: searching for " term))))))
+
+(def (cmd-kern-log-tail app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kernel: tailing kernel log")))
+
+(def (cmd-kern-log-level app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Log level: "
+      (lambda (lvl)
+        (echo-message! echo (str "Kernel: setting log level " lvl))))))
+
+(def (cmd-modprobe-load app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Module: "
+      (lambda (mod)
+        (echo-message! echo (str "Modprobe: loading " mod))))))
+
+(def (cmd-modprobe-remove app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Module: "
+      (lambda (mod)
+        (echo-message! echo (str "Modprobe: removing " mod))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 15bc8a8..50cc12e 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7507,4 +7507,25 @@
   (register-command! 'getent-passwd cmd-getent-passwd)
   (register-command! 'getent-group cmd-getent-group)
   (register-command! 'getent-hosts cmd-getent-hosts)
+  ;; Round 290
+  (register-command! 'dmesg-filter cmd-dmesg-filter)
+  (register-command! 'dmesg-follow cmd-dmesg-follow)
+  (register-command! 'dmesg-clear cmd-dmesg-clear)
+  (register-command! 'dmesg-level cmd-dmesg-level)
+  (register-command! 'kern-log-view cmd-kern-log-view)
+  (register-command! 'kern-log-search cmd-kern-log-search)
+  (register-command! 'kern-log-tail cmd-kern-log-tail)
+  (register-command! 'kern-log-level cmd-kern-log-level)
+  (register-command! 'modprobe-load cmd-modprobe-load)
+  (register-command! 'modprobe-remove cmd-modprobe-remove)
+  (register-command! 'modprobe-list cmd-modprobe-list)
+  (register-command! 'modprobe-info cmd-modprobe-info)
+  (register-command! 'lsmod-list cmd-lsmod-list)
+  (register-command! 'depmod-rebuild cmd-depmod-rebuild)
+  (register-command! 'sysctl-list cmd-sysctl-list)
+  (register-command! 'sysctl-get cmd-sysctl-get)
+  (register-command! 'sysctl-set cmd-sysctl-set)
+  (register-command! 'sysctl-reload cmd-sysctl-reload)
+  (register-command! 'procfs-read cmd-procfs-read)
+  (register-command! 'procfs-write cmd-procfs-write)
 )