2024-01-02T15:00:00+00:00 Maestro is a Unix-like kernel and operating system written from scratch in Rust Thanks to the internet, I can learn how most things I am interested in work. However, something stayed a mystery to me for a long time: computers. Computers are amongst the most complex tools that humanity has ever built. They are a marvel of engineering that we take for granted because we use
本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま
Today marks the day I start my journey of writing an OS entirely in Go. I won't explain why I chose to use Go in this post. However, I may dedicate a future post to explaining my plans more in-depth for the OS and why Go is a good choice for it. Until then, I start my adventure at the beginning of any project. This is the Hello World of Operating System development. History An Operating System lik
オープンソースRTOS「seL4」の紆余曲折からマイクロカーネルの進化を俯瞰する:リアルタイムOS列伝(19)(1/3 ページ) IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第19回は、コモンクライテリアなどにも対応する第3世代マイクロカーネルのオープンソースRTOS「seL4」を紹介する。 前回に続き、今回も大学発のリアルタイムOS(RTOS)である。「seL4」とは“Secure Embedded L4 Microkernel”の略である。原型になっているのは、“Secure Embedded”の付かない、ただの「L4 Microkernel」(L4 Kernelと称されることが多い)。 ⇒連載記事「リアルタイムOS列伝」バックナンバー 第1世代マイクロカーネルのMach
追記 (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)
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどう
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison) NEW: Security Chapters by Peter Reiher (UCLA) Welcome to Operating Systems: Three Easy Pieces (now version 1.10 -- see book news for details), a free online operating systems book! The book is centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and pers
I've been developping an x86 bootloader in Rust that can use Linux boot protocol. In this article, I'd like to write about my motivation, features of this project, and issues. KRaBs - Kernel Reader and Booters KRaBs is a 4-stage chain loader for x86/x86_64 written in Rust. It can boot an ELF-formatted kernel placed on a FAT32 filesystem in the EFI System Partition. The ELF-formatted kernel is read
The server operating system has not changed in 50 yearsOur current server operating systems have not changed in 50 years and do not reflect modern day concerns for managing servers and cyber-security.Still built for multiple users to run multiple programs, leaving large spaces open for targeted cyber attacks. The future is unikernelsA unikernel is an application that has been boiled down to a smal
NOTE: This project is actively ongoing. Pages are not perfect yet and it possible to change dramatically. Introduction This is the book for writing a 64-bit RISC-V emulator from scratch in Rust. You can run xv6, a simple Unix-like OS, in your emulator once you finish the book. You'll learn the basic computer architecture such as ISA, previleged architecture, exceptions, interrupts, peripheral devi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く