<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://edurange.org/wiki/index.php?action=history&amp;feed=atom&amp;title=TTY_BPF_Instrument_Project_Charter</id>
	<title>TTY BPF Instrument Project Charter - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://edurange.org/wiki/index.php?action=history&amp;feed=atom&amp;title=TTY_BPF_Instrument_Project_Charter"/>
	<link rel="alternate" type="text/html" href="http://edurange.org/wiki/index.php?title=TTY_BPF_Instrument_Project_Charter&amp;action=history"/>
	<updated>2026-06-19T03:59:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://edurange.org/wiki/index.php?title=TTY_BPF_Instrument_Project_Charter&amp;diff=927&amp;oldid=prev</id>
		<title>Jwgranville: Created page with &quot;== Scoping Outline: ==  === Challenges: ===  * &#039;&#039;&#039;What:&#039;&#039;&#039; &#039;&#039;&quot;Create ways to...&quot; / &quot;Redesign the...&quot;&#039;&#039; ** Host-level observation instrument that can capture terminal byte activity at the kernel boundary without proxying, replacing, or modifying individual TTY devices. ** Modular BPF-based instrumentation pattern that preserves raw observations, identity context, ordering evidence, fragmentation metadata, timing calibration, and visible loss/status information, while keep...&quot;</title>
		<link rel="alternate" type="text/html" href="http://edurange.org/wiki/index.php?title=TTY_BPF_Instrument_Project_Charter&amp;diff=927&amp;oldid=prev"/>
		<updated>2026-06-06T01:29:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Scoping Outline: ==  === Challenges: ===  * &amp;#039;&amp;#039;&amp;#039;What:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;Create ways to...&amp;quot; / &amp;quot;Redesign the...&amp;quot;&amp;#039;&amp;#039; ** Host-level observation instrument that can capture terminal byte activity at the kernel boundary without proxying, replacing, or modifying individual TTY devices. ** Modular BPF-based instrumentation pattern that preserves raw observations, identity context, ordering evidence, fragmentation metadata, timing calibration, and visible loss/status information, while keep...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Scoping Outline: ==&lt;br /&gt;
&lt;br /&gt;
=== Challenges: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;What:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;Create ways to...&amp;quot; / &amp;quot;Redesign the...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Host-level observation instrument that can capture terminal byte activity at the kernel boundary without proxying, replacing, or modifying individual TTY devices.&lt;br /&gt;
** Modular BPF-based instrumentation pattern that preserves raw observations, identity context, ordering evidence, fragmentation metadata, timing calibration, and visible loss/status information, while keeping semantic interpretation outside the probe.&lt;br /&gt;
** Tracepoint strategy that is narrow enough to be plausible for upstream kernel acceptance, so long-term use of the instrument does not depend on a small team maintaining private kernel patches indefinitely.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;For Whom:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;For &amp;lt;user&amp;gt;... (considering &amp;lt;other stakeholders&amp;gt;)...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Developers, researchers, and infrastructure maintainers who need trustworthy records of terminal activity from multi-user Linux hosts, while preserving enough context for later reconstruction, validation, audit, or analysis.&lt;br /&gt;
** Small research and instructional infrastructure teams that can use BPF-based host instrumentation, but may not have enough durable kernel expertise to maintain private patch sets indefinitely.&lt;br /&gt;
** Future contributors and outside adopters who need the instrument to be understandable, modular, and useful outside its original project setting.&lt;br /&gt;
** Considering kernel maintainers as critical design stakeholders: the tracepoint surface must remain minimal, general-purpose, and reviewable as kernel instrumentation, rather than treating the kernel as a project-specific logging subsystem.&lt;br /&gt;
** Considering downstream consumers such as storage, analysis, privacy, governance, and reporting systems: the instrument should emit factual records with enough context to support those systems, without owning their policies or interpretations.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Context:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;In a world where...&amp;quot; / &amp;quot;Keeping in mind that...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Terminal activity is transient: if TTY byte activity is not observed as it occurs, the exact bytes, timing, ordering context, and kernel-side identity context cannot be reconstructed later from ordinary application state.&lt;br /&gt;
** TTY activity is structurally ambiguous: an apparent terminal session may involve shells, subprocesses, pseudoterminals, process privilege changes, etc. The instrument therefore needs to preserve raw identity axes rather than prematurely deciding what counts as a user, session, stream, or command.&lt;br /&gt;
** Raw terminal bytes are sensitive: the API consumers should not treat capture as endorsement of unrestricted use. Privacy classification, redaction, retention, consent, access control, and governance belong to deployment policy and downstream systems - the instrument&amp;#039;s role is to expose system state, so governance is an explicit responsibility of the user.&lt;br /&gt;
** Private kernel patch maintenance is costly for a small research/infrastructure team: the tracepoint design should remain narrow, reviewable, and plausible for upstream acceptance wherever possible.&lt;br /&gt;
** The module should remain application-neutral: EDURange motivates the first deployment and validation workload, but the instrument should be useful to outside users who need careful host-level TTY observation. As an open-source module, EDURange benefits from the instrument&amp;#039;s broader circulation and adoption.&lt;br /&gt;
&lt;br /&gt;
=== Considerations: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Goals:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;We aim to...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Provide an application-neutral TTY observation instrument that can be used by both EDURange and by outside teams without embedding EDURange-specific assumptions into the core design.&lt;br /&gt;
** Preserve captured terminal activity as raw bytes, not decoded commands, prompts, lines, or student actions.&lt;br /&gt;
** Keep kernel-space behavior bounded, observational, and non-interpretive: the probe should copy bytes, attach factual context, assign ordering metadata, and emit records, not analyze terminal content.&lt;br /&gt;
** Make loss visible. Capturing less data with accurate loss/status reporting is preferable to capturing more data whose completeness cannot be trusted.&lt;br /&gt;
** Make sequence accounting, not timestamps alone, the primary basis for ordering and loss placement.&lt;br /&gt;
** Preserve identity as an orthogonal vector of observed facts, not collapsed into a single inferred session identity.&lt;br /&gt;
** Keep the architectural responsibilities clear: tracepoints expose attachment surfaces; BPF probes observe; the spool drains and forwards; and the collator reconstructs. Only downstream consumers interpret, store, redact, govern, or analyze.&lt;br /&gt;
** Make the TTY instrument a reusable model for future host-level instruments, while avoiding premature generalization before the TTY capture path is empirically validated.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Crux:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;quot;We really need to...&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
** Produce trustworthy host-wide TTY observations without turning the kernel into a private logging subsystem.&lt;br /&gt;
** Determine whether the instrument can preserve enough byte, identity, ordering, timing, fragmentation, and loss context for downstream reconstruction while staying non-disruptive under realistic multi-user load.&lt;br /&gt;
** Find the smallest maintainable MVP that demonstrates the full path from kernel observation to user-space reconstruction, while keeping open the long-term path toward upstream tracepoints and broader adoption.&lt;br /&gt;
&lt;br /&gt;
== Framing Checklist: ==&lt;br /&gt;
We should discuss these qualities:&lt;br /&gt;
&lt;br /&gt;
* You tried on some behaviors (like empathy and rapid prototyping) on a current project before launching a new one.&lt;br /&gt;
* Project is a human, subjective challenge (understanding people is key to the project success).&lt;br /&gt;
* Project is geared toward discovery (not optimization).&lt;br /&gt;
* Challenge can be solved with a product, service, or event, not a strategy or system (for your first project).&lt;br /&gt;
* Those most affected by the work are acknowledged as actors with agency, not simply receivers of outcomes.&lt;br /&gt;
* Framing doesn’t embed a solution.&lt;br /&gt;
* Framing doesn’t (unintentionally) assume the form of the solution.&lt;br /&gt;
* Framing doesn’t (unintentionally) presume people’s needs.&lt;br /&gt;
* Goal of the project work is clear without dictating the specific solution outcome.&lt;br /&gt;
* You and your team actually care about this challenge. (If not, why are you doing it?)&lt;/div&gt;</summary>
		<author><name>Jwgranville</name></author>
	</entry>
</feed>