タグ

ブックマーク / seiya.me (5)

  • 1,000行で作るオペレーティングシステム

    「Writing an OS in 1,000 Lines」 というオンラインブックを書きました。ゼロから1,000行でOSを作るという内容です。 『自作OSで学ぶマイクロカーネルの設計と実装』 とは違い、最初の一歩の部分を重点的に解説しています。シンプルなモノリシックカーネル設計で、実装の解説だけでなくカーネルプログラミング特有の難しい部分、特に「カーネルをどうデバッグすれば良いか」をおさえた、初学者向きの内容になっています。 3日ほどあれば済むボリュームです。夏休みの自由研究がてら、ぜひチャレンジしてみてください。

    1,000行で作るオペレーティングシステム
  • この個人サイトは自作OSで動いています

    追記 (2022 5/29): サーバ代をケチるべくVercelに移行しました。動いていたソースコードは ココ に置いてあります。 あなたの予想に反して、このページが見えているでしょうか?このWebサイトは自作OSのKerlaが提供しています。 これは自作OS Advent Calendar 2021の23日目の記事です。 自作OS「Kerla」の紹介 Kerla(かーら)はRustで書かれたLinux ABI互換モノリシックカーネルです。今年の春頃から作り始め、DropbearというSSHサーバが動作する程度には基的なUNIXの機能が実装されています。具体的には、ファイルの読み書きやUDP/TCPソケット、fork/exec、シグナル、擬似端末といったものです。 カーネル実装の雰囲気を軽く紹介すると、Kerlaでは以下のようにシステムコールが実装されています。 /// write(2)

    この個人サイトは自作OSで動いています
    fujihiro0
    fujihiro0 2022/01/03
    この人を思い出した。 http://memo.wnishida.com/?date=20041012#p01
  • Writing a Linux-compatible kernel in Rust

    Writing a Linux-compatible kernel in RustMay 19, 2021 TL;DR: I'm writing a Linux clone in Rust just for fun. It does NOT aim to replace the Linux kernel. For the recent months, I've been working on a new operating system kernel Kerla, written from scratch in Rust which aims to be Linux-compatible at the ABI level. In other words, support running unmodified Linux binaries! I've already implemented

    Writing a Linux-compatible kernel in Rust
    fujihiro0
    fujihiro0 2021/10/27
  • 技術書典8 『マイクロカーネルの設計と実装』

    @uchan_nosさんのお誘いを受けて,「マイクロカーネル」をまとめたを書きました。技術書典 応援祭(サークル紹介ページはここ)で頒布します。 著名なオープンソースのマイクロカーネルたち(L4やMINIX3など)と拙作のReseaの実装(バージョン0.1.0)を交えながら,細かすぎて伝わらないマイクロカーネルの設計・実装のポイントを解説しています。 マイクロカーネルのサーベイ論文のようなものとしてご活用ください。 電子版のダウンロード 電子版はこちらからダウンロードできます(無料) 書籍版の入手 書籍版はBOOTHで頒布してます(3月上旬入荷予定) Reseaのソースコード GitHubで公開しています

    技術書典8 『マイクロカーネルの設計と実装』
    fujihiro0
    fujihiro0 2020/08/08
  • CとRustで一から作るマイクロカーネルOS

    マイクロカーネルは浪漫に溢れる非常に作りがいのあるソフトウェアです。この記事は,「マイクロカーネルベースのOSの一から作ってIaaSで動かす」ことを目標に作ったマイクロカーネルベースのOS Resea(りーせあ)の設計と実装について軽くまとめた物です。 ソースコードはGitHubにあります。 マイクロカーネルとは Linuxのようなモノリシックカーネルでは色んな機能がカーネル空間で動きますが,マイクロカーネルではユーザプロセスたちが互いに通信しながらOSを作り上げます。プロセス・スレッド・仮想メモリ管理,プロセス間通信,タイマーといった必要最低限の機能だけをカーネルが担います。デバイスドライバやファイルシステムといった残りの機能は,独立したユーザプロセスとして動きます。たとえデバイスドライバが暴走しても他のコンポーネントを壊すことはないのです。マイクロカーネルは信頼性が高く,疎結合で美しい

    CとRustで一から作るマイクロカーネルOS
    fujihiro0
    fujihiro0 2019/12/15
  • 1