並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 93件

新着順 人気順

低レイヤーの検索結果1 - 40 件 / 93件

  • Webページがブラウザに表示されるまでに何が起こるのか?

    ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 上記で「127.0.0.1 localhost」とあるように、[IPアドレス] [ホスト名]というフォーマットで書かれます。 HOSTS.TXTが使われていた当時 ( 1970年代 ) では、わずか数百台のホストしかなかったので、ネット上の全てのホスト情報の記載が可能でした。 しかし、インターネットが普及していくにつれてHOSTS.TXTは肥大化していき、1983年には、ホスト数はおよそ数万台になりました。もはやHOSTS.TXTによる名前解決は不可能となったので、現在のようなDNS

      Webページがブラウザに表示されるまでに何が起こるのか?
    • 大学に行かずにコンピュータサイエンスを学ぶときに優れている教科書や講義映像はどんなものがあるのか?

      急速なIT化の進行によってエンジニアが不足しており、情報系の学位を取得せずに独学やプログラミングスクールを通してエンジニアになる人も増えています。そうした人たちがコンピュータサイエンスを学ぼうとしたときにおすすめの分野や本・オンライン講義などが「teachyourselfcs.com」というサイトにまとめられています。 Teach Yourself Computer Science https://teachyourselfcs.com/ ◆コンピュータ・アーキテクチャ コンピュータが実際にどのように機能しているのかをしっかりとイメージできなければ、安定した抽象化を行うことはできません。この分野を学ぶのにおすすめなのは「コンピュータ・システム ~プログラマの視点から~」という本で、タイトルに「プログラマの視点から」とついている通り、高速で効率的で信頼性の高いソフトウェアを作成するという目的

        大学に行かずにコンピュータサイエンスを学ぶときに優れている教科書や講義映像はどんなものがあるのか?
      • 『ゼロからのOS自作入門』に込めた思い - uchan note


        2021 322OS OS15 2006 30OSuchan   OS uchan 2021 322 768 ISBN978-4-8399-7586-9 OS |  OSOSMikanOS OS
          『ゼロからのOS自作入門』に込めた思い - uchan note
        • Linux メモリ管理を理解したい - Qiita

          Linux カーネルのメモリ管理方法について、勉強したことをまとめる。 メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 概要 ノイマン型アーキテクチャ コンピュータの基本的な構成のひとつ。次の図が参考になる。 ほぼ全てのコンピュータが、このアーキ

            Linux メモリ管理を理解したい - Qiita
          • プロトコルスタックを写経してネットワークを完全に理解したかった日記

            Webページはどうやって表示されるのでしょうか. 「ブラウザでアドレスバーにURLを入力してEnter押してからページが表示されるまでに何が起きているか説明してください」面接で使っていた質問が面白いと話題に 上記の質問には様々なレイヤーでの回答があると思うのですが,私はネットワークの動作に興味を持ちました.というのも,TCP,IP,ARP,Ethernetといったキーワードが関連しているのは教科書や講義で聞いた気がするのですが,それ以上のことはうまく説明できなかったからです. これらのプロトコルは,普段はカーネル内部に隠れていてあまり意識できません. しかし,以下の資料を参考にプロトコルスタックを写経すれば,少しは身近に感じられるかもしれないと思いました. 3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCP

              プロトコルスタックを写経してネットワークを完全に理解したかった日記
            • 🚀⚙️ JavaScript Visualized: the JavaScript Engine

              JavaScript is cool (don't @ me), but how can a machine actually understand the code you've written? As JavaScript devs, we usually don't have to deal with compilers ourselves. However, it's definitely good to know the basics of the JavaScript engine and see how it handles our human-friendly JS code, and turns it into something machines understand! 🥳 | Note: This post is mainly based on the V8 eng

                🚀⚙️ JavaScript Visualized: the JavaScript Engine
              • 【コンテナ技術入門】コンテナ要素技術をDocker使わずに基礎から手を動かして学べる超有用なテキスト #dockerTokyo | DevelopersIO

                「Dockerって、結局中でなにやってんの?」 先日、以下のミートアップに参加して、LT登壇してきました。 Docker Meetup Tokyo #31 (初心者歓迎LT祭り+KubeConCN報告) 自分はLTの一番手として、「雰囲気でコンテナ使っている 全ての人が読むべき 「コンテナ技術入門」の紹介」で喋ってきたので、それの登壇報告となります。 「コンテナ技術入門」は、Dockerコマンド一通り使えるようになってきたけど、もっとDockerやコンテナについて深く知っておきたいという方にはむちゃくちゃ有用なコンテンツなので、一度目を通して、実際に手を動かして試してみることをオススメします。 (祭) ∧ ∧ Y  ( ゚Д゚) Φ[_ソ__y_l〉     コンテナマツリダワッショイ |_|_| し'´J 講演概要 当日のセッションスライドはこちら。 この記事では、LTという時間枠の中

                  【コンテナ技術入門】コンテナ要素技術をDocker使わずに基礎から手を動かして学べる超有用なテキスト #dockerTokyo | DevelopersIO
                • はじめに - 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
                  • インターネットは最終的に、0と1の信号をサーバークライアント間で発受信しているということでしょうか?非常に非効率な気がします。


                     (141) 01 () (()) 使TCPUD...
                      インターネットは最終的に、0と1の信号をサーバークライアント間で発受信しているということでしょうか?非常に非効率な気がします。
                    • Linux ファイルシステムを理解したい - Qiita

                      ]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-1062.1.2.el7.x86_64 #1 SMP Mon Sep 30 14:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ファイルシステムとは何か? データを管理/操作するための仕組み。 ファイルとディレクトリで構成されていて、/ を基点とした木構造になっている。 # ls -l / 合計 56 lrwxrwxrwx. 1 root root 7 8月 25 01:17 bin -> usr/bin dr-xr-xr-x. 6 root root 4096 9月 29 15:51 boot drwxr-xr-x. 19

                        Linux ファイルシステムを理解したい - Qiita
                      • 1,000行で作るオペレーティングシステム


                        Writing an OS in 1,000 Lines 1,000OS OS 3
                          1,000行で作るオペレーティングシステム
                        • Linux システムコール 徹底入門

                          Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte

                            Linux システムコール 徹底入門
                          • CとRustで一から作るマイクロカーネルOS

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

                              CとRustで一から作るマイクロカーネルOS
                            • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み


                              Kernel/VMmold2 LLVMlld mold mold LLVMlld
                                コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
                              • コンピュータ講座 応用編 第1回

                                第1回 CPUは数百本の足を持つトランジスタのかたまり 第一回目は、CPUを物理的・電気的な部品として解説します。パソコンに使用されるCPUの外観は、数百本の足(ソケットに挿すピン)を持ち、1億個を超えるトランジスタを集積したICで、VLSI(大規模集積回路)と呼ばれます。今回は、このCPUを外側から眺めて、物理的な仕組みや電気的な働きを説明します。 CPUの構造 CPUの解説の最初に、CPUの構造を概観します。そのために少し遠回りですが、ICの製造方法に触れておきます。 ICの製造方法 ICの材料にもっとも多く使われるのはシリコンです。土や砂の主成分であり入手しやすい事や、動作が安定していること、その絶縁膜が半導体に適しているという理由からです。 実際に材料として使われるのはシリコンが酸化物と結びついた珪石です。珪石をいくつかの工程を経て、高純度化(純度99.999999999、イレブン

                                • SSH接続をWebブラウザの純粋なHTTP上で実現する - nwtgck / Ryo Ota

                                  HTTPといえばHTML/CSS/JavaScriptや画像などの小さめの限りがあるデータを手に入れるためによく使われている印象がある。REST APIのようなHTTPを使ったAPIでも限りのあるデータがリクエストとレスポンスになる印象が強い。

                                    SSH接続をWebブラウザの純粋なHTTP上で実現する - nwtgck / Ryo Ota
                                  • 入門 シェル実装

                                    開発者にとってシェルが必要不可欠なものであることは論を俟ちませんが、当たり前の存在すぎてこれがどのように実現されているのかを知る機会はあまりないと思います。本トークでは、シェルがどのように実現されているのかを、実際にシェルを実装する過程を通じてお話しします。 ※ もともとのトークのタイトルは「入門 シェル」でしたが,わかりやすさのため「入門 シェル実装」にタイトルを変更しています.Read less

                                      入門 シェル実装
                                    • Goでゼロから作る 自作TCP/IPプロトコル サーバー


                                      TCP/IP Go Go net package TCP/IP ToDoAPI
                                        Goでゼロから作る 自作TCP/IPプロトコル サーバー
                                      • DBMSをGoで実装してみた - Sansan Tech Blog

                                        こんにちは。プロダクト開発部の荒川 id:ad-sho-loko です。突然ですが、皆さんはこんな疑問を持ったことはありませんか? データベースの内部実装はどうなっているのか? トランザクションとはどのようなアルゴリズムで実現されているのか? NoSQLが遅いのはなぜか? 古典的なデータベースとは内部的にどのように違うの? データベースを何かしらの形で利用しているのにも関わらず、意外と内部の仕組みを理解していない場合が多いかと思います。僕もそうです。*1 しかし、エンジニアたるもの、その仕組みを知ることは非常に重要です。僕もデータベースについて勉強しようといくつかの本やサイトを調べていたのですが、なかでもCMU(カーネギーメロン大学)のDatabase System Groupがアップロードしている講義が最も勉強になりました。 www.youtube.com そして本ブログでは、上記の講義

                                          DBMSをGoで実装してみた - Sansan Tech Blog
                                        • Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記


                                            C Cx86_64 OS CPU O'Reilly Japan -   O'Reilly Japan -   yuroyoro/nand2tetris  
                                            Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記
                                          • 『なるほどUnixプロセス』を読む前にちょっとだけナルホドとなる記事

                                            はじめに この記事では、UnixのプロセスのことやUnix環境のことについてチョットワカッタ気持ちになっていただくことを目的に、RubyをつかってUnixプロセスについて触れていきます。読み終わったあと、チョットワカッタカモという気持ちになっていただけたり、著者が訳者として関わっている『なるほどUNIXプロセス』を手に取ってもらえたりすると幸いです。 なお、この記事の内容は、オープンソースカンファレンス2015 Hokkaido での jus 研究会で行った発表内容をまとめ、原稿におこしたものになります。 それでは、さっそく本題に入っていきましょう。 コマンドを実行する ふだん、みなさんは作業中にターミナルからたくさんのコマンドを実行しているはずです。まずは、この「ターミナルからコマンドを実行する」ことについて見ていきましょう。 コマンドとプロセス Unixでは、あらゆるコマンド、プログラ

                                            • 表紙 - 本物のC

                                              このサイトは「本物の C 言語」について学習する機会の提供を目的としています。 「本物の」とはつまり、 標準規格(仕様)が C 言語をどういうものとして定めているか C プログラムが実際に CPU をどう動かすか という二つの意味合いに於いてです。 どうも巷間にはその辺りを気にせず何となくで書かれた資料が多い様なので、このサイトにより少しでも世界が最適化される事を期待します。 権利について 当然ですがこのサイト全体は著作権法により保護されています。法と良心に則って御利用下さい。 連絡はcontact<アット>real-c.infoまで。

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

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

                                                • 本当に私の人生を変えた技術書10選 - FPGA開発日記


                                                      . PC() ︿PC : /: 
                                                    本当に私の人生を変えた技術書10選 - FPGA開発日記
                                                  • 現代のコンピュータに�おける自作OS事情

                                                    現代のコンピュータにおける 自作OS事情 2019-06-29 hikalium @ Hackers Champloo #hcmpl

                                                      現代のコンピュータに�おける自作OS事情
                                                    • SIMってなんだ? ~セルラー通信がつながる仕組み、解説します~

                                                      2023年4月6日開催「SORACOM UG Online #16 ~SIMの日イベント~」で、ソラコム今井(factory)が発表した資料です。

                                                        SIMってなんだ? ~セルラー通信がつながる仕組み、解説します~
                                                      • Linuxカーネルで学ぶC言語のマクロ - 覚書


                                                          linuxC使&C使 使  #define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) do { ... } while (0)
                                                          Linuxカーネルで学ぶC言語のマクロ - 覚書
                                                        • フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記

                                                          モチベーション なぜRustを選んだか? 私はQEMUは「アーキテクチャエミュレーション界のLLVM」だと思っている QEMUが高速な理由:TCG Binary Translation ゲスト命令(RISC-V) → TCG → ホスト命令(x86)の処理をRustで作ろう RISC-Vの命令をフェッチしてデコードする RISC-Vの命令をTCGに変換する TCGをx86に変換する 実装結果 Binary Translation実行を高速化するための様々なテクニック BasicBlock分まで複数命令をまとめて変換 TCG Block Chainingの実装 評価結果 TB Lookup and Jumpの実装 評価結果 まだ完成していないところ 一部の最適化はまだ未実装となっている ゲストアーキテクチャがx86のみとなっている。TCGによる複数プラットフォーム対応として、まずは環境のそろ

                                                            フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
                                                          • A Visual Guide to SSH Tunnels: Local and Remote Port Forwarding

                                                            Bridge vs. Switch: What I Learned From a Data Center TourNetworking Lab: Ethernet Broadcast DomainsNetworking Lab: L3 to L2 Segments MappingNetworking Lab: Simple VLANDon't miss new posts in the series! Subscribe to the blog updates and get deep technical write-ups on Cloud Native topics direct into your inbox. TL;DR SSH Port Forwarding as a printable cheat sheet. SSH is yet another example of an

                                                              A Visual Guide to SSH Tunnels: Local and Remote Port Forwarding
                                                            • JVMのヒープサイズとコンテナ時代のチューニング | Folioscope


                                                               JVM 調  Java   Java   Java JVM   (GC)  OOM killer OS JVM 使Java API  Runtime.getRuntime().maxMemory()   java  -XX:+PrintFlagsFinal 
                                                              • WEB+DB PRESS Vol.122に特集「Rustで実装!作って学ぶRDBMSのしくみ」を書いた - Write and Run


                                                                KOBA789  21    WEB+DB PRESS Vol.122   RDBMS  Rust 使 https://t.co/nm526qQYnm KOBA789 (@KOBA789) April 8, 2021 gihyo.jp 使 Rust RDBMS  *1
                                                                  WEB+DB PRESS Vol.122に特集「Rustで実装!作って学ぶRDBMSのしくみ」を書いた - Write and Run
                                                                • Go コンパイラのコードを読んでみよう - kosui


                                                                    DeNA Advent Calendar 2020 11  ...Gogc gc gcGo
                                                                    Go コンパイラのコードを読んでみよう - kosui
                                                                  • Linux procfs 徹底入門


                                                                     Linux Advent Calendar 201915procfs  CentOS 8  ]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux procfs    (/CPU/)
                                                                      Linux procfs 徹底入門
                                                                    • 無から始める自作CPU


                                                                        CPU CPU CPU AIWebOSCPUCPU CPUCPU CPU CPUCPU CPUCPU  99%W
                                                                        無から始める自作CPU
                                                                      • 作って理解するOS x86系コンピュータを動かす理論と実装

                                                                        2019年9月26日紙版発売 2019年9月26日電子版発売 林高勲 著,川合秀実 監修 B5変形判/736ページ 定価4,048円(本体3,680円+税10%) ISBN 978-4-297-10847-2 Gihyo Direct Amazon 楽天ブックス honto ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 現在広く普及している,x86系CPU搭載のコンピュータ。 本書はOSの機能を実装しながら,その姿を明らかにしていきます。 第1部ではまず,ハードウェア,ソフトウェアの基本概念や,CPUとOSの関係など,コンピュータの核となる理論を丁寧に解説します。 第2部では,x86系コンピュータに対象を絞り,レジスタの構成や,

                                                                          作って理解するOS x86系コンピュータを動かす理論と実装
                                                                        • パケットキャプチャで理解する TLS1.3

                                                                          TLS は Transport Layer Security の略で、盗聴、あるいは通信相手のなりすましの可能性がある通信路において、安全に通信を行うための暗号通信プロトコルです。 本書では、Go 言語を使って TLS サーバ・クライアントを用意し、その通信を Wireshark で観察しながら、TLS のプロトコルについて説明します。 本書を読むことで、TLS の通信で実際にどのようなパケットが送受信されているかが確認でき、TLS の学習の助けになると思います。 また、TLS には複数のバージョンがありますが、本記事では、最も広く使われており、かつ最新である TLS1.3 に焦点を当てます。

                                                                            パケットキャプチャで理解する TLS1.3
                                                                          • Goから学ぶI/O


                                                                            GoI/Oio, os, bufio, fmtI/O
                                                                              Goから学ぶI/O
                                                                            • Raspberry Piを極限まで無駄なくバックアップする | DevelopersIO


                                                                               Raspberry PiSD SD  SDSD寿  LinuxSD  Raspberry PiSDOK 
                                                                                Raspberry Piを極限まで無駄なくバックアップする | DevelopersIO
                                                                              • Go言語でゲームボーイアドバンスのエミュレータを作った話

                                                                                CPUはなんとARMのCPUを採用しています。(そのおかげでLLVMのターゲットに指定できる) ゲームボーイとの違い CPU 最大の違いはCPUです。ゲームボーイ(以降、GB)ではZ80を独自カスタムしたLR35902というCPUを使っていますが、このCPUは8bitで動作するCPUです。つまり命令のサイズが8bit(1byte)しかありません! しかも、LR35902は掛け算命令など現代のCPUでサポートしている基本的な命令をサポートしていません。 これに比べてGBAに搭載されているARM7TDMIは32bit CPUです。つまり命令のサイズが4byteとGBの命令の4倍の大きさになります! このおかげでCPUの命令セットがさまざまな命令をサポートできるようになりました。(まあ後述の理由で実質16bit CPUですが...) またクロック数もGBの4MHzから16MHzに伸びました。 B

                                                                                  Go言語でゲームボーイアドバンスのエミュレータを作った話
                                                                                • Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興)

                                                                                  私が所属する東京大学理学部情報科学科では三年の冬学期に CPU 実験という実験授業が開講されています。本稿ではその簡単な説明をした後、その実験の一環として約一ヶ月ほど取り組んだ「Linux が動作する RISC-V CPU を自作するプロジェクト」で何をしたか、またどのような成果を得たかについて紹介したいと思います。 本稿を読むその前に 弊学科では「XX 年度に教養学部から理学部情報科学科に進学してきた学生」を「XXer」と呼ぶ文化があります。本稿ではこの表現を断りなく用います1。また私は普段 Web が好きでもっぱら Web セキュリティに関することを追いかけているだけのしがない学部 3 年生なので (私についての情報は ここ に大体まとまっています)、こういう低いレイヤのことは未だによく分かっていません。あくまで素人の記事だとご理解いただけると嬉しいです。誤りの指摘や質問があれば、ここ

                                                                                    Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興)