RIOT powers the Internet of Things like Linux powers the Internet. RIOT is a free, open source operating system developed by a grassroots community gathering companies, academia, and hobbyists, distributed all around the world. RIOT supports most low-power IoT devices, microcontroller architectures (32-bit, 16-bit, 8-bit), and external devices. RIOT aims to implement all relevant open standards su
Asterinas is a secure, fast, and general-purpose OS kernel that provides Linux-compatible ABI. It can serve as a seamless replacement for Linux while enhancing memory safety and developer friendliness. Asterinas prioritizes memory safety by employing Rust as its sole programming language and limiting the use of unsafe Rust to a clearly defined and minimal Trusted Computing Base (TCB). This innovat
2024年7月19日に発生した世界的なIT障害であるクラウドストライク事件に関連し、Microsoftが「2009年に欧州委員会からの要求に応じたのが原因でCrowdStrikeのクラッシュがWindowsに波及するのを防げなかった」と示唆したことが報じられました。 Blue Screens Everywhere Are Latest Tech Woe for Microsoft - WSJ https://www.wsj.com/tech/cybersecurity/microsoft-tech-outage-role-crowdstrike-50917b90 Microsoft points finger at the EU for not being able to lock down Windows - Neowin https://www.neowin.net/news/micr
Googleは、ChromebookのOSとして開発しているChromeOS基盤にAndroid LinuxカーネルとAndroidフレームワークを採用すると発表しました。 これによりGoogle AIの機能をより迅速かつ大規模にChromeOSのユーザーに届けられるようになるとしています。 下記は「Building a faster, smarter, Chromebook experience with the best of Google」からの引用です。 Bringing the Android-based tech stack into ChromeOS will allow us to accelerate the pace of AI innovation at the core of ChromeOS, simplify engineering efforts, and h
この記事は翻訳されたものです: この記事はAsync/Awaitをコミュニティの手により翻訳したものです。そのため、翻訳が完全・最新でなかったり、原文にない誤りを含んでいる可能性があります。問題があればこのissue上で報告してください! 翻訳者: @kahirokunn, @garasubo, @sozysozbot 及び @swnakamura. With contributions from @asami-kawasaki 及び @Foo-x. この記事では、Rustの協調的マルチタスクとasync/await機能について説明します。Rustのasync/await機能については、Future trait の設計、ステートマシンの変換、 pinning などを含めて詳しく説明します。そして、非同期キーボードタスクと基本的なexecutorを作成することで、カーネルにasync/awa
The next-generation framework for embedded applications Write safe, correct and energy-efficient embedded code faster, using the Rust programming language, its async facilities, and the Embassy libraries. Rust + async ❤️ embedded The Rust programming language is blazingly fast and memory-efficient, with no runtime, garbage collector or OS. It catches a wide variety of bugs at compile time, thanks
最後に「次回は解像度の取得・設定方法の調査と実装」をすると書いたんですが、ちょっと時間がなかったので今回は取得方法の実装までです。 ビデオドライバーでやりたいこと解像度とかFrameBufferの取得方法の話を書いてますけど、最終的に作りたいのはビデオドライバです。なので、一度作ろうと思ってるビデオドライバについて具体的に説明します。 まず、前回やったようにPCIeデバイスの探索をして、ビデオカードが見つかると、ベンダーIDを確認して、それに対応するドライバーを連れてきます。 ここでドライバーはGPUとMMIO(Memory Mapped I/O)を通じて情報をやり取りし、解像度やらビット深度やらの設定をします。今回はこれの基礎作りです。 そして、その先にはスペシャルファイルを使ってユーザー空間からフレームバッファーに書き込めるようにして、Xorgのようなグラフィックシステムで制御できるよ
本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま
はじめに 簡単なタスク管理機能と、タイマレジスタによる割り込み管理機能を持つ簡易なリアルタイムOSをRustで自作しました。 Aruduino Unoボードに搭載されるATmega328Pマイコン上で動かすことを想定していますが、https://github.com/Rahix/avr-hal でサポートされているAVRマイコンであれば、ほぼ同様の実装ができそうです。 本記事では環境構築については割愛し、実装の詳細について解説を行いたいと思います。 リアルタイムOSの設計 今回作成したリアルタイムOSは、技術書店13でサークル出展した書籍、cistLT Bookで作成したOS(https://github.com/yud0uhu/ChocottoOS)を、Rustで再実装したものになります。 書籍同様、ITRON4.0仕様に準拠するための五項目をOSの機能要件として定めました。 (a) タ
The Utilization Saturation and Errors (USE) Method is a methodology for analyzing the performance of any system. It directs the construction of a checklist, which for server analysis can be used for quickly identifying resource bottlenecks or errors. It begins by posing questions, and then seeks answers, instead of beginning with given metrics (partial answers) and trying to work backwards. The re
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く