並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 90件

新着順 人気順

低レイヤーの検索結果41 - 80 件 / 90件

  • 第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp

    本章では、HTTP/3がTCPに代わって下位層で用いるQUICについて解説します。 QUICはトランスポートプロトコル QUICはトランスポートプロトコルです。QUICの説明に入る前に、トランスポートプロトコルついておさらいします。 TCP/IPの4階層モデル プロトコルは階層で役割を分担しています。TCP/IPの4階層モデルでは、アプリケーション層、トランスポート層、インターネット層、ネットワークインタフェース層に分かれます(図1⁠)⁠。 図1 TCP/IPの4階層モデル アプリケーション層に分類されるアプリケーションプロトコルは、クライアントやサーバで動作するアプリケーションの動作に関するデータやメッセージの通信ルールを規定します。たとえばSMTP(Simple Mail Transfer Protocol)は、メールを送信する通信ルールを規定しています。HTTPはこの層に属します。

      第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp
    • TLSが難しい?RustとLinuxカーネルで実装しよう!

      TLS(Transport Layer Security)が難しすぎると、お嘆きのセキュリティファースト世代の皆様、RustでLinuxカーネルを実装しながら学んでみましょう! カーネルモジュールの実装は難しい?それは誤解です。TLSをアプリケーションとして実装しようとすると、各種のライブラリを検索していたつもりが、SNSを眺めていて、一日が終わっていることありますよね。カーネルモジュールを実装するために使えるのはカーネルの機能だけです。検索する必要はなく、雑念が生じる余地はありません。その集中力があれば、カーネル開発は難しくありません。 TLSとLinuxカーネル皆様の中には、LinuxカーネルはTLSをサポートしているのでは?と思っている方がいるかもしれません。TLSは実際のデータの送受信の前に、ハンドシェイクと呼ばれる、暗号鍵の合意や相手の認証を実施します。ハンドシェイク後、Linu

        TLSが難しい?RustとLinuxカーネルで実装しよう!
      • eBPFに3日で入門した話 - CADDi Tech Blog

        はじめに eBPF とはなにか ざっくり概要 「Packet Filter」なのに「Virtual Machine」? eBPFでなにができるか? カーネルイベントのフック ユーザーランドアプリケーションとのやりとり eBPFの主な用途 eBPFが注目される背景 eBPFの仕組み アーキテクチャと処理フロー カーネルモジュールとeBPFの違い eBPFプログラムの作り方 eBPFプログラムを作ってみる 環境の準備 Hello world もう少し複雑なサンプル その他のサンプル HTTPリクエストのダンプ TCP接続先の調査 tcplife dirtop filetop oomkill まとめ eBPFはなにに使えるか 参考サイト はじめに こんにちは、Platformチームの小森です。 eBPF (extended Berkley Packet Filter) について、2022年8月2

          eBPFに3日で入門した話 - CADDi Tech Blog
        • コンテナの作り方「Dockerは裏方で何をしているのか?」

          Dockerやコンテナについての理解を目指す入門テキストです。 CloudNative Days Kansai 2019 - #CNDK2019 における発表資料です。 https://cloudnativedays.jp/cndk2019/Read less

            コンテナの作り方「Dockerは裏方で何をしているのか?」
          • 「ゼロからのOS自作入門」を Rust でやる (第1章~第4章) - gifnksmの雑多なメモ


            OS    Rust  : OS Rust  (5) - gifnksm : OS  - gifnksm github.com Rust OS "OS"  "sabios"  ""     OS沿1 C++ OS  Rust  MikanOS 
              「ゼロからのOS自作入門」を Rust でやる (第1章~第4章) - gifnksmの雑多なメモ
            • 『基礎から学ぶ 組込みRust』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ

              はじめに 2021年4月20日、『基礎から学ぶ 組込みRust』(C&R研究所) を出版します。Rust の文法から組込み Rust でファームウェアを作成するところまでを、片手で持てる (多分!まだ持ったことないけど!) 1 冊の本にまとめた、喉から手が出るほど (私が) 求めていた書籍です。 先日、無事入稿を果たしたので、今の気持ちを徒然なるまま綴ったのが、このエントリです。 基礎から学ぶ 組込みRust 作者:中林 智之,井田 健太発売日: 2021/04/20メディア: 単行本(ソフトカバー) 一番始めに言いたいこととしては、今現在、「組込み Rust がプロダクションレディか?」、と問われると、「ほとんどのプロジェクトに対してそうではない」というのが私個人の見解です。セーフティクリティカルな分野では、機能安全をはじめとする認証の問題があり、そんなにおいそれとプログラミング言語変更

                『基礎から学ぶ 組込みRust』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ
              • ARM入門/arm introduction

                2020/08/08 ARM入門勉強会の発表資料です。 https://connpass.com/event/180812/

                  ARM入門/arm introduction
                • golangで作るTCPIPプロトコル


                   IT1TCP/IP TCP/IP TCP/IPgolangTCPIP  ethernet net使 (PCIPMac使) 使syscallsendtorecvfrom socketRAW_SOCKET使 golang
                    golangで作るTCPIPプロトコル
                  • Goのメモリ管理 / Memory management in Go

                    継続的プロファイルによる大規模アプリケーションの性能改善 / Improving massive application clusters with continuous profiling

                      Goのメモリ管理 / Memory management in Go
                    • アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)

                      GNU Assembler互換(サブセット)のアセンブラをGo言語でフルスクラッチで作ってみました。 開発22日目で自作Goコンパイラ(をセルフホストしたときに出力される20万行のアセンブリ)をアセンブルすることに成功しました。 どうやって作ったかというと、小さいコードを GNU Assembler (以下 as) に食わせて出力されたバイナリを観察する、を繰り返して中のロジックを推定し再現しました。as の実装は見ていません。(一瞬見たけど巨大すぎて何もわからなかった) アセンブラ自作は、やってみるとコンパイラ自作よりだいぶ簡単でハマりポイントも少ないので、学習テーマとしてはおすすめです。2箇所ほど難所(命令エンコーディングのルールを理解するのと、ジャンプ命令の最適化)がありましたがそれ以外はさくさく楽しく作れました。 作ってみた結果、アセンブリ言語の理解が深まったのはもちろんのこと、E

                        アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
                      • How does the Linux Kernel start a Process

                        ...and how to ptrace the entry point and m3ss w1th da stack. In this article, you will learn what happens inside the Linux Kernel when a process calls execve(), how the Kernel prepares the stack and how control is then passed to the userland process for execution. I had to learn this for the development of Zapper - a Linux tool to delete all command line options from any process (without needing r

                          How does the Linux Kernel start a Process
                        • RISC-V OSを作ろう (1) ~ブート処理 - VA Linux エンジニアブログ

                          はじめに 環境の用意 ブートプログラムを作る 動かしてみる コンパイル QEMU上で起動 GDBで制御 最後に おまけ 執筆者 : 高橋 浩和 はじめに RISC-VはMIPSアーキテクチャの流れを汲む正統派?のRISC CPUです。命令セットはシンプルですが、既存のメジャーなCPUのアーキテクチャと大きな違いがあるわけではありません。 Linux上で利用できるRISC-Vツール群も揃ってきたので、それらを使ってRISC-V用の小さなOSを実装してみようと思います。 最初は欲張らずに単純な実装を目指すことにします。 シングルコアのみサポート 64bitモードを使用 マルチタスキングを実現 タイムシェアリングスケジューリングを実装 割り込みネストは無し 保護機能は使わない 既存のBIOSやbootプログラムは利用せず、リセットエントリから全て作成する qemuの仮想マシン上で動作させる。ター

                            RISC-V OSを作ろう (1) ~ブート処理 - VA Linux エンジニアブログ
                          • 言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)


                            Twitter "green thread"  Green thread OS N:1 mapping OSJavagreen threadOSnonblocking使EAGAIN  EWOULDBLOCK 使 1:1 mapping OS11
                              言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)
                            • 40円RISC-Vマイコン(CH32V003)をArduino IDEでLチカをしてみました

                              秋月電子さんに新商品のマイコンが入荷したようです。1個40円の32ビットRISC-Vマイコン CH32V003J4M6 [通販コード:118062]です。あまりの安さとSOP8の可愛さで気になってしまいます。開発環境は公式のものもあるのですが、Arduino IDEもサポートしているようです。今回はお手軽なArduino IDEでセットアップをしてみます。 他にも1個50円のCH32V003F4P6 [通販コード:118061]もあり、こちらはピン数も多く高機能のようですが、まずはSOP8で扱いやすそうなCH32V003J4M6で試してみます。マイコンに書き込むためのツールのWCH-LinkEエミュレータ [通販コード:118065]も販売されていましたのでこちらも購入しました。 マイコンで簡単な回路を作ってみる CH32V003J4M6はSOP8なのでピン間隔も1.27mmと広く表面実装

                                40円RISC-Vマイコン(CH32V003)をArduino IDEでLチカをしてみました
                              • Goコンパイラのお勉強(1) ~ゼロ幅の型によるメモリ利用の最適化と未定義動作 ~ - Techtouch Developers Blog

                                はじめに メモリアロケーションの回避 ゼロ幅の型(=ゼロサイズの型)とは アドレスの同一性に関する未定義動作 この最適化が有効な場面 1. map 2. chan 3. interface の実装 おわりに 参考文献 はじめに こんにちは。SRE の izzii です。 最近は某フィットネスゲームが習慣だったり、ボルダリングを再開したり、登山シーズンが到来したりと心身ともに調子が良いです。 さてつい先日、Go のコンパイラによる最適化について勉強したまとめを社内で共有したところ、メンバーが面白がってくれたため、細かいところを自分の手で触ってみたり、Go Forum で質問を投稿したりした上で記事にしてみました。Go コンパイラの最適化について知りたいという方だけでなく、Go に慣れた方でも意外と知らない挙動を垣間見ることのできる内容かと思います。 github.com を元にしているのです

                                  Goコンパイラのお勉強(1) ~ゼロ幅の型によるメモリ利用の最適化と未定義動作 ~ - Techtouch Developers Blog
                                • 「ソースないけどバグ直して」をランタイムで可能にするJavaバイトコードプログラミング - Qiita

                                  はじめに この記事はシスコ同志によるAdvent Calendarの25日目として投稿しています。 幸いタイトルのような無茶振りには遭ったことはありませんが、シスコではJavaバイトコードを操作する技術を使った監視製品を開発しているので、その技術について本記事でサンプルを交えて紹介します。 この記事を読んで出来ること おわかりでしょうか?HelloWorldはAliceに対して挨拶するプログラムだったのに、-javaagent:agent.jarというオプションを付けて実行すると、Malloryに挨拶するプログラムに変わってしまいました。 このカラクリはJVMが読み込んだJavaバイトコードを実行時に書きかえ、変数の値をAliceからMalloryに変えています。HelloWorldのソースコードも、コンパイル後の.classファイルも変えていないにも関わらず、実行時に処理を変更できてしま

                                    「ソースないけどバグ直して」をランタイムで可能にするJavaバイトコードプログラミング - Qiita
                                  • Rust in the Linux kernel

                                    The latest news and insights from Google on security and safety on the Internet

                                      Rust in the Linux kernel
                                    • Goコンパイラを自作して93日でセルフホストを達成した(2回目) · DQNEO日記

                                      Goコンパイラをゼロから書いてセルフホストを達成しました。(1年ぶり2回目) https://github.com/DQNEO/babygo (ちなみに 前回の話はこちら 「Goコンパイラをゼロから作って147日でセルフホストを達成した」 ) 主な特徴 全部手書き。標準ライブラリも自作。system call 呼び出しも自作。libc非依存。 コンパイルするとアセンブリを吐きます。これをビルドすると単一静的バイナリになります。 設計は、go/parser + chibicicc + α かかった期間 2020/3/29に開始、2020/7/28にセルフホスト達成。 コミットした日 (Author date)を数えたら93日でした。 平均1日2-3時間としてざっくり240 時間 ほど。 前回は500時間かかってるので、今回は半分の期間で達成できたことになります。 なんでまたやろうと思ったの?

                                      • golangで作るTLS1.2プロトコル


                                         TCPIP+HTTP HTTP= TLSTLS 😇😇😇 TLS TCP/IP RFC5246 SSL/TLS  TLS1.2 crypt tcpconnect使 RSA TLS_RSA_W
                                          golangで作るTLS1.2プロトコル
                                        • SIMD化とは何か / Basics of SIMD

                                          SIMD化の簡単な説明

                                            SIMD化とは何か / Basics of SIMD
                                          • KLab Expert Camp(資料公開) - Google ドライブ

                                            メイン コンテンツにスキップキーボード ショートカットユーザー補助に関するフィードバックドライブ名前オーナー最終更新ファイルサイズ その他の並べ替えオプションフォルダKLab Expert Camp 3オーナーは非公開です2022/03/10—ダウンロードKLab Expert Camp 5オーナーは非公開です2023/08/31—ダウンロードファイルKLab Expert Camp 6 - Day1オーナーは非公開です2023/11/04350 KBダウンロード詳細(Alt+→)KLab Expert Camp 6 - Day2オーナーは非公開です2023/10/01243 KBダウンロード詳細(Alt+→)KLab Expert Camp 6 - Day3オーナーは非公開です2023/08/29681 KBダウンロード詳細(Alt+→)KLab Expert Camp 6 - Day4

                                            • Semiジャーナル

                                              半導体について分かりやすく解説

                                                Semiジャーナル
                                              • 8日で作るオレオレRISC-V CPU

                                                LLM とプロンプトエンジニアリング/チューターをビルドする / LLM and Prompt Engineering and Building Tutors

                                                  8日で作るオレオレRISC-V CPU
                                                • 自作コンパイラ基盤の話 - Qiita


                                                   Advent Calendar 2020 19 ()  使   LLVM LLVM使 
                                                    自作コンパイラ基盤の話 - Qiita
                                                  • The “Build Your Own Redis” Book is Completed | Blog | build-your-own.org

                                                    Read it here. Introduction Needless to say, the Redis project is quite a success. It’s an important component in backend applications. Redis could be considered one of the building blocks of modern computing. There are not many projects that fit the such role and stood the test of time. Here are some examples that meet my criteria of the “building block”: NGINX, SQLite, PostgreSQL, Kafka, Linux ke

                                                      The “Build Your Own Redis” Book is Completed | Blog | build-your-own.org
                                                    • はじめての自作ターミナル(macOS編)


                                                       iTerm2  gifSwiftUI VoiceOvergif pseudo terminal 
                                                        はじめての自作ターミナル(macOS編)
                                                      • Engadget | Technology News & Reviews

                                                        iOS 17.5 is here with support for web-based app downloads in the EU

                                                          Engadget | Technology News & Reviews
                                                        • Writing a C compiler in 500 lines of Python

                                                          A few months ago, I set myself the challenge of writing a C compiler in 500 lines of Python1, after writing my SDF donut post. How hard could it be? The answer was, pretty hard, even when dropping quite a few features. But it was also pretty interesting, and the result is surprisingly functional and not too hard to understand! There's too much code for me to comprehensively cover in a single blog

                                                          • Go and CPU Caches

                                                            Credits: unsplash.comAccording to Jackie Stewart, a three-time world champion F1 driver, having an understanding of how a car works made him a better pilot. “You don’t have to be an engineer to be a racing driver, but you do have to have Mechanical Sympathy” Martin Thompson (the designer of the LMAX Disruptor) applied the concept of mechanical sympathy to programming. In a nutshell, understanding

                                                              Go and CPU Caches
                                                            • Putting the "You" in CPU

                                                              From the beginning… Edit on GitHub I’ve done a lot of things with computers, but I’ve always had a gap in my knowledge: what exactly happens when you run a program on your computer? I thought about this gap — I had most of the requisite low-level knowledge, but I was struggling to piece everything together. Are programs really executing directly on the CPU, or is something else going on? I’ve used

                                                                Putting the "You" in CPU
                                                              • A 32-Bit RISC-V CPU Core In 600 Lines Of C

                                                                If you have ever wanted to implement a RISC-V CPU core in about 600 lines of C, you’re in luck! [mnurzia]’s rv project does exactly that, providing a simple two-function API. Technically, it’s a user-level RV32IMC implementation in ANSI C. There are many different possible flavors of RISC-V, and in this case is a 32-bit base integer instruction set (RV32I), with multiplication and division extensi

                                                                  A 32-Bit RISC-V CPU Core In 600 Lines Of C
                                                                • How To Make A CPU - A Simple Picture Based Explanation

                                                                  2021-11-09 - By Robert Elder The purpose of this article is to explain how to make a CPU out of rocks and sand as fast as possible without using too many words.  As the world of proprietary hardware and software crushes in around us, we risk losing the ability to make things for ourselves as individuals.  It is for this reason that I felt compelled to learn how one could hypothetically make their

                                                                  • Writing a file system from scratch in Rust · carlosgaldino

                                                                    Data produced by programs need to be stored somewhere for future reference, and there must be some sort of organisation so we can quickly retrieve the desired information. A file system (FS) is responsible for this task and provides an abstraction over the storage devices where the data is physically stored. In this post, we will learn more about the concepts used by file systems, and how they fit

                                                                    • Memory Allocation

                                                                      One thing that all programs on your computer have in common is a need for memory. Programs need to be loaded from your hard drive into memory before they can be run. While running, the majority of what programs do is load values from memory, do some computation on them, and then store the result back in memory. In this post I'm going to introduce you to the basics of memory allocation. Allocators

                                                                        Memory Allocation
                                                                      • Build Your Own Docker with Linux Namespaces, cgroups, and chroot: Hands-on Guide

                                                                        Introduction Containerization has transformed the world of software development and deployment. Docker ↗️, a leading containerization platform, leverages Linux namespaces, cgroups, and chroot to provide robust isolation, resource management, and security. In this guide, we’ll skip the theory (go through the attached links above if you want to learn more about the mentioned topics) and jump straigh

                                                                          Build Your Own Docker with Linux Namespaces, cgroups, and chroot: Hands-on Guide
                                                                        • An Introduction to Interpreters and JIT Compilation

                                                                          Last week, I gave two lectures at the Programming Language Implementation Summer School (PLISS). PLISS was very well organized and the students and other presenters made for a very enjoyable week of new ideas, learning, and discussing. For my own lectures, I decided to take an approach that focused more on the high-level ideas and can introduce a wider audience to how we build interpreters and a r

                                                                          • 『低レイヤを知りたい人のためのCコンパイラ作成入門』を使ってやってみた、縛り実況と初見実況


                                                                            Kernel/VMVMIThsjoihsC  hsjoihshsjoihs2 2Rui Ueyama compiler book any% C-to-ELF category    hsjoihs
                                                                              『低レイヤを知りたい人のためのCコンパイラ作成入門』を使ってやってみた、縛り実況と初見実況
                                                                            • Learn x86-64 assembly by writing a GUI from scratch

                                                                              Published on 2023-05-31. Learn x86-64 assembly by writing a GUI from scratch Most people think assembly is only to be used to write toy programs for learning purposes, or to write a highly optimized version of a specific function inside a codebase written in a high-level language. Well, what if we wrote a whole program in assembly that opens a GUI window? It will be the hello world of the GUI worl

                                                                              • How a CPU works: Bare metal C on my RISC-V toy CPU

                                                                                I always wanted to understand how a CPU works, how it transitions from one instruction to the next and makes a computer work. So after reading Ken Shirrif’s blog about a bug fix in the 8086 processor I thought: Well, let’s try to write one in a hardware description language. This post is a write up of my learning experiment. I’ll walk through my steps of creating an emulator, compiling and linking

                                                                                • A tutorial quantum interpreter in 150 lines of Lisp

                                                                                  By Robert Smith Simulating a universal, gate-based quantum computer on a classical computer has many uses and benefits. The top benefit is the ability to inspect the amplitudes of the system’s state directly. However, while the mathematics is very well understood, implementing a general-purpose simulator has largely been folk knowledge. In this tutorial, we show how to build an interpreter for a g