LaswI

NEX KERNEL

純自研內核 · LaswI Studio

純自研內核 · 從零寫起的底層

NEX KERNEL CORE NON-LINUX · SELF-BUILT
Nex Kernel · v0.1.0
WHAT IS NEX

不是發行版,是內核本體

[ MODULES ] 內核模塊

懸停模塊查看職責 · 核心為八邊形內核本體

NEXKERNEL
[ FEATURES ] 核心特性

磁貼每 4–6 秒自動翻面 · 懸停暫停

[ PORTS ] 架構與移植
[ PORTING ] 移植步驟
[ BUILD ] 構建
nex — build
01克隆源碼
02選擇目標架構
03執行構建
nex.elf x86_64
[ VERSION ] 版本與許可證
v0.1.0
2026-01-01 warning 許可證 使用前請閱讀許可證條款

CHANGELOG

[ GET SOURCE ]

獲取源碼

Nex Kernel

VER v0.1.0 LICENSE 許可證 ARCH x86_64

nex.laswi.com.cn

內核開發有風險,請在虛擬機或備用設備上測試。

[ DESIGN ] 設計說明
01八邊形內核核心鏤空如何實現?引腳圓點如何表達「對外 API」? expand_more

鏤空做法:首屏核心用 <svg> 內的 <mask> 實現。遮罩裡放兩個 <polygon>——外八邊形填白(白=可見)、內八邊形填黑(黑=消除),再把 <rect fill="url(#nexGrad)" mask="url(#octRing)"> 鋪在這個遮罩上,於是「橙→鋼藍」漸變只從八邊形環帶裡透出來,中心完全透明,可以露出底層深色背景與芯體。為什麼不用 clip-path:clip-path 只能「裁掉外面」,無法在形狀中間挖洞;要「環形中空」必須用 mask 的雙路徑叠加,或用 clip-path: path() 寫 even-odd 複合路徑,維護成本更高,故選 mask。

內外八邊形頂點:以 400×400 視口、中心 (200,200) 計算,外圈半徑 190、內圈 112,八個頂點由 r·cos(22.5°+45°k), r·sin(22.5°+45°k) 得出,所以八邊形是「方角朝上下左右」的硬朗朝向,而不是尖角朝上——比圓環更有工程感。

引腳圓點=API:沿外八邊形邊緣等距排 24 個 <circle>(JS 生成,避免手寫坐標),半徑 2.2px,帶 pulse 呼吸動畫並錯開 delay,形成「沿邊緣向外輸出的信號」。語義上:邊是內核邊界,圓點是邊界上的一個個導出接口/中斷向量,越密代表接口越多;內核模塊板塊的連接線端點也用同樣的小圓點,形成「API 從核心通向子系統」的統一符號。模塊放射圖的中心節點同樣是八邊形鏤空(用 CSS clip-path 多邊形做外環 + 內芯兩層),與首屏保持同一幾何母題。

02如何與 VayloOS 在共享系列語言下做出明確區隔? expand_more

幾何母題不同:VayloOS 用「同心圓環」表達系統的分層與環繞感,本頁改用「八邊形 + 方括號 + 引腳」——八邊形有直角與切角,天生比圓更硬、更像芯片封裝;[ ] 方括號反覆出現在每個板塊標題兩側,是把「代碼容器」具象化;引腳圓點只在本頁出現,是內核獨有的「邊界接口」符號。

色板不同:VayloOS 是深靛藍 + 青綠 + 紫,偏「系統 UI 的科技感」;Nex Kernel 用石墨黑 #121417 + 深灰藍 #1C2230 作底,輔色換成亮橙 #FF6D00(內核本體與行動)與鋼藍 #82B1FF(終端與代碼),琥珀 #FFC400 只做許可證警示。橙+鋼藍是一組「爐火 + 冷鋼」的原始工程配色,天然區別於青綠紫。

比例不同:全頁深色 60% / 淺色 25% / 彩色點綴 15%,彩色只出現在需要被點擊或被強調的地方(源碼按鈕、重點詞色塊、狀態膠囊),不做大面積彩色底,維持「原礦」氣質。

字形策略相同但用法分層:兩站都用 Space Grotesk 巨型鏤空字 + JetBrains Mono 小字,但本頁把 Mono 當「主字體」用——模塊說明、架構名、命令、日誌、版號全部 Mono,讓整頁讀起來像一份工程文檔。

03模塊放射圖的懸停聚焦如何實現?移動端如何優雅降級? expand_more

三層聯動:① 卡片:滑鼠進入某卡片時,給 .radial 加 .is-focused、給該卡片加 .is-active;卡片自身 translate(-50%,-50%) scale(1.07) 並加深陰影;② 其他模塊:.radial.is-focused .mod-card:not(.is-active){opacity:.42;filter:saturate(.6)},用「壓暗而非隱藏」保持版面完整;③ 連接線與核心:.link-group.is-hot 把該條流動線由鋼藍換成橙色、加粗、動畫提速,同時中心八邊形觸發 corePulse(一次性 900ms 脈衝,不是常駐抖動,避免視覺疲勞)。詳情卡內容由 JS 寫入後先加 .is-swap(透明度歸零),下一幀再移除,形成淡入。

連接線怎麼畫:用一個絕對定位覆蓋全圖的 <svg>,坐標在 JS 裡按每個模塊的百分比位置算出,畫「L 形折線 + 端點小圓點」:stroke-dasharray 製造短促光點,stroke-dashoffset 循環位移模擬數據流動;全部用 CSS animation,不逐幀計算,遵守效能要求。

移動端降級:≤900px 時隱藏整張連線 SVG,改為「中心八邊形在上 + 卡片縱向堆疊」,左側用一條 2px 漸變豎線(::before)代替連接線,每張卡片左側再掛一個小圓點(同樣是引腳符號);卡片由絕對定位改為 position:relative 流式排列,懸停縮放改為輕微右移 translateX(6px),避免小屏上放大導致裁切;「其他模塊變暗」在移動端降為 0.78 透明度,因為小屏一次只看到一兩張卡,過度壓暗會讓清單失去可讀性。

04「不基於 Linux」如何在文案與視覺上反覆強調而不重複? expand_more

換層次講,而不是換句話講:定位區講「事實」——不是 Linux 的分支,從引導到調度全部自寫;特性磁貼講「結果」——「不基於 Linux」作為單獨一張加大磁貼,正面只寫這四個字,背面寫它帶來的工程後果(沒有遺留包袱、可裁剪到底);架構區講「可驗證」——移植步驟從「取得交叉編譯器」開始,隱含內核是自成一體的代碼庫,不是某個宏內核的下游。

視覺上只出現一次「大字」:整頁只有特性區那張橙色大磁貼用超大字寫「不基於 Linux」,其餘位置改用符號暗示——首屏核心內部的 Mono 小字 NON-LINUX · SELF-BUILT、模塊說明裡的「自建中斷向量表」、構建終端裡的交叉編譯命令。文字重複會被當成口號,符號重複會被當成設計語言。

句式上避免否定疲勞:全頁「不基於」只出現在首屏 tagline、定位第一段、以及那張磁貼正面共三處;其他位置一律用肯定句式描述(「從零實現」「自研調度器」「自建驅動框架」),讓「從零」成為主角,「不基於」只是它的推論。

05日後擴展為多架構鏡像下載與 API 文檔站,配置對象如何預留? expand_more

現有結構已分層:NEX 只放「身份 + 入口 + 內容」,NEX.architectures[] 每項是 {name, status, note},天然可加字段而不破壞渲染——渲染函數只讀它需要的鍵,多餘鍵被忽略。

建議的擴展鍵(本次已預留註釋位置,可直接啟用):

  • architectures[].downloads: [{label, url, size, sha256, format}]——架構卡片下方自動多出一排鏡像膠囊;status 支持 supported / experimental / planned,顏色映射表已在 JS 的 ARCH_STATUS 常量裡,加新狀態只需加一條映射。
  • docsUrl 升級為 docs: {home, api, portingGuide, changelog},導航與源碼卡的「閱讀文檔」讀 docs.home,板塊內可加「API 文檔」次級入口。
  • buildDemo 從單一對象改為 buildDemo.targets[](每項含 arch / commands / output),終端演示變為可切換 tab,渲染函數只改「取哪個 target」。
  • i18n 字典的鍵已按「板塊.語義」命名(build.s1、modules.hint),新增板塊只需在三個語言對象裡補同名鍵,缺鍵時自動回退到 zh-TW,不會出現空白。
  • 若要做下載計數/API 檢索,只新增一個 NEX.endpoints = {apiBase, searchUrl} 即可,所有出入口集中在配置對象,不需要改頁面結構。