devarajabc

@devaraja

哈囉你好嗎 中興幹線

Joined on Jun 18, 2022

  • library.c Box64 uses three flags—notwrapped, essential, and precise—to decide whether a library should be loaded via the host’s native loader (“wrapped”) or via its ELF loader (“emulated”). In short, when precise == 1, Box64 will go straight to initEmulatedLib(). If initEmulatedLib() fails, Box64 will attempt initWrappedLib() before returning an error. Similarly, when precise == 0, notwrapped == 0, and essential == 1, Box64 will first try initWrappedLib(), and will fall back to initEmulatedLib() if the wrapped loading fails. if(!notwrapped && !precise) initWrappedLib(lib, context);
     Like  Bookmark
  • loadEmulatedLib #0 loadEmulatedLib ( libname=libname@entry=0xffffffffc7e0 "/opt/wine-devel/bin/../lib64/wine/x86_64-unix/ntdll.so", lib=lib@entry=0x36d1a220, context=context@entry=0x36d14fc0, verneeded=verneeded@entry=0x0) at /home/chiu/devarajabc_box64/box64/src/librarian/library.c:310 #1 0x0000000034896a80 in loadEmulatedLib ( libname=0xffffffffc7e0 "/opt/wine-devel/bin/../lib64/wine/x86_64-unix/ntdll.so", lib=0x36d1a220, context=0x36d14fc0, verneeded=0x0) at /home/chiu/devarajabc_box64/box64/src/librarian/library.c:308 #2 initEmulatedLib (path=path@entry=0xffffffffd910 "/opt/wine-devel/bin/../lib64/wine/x86_64-unix/ntdll.so",
     Like  Bookmark
  • contributed by < devarajabc > Introduction to deferred interrupts (Softirq, Tasklets and Workqueues) Softirqs The bottom half of the processor -> a common noun referring to all the different ways of organizing deferred processing of an interrupt. An interrupt handler can do large amount of work that is impermissible as it executes in the context where interrupts are disabled. 為什麼 interrupts are disabled ? 如何做到的?
     Like  Bookmark
  • 2/25 討論 問題 為何 hash table 要用雙向鏈結串列? 單向就可以了不是嗎? 為了方便刪除 如何修正單精度浮點數的誤差? Linux hash table 設計的思維是建立在 hash function 不太碰撞的前提之下? 如何量化證明比 list_head 結構更好
     Like  Bookmark
  • 研讀 linux 核心模組 林本然 安裝 ksort 的前置處理 記得先將 UEFI Secure Boot 關閉:UEFI Secure Boot 會確保只有經過簽章的模組才能被掛載到核心。為了方便掛載,我們先關閉。 先查看 Linux 核心版本,並且安裝相對應 linux-headers 套件(與 uname -r 同個版本),並確認安裝成功(根據自己的版本改命令)。 $ uname -r $ sudo apt install linux-headers-`uname -r`
     Like  Bookmark
  • contributed by <devarajabc>
     Like  Bookmark
  • rbtree 實驗環境 Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Vendor ID: ARM
     Like  Bookmark
  • lkmpg 筆記補在下面~ ch1 邱繼寬 表示你的編譯器版本與kernel開發套件所用的編譯器版本不一致,建議安裝對應的版本避免後續開發出問題。 林志芸 Linux 核心模組是一段可以根據需要動態載入和卸載到核心中的程式碼。這些模組可以在不需要重新啟動的情況下加強核心的功能。 如果沒有模組,目前的方法通常是 monolithic kernels (單核),需要將新功能直接整合到核心映像中。這種方法會導致需要更大的核心,並且當需要新功能時,需要重建核心和隨後重新啟動系統。
     Like  Bookmark
  • :::info 問題: (林本然) 數量跟比較次數有關係,但為何還要分最差、最糟、平均來討論呢?差異是? 比較次數 C(n) 中的 +1 從何而來? (林志芸) (邱繼寬)
     Like  Bookmark
  • contributed by < devarajabc > 此篇筆記延續自 linux2024-homework1 修正 queue.c q_ascend/q_descend 在 linux2024-homework1中提及的 q_ascend 和 q_descend 是錯誤的,雖然僥倖通過測資,但其實該實作並不符合程式的要求,以下面例子來說 l = [zzz yyy xxx aaa bbb ccc ddd] cmd> ascend
     Like  Bookmark
  • contributed by < devarajabc > q1-1 此題旨在利用指標的指標實作 list_insert_before The macro LIST_INSERT_BEFORE() inserts the new element elm before the element listelm. 解釋程式碼運作原理 為何要使用 pointet to pointer ? 最天真的想法是走訪整個鏈結串列,找到 before 的前一位節點 cure 並將 cur->next 的值改為 item 而item->next 賦值為 before.
     Like  Bookmark
  • # 2025q1 Homework1 (ideas)
     Like  Bookmark
  • 在 box64 執行的過程中就已經使用了需多 lock ,如果測量期行為的程式也需使用 lock 的話無疑會讓執行過程更複雜,因此務必使用 lock-free Race Condition 大家都知道要避免 race condition, 但 race condition 會發生在哪些情境呢? 發生了會怎樣呢? 多個生產者之間: 生產者與消費者: 多個消費者之間: lock-free
     Like  Bookmark
  • 研讀紅黑樹實作 效能評比 Linux sandboxing ADB 原理和 Linux 核心對應的組態 建立 Debian root file system Box64 + wine Box64 紅黑樹效能分析 Lock-Free Ringbuffer
     Like  Bookmark
  • rbtree_behavior (未完待續..) 目標:在 box64 執行時紀錄其紅黑樹的記憶體使用情形("op_name, op_time, memory usage")。在 box64 中安插「生產者」,將記錄的數據儲存在共享記憶體後由「消費者」來讀取,如此一來便可以獲得 box64 執行時的即時數據 分析 ringbuf-shm 的運作模式 測試: 執行 10000 次迴圈,利用隨機休眠的方式讓生產者和消費者執行的順序穿插且執行時間長短隨機,過程中生產者配置隨機大小的記憶體。 ringbuffer 本身配置的大小為 8192 bytes, 最多可以儲存 1024 個 uint64_t 而配置的記憶體大小為若干個 uint64_t ,記憶體內儲存的內容為迴圈的次數 cnt
     Like  Bookmark
  • 研讀 box64 的紅黑樹實作 問題: 紅黑樹在 box64 專案中的作用為何? 為何一定要使用紅黑樹? 我能如何改進呢? 基本紅黑樹的特性 所有節點非黑即紅
     Like  Bookmark
  • Dynarec v0.3.1 126cf279 built on Nov 1 2024 18:08:42 實驗環境組態:Tinker V 準備: 由於 debian 的 usr/bin 找不到 time, 因此要先從 usr/bin 複製過去 測量方式: 利用 time -p 來測量程式執行的時間,並將 user time 記錄下來
     Like  Bookmark
  • :::danger TODO: 列出完整步驟和描述實驗平台 ::: 建立 rootfs.img 實驗環境組態: Ubuntu 24.04 1. 配置基本服務 安裝所需要的套件: $ sudo apt install \
     Like  Bookmark
  • 問題: hako 的功能為何? hako 如何運用在本專案? 如何改進 hako ? 可以從官網中看到有關 hako 功能的描述: chroot + Linux namespace run on a read-only filesystem
     Like  Bookmark
  • # ADB 原理和 Linux 核心對應的組態
     Like  Bookmark