タグ

ブックマーク / knowledge.sakura.ad.jp (6)

  • 自作OSの将来とは?自作OSのススメ 〜自作OSのいまと昔 [第5回] | さくらのナレッジ

    これまで、第1回・第2回では、自作OSとは何かという基的なところから、現代における自作OSの難しい点について解説しました。また第3回・第4回では、自作OSをする上で欠かせないオープンソースの開発ツールへの、バグ修正を通した貢献について触れました。 最終回となる今回は、連載名にもなっている、自作OSの「いまと昔」から一足進んで、これから自作OSをはじめてみようと考えている皆様にむけて、どのように自作OSを楽しめばよいのか、という将来へ向けた話をしてみたいと思います。 自作OSは役に立つ? 第1回でも触れた通り、自作OSの楽しみ方は人それぞれです。知的好奇心を満たしてくれる積木として、ハードウエアを極限まで使い倒すための道具として、日々成長させるのが楽しみな盆栽として、等々、どのような目的であっても、開発している人が楽しければ、それは立派な自作OSといえます。 それでも、ふと、こんな気持ち

    自作OSの将来とは?自作OSのススメ 〜自作OSのいまと昔 [第5回] | さくらのナレッジ
    makaya2
    makaya2 2022/01/13
  • 開発ツール(QEMU)への貢献(後半) 〜自作OSのいまと昔 [第4回] | さくらのナレッジ

    これまでのおさらい 前回の記事では、QEMUのVFAT機能にバグがあり、そしてその原因がメモリ破壊である、というところまでを突き止めました。 しかし、バグを発生させる直接の要因がわかっただけでは、そのバグを修正することはできません。今回はさらにもう一歩踏み込んで、どのような仕組みでメモリ破壊が発生したのかを突き止めると共に、それに基づいて修正パッチを投稿するところまでの道のりを紹介します。 lldbのwatchpoint機能 メモリ破壊系のバグらしき挙動を発見した際には、どのプログラムがそのアドレスのデータを書き換えたのか特定できれば、多くの場合原因が判明します。これを特定するために使える機能として、デバッガのwatchpointという機能があります。これは、特定のアドレスに対しての読み書きアクセスが発生した場合に、プログラムの動作を止めてデバッガで調査できる機能です。 この機能は通常、ハ

    開発ツール(QEMU)への貢献(後半) 〜自作OSのいまと昔 [第4回] | さくらのナレッジ
    makaya2
    makaya2 2022/01/13
  • 開発ツール(QEMU)への貢献(前半) 〜自作OSのいまと昔 [第3回] | さくらのナレッジ

    これまでの記事では、自作OSとそれを取り巻く状況について触れてきましたが、今回と次回は少し視点を変えて、自作OS開発で使うツールのデバッグや、それを通した貢献(contribute)の話をしたいと思います。 自作OSに限らず何かを開発する際には、たいていの場合、他の誰かが作ったツールを利用することになります。たとえば、CコンパイラとしてのClangや、デバッグのためのエミュレータとしてのQEMU, CやC++の標準ライブラリとしてのNewlibやlibc++などを、私の自作OS liumOS では利用しています。これらのソフトウエアは、ソースコードが公開されており、インターネット上の誰もが開発に参加することが可能です。 これらの開発ツールは、世界中のたくさんのユーザーに利用されるうちに、バグが見つかったり機能追加のリクエストが来たりすることで、完成度が次第に高まってきます。しかし、多くの人

    開発ツール(QEMU)への貢献(前半) 〜自作OSのいまと昔 [第3回] | さくらのナレッジ
    makaya2
    makaya2 2022/01/13
  • 現代における自作OSの難しさ 〜自作OSのいまと昔 [第2回] | さくらのナレッジ

    前回の記事では、自作OSとは何か、そしてこれまでの自作OSの歴史を紹介しました。しかし、近年になって自作OSを取り巻く状況は大きく変化してきています。そこで今回は、現代における自作OSでは、これまでと比べてどのような点が変化してきたのか、どのような難しい点があるのかについて紹介し、さらにそれらに対する解決策を、筆者の経験をもとに提案してゆきます。 自作OSをとりまく環境の変化 川合秀実氏著「30日でできる!OS自作入門」が出版された2006年頃と比べて、コンピュータをとりまく環境は大きく変化してきました。その変化には、CPUのコア数やビット幅からファームウェアの変遷、そしてデバイスの進化も含まれています。まず最初に、CPUのコア数について着目してみましょう。 CPUコア数の増加 上記の図は、1999年から2019年までにIntelから発売されたCPUのコア数の変化を示したグラフです。ご覧の

    現代における自作OSの難しさ 〜自作OSのいまと昔 [第2回] | さくらのナレッジ
    makaya2
    makaya2 2022/01/13
  • なぜ人は自作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回] | さくらのナレッジ
    makaya2
    makaya2 2022/01/13
  • 非エンジニアでも使いやすい高機能なPython環境「IPython」「Jupyter」を使ってみよう | さくらのナレッジ

    Pythonには任意のコードを対話的に実行できる環境が用意されているが、昨今ではこの機能を強化した「IPython」や、それらをグラフィカルに利用できる「Jupyter Notebook」といったツールが登場している。これらはWindowsなどのGUIベースの環境でも使いやすく、グラフや画像の描画、テキストのフォーマッティングなど、視覚化やレポート作成に便利な機能も備えている。今回はこのIPythonやJupyter Notebookについて紹介する。 強力な対話的環境を提供 Pythonでは、コマンドラインから引数無しに「python」コマンドを実行するとコマンドプロンプト(「>>>」)が表示される。これはREPL(Read-Eval-Print-Loop)や対話的実行環境などと呼ばれるもので、入力したコードをその場で実行し、その結果を出力するという動きをする。 たとえば次の例は、REP

    非エンジニアでも使いやすい高機能なPython環境「IPython」「Jupyter」を使ってみよう | さくらのナレッジ
  • 1