System Software

System Software

議程簡介

Toolchain, compiler, runtime/library, firmware and operating system itself is the bone of the world. They are not fancy yet they are vital to let people develop and run applications upon them.

篩選條件

議題

mkroot walkthrough

TR 412-1 [[ new Date( '2023-07-29 01:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 01:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 02:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] en
加入行事曆 加入關注 加入關注 已關注

The toybox package contains a ~300 line bash script that cross-compiles a Linux system from source code and boots it to a shell prompt on a dozen QEMU targets, with a second script that automatically smoketests each image (it boots and runs, and the clock, network, and block device all work) to regression test new versions of Linux, qemu, and itself.

講者

Rob Landley

Rob Landley

Rob maintains toybox and mkroot, writes linux docs, works to make Android a self-hosting development environment, fetches coffee for the j-core developers... Long ago he maintained busybox, co-founded Penguicon and Linucon, wrote for the Motley Fool, taught at Austin Community College, etc.

System Software APY3ST general (30mins)

怎麼在 2023 加入 Linux 核心社群

TR 412-1 [[ new Date( '2023-07-29 02:10:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 02:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 02:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

Linux 核心的社群常給人一種遙不可及的感覺,想要參與卻又不得其門而入。究竟在 2023 想參與該社群是可能的嗎?到底需要會什麼?要怎麼交流?很容易被罵嗎? —— 這些問題都會被一一解答。

講者

Shung-Hsi Yu

Shung-Hsi Yu

Kernel Engineer at SUSE working on BPF

System Software HRZDUV general (30mins)

快還要更快 - 利用 Kernel I/O Offload 機制落實高度並行且低延遲的網路服務

TR 412-1 [[ new Date( '2023-07-29 02:50:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 02:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 03:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

In the past few decades, event-driven architecture has become a common design paradigm for developing high-performance network servers, as it can efficiently handle concurrent requests using I/O multiplexing. However, the mitigation mechanisms for microarchitectural vulnerabilities such as Spectre and Meltdown have increased the overhead of already system call-intensive situations. Moreover, the synchronous execution blocking feature of traditional system calls makes it difficult to leverage advanced multi-core processors. To address these limitations and identify performance bottlenecks, this session will gradually analyze the evolution of the Linux I/O model and clarify the runtime of applications such as Redis and KeyDB. As a way to overcome these limitations, this session will also demonstrate the implementation of a specialized core module that improves the performance of event-driven network servers through I/O offloading. Our approach does not sacrifice high power consumption or security like kernel bypass techniques in exchange for high-performance throughput and latency. Additionally, we have conducted multiple experiments to compare our method with native systems, and the results show that our method improves bandwidth, latency, and power consumption without requiring the redesign or reimplementation of the entire application.

講者

Steven Cheng

Steven Cheng

Cheng is a computer science graduate with a master's and a bachelor's degree from National Cheng Kung University, Taiwan. His research interests are in system software and Linux kernel development. He has experience in system profiling and performance analysis of large-scale systems. He has published an academic paper in an international conference and presented several Linux-related topic in the conference held by Linux Foundation.

He has also interned as a silicon engineer at Google, where he contributed to improving the performance of simpleperf, a Android profiling tool. He is a self-motivated learner and a good team player. He is looking for a challenging and rewarding position in the field of system software engineering.

Reach out to me via linkedin: https://www.linkedin.com/in/eecheng/

System Software Y9ZEKH general (30mins)

你的 RNG 真的 RNG 嗎? 不只是 rand() 的亂數產生器

TR 412-1 [[ new Date( '2023-07-29 03:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 03:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 04:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

在產生密碼用於加密各種協議,但隨機產生的數怎麼產生的?這些數字真的夠「隨機」嗎?產生亂數又需要多少時間?

在這個議程,想跟大家分享討論這些議題 - 運用 LFSR 得到亂數的手法 - Linux 運用哪些資訊來產生亂數? - Linux 產生亂數的整個架構 ,/dev/random 和 /dev/urandom 對應到內部哪些實作? - Linux RNG 如何達到 CSPRNG 要求? - 如何去評估亂數的好壞,如何確保他「夠亂」

講者

黃柏愷

黃柏愷

成大資工系、陽交大資工所畢業 現任職於 Trend Micro

System Software FUCZYD general (30mins)

打造以 KVM 為基礎的精簡虛擬機器管理程式

TR 412-1 [[ new Date( '2023-07-29 04:10:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 04:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 04:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

KVM (Kernel-based Virtual Machine) 是 Linux 核心中的系統虛擬機器基礎建設,它是 Linux 核心模組,能讓 Linux 系統成為一個 Type-2 Hypervisor 。KVM 透過硬體虛擬化支援 (Intel VT, AMD-V) 來提供 CPU 和記憶體虛擬化功能。藉由硬體虛擬化技術,客體作業系統 (Guest OS) 不必經由軟體模擬或轉換指令,可以高效率且安全地直接執行在硬體上。使用者空間 (User Space) 的程式只要負責模擬週邊裝置、呼叫 KVM API ,即可建立並高效率地執行虛擬機器。

在這次議程中,將介紹 KVM 運作原理,並展示一個以 KVM 為基礎的精簡虛擬機器管理程式實作,它能在 x86-64 及 arm64 平台上運作,提供了基本的 VirtIO 儲存裝置、 serial 裝置 (用來作為 console) ,並且能成功在上面執行 Linux 系統。

講者

王彥傑

王彥傑

就讀國立臺灣大學資訊工程學系碩士班的學生,對 Linux 系統、系統軟體開發有興趣。 如有需要歡迎與我聯繫: yanjiewtw@gmail.com GitHub: https://github.com/yanjiew1

System Software JSGKMQ general (30mins)

建構精簡且高效的 RISC-V 指令集和系統模擬器

TR 412-1 [[ new Date( '2023-07-29 04:50:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 04:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 05:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

考量到對於 sandbox 執行環境的需求,一個高效能且可嵌入式的 RISC-V 模擬器對滿足這樣的需求至關重要。受益於 RISC-V 的開源指令集和龐大的系統生態系,我們的模擬器得以用較低的記憶體開銷和可接受的執行速度來模擬 RISC-V 程式。 本次將介紹如何實作一個精簡且高效指令集模擬器,另外,也將討論如何透過加入周邊模擬,改造為可運行 Linux 的 RISC-V 系統模擬器。

講者

陳彥甫

陳彥甫

目前就讀成大資訊工程所碩士二年級並實習於晶心科技,實驗室為前瞻系統實驗室,指導教授為黃敬群教授以及涂嘉恆教授,研究題目為 RISCV 模擬器,專案名稱為 rv32emu,主要研究方向為探討不同實作技巧對編譯器以及現代處理器的影響,並用以提升模擬器效能。

講者

莊集

莊集

現職是國立成功大學資訊工程所碩士二年級的學生,所屬前瞻系統研究實驗室,指導教授為涂嘉恆教授,研究主題與量子電腦模擬器相關,因修習 Linux 核心實作課程,參與 RISC-V 系統模擬器相關專案。

System Software EVX7JQ general (30mins)

撿到槍的系統軟體工程師 - GDB&VScode

TR 412-1 [[ new Date( '2023-07-29 05:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 05:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 06:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

作為一個系統軟體開發者常常需要在茫茫大海中找臭蟲(BUG),需要快速閱讀大量讀程式碼,所以我們需要一個可以幫助我們的IDE,往往正確的配置IDE也是非常重要,因此這邊我會分享如何配置VScode讓他能很好的幫助我們。對於找臭蟲(BUG)與GDB的關係,這主題總是有講不完的經驗 ,使用GDB就像有上限很高的武器可是不會用的話,還是只能把它放旁邊。還有這神兵利器竟然是開源免費軟體比起商業軟體txxxx32更顯高CP工程師的價值。這次會分享如何撰寫GDB python script跟如何讓它幫助我們找到kernel 的臭蟲。這個議程會實例分享如何運用VScode及GDB幫我們找到riscv kernel BUG跟追蹤kernel 行為,聽完後會覺得GDB比printk方便節省加班時間。

講者

wayling

wayling

打雜工程師

System Software DKNPD8 general (30mins)

TLS Demystified: Understanding the Mechanics and Compiler Support

TR 412-1 [[ new Date( '2023-07-29 06:10:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 06:10:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 06:40:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

Thread Local Storage, aka TLS, is a feature embedded in various programming language, such as C, C++ and Rust, that frees the programmer from the arduous management of shared variable. One of the TLS-powered feature that undergirds your daily Linux-based developement is "errno", a variable that helps you fathom the problem underneath the operating system.

We will talk about the mechanics of TLS and how does llvm support it. We will analyze the IR lowering strategy adopted by the M68k backends and examine how to further optimize the strategy.

講者

陳聖諺

陳聖諺

TBD

System Software GL9RD8 general (30mins)

Delve into firmware security with fwupd HSI

TR 412-1 [[ new Date( '2023-07-29 06:50:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 06:50:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 07:20:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

使用者往往在使用自己的硬體時並不知道firmware 與hardware是在不安全的設定下執行,例如secure boot disabled 與 firmware 沒有更新到已安全性修復版本。或在一些需要更高security level 的場合,但卻無法立即檢查security level,因此需要一種自動化的方法來評估系統的安全性。fwupd 是用來自動更新系統上的firmware,包括了BIOS, ME, 以及各式周邊的firmware。fwupd 並有能力搜集所有firmware 的版本與系統的設定,在執行期間並可以使用這些資訊來評估系統firmware與hardware 的安全性。fwupd Host Security ID (HSI) 定義了Host security level,並使用一個簡單的數字告訴使用者platform 的安全程度。這個ID是由fwupd 社群所定義的條件來決定。同時在GNOME control panel 的 “Device Security” panel 中也可以輕鬆的取得。讓使用者可以更容易的了解系統的暴險程度。

講者

Kate Hsuan

Kate Hsuan

目前主要貢獻上游軟體開發,包括了 Linux Kernel, fwupd, libcamera, GNOME以及Fedora。Kate也一直使用及貢獻開源軟體,在QCT時負責ONAP (Open Network Automation Platform) 電信產業專用開源專案,並與國外電信公司一起開發與貢獻 ONAP DCAE Datalake專案。在Hopebay Technologies 時利用Ceph 開發出Scalable Software Defined Storage,也長期關注OpenStack發展,並使用它開發和沛公有雲系統。

System Software WZHJZ9 general (30mins)

Tenok: 打造用於機器人控制的微型即時作業系統

TR 412-1 [[ new Date( '2023-07-29 07:30:00+00:00' ).toLocaleDateString('ja', {year: 'numeric', month: '2-digit', day: '2-digit'}) ]] [[ new Date( '2023-07-29 07:30:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] ~ [[ new Date( '2023-07-29 08:00:00+00:00' ).toLocaleTimeString('zh-Hant', {hour12: false, hour: '2-digit', minute:'2-digit'}) ]] zh-tw
加入行事曆 加入關注 加入關注 已關注

Tenok (在阿美族語中意指 Kernel) 是一個支援 ARM Cortex-M 架構、6000行左右、目標應用為機器人控制 (Robotics) 以及物聯網 (Internet of Things) 的實驗型微型即時作業系統。本專案是由講者所開發之專案,希望與聽眾分享關於作業系統開發的細節以及經驗。

講者

鄭聖文

鄭聖文

畢業自陽明交通大學 (機器人碩士學程,2021年) 及靜宜大學 (資訊工程系,2019年),主要興趣為機器人系統、嵌入式系統以及即時作業系統。曾參與開源四軸飛行器韌體開發 (UrsusPilot,因主要成員創業,已轉為閉源) 及小型實驗型自駕車系統設計 (Puyuma,基於電腦視覺及 Real-time Linux),熟悉機器人控制以及導航,更詳細的介紹可見: http://wiki.csie.ncku.edu.tw/User/shengwen

System Software XA9XJC general (30mins)