タグ

OSに関するclavierのブックマーク (57)

  • その13 キャッシュメモリの効果

    キャッシュメモリがメモリアクセスにおいてどれだけの効果を持つか、実験によって確かめます。 00:00 前置き 00:37 キャッシュメモリとは 04:20 実験方法 07:07 結果 09:08 まとめ テキスト https://speakerdeck.com/sat/kiyatusiyumemorifalsexiao-guo 動画シリーズは以下のをなぞるように進めていますが、しょっちゅう脱線します。よろしければお買い求めください。 https://amzn.to/3RVWdo3 メンバーになるにはこちらをクリックしてください。とくに特典はないですが、メンバー数が多くなるとうれしくなって動画をアップロードする頻度が高まるかもしれません。 https://www.youtube.com/channel/UCgrUyRFiHhV607Orhriau6w/join

    その13 キャッシュメモリの効果
  • カーネルことはじめ

    この記事は未踏ジュニアAdvent Calendar : 10日目です. カーネル, 書きたくないですか? こんにちは, horizon (@horizon2k38)です. 私は2023年の未踏ジュニアでA9Nというマイクロカーネルを作成していました. 人類なら誰しもがカーネルを書きたいと思ったことがあるはずです. そんな方のために, 未踏期間で得られた "0からカーネルを如何にして学び, 実装したか" という知見をより一般化して解説しようと思います. この記事の内容をすべて達成することで, あなたもきっとカーネルを書くことができるでしょう. やれば出来る きっと 絶対 私No.1 注: この記事はどちらかといえば初心者向けなので, 自信がある方は最下部の"参考文献"と, 私が書いた低レイヤー学習のロードマップのみ読むことをおすすめします. カーネル/OSとは そもそもカーネルとは, 所謂

    カーネルことはじめ
  • 【業務効率化】ファイルorフォルダの更新を監視するプログラム - Qiita

    目次 背景 目的 内容 所感 背景 仕事をしていると、共通ファイルサーバにあるファイルが更新されたらすぐに知りたいと思う場面が多々ありました。毎回フォルダにアクセスして更新されているかを確認するのは面倒であり、ファイルが更新されたら誰かがお知らせしてくれれば便利だなぁと思っていました。 目的 フォルダにあるファイルが更新されたら、通知されるプログラムを作成すること。 内容 コードのコンセプト プログラムの流れを考えます。 まず、ファイルを監視するのか、フォルダを監視するのかを場合分けする必要があります。ファイルとフォルダの場合についてそれぞれについて深掘りしていきます。 【ファイルの場合】 プログラムを実行した際のファイルの更新日を記録する 更新日を定期的に取得する その2つの日付を比較して異なれば通知する 【フォルダの場合】 [ファイルの個数を監視] プログラムを実行した際のファイルの数

    【業務効率化】ファイルorフォルダの更新を監視するプログラム - Qiita
  • はじめに - Writing an OS in 1,000 Lines

    書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま

    はじめに - Writing an OS in 1,000 Lines
  • Operating Systems: Three Easy Pieces

    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

  • はじめに - Rustで始める自作組込みOS入門

    このは組込みシステムやOSのような低レイヤーシステムの開発経験がないプログラマーのような人が、自作OSをはじめるため解説です。 著者自身、職はウェブプログラマーですが、趣味で組込みOSの自作をしています。このはそのノウハウ集のようなものです。 このような低レイヤーシステムはC言語で開発されることが多いのですが、今回はRustを使います。 RustはC言語と比較して、様々なモダンな機能やツール郡を取り揃えている上に、C言語の長所である直接のメモリ制御ができ、パフォーマンスも高いとして組込みシステム開発でつかえるとして注目されています。 Rustそのもの解説は控えめですが、低レイヤーシステム開発特有のテクニックは必要に応じて解説します。 想定読者 ある程度はプログラミング経験があることを前提としています。 また、レジスタやメモリなどコンピュータアーキテクチャに関する基礎用語の説明もちゃ

  • Windows OSのバイブル『Windows Internals』を日本語解説するプロジェクトが“GitHub”で開始/実際に動作するアプリで高度かつ難解な内容をコードレベルで理解【やじうまの杜】

    Windows OSのバイブル『Windows Internals』を日本語解説するプロジェクトが“GitHub”で開始/実際に動作するアプリで高度かつ難解な内容をコードレベルで理解【やじうまの杜】
  • Rust で vmlinux を起動できる x86 ブートローダーを作ってみた話 - Qiita

    Rust を勉強し始めたので冬休みの間に Linux の boot protocol を喋る x86ブートローダー(自称:Krabs)を作ってみました。この記事では、開発に至った動機や、作成した Krabs の特徴とか仕組み、開発中におきた嬉しかったことなどについて書きたいと思います。 Krabs とは Krabs は、Rustで書かれた x86/x86_64(Legacy BIOS) 向けの4段ロケット構成のチェインローダーです。 bzip2 で圧縮された ELF 形式のカーネルを起動できます。bzip2 圧縮されたイメージを解凍して、次に展開してでてきた ELF イメージを再配置してからの、カーネルの起動となります。 内部では libbzip2 の C ライブラリを利用していますが、それ以外は全て Rust で記述されています。 GitHub - o8vm/krabs: An x86

    Rust で vmlinux を起動できる x86 ブートローダーを作ってみた話 - Qiita
  • 仮想メモリ方式の分類

    作成日:2006.03.30 修正日:2016.10.17 更新記録 (2006.03.30) 2006/3/10 と2006/3/11 の日記の内容を元に作成。 (2006.04.07) SPARC 32 ビットプロセッサのページテーブル構成を修正。 (2006.05.25) 3.2節ページテーブルエントリを追加。 (2012.05.29) PowerPC のセグメントサイズの誤りの修正と図の追加。 (2016.10.17) Intel64 の Process-Context Identifiers(PCIDs) と Protection Keys の説明を追加。また TLB エントリの無効化と ARM の情報も追加。タイポの修正。 1. はじめに 2. 仮想メモリの全体像とページング以外の機構 事前処理 事後処理 3. ページング 3.1 ページウォーク 3.2 ページテーブルエントリ

  • CとRustで一から作るマイクロカーネルOS

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

    CとRustで一から作るマイクロカーネルOS
  • なぜ人は自作OSをするのか?自作OSとは何か? 〜自作OSのいまと昔 [第1回] | さくらのナレッジ

    みなさん、自作OSという言葉をご存知でしょうか? 自作PCという言葉には馴染みがあっても、自作OSという言葉は初めて聞いたという方も多くいらっしゃると思います。連載では、そもそも自作OSとは何か、という基的なところから、自作OSのこれまでの歴史、現代のコンピューターにおける自作OSの難しさ、そして自作OSの将来的な可能性について、筆者の実体験を踏まえながらご紹介したいと思います。 身近にあるOSの例 自作OSというのは、OS, つまりオペレーティングシステムを自分の手でつくりあげることを指します。といっても、そもそもOSとは何か知らない方も多くいらっしゃると思いますので、最初はそもそもOSとは一体何なのか見ていきましょう。 さて、みなさんの知っているOSにはどんなものがあるでしょうか?下記の図は、2019年5月の、日国内におけるOSのシェアを示したグラフです。 最も多く使われているO

    なぜ人は自作OSをするのか?自作OSとは何か? 〜自作OSのいまと昔 [第1回] | さくらのナレッジ
  • Writing an OS in Rust (Second Edition)

    This blog series creates a small operating system in the Rust programming language. Each post is a small tutorial and includes all needed code, so you can follow along if you like. The source code is also available in the corresponding Github repository. Latest post: Async/Await The first step in creating our own operating system kernel is to create a Rust executable that does not link the standar

  • 普通の中高生でも簡単にOS分野で強くなる方法 - livaの雑記帳

    釣りタイトルだと思った皆さん、残念ながら記事は釣り記事ではありません。 安心して読み進めてください。 「強くなりたいです。どうやったら強くなれますか?」 恐らく情報系の多くの人が抱えている疑問なのではないでしょうか。 「I know everything」みたいに言える人って中々いないですよね。 ちなみに、僕も強くなりたいです。 どうやったら強くなれるんでしょうね。もし強くなれる方法があったら知りたいですよね。 そもそも強さって・・・何だ? そもそも論で行くと、「強くなりたい」とだけ言うのは少し微妙で、どのように強くなりたいか、という具体的なイメージがあった方が良いのではないかとは思うのですが、まあそんな事を思う人は恐らくこのブログを読んでいない事でしょう。 なのでこちらで「強さとは何か」を邪推してみるわけですが、このページを読んでいらっしゃる中高生の皆さん的には、「周囲にドヤれる、tw

    普通の中高生でも簡単にOS分野で強くなる方法 - livaの雑記帳
  • OS自作入門の入門 - uchan note

    この記事では OS 自作の最初の一歩の部分を紹介します.OS 開発を始める前に雰囲気をつかみたい,という方に向けて書いています. 「セキュリティキャンプ 2018」の「OS 開発ゼミ・フルスクラッチ OS を書こう!」の補足資料でもあります. ハローワールド 何はともあれ,他の OS の力を借りずに起動して画面にメッセージを表示するようなプログラムを作ることが OS 作成の第一歩でしょう. ここでは「30 日でできる!OS 自作入門」のノリで,バイナリエディタを使ってハローワールドをしてみます. 「30 日でできる!OS 自作入門」は 12 年前のなのでなかなか試せませんが1,記事は最新のやり方で説明してありますから,現代のパソコンで試せます. 唐突ですが,何かバイナリエディタ2を起動してください. そうしたら,次の 2KiB のバイナリ列を入力し,BOOTX64.EFI という名前で

    OS自作入門の入門 - uchan note
  • hikalium.com

    Mac OSX におけるはりぼてOSの開発環境を(再)整備した話 この記事は、自作OS Advent Calendar 2016の一部として作成されました。 はりぼてOSをマルチプラットフォームで開発できるよう、開発環境を整備した話が書かれています。 タイトルに反して、Linuxでの開発についても書かれています! 背景 みなさんは「はりぼてOS」をご存知ですか? はりぼてOSは、川合秀実氏著の「30日でできる!OS自作入門」というの中でつくりあげられるOSです。 名前の通り、非常に「はりぼて」な完成度となっておりますが、それでもブートローダーを含めフルスクラッチで開発されており、またKさん(川合秀実氏のこと)らしく、フロッピーディスク1枚に余裕で収まるサイズを実現しており、OS自作の基礎を学ぶには最適です。 …なんてことは、自作OSアドベントカレンダーをご覧になっている皆様にとっては常識

  • os-that-we-should-know?slide=81

    builderscon tokyo 2018 2018-09-08 10:00-11:00 @ Track-C

    os-that-we-should-know?slide=81
  • GitHub - syarochan/Operating-Systems-Three-Easy-Pieces-in-japanese

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - syarochan/Operating-Systems-Three-Easy-Pieces-in-japanese
  • 自作OSにUSBを実装する - livaの雑記帳

    はじめに この記事は自作OSでUSBキーボードを実装しようとして半年くらい四苦八苦していた経緯の備忘録です。時系列で書いてくので、読みにくかったらごめんなさい。 USB周りの経験値がゼロな状態から実装した結果、遠回りやら勘違いやらいろいろしているのですが、そこら辺の苦労話が少しは伝わると良いなぁ、と思って書いたものです。 あと、上級者向けに伏線となった部分を赤字にしてあります。読んでいくにつれ、この伏線が回収される(=僕の努力が水の泡になる)のですが、是非伏線の段階で「m9(^Д^)プギャーwwwwww」してみてください。 あと、タイトルは若干釣りです。それも最後まで読んでもらえれば分かるかと。 ソースは以下の通り。 github.com 背景&きっかけ 自分でOSを書いていると、キーボードで文字を入力したくなるわけです。C言語の入門でscanfとかやるのと同じですね。 キーボードから

    自作OSにUSBを実装する - livaの雑記帳
  • 低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~

    この記事は Kobe University Advent Calendar25日目の記事です。 低レイヤー技術(後述)をこれから学びたい人向けの入門記事です。 自身の経験を踏まえ、より多くの人達にこのレイヤーに興味を持ってほしくて書きました。 決して卒論がやばくてAdvent calendarのネタが作れなかったわけでは(ry なぜこんな記事を書いたか いわゆるシステムプログラミングのような低レイヤー(と言って差し支えない)ジャンルって一体何から始めれば良いのかいまいちピンと来ないし、何が面白いのかも分からないと思われている事が多いと思います。 にもかかわらず低レイヤーの魅力や学び方の指針みたいな物を示した、いわゆる入門記事ってかなり少ないんですよね。 記事はこれからシステムプログラミングを始めたい方や、既にかじってみたが中々先が見えてこない、将来何の役に立つのか不安という方達に読んでい

    低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~
  • OSを書く:初歩から一歩ずつ | POSTD

    (注:2017/9/27、いただいたフィードバックを元に翻訳を修正いたしました。) (傑作映画 『おつむて・ん・て・ん・クリニック』 に登場する著書です) このチュートリアルは、アセンブリで とても 簡単なオペレーティング・システムを皆さんが自分自身で書けるようになるために書きました。元々は、 OSDev wiki でこのチュートリアルのベースとなるものを見つけたのがきっかけです。しかし、そこには何がどのように、どうして行われているのかという説明が一切ありませんでしたので、このチュートリアルを書くことを決めました。ということで、起動プロセスの基礎と、実行するのに必要なツールについて紹介していきます。 OSXLinuxWindowsなどのよく使われているオペレーティング・システムはドライバを持っており、ハードウェアとの間のインタフェースを提供し、一定レベルの安全性とセキュリティを保証しま

    OSを書く:初歩から一歩ずつ | POSTD