並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 132件

新着順 人気順

code-readingの検索結果81 - 120 件 / 132件

  • オブジェクト指向のソースを読むのが難しい理由 - 都元ダイスケ IT-PRESS

    ダラダラ書かない予定だよ。ざっくり行くよ。あと、分かってる人には当たり前な事だと思うよ。 あるクラスについて知りたかったら、まずその基底クラスを知れ 例えば、Integerクラスについて知りたいと思ったら、Integer.java だけを読んでいてはダメだ。確かに「Integerに特化した責務・構造・操作」は読み取れるかもしれないが、数値としての基本的な責務・構造・操作はNumberに書かれている。それを読まずして、Integerが保つ数値という一面を知ることはできない。Integer.javaには「Integer - Number」*1の情報しか書いてないのだよ。差分プログラミング。 さらに、忘れちゃいけない。Object.javaを読め。全ての道は暗黙的にObjectにつながっている。Objectを知らずしてJavaのクラスを知る事は絶対にできない。Objectなんて、みんな「知った気

      オブジェクト指向のソースを読むのが難しい理由 - 都元ダイスケ IT-PRESS
    • ゆとりなJavaプログラマが読むといいかもしれないオープンソースソフトウェア - wyukawa's diary

      Java出来ますって言ってるのにOpenJDKのコードをチェックアウトした事も無いようならモグリである可能性は高い。 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。 OpenJDKのコードをチェックアウトした事も無いモグリです。こんにちは。 ま、それはともかくw 上記はいいエントリだし参考になります。ただまあモヒカンなのは事実だと思うのでゆとり路線でどういうオープンソースソフトウェアを読むと良いかもしれないって言うのを書いてみたいと思います。かもしれないって書いてるのがすでにゆとりですね。サーセンw JUnit すでに語り尽くされているとは思いますが、これは外せない。 僕自身は下記のJUnit3.8.2を読解する記事を読んでからJUnit3.8.2を読んでみましたね。 Java World (ジャバ・ワールド) 2005年 9月号 出版社/

        ゆとりなJavaプログラマが読むといいかもしれないオープンソースソフトウェア - wyukawa's diary
      • プログラミングテクニック

          プログラミングテクニック
        • ソースコードを読むときの3カ条 - I am Cruby!

          GCを読んでいく上で実際に使っているソースコードの読み方を紹介してみます。 個人的に大事にしているのは以下の3カ条です。 小さい疑問から先に倒すべし 正しいツールを選択するべし 必ずメモするべし 小さい疑問から先に倒すべし なんとなく読みたい時は疑問の分析からソースコードってなんとなく読みたくなるということもありますよね。 ただ、その状態でいきなり対象のソースコードを読みはじめるのはよくないです。 小さなプロジェクトだと問題ないかもしれませんが、大きなプロジェクトだと時間がかかりすぎます。 そういうときは最初にドキュメントなどを読んでみましょう。 そうすると、対象のソースコードが持つ機能が書いてあります。 機能がわかれば「どうやってこれを実装しているのか?」という疑問が浮かびます。 たとえば、G1GCの場合は論文がすでに公開されていたので、最初に論文を読みました。 読み終わったあとに論文内

          • KotlinでB+Treeを実装してみた-初めてのデータベース実装 - As a Futurist...

            ふと思い立って 1 ヶ月程で Kotlin を使って B+Tree の単純な実装をしてました。一区切りついたのでコードを晒しつつ、英語でブログを書きました。 https://github.com/riywo/b-plus-tree I just published Learned about database by implementing B+Tree in Kotlin https://t.co/nTXq12LF2b — Ryosuke Iwanaga (@riywo) April 1, 2019 あとは、例によって落ち穂拾い。 InnoDB は情報が豊富にあるので題材としてよかった SQLite や他にも参考にする候補はあったのですが、いずれもコードを読む時間は取りたくなかった(コードを書くことが目的な)ので、資料やブログが豊富にある InnoDB を題材にしたのは正解でした。 Ko

              KotlinでB+Treeを実装してみた-初めてのデータベース実装 - As a Futurist...
            • Golangで簡易的ワーカー/ジョブキュー - たにしきんぐダム

              goroutineの数を制限しつつ並列にジョブを実行したい ジョブは定期的に投入できたい ジョブが空っぽになっても終了しないで欲しい SIGTERMとか送ったら実行中のジョブが完了するまで待ってから終了してほしい というようなものが欲しくなることが最近よくある!のでメモ 参考 fireworq/dispatcher.go at 86126cb7de9fdc5ccc98d57aaa80f1abd5694463 · fireworq/fireworq · GitHub worker.go · GitHub Big Sky :: golang の channel を使ったテクニックあれこれ 実装 gistbe9fac4aa02419d68c6770a85e53c936 この実装ではmainの中のforループでのみジョブをenqueueしているが、 定期的に外部リソース(APIたたいたり、DBを眺

                Golangで簡易的ワーカー/ジョブキュー - たにしきんぐダム
              • Out of memory and no killable processes... のカーネルパニックを起こしたい - hibomaの日記

                イントロ dsas.blog.klab.org こちらのエントリを拝見したのだが Out of memory and no killable processes... というログを出してカーネルパニックするケースがあるのだなと初めて知った。 幸いにして、過去に同様のメッセージを出すカーネルパニックには遭遇したことがない。あるいはログが取れてなくて気がつかなかっただけかもね! モチベーション 故意に異常を起こして、このカーネルパニックを見てみたい 🔥💀 Out of memory and no killable processes ... のコード 該当のログを出してカーネルパニックするコードは out_of_memory に書かれている (ソースは CentOS7.4 1708 ) /** * out_of_memory - kill the "best" process when w

                  Out of memory and no killable processes... のカーネルパニックを起こしたい - hibomaの日記
                • Chromeでボタンをクリックしたときのフォーカスリング - fragmentary

                  geckotangが「Chromeでボタンをマウスでクリックしたときにフォーカスリングが出たり出なかったりするのなんで」と言っていて、なんかお前調べろよ的な感じだったので調べることにした。 使うのはcs.chromium.org。<button>なので"HTMLButtonElement"で検索して、それっぽいファイルを探す。あった。 html_button_element.h "focus"で検索するとSupportsAutoFocus()というメソッドが見つかる……がこれはautofocus属性の対象になるかとかそういう感じがするのでこれではない。というかそっか、autofocus指定できるんだ……<input>にしか使ったことなかったからなんか使えないって思ってしまってた。 HTMLButtonElementにはなさそうなので、参照しているHTMLFormControlElement

                    Chromeでボタンをクリックしたときのフォーカスリング - fragmentary
                  • Decoding raw digital photos in Linux

                    en Esperanto em Português auf Deutsch на русском па-беларуску Welcome! If you are wondering how to connect your digital camera and download images to a Linux PC, go to the gPhoto homepage. My software is for processing those images after downloading them. If you're downloading JPEG files, you don't need my software at all. The image has already been processed inside the camera. Almost all digital

                    • TCP再送タイムアウト時間の規格と実装 - co1row’s diary

                      先日、アンドリュー・タネンバウム先生のコンピュータネットワーク第5版を読んでいると気になる記述が出てきた。 曰く、TCP再送タイムアウト時間(RTO)は下記の式で求められる。 RTO = SRTT + 4 * RTTVAR SRTTとは平滑化したRTT値、RTTVARとは標準偏差…ではなく平均偏差(計算の簡略化のため)である。単にRTT値だけを元にタイムアウト時間を設定してしまうと、RTT値のブレが大きいときに不要なタイムアウトが発生しやすくなる。なので平均偏差も足しましょう…それも4倍もしておけば、いくらなんでもパケットが到達して相手が生きているならば応答が返ってくるはずだろう、と。そういう式である。OK、話はわかった。 しかし信じがたい記述が続く。 再送タイマー最小値は1秒となっている。これはスプリアス再送を防ぐために選ばれた値である。 本当だろうか?だったら計算なんてする必要はない。

                        TCP再送タイムアウト時間の規格と実装 - co1row’s diary
                      • Reading Gauche - Mona OS developers Wiki

                        列挙体名がない列挙体変数は Reading Gauche/gauche/vm.h/SCM_ERROR_BEING_HANDLED のような書き方でいいでしょうか。 -- ココサブ 2007-09-27 (木) 23:26:32 はい。良いと思います。#define と同じような扱いですね。 -- ひげぽん 2007-09-28 (金) 00:43:20 週末に合宿に出ていた間の分のcatch-up中です。struct HogeHogeRef は HogeHoge のページに記載、という風になってきたようなので従います。その方が手繰りやすいですし。既にポストされたstruct関連ページのリンクや内容も適宜修正します。 -- naoya_t 2007-09-25 (火) 14:46:08 ReadingGaucheの階層構造でsrcを省略してしまっていたために、srcと同じ階層になるgcなどの

                        • 2万行のソフトウェア・プラットフォームは可能か?

                          CNetのブログに、「UIEngineのデザイン・プリンシプル」というエントリーを書いていたのだが、ちょうど良いタイミングで、アラン・ケイの東大での講演がネットで話題になっていたので、少し反応してみる。 私の琴線に触れたのは、 …同じことが2万行程度でできるはずである。2万行であれば一冊の本に印刷することができるし、数冊の説明をつければ1人の人間がすべてを理解することができるはずである。我々がNSFからの資金を受けてこれからやろうとしているのは、2万行でOS、グラフィックスシステム、ネットワークシステムからエンドユーザーシステムまですべてを書いたようなシステムを作ることである。 という部分。肥大化してしまったWindowsやInternet Explorerを反面教師にして、全く正反対のデザイン・プリンシプルでUIEngineを作った私としては、講演の会場にいたら「だよね~」と握手を求めて

                          • GitHub - danbev/learning-v8: Project for learning V8 internals

                            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 - danbev/learning-v8: Project for learning V8 internals
                            • Kubernetes の API Client における
キャッシュ設計 / Cache Design in Kubernetes API Client

                              Go Conference 2019 Spring

                                Kubernetes の API Client における
キャッシュ設計 / Cache Design in Kubernetes API Client
                              • Understanding V8’s Bytecode

                                V8 is Google’s open source JavaScript engine. Chrome, Node.js, and many other applications use V8. This article explains V8’s bytecode format — which is actually easy to read once you understand some basic concepts. This post is available in Chinese, translated by justjavac. Ignition! We have lift-off! Interpreter Ignition is part of our compiler pipeline since 2016.When V8 compiles JavaScript cod

                                  Understanding V8’s Bytecode
                                • JavaScript engine fundamentals: Shapes and Inline Caches · Mathias Bynens

                                  This article describes some key fundamentals that are common to all JavaScript engines — and not just V8, the engine the authors (Benedikt and Mathias) work on. As a JavaScript developer, having a deeper understanding of how JavaScript engines work helps you reason about the performance characteristics of your code. Note: If you prefer watching a presentation over reading articles, then enjoy the

                                  • GoのLanguage Specificationの特定の仕様に関わる処理系の実装を探す #golang - My External Storage

                                    Goの仕様はこのHTML1ページにまとまっている。 The Go Programming Language Specification https://golang.org/ref/spec 仕様に書いてある処理はどうやって実装されているのか調べたかった。 Goの仕様の1文からその仕様に関係する処理系のコードを探す方法をメモしておく。 TL;DR GoのLanguage Specificationに書いてある仕様の処理系の実装を探す https://golang.org/ref/spec GoのLanguage SpecificationのHTMLはGoリポジトリのdocディレクトリに入っている https://go.googlesource.com/go Language Specificationのコミットログから仕様の追加日を知る git log -L 2569,2579:./doc

                                      GoのLanguage Specificationの特定の仕様に関わる処理系の実装を探す #golang - My External Storage
                                    • ps コマンドの %CPU がどのように計算されるかソースを追う - hibomaの日記

                                      ps auxf を実行すると %CPU というカラムに CPU使用率 が表示される 見慣れた数値ではあるが、そもそも この数値はどういうロジックで計算されているんだったかな … と疑問が湧いた man を調べる man 1 ps では次のように説明されている %cpu %CPU プロセスの cpu 使用率は "##.#" というフォーマットである。 現在のところ CPU 使用率は、プロセスの生存期間中に 実行に利用した時間のパーセンテージで表される。 これを全部足しても 100% になることは (よほど幸運でなければ) ない。 (別名 pcpu)。 man は便利だが、今回は実装を知りたいのでソースを追うことにする ソースを追う 同じようなテーマを調べたブログは他にもあるかもしれないが、自分の中で手順を整理するためにも イチから書いてみよう。ソースの解説ではないので、ご了承を。 ディストリ

                                        ps コマンドの %CPU がどのように計算されるかソースを追う - hibomaの日記
                                      • ソースコード探険隊

                                        • cgroupのv1とv2の切り分け的なところ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

                                          cgroupはv1とv2という2つの実装(と言っていいのか?)があってそれらはkernel/cgroup.cで一つのコードベースにまとまっているのでコード読んでで混乱するなーというところで、誰得なめもを。 特に、4.1とかのカーネルだとv2のコードはまだ正式版となってないけどマージはされていて、DEVELsane_behaviorというオプションを使うことでv2の機能が使えるようになってます(参考: Linux 3.16 から試せる cgroup の単一階層構造 (1) - TenForward)。今はv2がちゃんと入っているのでこのオプションは不要で、cgroupのマウント時にcgroup v2としてマウントするかどうかで切り分けできます。cgroup_mount()のis_v2がそれです。 2083 static struct dentry *cgroup_mount(struct f

                                            cgroupのv1とv2の切り分け的なところ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
                                          • Interactive map of Linux kernel

                                            image/svg+xml Linux kernel map Constantine Shulyupin © 2007–2022 Constantine Shulyupin www.MakeLinux.net/kernel/map virtual logical electronics I/O memory CPU HI char devices HI subsystems address families sockets access protocols network interfaces networking Virtual File System block devices storage virtual memory memory access logical memory Page Allocator memory threads processes Scheduler int

                                            • ソースコード・リーディング・ワークショップ2010へ行ってきた - 虎塚

                                              1月最後の土曜日、ソースコード・リーディング・ワークショップ2010へ行ってきました。 http://se.naist.jp/events/srw2010.html 主催は、奈良先端科学技術大学院大学の森崎先生で、共催は、IBMさんです。 先週、ソースコード・リーディング・ワークショップ in デブサミ2010が終わってネタバレの心配が消えたので、1月に参加した時のメモをアップしておきます。 最後にも感想を書きましたが、参加して非常に良かったです。学んだことのエッセンスを、仕事の場で共有したいです。 以下のメモは、要約なので、誤りや講演された方の意図と異なる部分があるかもしれません。気づいたら、教えてもらえると嬉しいです。また、もしも、研究のデータ収集上問題が起こりうるような記述があれば、ご連絡ください。>関係者の方 講演「ソースコード理解と勉強会」よしおかひろたかさん ご本人が、ブログで

                                                ソースコード・リーディング・ワークショップ2010へ行ってきた - 虎塚
                                              • Go 言語の io パッケージに定義されているインターフェース型を一気見する - 倭マン's BLOG

                                                Go 言語のいろいろなパッケージを使ってみるシリーズ(目次)。 今回は io パッケージにたくさん定義されているインターフェース群をザッと見ていきます。 実装には立ち入りません。 io パッケージに定義されているインターフェースと定数io パッケージに定義されているインターフェース型には以下のようなものがあります: // バイト I/O type ByteReader type ByteScanner type ByteWriter // ルーン I/O type RuneReader type RuneScanner // バイトスライス I/O type Reader type Writer type Seeker type Closer // Seeker のための定数 const ( SeekStart = 0 // ファイルの先頭から SeekCurrent = 1 // ファイ

                                                  Go 言語の io パッケージに定義されているインターフェース型を一気見する - 倭マン's BLOG
                                                • Big Sky :: コードリーディング2日目。sort

                                                  « 最近の GNU CoreUtils を使っている限り rm -rf / は --no-preserve-root 付けないと / は消せない | Main | Learn Vim Progressively » 昨日は rm を読みました。今日は、ずいぶん前に「GNU textutilsに入ってるsort(1)にはコア数によって動的にスレッドを生成してソートする処理が入ってるのでそういうの興味ある人はコード読むといいと思います。」と言ってた部分を読もうと思います。 ソースは昨日と同様に CoreUtils の src/sort.c です。 ソートのメイン処理は main の一番下の方にあって if (mergeonly) { struct sortfile *sortfiles = xcalloc (nfiles, sizeof *sortfiles); size_t i; for (

                                                    Big Sky :: コードリーディング2日目。sort
                                                  • エミナルクリニック富山院の口コミ3選&20代女子の本音まとめ

                                                    ネットで検索してよく出てくるエミナルクリニックの富山院がめっちゃ気になるなぁ。 医療脱毛なのにすごい安くていい評判も聞くけど、ほんとに痛くないのかな? 通っている人の口コミをみてみたいなぁー。 なんて気になったので、エミナルクリニックの富山院についてSNSやネットで調べてみました。 そう思ってSNSを中心に調べてみたら、、、口コミや評判も良いじゃない♪ ちなみに、似たようなサービスや商品があるかも?なので、今回調べてみたのはこちらになります。 オープンしました! エミナルクリニックの富山院ですが、すでにオープンしています!(2020年10月2日オープン済) もちろんですが、オープンしたてなんでめっちゃ予約が取りやすいです。 人気のある医療脱毛院なので早めの予約が良いかも?!

                                                    • GitHub - mattgreen/hython: Haskell-powered Python 3 interpreter

                                                      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 - mattgreen/hython: Haskell-powered Python 3 interpreter
                                                      • 【Kubernetes】KubernetesのCronJobのcronスケジュールはどう管理されているのか? - nがひとつ多い。

                                                        はじめに 本記事は Kuberenetes Advent Calendar 2019の17日目の記事です。 Kubernetesのリソースの中に、定期的に揮発性のあるジョブを生み出すCronJobについての記事です。 はじめに 本題 ソースを読む。 syncAll syncOne getRecentUnmetScheduleTimes cron.ParseStandard 結論 おまけ 本題 cronjobは以下のようなマニフェストで定義されます。 apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args:

                                                          【Kubernetes】KubernetesのCronJobのcronスケジュールはどう管理されているのか? - nがひとつ多い。
                                                        • printf()のソースコードで、ソースコードリーディングのコツを身に付ける

                                                          書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ(2015年9月11日発行)』からの抜粋です。 ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。 ※編集部注:前回記事「OSのシステムコールの呼び出しとは&バイナリエディタの使い方」はこちら 標準入出力関数の実装を見る printf()は指定したフォーマットに従って文字列出力を行うための標準ライブラリ関数だ。入門書では定番の関数であるため、利用したことがないという人は少ないことだろう。 しかしそのprintf()の中の処理を読んだことがあるか、となると話は変わってくるのではないだろうか。これほど多く利用されているp

                                                            printf()のソースコードで、ソースコードリーディングのコツを身に付ける
                                                          • 【Go】appendで新しく配列が割り当てられる際にどれくらいcapが確保されるか知っていますか? - Qiita

                                                            知りませんでした。 これは、Go6 Advent Calendar 2019 25日目の記事です。 はじめに Goにはsliceという内部で配列の参照を持つ可変長のリストが存在します。 このsliceに要素を追加する場合、よくappendという関数が用いられます。 上記のコードを用いると、aのsliceにbの要素が追加されます。 この際、もしaのsliceのcap(容量)が追加されるbの要素を加えても足りるのであれば、bはaのsliceが参照を持っている配列に追加されます。 逆にcapが足りない場合は、新たに配列を割り当ててそちらに追加するようになっています。 (詳しくは、Go7 Advent Calendar 2019 9日目の @ueokande さんによる 図解 Go Slice Tricks がわかりやすいため、そちらを参照してください) では、この新たに配列を割り当てる仕組みは一

                                                              【Go】appendで新しく配列が割り当てられる際にどれくらいcapが確保されるか知っていますか? - Qiita
                                                            • Array.prototype.sort について

                                                              JavaScriptの配列にはsortメソッドがあり配列のソートを実行することができるけど、この配列のソートの中の実装はどうなっているのかという話。v8における配列ソートについての記事が大変参考になりました。 Chrome(V8)の実装はarray.jsにあり、配列の要素数が10以下の場合はInsertion sortを使い、それ以上の場合はQuicksortを利用する。Insersion sortの計算量はO(n^2)であるけど、少ない要素数の場合はQuicksortなどより高速になるらしい。直近のcommmitを見る限りだと、Chrome 69か70あたりでTimsortに置き換えるつもりらしい。TimsortはaverageがO(n log n)で、最悪でもO(n log n)の計算量で済む。QuicksortをTimSortに置き換えるつもりに至った経緯などは調べてない(ので間違っ

                                                                Array.prototype.sort について
                                                              • IBM Developer

                                                                IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

                                                                  IBM Developer
                                                                • LinuxカーネルHack: ICMPエコー発、procファイルシステム着 (gdbのwatchを使うよ) - 佐野デジタル研究所

                                                                  はじめに 前回に引き続き、ICMPまわりを追っていこうとしたら、大幅に脱線して、procファイルシステムに到着。 カーネルを少しいじりつつ、gdbの変数監視機能(watch)を利用することで、/proc/sys/net/ipv4/icmp_echo_ignore_allへの書き込みを監視することに成功した。 脱線のへの道のり ICMPエコーはicmp_echo関数によって処理される。 icmp_echo関数を見ると、net->ipv4.sysctl_icmp_echo_ignore_allフラグが立っていない場合は、 ICMPエコーを返さないようだ。 % cat net/ipv4/icmp.c [...] /* * Handle ICMP_ECHO ("ping") requests. * * RFC 1122: 3.2.2.6 MUST have an echo server that

                                                                    LinuxカーネルHack: ICMPエコー発、procファイルシステム着 (gdbのwatchを使うよ) - 佐野デジタル研究所
                                                                  • List of open-source video games - Wikipedia

                                                                    The games in this table are developed under a free and open-source license with free content which allows reuse, modification and commercial redistribution of the whole game. Licenses can be public domain, GPL, BSD, Creative Commons, zlib, MIT, Artistic License or other (see the comparison of Free and open-source software and the Comparison of free and open-source software licenses). Title First r

                                                                    • http://tsuyuguchi.com/masaaki/mt/archives/2007/04/14-0130.php

                                                                      • Software Design 2010年1月号の木村明治さんの記事はすばらしすぎて読まないと悶死するレベル | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

                                                                        みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 第二特集「コードを読む技術」の中で,MySQLをのソースコードを「超効率的に読む」方法について解説している。コードを読むとなにが嬉しいのかとか,オープンソースのライブ感とかについて言及してあったりして,とにかくすばらしいと思ったので記録しておく。 ちなむと,Pythonのコードを読む場合はテストコードを読むととっかかりがつけやすくて効率的なので,僕はいつもそうやってる。自分でテスト書かない人は思いつかない方法かもしれんなあ。

                                                                        • はてなブログ | 無料ブログを作成しよう

                                                                          ベルギーに行った 先日、ベルギーに行きました。 マグリットの絵とルーベンスの絵を見るのが目的。 あまり時間もなく、ブリュッセルとアントワープを駆け足気味で巡ることに。 ミュンヘンから車で10時間近くかかり、なんでこんな無茶をしてしまったのかとも思いましたが、ヨーロッパの方…

                                                                            はてなブログ | 無料ブログを作成しよう
                                                                          • xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

                                                                            xv6のページング周りをちょっと見てたので記録をφ(..)メモメモ 参照したドキュメントはbook-rev10.pdfです。 book-rev10.pdfのP21、 Figure 1-2にxv6のメモリレイアウトがあります。 仮想アドレスの0から0x80000000がユーザー空間で、0x80000000〜0xFFFFFFFFがカーネル空間ですね。カーネル空間のうち先頭の0x100000バイトはBIOSの領域となってます。 カーネルのアドレス空間はvm.cにあるkmap構造体で管理してます。 static struct kmap { void *virt; uint phys_start; uint phys_end; int perm; } kmap[] = { { (void*)KERNBASE, 0, EXTMEM, PTE_W}, // I/O space { (void*)KERN

                                                                              xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
                                                                            • https://minnie.tuhs.org/UnixTree/

                                                                              • 正規表現のテストカバレッジを測りたかった話

                                                                                ※社内LT用につくったもの

                                                                                  正規表現のテストカバレッジを測りたかった話
                                                                                • 進捗率が知りたい - Gauche コードリーディング - higepon blog

                                                                                  Gauche コードリーディングですが、読んでいるぼくらもどれくらい進んでいるのか分からないので進捗率が知りたいよねと naoya_t さんが良い提案。 出来るだけ楽な方法がないかと、リーディングにも利用している、GNU Global の man を読んでいたら、シンボルのリストアップする方法を発見。 これを使えばおおよその進捗率が分かるのではないかな。 find -name "*\.[h|c]" |xargs global -fq |awk '{ print $3"/"$1 }' |sort |uniq これでReading Gauche/03.シンボル一覧ページを作ってみました。 リンクになっているシンボルが読み終わったもの、そうでないものはまだということになります。(読み終わっていなくてもページを作ることは良くあるので誤差がありますが) うわあ、計算するのが恐いくらい読み終わってない

                                                                                    進捗率が知りたい - Gauche コードリーディング - higepon blog