C10K 問題 (the C10K problem) は1999年に Dan Kegel が発表した文章、ならびにそこで提示された「問題」です。文章はその後も2000年代前半に何度か更新されているのですが、さすがに令和に読み返すと、当初の問題意識がわかりにくいところがあります。 2000年からの10年は、 ソフトウェア面では、select(2), poll(2) にかわる新しいシステムコールの実装と、それを使ったアプリケーションの普及 ハードウェア面では、x86 アーキテクチャの64ビット移行、仮想化命令の追加と、マルチコア化 さらにそこにクラウドも登場する、面白い時代でした。ここでは、それらの出来事を中心に、さらに、当時の雰囲気をつたえるような日本国内のブログやインタビュー記事をまとめることで、C10K 問題が、さまざまな側面から解決されていく流れを説明したいと思います。 書き足したいと
はじめに OpenSBIとはRISC-V向けに提供されたSBI(Supervisor Binary Interface)仕様の実装で、M-modeでの挙動が実装されている(linux kernelはS-modeとU-modeでの挙動が実装されている)。前回の記事でlinux kernel(v5.3.6)の下でOpenSBIを導入した手順を書いたが、今回はOpenSBIの内部実装(version: v0.5とする)がどの様になっているのかを追っていきたい。本記事では、OpenSBIのboot~mret~linux kernelを実行するまでをまとめた。次の記事では、trap handlerの内部実装を覗くつもりだ。 なお、xv6というMIT発の教育用OSでもrisc-v実装が公開されている。こちらは、self-containedな実装で、(当然)linux kernelとその周辺のコンポーネ
完全なLinuxがWindows 10上で稼働する? 「WSL 2」とは:Windows 10 The Latest MicrosoftがBuild 2019でWSLの強化版「WSL 2」を発表した。WSL 2は、現行のWSLと何が違うのかだろうか。Microsoftの開発者向けBlog「Devblog」で公開された情報から、WSL 2の概要を解説する。 連載目次 2019年5月に米国シアトルで開催されたMicrosoftの開発者向けイベント「Build 2019」で、現在のWindows Subsystem for Linux(WSL)を強化した「WSL 2」が発表された(Microsoft Devblog「Announcing WSL 2」「WSL 2 Post BUILD FAQ)。本稿では、発表されたWSL 2のアーキテクチャを紹介しつつ、その特徴や現行のWSL(以下区別のためにW
by Adam Harvey Linuxを利用していると「シェル」や「grep」「プロセス」といった言葉を目にします。エンジニアのCarl Riis氏はそんなLinuxの基礎用語の意味や仕組みをさまざまなウェブサイトから学習し、「10のミニプロジェクト」を作成することでスキルを向上させたとして、その詳細を公開しています。 Getting better at Linux with 10 mini-projects - carltheperson https://carltheperson.com/posts/10-things-linux GitHub - carltheperson/10-things-linux: Getting better at Linux with 10 mini-projects. https://github.com/carltheperson/10-thing
2011年07月19日 ARM LinuxでのVFP(FPU)レジスタの退避、復帰 LinuxではVFP(FPU)のレジスタの退避、復帰は遅延的に行われます。 ARMのLinuxのソース上のどこでそれが行われているかを調べました。 ARMの浮動小数点ユニットはARM11ではVFPと呼ばれています。(Vector Floating Point). しかしこのVector機能は変則的でコンパイラにもサポートされていません。NEON登場後はVector演算はそちらをつかうようになってきています。Cortex-A9では浮動小数点ユニットでのVector機能は削除され、名前もFPUに改められました。 しかし、ARM LinuxのソースコードではVFP/FPU関連のソースコードは共通にvfpの名称が使われています。この記事でもVFPと呼称します。 VFPの初期化 arch/arm/vfp/vfpmod
1年半前にBTOパソコンのGPU入れ替えた際のメモ。 中古のBTO PCのGPUを入れ替えるという選択肢 Deep Learningの学習をする際にCPUでやるのは速度の面で現実的でなく、デファクトスタンダードはNVIDIAのGPUのマシーンを使うこと。 最近では随分GPUのクラウドインスタンスも増えたが、GPUは本質的に発熱量が多く、データセンターで1点管理するには不向きで、長時間学習させているとコストがかさみがち。そう行った際に、自宅にGPU環境があるとクラウドより割安になる場合もあるが、組み立て済みのマシンは初期費用20万円以上するのでまあお高い。 自作するという選択肢もあるが、パーツで買うと量産効果きかないのか割高になる場合もある他、Macに慣れたゆるふわ自作PC勢には0->1組み立てはなかなか厳しい。 マシンに対する見解は色々あり、ググると 1) クラウド派 2)組み立て済み購入
No one is an island. Learnings from fostering a developers community.
► 2015 (4) ► 9月 (1) ► 8月 (1) ► 7月 (1) ► 5月 (1) ► 2014 (4) ► 9月 (1) ► 8月 (1) ► 3月 (1) ► 2月 (1) ▼ 2013 (8) ► 12月 (1) ► 9月 (1) ▼ 8月 (1) HWの情報を取得できるdmidecodeコマンドが結構便利だと思った ► 3月 (2) ► 2月 (1) ► 1月 (2)
はじめに こんにちは、技術顧問のsatです。 サイボウズでは、ファイルシステムサイズ拡張時にデータベースアクセスがスローダウンするという問題に長年悩まされてきました。本記事では運用本部の藤田と深谷がこの問題を解決した流れについて報告いたします。問題を解決するために2人はLinuxカーネルを修正しました。修正は社内に閉じたものではなく、執筆当時の最新 Linuxカーネルであるv4.17にマージされています。 問題 以下の操作の後にデータベースへのアクセスが一時的にスローダウンする ブロックデバイスのサイズを拡張する 上記デバイス上にあるファイルシステムのサイズを拡張する 原因 linuxカーネルはブロックデバイスのサイズ変更(縮小および拡張)時に、当該デバイス上にあるファイルシステムのページキャッシュ(後述)を無効化する*1 解決方法 ブロックデバイスのサイズ拡張時にはページキャッシュを無効
(本文書はAndrew S. Tanenbaum教授の許可をいただいて島慶一が翻訳しました。) MINIXの30年の歴史から学んだこと (原題: Lessons learned from 30 years of Minix) 著者: Andrew S. Tanenbaum (収録: Communications of the ACM, Vol. 59 No. 3, March 2016, Pages 70-78) Linuxのことはみなさんよくご存知だと思いますが、その直接の祖先であるMINIXも齢三十を迎え、古参のソフトウェアとしてはまだまだ元気にやっています。MINIXの生い立ち、またMINIXやLinuxの始まりの物語はあまり知られておらず、だからこそMINIXの開発から多少なりとも学ぶべきことがあるのではないかと思うのです。これからお話しすることには、オペレーティングシステム特有の
はじめに。 /bin/, /usr/bin/, /usr/local/bin/ たまにうっかりしていると、このディレクトリ達の用途の違いがわからなくなることありませんか? そんな物忘れさんな人(主に自分)用に、その違いを簡潔にまとめておきましょう。 ちなみに、こういうのはFHSといいます。詳しくは以下参照。 Filesystem Hierarchy Standard - Wikipedia それから、この内容は、自分用に大雑把にまとめただけなので、正確さに欠けるかもしれません。 詳しく知りたい人は↓を見たほうがいいです。 エンタープライズ: - 第14回:FHSによるディレクトリの規格化 この記事は、楽して大意を掴みたい人向けということで。 その点は含みおき下さい。 まとめてみました。 まとめたい対象のディレクトリは、以下の6つ $ file /bin /sbin /usr/bin/ /u
本記事では、Linuxカーネルの鍵保存サービスの脆弱性(CVE-2016-0728)、およびそれを利用した権限昇格エクスプロイトについて解説します。 Linuxカーネルの参照カウンタオーバーフローはCVE-2016-0728とCVE-2014-2851が有名ですが、今回は前者を題材に扱います。 参考: Exploiting COF Vulnerabilities in the Linux kernel https://ruxcon.org.au/assets/2016/slides/ruxcon2016-Vitaly.pdf 0. セキュリティキャンプ2017応募課題 セキュリティキャンプというIPAが主催しているイベントがあるのですが、私がそこの応募課題の一つ(A-5)としてこの脆弱性を出題していたので、 Write upを兼ねて、今更ですがCVE-2016-0728について説明しようと
TLPI (The Linux Programming Interface) 再々。 TLPI の輪読の際に @matsumotory よりシグナルセットあたりをまとめるようにと指令が出たので、拙遅な感じでまとめました。 シグナルとは プロセス間通信の一種。「プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シグナルハンドラ) を設定することや、シグナルをブロックすることも可能。 コンソールで、プロセスを終了させるためにkill -9 <PID>とかCtrl+Cとかした際にも、対象プロセスにシグナルが送信されている。 ちなみに、PID「1」の init や systemd にkill -9 1しても何も起らない。(そういえば昔、oom-killer に init を殺された覚
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く