タグ

OSとLinuxに関するskypenguinsのブックマーク (16)

  • OS徒然草 (3) - VA Linux エンジニアブログ

    仮想空間 仮想アドレス アドレス変換機構 プログラムの配置 オンデマンド 実アドレス空間 実 vs 物理 あとがき 執筆者 : 小田 逸郎 ※ 「OS徒然草」連載記事一覧はこちら 仮想空間 弊社は、Linuxカーネル(等基盤系OSS)の障害解析サービスを提供しています。サービスを提供する相手は、エンドユーザではなく、基盤の運用やサポートを行っている部署の方々となります。そうした方々に障害解析だけでなく、Linuxカーネルの内部構造だとかクラッシュダンプの解析の仕方だとかの勉強会を提供したりすることもあります。そうした方々は、普通のエンジニアに比べれば、コンピュータに詳しいはずなのですが、それでも仮想空間という概念を把握するのには苦労しているように見受けられます。今回は、仮想空間を巡るお話です。仮想空間というものは、OSを語る上で外せないものですので、稿が、仮想空間を理解するための助けにな

    OS徒然草 (3) - VA Linux エンジニアブログ
  • OS徒然草 (2) - VA Linux エンジニアブログ

    コンテキストスイッチ 割り込み スーパバイザモード あとがき 執筆者 : 小田 逸郎 コンテキストスイッチ OSの開発をしていると、必然的にシステムコールを使用したプログラムを作成することになります。誰しも始めたての頃は、fork(2)システムコールを不思議に思うのではないかと思います。 pid_t pid; pid = fork(); if (pid == 0) { /* child. child start here */ } else if (pid == -1) { /* error */ } else { /* parent */ } forkの復帰値が親と子で違っていて、それで自分が親か子かを区別できるというのは、どんな仕掛けになっているのだろうと気になりますよね*1。 似たような例としては、setjmp(3)、longjmp(3)関数があります。プログラム例を見てみましょう。

    OS徒然草 (2) - VA Linux エンジニアブログ
  • OS徒然草 (1) - VA Linux エンジニアブログ

    はじめに コンピュータのアーキテクチャ プログラムの構造 あとがき 執筆者 : 小田 逸郎 はじめに 筆者は自分のことを OS 開発者 (OS屋) だと思ってます。最近は、OSにあまり深く関われていないのですが、筆者が若かりし頃に情熱を注いだものであり、筆者の基盤をなしているものであることには間違いないです。 筆者が OS (UNIX) の開発に携わり始めたのは、1986年のことなので、もう40年近く経ってしまいました。その間に OS の規模も随分大きくなってしまったようです。 筆者が始めた頃の UNIX は、デバイスドライバを除くと、20K行くらいだったと記憶しています。 全コードをラインプリンタで出力、コピー、製し、皆で読み合わせて、勉強会をしたりしていました。そんなことができる分量だったのです。 今の Linux の規模はどれくらいでしょうか。筆者たちが「Linuxカーネル 2.6

    OS徒然草 (1) - VA Linux エンジニアブログ
  • 意外と知られていない、Linuxのメモリホットプラグのインタフェースについて - Qiita

    0.はじめに 0.1 今年を振り返って この記事はFujitsu Advent Calendar 2023 の24日目の記事です。 なお、記事は個人の意見に基づくものであり、組織を代表するものではありません。 今年もAdvent Calendarの季節となりましたね。皆様お変わりないでしょうか? 私の方はというと、全体的に多忙ではありましたが、夏には国際学会IEEE NVMSAでの発表、秋から年末にかけて海外出張やOpen Source Summit Japanでの講演など、今年後半は怒涛のように仕事がくる状態になってました。おまけに 「Linus Torvaldsと会談せよ」 というミッションまで降ってきてしまい、正直どうなることかと思いました。人生、何が起こるかわからないものです。学生時代、英語は超苦手だったのに…。 0.2 今年の記事について さて、例年このAdvent Calen

    意外と知られていない、Linuxのメモリホットプラグのインタフェースについて - Qiita
  • Docker一強の終焉にあたり、押さえるべきContainer事情

    章立て はじめに Docker・Container型仮想化とは Docker一強時代終焉の兆し Container技術関連史 様々なContainer Runtime おわりに 1. はじめに Containerを使うならDocker、という常識が崩れつつある。軽量な仮想環境であるContainerは、開発からリリース後もすでに欠かせないツールであるため、エンジニアは避けて通れない。Container実行ツール(Container Runtime)として挙げられるのがほぼDocker一択であり、それで十分と思われていたのだが、Dockerの脆弱性や消費リソースなどの問題、Kubernetes(K8s)の登場による影響、containerdやcri-o等の他のContainer Runtimeの登場により状況が劇的に変化している。記事では、これからContainerを利用したい人や再度情報

    Docker一強の終焉にあたり、押さえるべきContainer事情
  • 静的リンク・動的リンク・動的ローディングの違い - プログラムを自動生成したい

    今日のネタはリンカの仕事について。低レイヤな話としてありがちだが、いかんせんバイナリを入力にバイナリを出力する処理なので直感的に理解しづらい。ってことで調べながらメモる。 リンカ(linker)とは何か リンカ とは、コンパイルされたファイル(オブジェクトファイル)同士をつないで実行可能なファイルを作るプログラムである。ほとんどの場合、ソースコードはファイルごとにコンパイルされ、ファイルごとにオブジェクトファイルが生成される。他方、プログラム中で外部ファイルで定義されたシンボル(変数名や関数名など)を参照する場合がある。たとえばライブラリ中に定義された関数を呼び出す場合などである。リンカの役割は、このようなファイル内を見ただけでは正体不明のシンボルと外部ファイルに含まれる定義を紐付けることである。 リンカには静的リンクと動的リンクの2種類がある。以下にそれぞれについてざっくりまとめる。 静

    静的リンク・動的リンク・動的ローディングの違い - プログラムを自動生成したい
  • 車載 OS について語る

    はじめに 他分野のエンジニアに「1回のミーティングで車載OSについて教えて」と相談されることがあったため、その説明の際に使ったメモ書きを共有する。一応、最初に予防線を張っておくと、私自身、車載ソフトウェア業界に身を置くが、「いわゆる車載OS分野の専門家か?」というとそうでもないし、やや距離のある分野の方への説明なので、ツッコミはお手柔らかにお願いしたい。 ISO-26262機能安全について OSという耽美な響きからGeekでTechな話を期待されたかもしれないが、まず国際標準の話から説明を始める。というのも、この点が生命・財産に関わるソフトウェアと、そうでないソフトウェアを分かつ、大きな前提のため、ここはスキップできない。 機能安全とは? 国際標準とは世界で統一的なコミュニケーションを図るための規格であり、Terminologyについては他のどんな文書より定義が厳密なものだが、「1回のミー

    車載 OS について語る
    skypenguins
    skypenguins 2023/07/31
    Linuxもスケジューラのクラスにsched_rtってのがあってRTOSみたいに使えるらしい
  • プロセスよりもスレッドのほうが高速にコンテキストスイッチできることを検証する

    目次 はじめに コンテキストスイッチとは 実験1: パイプを使って計測する 実験2: より実際的なモデル プロセス VS スレッド はじめに すこし前に、Chromeの開発をされているをやられている方のこんなスライドが回覧されてきた。 で、それを見てすこしひっかかったのが 15ページ のところ。 スレッドとプロセスの比較だけど、スレッドについて、このような言及がある。 そのぶんプロセスより軽い(メモリ使用量、コンテキストスイッチ) あれ、コンテキストスイッチの時間って、プロセスとスレッドで違うんだっけ…。 ぼくはアプリケーションプログラマなので低レイヤーのことは詳しくないのだけど、 プロセスもスレッドも、スケジューラーから見ると同じタスクという抽象であるみたいな話をどこかで聞いたことがあって、 コンテキストスイッチの時間にも違いはないのかと、なんとなく思い込んでいた。 これを実際に検証する

    プロセスよりもスレッドのほうが高速にコンテキストスイッチできることを検証する
  • 「MacはLinuxだった」って本当? 「そうだね……」元Mac雑誌編集者は昔語りを始めた

    MacLinuxだった」って当? 「そうだね……」元Mac雑誌編集者は昔語りを始めた:ヤマーとマツの、ねえこれ知ってる?(1/4 ページ) 経歴だけは長いベテラン記者・編集者の松尾(マツ)と、幾つものテック系編集部を渡り歩いてきた山川(ヤマー)が、ネット用語、テクノロジー用語で知らないことをお互い聞きあったり調べたりしながら成長していくコーナー。交代で執筆します。 マツ 「MacLinuxだった」という趣旨のツイートが話題になっていて、ああそういうこともあったなあ、と思い出したので、ちょっと昔語りしようかなと。茶でも飲みながら。 ヤマー 私は紅茶を用意してきます。 戻ってきました。macOSは何がベースになっているかって話ですよね。 マツ 結論から言っちゃうと、現在のmacOSはUNIX系列のOSではあるけど、Linuxではないです。macOSのベースになっているのはDarwin。

    「MacはLinuxだった」って本当? 「そうだね……」元Mac雑誌編集者は昔語りを始めた
  • この個人サイトは自作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で動いています
  • WindowsがLinuxより優れている点は何ですか? (OSの設計に関する質問であり、利用者の使い勝手の話ではありません) 。

    回答 (6件中の1件目) 私はWindowsのカーネルを熟知しており、Linuxのカーネルについてはそれなりに知っています。 意外に思われるかもしれませんが、類似点の方がずっと多く、違いは少ないです。私がよく言う違いの1つは、LinuxのI/OモデルはUNIXから継承した同期式が基で、WindowsのI/OモデルはVMSから継承した非同期式が基であるということです。WindowsのI/Oリクエストの設計は、同期式と非同期式のI/Oを美しく管理できる優れた設計になっています。Linux(及び普通のUNIX)でも非同期のI/Oは可能ですが、そのための統一された仕組みはありません。これは...

    WindowsがLinuxより優れている点は何ですか? (OSの設計に関する質問であり、利用者の使い勝手の話ではありません) 。
  • Linuxカーネルを読む前にやったこと - komukomo’s diary

    「カーネルのコードがよくわからない。Linuxカーネルに関するを読んでもいまいちしっくりこない。」 から、「読めば理解できそう..!」 になるまでにやったことのまとめ。 はじめに 低レイヤの話がわかるようになりたかった。 カーネルの中身が知りたかった。 とりあえずを読もうと思い詳解 Linuxカーネル 第3版を読んだが知識がなさ過ぎてよくわからない。 知らない用語だらけで都度調べればなんとなくはわかる気もするが、いまいち頭に入ってこない。 今思うとそもそもCPUの話なのかカーネルの話なのかさえよくわからない状態で読んでいたような気がする。 そんな状態を克服するためにやったことをまとめておく。 学習前 学習前の自分の知識はこんな感じだった。 知っていた データ構造とアルゴリズム 論理回路 C言語(研究室で数値計算に使える程度。構造体やポインタくらいならわかる。) よく知らなかった OSが

    Linuxカーネルを読む前にやったこと - komukomo’s diary
    skypenguins
    skypenguins 2018/02/04
    30日〜OS自作入門は、世界一分かりやすいx86の起動の方法を解説したものってどっかで見た
  • Mac嫌いの人・Windows嫌いの人が勘違いしている、10の真実 - Moxbit

    WindowsMaciPhoneなどのガジェットからライフハックまで、幅広いジャンルを扱っているブログです。

    Mac嫌いの人・Windows嫌いの人が勘違いしている、10の真実 - Moxbit
    skypenguins
    skypenguins 2016/02/16
    ここの管理人、恐らくUNIXとLinuxを混同してるんだと思う
  • Linux Insides : カーネル起動プロセス part1 | POSTD

    ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x8664アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 **x8664** 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかと

    Linux Insides : カーネル起動プロセス part1 | POSTD
  • Linuxカーネルハッカーになる4つの方法 | Yakst

    Linuxカーネル開発者になりたいと思っても、まず何から手をつけたらいいか分からず、始める前から挫折する人も多いだろう。すぐ始められる最初の一歩の例が、筆者の経験を交えて4つ挙げてある。 (これは、CUSECというイベントでの、カーネルは怖くないという話の続き) カーネルプログラミングを始めるにはどうしたらいいか、アドバイスを求めたことがある。その時は、こう回答があった。 仕事のためにカーネルを理解する必要がなくても、やってみたらどうだろう? Linuxカーネルメーリングリストに登録してみて、精一杯理解しようと頑張ってみよう。 メインのLinuxカーネルの一部にならないコードを書いているなら、時間の無駄だ。 これは私にとっては、全然、少しも役に立たなかった。そんなわけで、ここでは、あなたなりにOSやLinuxカーネルがどう働くか、楽しみながら理解していくための、いくつかの戦略について書いて

    Linuxカーネルハッカーになる4つの方法 | Yakst
  • Assembly Programming on x86-64 Linux

    はじめに だれでも64ビットのコンピュータを所有する時代になってきました。最近の PC では WindowsXP や WindowsVistaといった32ビットのOSが使われているものの、Core2Duo を代表として、すべて amd64 や intel64 といった 64bitに対応した CPU が搭載されています。昔、インテルの 80386 や 80486 という 32bitCPU は10年近く MS-DOS や Windows3.x といった16bitのOSを使うための高速な8086として使われていました。Windows95の時代になって、やっと32bitの機能が一般的に使われ始めました。2009年現在でも64bitに対応した Windows はサーバ用として一部で活躍しているだけではないでしょうか。Linux という無料で使える OS でも、すでに64bit版が安定して使える

  • 1