並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 51件

新着順 人気順

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

低レイヤに関するエントリは51件あります。 プログラミングprogramming開発 などが関連タグです。 人気エントリには 『CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。』などがあります。
  • CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。

    お知らせ: 2022/9/1 CS50 を活用した非営利/協賛企業による「コロナ学生支援」プロジェクトを実施中 ▼ 学生の方へ:CS50 の学習(履修証明書の取得)を一緒に取り組むプロジェクト CS50日本語版の翻訳コントリビューターである CODEGYM が主催する、非営利/無償のプロジェクト「CODEGYM Academy (外部リンク)」は、昨年に続き2022年度(春/秋)も、キャリア選択を控えた学生に対し、以下の企業の協賛により無償で17週間のプログラミング教育カリキュラムを提供します。 CODEGYM Academy 協賛企業(2022年) https://codegym.jp/academy/ 今年度のエントリーは締め切りました — ようこそ! このページは、ハーバード大学 CS50 の日本語版翻訳プロジェクトのページです。当サイトのドメインに掲載されているコンテンツは、Cre

    • コンピュータサイエンスが気になるプログラマに勧める書籍リスト - Rubyist Magazine 第61号 巻頭言

      コンピュータサイエンスが気になるプログラマに勧める書籍リスト Rubyist Magazine 第 61 号をお届けします。 (今回は内容に合わせて文体を変えております。ご了承ください。) さて、コンピュータサイエンス(以下「CS」)は知らないけど日々プログラミングしている、というプログラマの方はたくさんいらっしゃるかと思います。 そんな方でも、ふとCSを知ってる方がいいのかなとか、CSも知らないとまずいのかな……などと思い、改めて勉強してみたいけどとっつきが悪いとか、うっかり手にとったCSの教科書が何を言ってるかさっぱりで10秒で閉じた、という方もいらっしゃるかと思います。 それでもCSが気になるので、「本腰を入れて勉強をする前に、どういうことをやってるのか眺めてみたい」くらいの温度感の方向けに、CSに隣接するジャンルで、職業プログラマや趣味プログラマの人なら読めそうな書籍のリストを作っ

      • Raspberry Piは本当に壊れやすいのか

        最近「Raspberry Piはすぐ壊れる」という趣旨の話題がTL上に出てきたので複雑な心境で眺めていました。 (以下簡略化のためRaspberryPi = RPiにします) もし「RPiはすぐ壊れるから製品投入に向いてない」と思っている方がいるのであれば、その理由でRPiを切ってるのはもったいないなぁと思いこの記事を書いてみました。 カンタンに自己紹介をしておくと、某社でRPiをベースにした製品を作り「RPiはすぐ壊れないものなのか?」の検証を進めていました。今では各地で5000台以上は動いてると思います。 ざっと書いたので、あまり技術的に詳しいことは書いてませんが、読み物として楽しんでもらえれば幸いです。 (これらテストをしたのがどのバージョンのRPiなのかについては触れません。読者さんが使いたいと思ったRPiでで気になる部分をテストしてもらうことが良いと思っています) 10,000回

          Raspberry Piは本当に壊れやすいのか
        • 『ゼロからのOS自作入門』に込めた思い - uchan note

          2021 年 3 月 22 日に『ゼロからの OS 自作入門』を出版する予定です。 本書は OS を手作りする本で、現代のパソコンでちゃんと起動する点が特長です。 15 年前の 2006 年に出版された『30 日でできる!OS 自作入門』を読んで育った私(uchan)が その後継となるだろう本を書いたということで、執筆の裏話を記してみたいなと思います。 書籍の概要 タイトル:ゼロからの OS 自作入門 著者:内田公太(uchan) 出版予定日:2021 年 3 月 22 日 ページ数:768(最大。実際はもっと少なくなる予想) ISBN:978-4-8399-7586-9 出版社の書籍ページ:ゼロからのOS自作入門 | マイナビブックス 本書は OS 作りに関する知識がないところから始め、オリジナルの OS「MikanOS」を作る一通りの過程を説明します。 パソコンの電源を入れ、他の OS

            『ゼロからのOS自作入門』に込めた思い - uchan note
          • 電子辞書は組み込みLinuxの夢を見るか? - Zopfcode

            はじめに 去る2010年、津山高専の入学を間近に控えた puhitaku 少年は、とある SHARP の電子辞書を手にして震えていた。 SHARP Brain PW-GC610。Windows CE をプリインストールした、中学生から見ても一風変わった電子辞書。そんなものが津山高専の教科書販売で手に入るなんて…。 これは、そんな変わった電子辞書 Brain シリーズで Linux を動かすまでの記録だ。 (本記事は、第53回 情報科学若手の回で発表した以下のスライドを記事にしたものです) speakerdeck.com Brain ハックの隆盛と衰退 SHARP の電子辞書 Brain シリーズは、Windows が動くことによって外部アプリ ― 言い換えると、PE 実行可能ファイルそのもの ― が追加可能であることを売りにしている。自作ソフトの防止や対策は特にないので*1、Visual

              電子辞書は組み込みLinuxの夢を見るか? - Zopfcode
            • 低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|Webエンジニアのキャリアを考える!

              低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 Linuxは、世界でもっとも広く使われているソフトウェアのひとつであり、多くのエンジニアの仕事に密接に関わっています。では、Linuxそれ自体は、どのように開発されているのでしょうか。Linuxの中枢である、Linuxカーネルの開発者のひとりである小崎資広さんに、知られざる開発の裏側を聞きました。 オペレーティング・システムLinuxは、世界でもっとも広く使われているソフトウェアのひとつであり、オープンソースというカルチャーが生み出した、大きな大きな結実です。サーバー用OSとしてはデファクトと呼べるほどの普及を見せており、それだけにLinuxの動向がもたらす影響は広範にわたります。こうした前提があるなかで、Linuxそれ自体は、どのように開発されているのでしょうか。 今回、お話を聞いた小崎資広(こさき

                低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|Webエンジニアのキャリアを考える!
              • 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を作り上げます。プロセス・スレッド・仮想メモリ管理,プロセス間通信,タイマーといった必要最低限の機能だけをカーネルが担います。デバイスドライバやファイルシステムといった残りの機能は,独立したユーザプロセスとして動きます。たとえデバイスドライバが暴走しても他のコンポーネントを壊すことはないのです。マイクロカーネルは信頼性が高く,疎結合で美しい

                  • ソフトウェア1 (2020)

                    ソフトウェア1 (2020)¶ 本サイトは、東京大学工学部電子情報工学科・電気電子工学科の進学内定者(2年生、A1ターム)を主たる対象としたソフトウェア1の講義ページです。C言語の基礎を勉強します。 電気系の学科のslackにて講義に関する通知を行うので、常時学科slackをチェックするようにしてください。 電気系の2年生は最初のオリエンテーションで全員slackに招待されるはずですが、もし招待されていなければ松井まで連絡してください。 3年生は既に全員招待済みのはずです。電気系以外の履修者、および4年生は招待されていないので、松井まで個別に連絡してください。 本サイトは2020年度版です。2021年度版はこちら。 ニュース¶ [2020.11.16] Q&Aにweek7を追加しました。 [2020.11.12] week7、およびバージョン管理を追加しました。 [2020.11.09]

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

                      どうも、しいたけです。 去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門 を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。 今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。 CPUなどのハードウェア周りについては概要しか知らなくて手を動かしたことがないので、実際に何か作りながら学べるものとして、 O'Reilly Japan - コンピュータシステムの理論と実装 に挑戦することにしました。 O'Reilly Japan - コンピュータシステムの理論と実装 成果物は以下のリポジトリに置いてあります。 yuroyoro/nand2tetris 結論から言うと、やってみて大変楽しめました! 特にハードウェア周りは今まで挑戦したこ

                        Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記
                      • はじめに - Rustで始める自作組込みOS入門

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

                        • スレッドとプロセスの違いを完全に理解する

                          はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 本記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、本記事は 5 分程度で読み終えることができます。 本記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

                            スレッドとプロセスの違いを完全に理解する
                          • フルスクラッチから作って理解する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開発日記
                            • ソケットプログラミングのTips

                              概要 ソケットプログラミングに関するTipsをメモレベルで記載する。 切断検知と経路切断 TCPコネクションの切断検出 対向がclose()、shuttdown()、プログラム終了等をしたときの切断検出について。 OSをシャットダウンさせた場合も通常はアプリケーションの終了処理が走り、正常な切断が動く。 受信側の切断検出は、recv()がlength==0で返ってきたとき、または、errno==ECONNRESETとなる。(ECONNRESETはRSTによって切断された場合) 送信側の切断検出は、切断された後2回目のsend()がエラーとなる。 ※相手がclose()→こちらがsend()→相手にパケットが飛ぶが待ち受けプログラムがいないためRST応答が来る→もう1度send()→エラー ※send()自体はカーネルの送信バッファにデータコピーするだけなので、TCPレベルの応答(送信完了)

                                ソケットプログラミングのTips
                              • 低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書

                                はじめに ITの世界で「低レイヤ技術」と呼ばれるものがあります。明確に定義されているわけではありませんが、アプリケーションのような直接エンドユーザに触れる部分ではなく、しかもなるべく生のコンピュータに近い部分、たとえばOSカーネルやコンパイラ、CPUを開発する技術などがあります。これらの技術に明るい人はそうそういないのですが、「やってみたい」という根強い人気があります。 学生のかたでもセキュリティキャンプなどで実際にある程度身につけてしまうような人もいます。そしてますますこの手の技術に趣味としてのめり込んでいって楽しくなる…というところまではいいのですが、「ではこの技術を会得した先に何があるのか」と不安になる人も多いようです。とくに学生さんの場合は「低レイヤ技術を使って今後なんらかの仕事をして生きていけるのか?」といったことが気になるようです。今日もそのような話を少し耳にしたので、自分の経

                                  低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書
                                • 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言語でゲームボーイアドバンスのエミュレータを作った話
                                  • Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run

                                    KOBA789 です。みなさん DBMS は好きですか。私は好きです。 最近、自作 DBMS をずっと作っていて、ようやく最低限の機能ができたので公開をしました。 (とはいえコードを書いていたのは正味2日ほど。設計と勉強に2週間かかった) github.com この記事ではこれを作った目的と、そのちょっとした詳細についてご紹介します。 目的 Disk-Oriented DBMS の学習に適している Rust で書かれた実装が欲しかった、というのが理由です。 DBMS の勉強に適している実装というのは意外と多くありません。 MySQL や PostgreSQL といった有名な実装は実用的である一方でコード量は非常に多く、また細かな最適化によって教科書的なアルゴリズムと実際のコードの差が大きくなっているため、初学者にとっては構造を把握しづらくなっています。 教科書的な実装の Disk-Orie

                                      Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
                                    • 「ゼロからの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』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ
                                        • Nature Remoやその関連サービスで使われている技術と今後の展望 - Nature Engineering Blog

                                          Nature株式会社VPoEのid:Songmuです。当社でもエンジニアリングブログを始めることにしました。 NatureはIoTスマートリモコン製品のNature Remo1を主力製品としていますが、家庭の電力マネジメントのためのIoT製品スマートエネルギーハブNature Remo E2や、電気小売事業のNatureスマート電気3も提供しています。目指すところはクリーンエネルギー100%の世界の実現で、お客様に利便性と同時にエコであるという、気持ちの良いライフスタイルを提供したいと考えています。 先日、Nature Remoは累積販売台数30万台を越えました4が、エンジニアはハードウェアエンジニアが2名、ソフトウェアエンジニアが8名の体制です。ハードウェアも含め、技術領域が多岐にわたっているため、まだまだエンジニアを募集中です。 さて、今回は最初のエントリということで、Natureで使

                                            Nature Remoやその関連サービスで使われている技術と今後の展望 - Nature Engineering Blog
                                          • 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
                                            • WebAssemblyでの機械学習モデルデプロイの動向

                                              本記事はMLOps Advent Calendar 2020の 2 日目の記事です。 WebAssembly(Wasm)は機械学習モデルをデプロイする新たな手段になりうるでしょうか。 この記事では、機械学習モデル(特に Deep Learning)を Wasm でデプロイする周辺技術の動向や内部の仕組みをざっくりと説明します。 Table of Contents tkat0 です。WebAssembly(Wasm)面白いですね。 私も最近はyewでフロントエンドを書いて遊んでいます。Rust で React っぽいことできるのは新鮮で面白いです。 Wasm は、なんとなく速い JavaScript?とか機械学習で何に役立つの?とか思ってる方も多いと思います。 しかし、Wasm はブラウザでの推論時に使えるだけでなく、機械学習モデルのサービングやエッジデバイスでの推論にも使えると知ったら驚き

                                                WebAssemblyでの機械学習モデルデプロイの動向
                                              • Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ

                                                先月、国内最大のセキュリティ研究会であるコンピュータセキュリティシンポジウム 2020(CSS 2020)が開催され、そこで、Rust言語を用いてファームウェア、OS、言語処理系を設計・実装した話を発表しました。本来、CSS 2020はリアルで開催されるはずでしたが、コロナ禍の影響でオンライン開催となり発表動画作成が求められました。せっかく作った動画をこのまま捨て置くのももったいないと思い、ここで供養したいと思います。 www.youtube.com 概要 内容は、Rust言語を用いて、AArch64のセキュアワールド内で動作するファームウェア、OS、プログラミング言語処理系を実装した話となります。と言っても、まだまだ基本的な部分しか実装しておらず、実現目標に対して2〜3割と言ったところですが、どうぞご笑覧ください。 ブート部分は多少アセンブリ言語を使っていますが、その他の部分はRustで

                                                  Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
                                                • Go言語低レイヤー入門 Hello world が 画面に表示されるまで (GoConforenceTokyo2021)

                                                  Go言語低レイヤー入門 Hello world が 画面に表示されるまで @DQNEO (ドキュネオ) Go Conference Tokyo 2021 2021-04-24

                                                    Go言語低レイヤー入門 Hello world が 画面に表示されるまで (GoConforenceTokyo2021)
                                                  • 『基礎から学ぶ 組込みRust』執筆に寄せて〜Nature RemoへのRust導入の展望〜 - Nature Engineering Blog

                                                    Nature株式会社ファームウェアエンジニアの中林 (id:tomo-wait-for-it-yuki) です。 本記事では、拙著『基礎から学ぶ 組込みRust』1がC&R研究所様より出版されたので、書籍の紹介やNatureのファームウェア開発にRustを使っていきたい、ということを書きます。 本を書きましたエントリは個人ブログで書いている2ので、それとは少し違った観点から話をしたいと思います。 『基礎から学ぶ 組込みRust』の紹介 2021年5月現在、Rustはすでにマイナーの域を超えたと言って差し支えない状況でしょう。一方、組込みRustはまだまだマイナーな分野です。『基礎から学ぶ 組込みRust』出版をtwitterやブログで告知した際も、「Rustって組込みできたんだ?」という反応が少なくありませんでした。 マイナー扱いから脱するための施策として、認知度を上げ、入門を手厚くする、

                                                      『基礎から学ぶ 組込みRust』執筆に寄せて〜Nature RemoへのRust導入の展望〜 - Nature Engineering Blog
                                                    • 「作って学ぶコンピュータアーキテクチャ」の環境を再現するためのDockerイメージをリリースします - FPGA開発日記

                                                      「作って学ぶコンピュータアーキテクチャ」(いわゆるRISC-V + LLVM本)は書籍執筆時の状況と出版時のツールチェインの状況がかなり変わってしまっており、各所で迷惑をかけてしまっています。 確実にLLVMビルド + シミュレーションを行うために、ツールチェインを含んだDockerイメージをリリースします。 github.com 大きく分けて4つのイメージを用意しています。 ubuntu_2204 Ubuntu 22.04の環境を使用し、新しいRISC-Vツールを使用したDocker環境です 本書で説明している実行コマンド列と大きく異なっている場所があります LLVMリポジトリはコンテナ内にダウンロード済みです(コンテナ容量削減のためビルドは行っていません) 最終的なバイナリのみ必要な方向けです ubuntu_2204_onlyenv Ubuntu 22.04の環境を使用し、新しいRIS

                                                        「作って学ぶコンピュータアーキテクチャ」の環境を再現するためのDockerイメージをリリースします - FPGA開発日記
                                                      • 「ゼロからのOS自作入門」の副読本的記事

                                                        最初に 「ゼロからのOS自作入門」を実践するための、環境構築方法及びコマンドリストと実行結果のメモです。最短で実行したい方、うまく動かすことができない人用の記事となります。 書籍に関する感想は、以下ブログ記事に書いているので、書籍自体を買おうか迷っている人はこちらを参考にしてみてください。 本記事は「ゼロからのOS自作入門」を読んで、個人的にまとめたものとなります。内容に関して、もし問題や誤りがあった場合の文責は私にありますので、この記事に関しての疑問は私に問い合わせください。もちろん書籍自体の質問は、書籍のサポートに連絡ください。 この記事を読むと、書籍を読まなくてもOSを動かすことはできます。ただ、書籍を読みながら自分で理解したり改造したりしながら動かさないと何も身につかないと思うので、興味ある人は書籍を買いましょう。価格の何倍もの価値がある良書だと思います。 ゼロからのOS自作入門

                                                          「ゼロからのOS自作入門」の副読本的記事
                                                        • Webブラウザーで動く第4の言語“WebAssembly”はどう凄い? C++もコンパイル……~IIJがアプリケーション分野の革新を振り返る~【IIJ Technical WEEK 2020】

                                                            Webブラウザーで動く第4の言語“WebAssembly”はどう凄い? C++もコンパイル……~IIJがアプリケーション分野の革新を振り返る~【IIJ Technical WEEK 2020】
                                                          • 2ヶ月間で低レイヤを学ぶためにやったこと

                                                            こんにちは。来週末久しぶりに100kmマラソンを走ります。y-meguro です。 この記事は「#しがないラジオ Advent Calendar 2019」6日目の記事です。 ポッドキャスト「[しがないラジオ](https://shiganai.org/)」のアドベントカレンダーです! ## どんなブログエントリを書けばいい? - 下記のテーマ例を参考に、フリーテーマでご自由にどうぞ! - しがないラジオについて - 転職/転職活動した話 - 楽しく仕事をするためのアドバイス - IT業界論、SIer論 - 2019年に頑張ったこと ## 過去のAdvent Calendar [#しがないラジオ Advent Calendar 2018 - Adventar](https://adventar.org/calendars/2927) [しがないラジオ Advent Calendar 201

                                                              2ヶ月間で低レイヤを学ぶためにやったこと
                                                            • 完全フリーランスになりました - Zopfcode

                                                              4月より勤務していたヘマタイト株式会社が2020年10月半ばをもって解散し、私は完全なフリーランスになった。 自分が書いたから言うけど、みんな転職エントリばっかり書かないでこういう振り返りをちゃんとしていけよなと思う。 前に 92thunder がこんなことを書いていて、自分も10月くらいに振り返りエントリを書こうかなと思っていた。ところがその10月になんやかんやあり、職が決まって諸々が公表できるまでおあずけとなり、今日に至った。 今は半端だから「転職&フリーランス開始から半年が経った」を書くわ、10月に— Takumi Sueda (@puhitaku) 2020年7月21日 これからの仕事と経緯 これまでフリーランスと社員を半分ずつやっていた間はフリーの仕事は特に種類を選ばずやっていたが、ついに好きな方面の仕事だけで固めることに成功した。 これからは、東京都は小金井市のNICT 国立研

                                                                完全フリーランスになりました - Zopfcode
                                                              • 電子辞書は組み込みLinuxの夢を見るか?

                                                                第53回 情報科学若手の回 #wakate2020 通常発表 「究極の趣味、Linux移植。その魅力をご覧に入れます。」

                                                                  電子辞書は組み込みLinuxの夢を見るか?
                                                                • Cosmopolitan Libc: build-anywhere run-anywhere C library

                                                                  Cosmopolitan Libc makes C a build-anywhere run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS on AMD64 and ARM64 with the best possible performance. Getting Started First, download the Cosmop

                                                                  • 自作コンパイラ基盤の話 - Qiita

                                                                    これは、言語実装 Advent Calendar 2020 19日目の記事です。 最近は、コンパイラやインタプリタなどの言語処理系や、それに類するものを作る人が増えてきています。(私の周りだけかもしれませんが。) しかし、もう一歩進んで、コンパイラ基盤を作ってみたという話はあまり聞きません。 コンパイラ基盤は、それの対象とするアーキテクチャについてや、それ自体の使い勝手を考えるのが非常に面白いものです。また、コンパイラ基盤を作る中で、コンパイラや計算機自体についてより深く学ぶことが出来ます。 この記事では、私が開発中のコンパイラ基盤を例として、コンパイラ基盤について語っていきます。 そもそもコンパイラ基盤とは コンパイラ基盤と言えば、近年色々な所で目にするのがLLVMです。 LLVMを使うことで、コンパイラの複雑で面倒な部分を避けつつ、コンパイラを構成することができるようになりました。 下

                                                                      自作コンパイラ基盤の話 - Qiita
                                                                    • カーネルことはじめ

                                                                      この記事は未踏ジュニアAdvent Calendar : 10日目です. カーネル, 書きたくないですか? こんにちは, horizon (@horizon2k38)です. 私は2023年の未踏ジュニアでA9Nというマイクロカーネルを作成していました. 人類なら誰しもがカーネルを書きたいと思ったことがあるはずです. そんな方のために, 未踏期間で得られた "0からカーネルを如何にして学び, 実装したか" という知見をより一般化して解説しようと思います. この記事の内容をすべて達成することで, あなたもきっとカーネルを書くことができるでしょう. やれば出来る きっと 絶対 私No.1 注: この記事はどちらかといえば初心者向けなので, 自信がある方は最下部の"参考文献"と, 私が書いた低レイヤー学習のロードマップのみ読むことをおすすめします. カーネル/OSとは そもそもカーネルとは, 所謂

                                                                        カーネルことはじめ
                                                                      • Rust & Raspberry Pi で温度センサーの値を AWS IoT Core に Pub してみた | DevelopersIO

                                                                        はじめに テントの中から失礼します、CX事業本部のてんとタカハシです! タイトルを見てロマンを感じた方、是非お友達になりましょう。Rust、ラズパイ、IoT、うん、かっけー!な気分で記事を書いています。よろしくお願いします。 前々から、Python & Raspberry Pi でセンサー等をいじってお遊びすることはあったのですが、近年 Rust が色々と話題 & 組み込み関連とも相性が良いのでは?といったことから、ずーっとやってみたかったこと、ついにやってみました。 今回は、Rust を使って Raspberry Pi に接続している温度センサーから値を読み取り、AWS IoT Core に Publish する方法についてご紹介したいと思います。 尚、この記事の中では、AWS IoT Core らへんのデプロイ等については語りませんが、下記のリポジトリの方で、Publish した値が

                                                                          Rust & Raspberry Pi で温度センサーの値を AWS IoT Core に Pub してみた | DevelopersIO
                                                                        • 自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog

                                                                          このエントリは言語実装 Advent Calendar 2020の1日目の記事です。 次はsisshiki1969さんで「RustでつくるRuby、その後の進捗」です。 κeenです。 昔からちまちま作ってるSML処理系をブラウザ上で動かすことができたのでその進捗報告です。 ちまちま作ってるSML処理系とはこれのことです。 KeenS/webml: A Standard ML Compiler for the Web 今回実装したオンラインコンパイラは以下で試すことができます: WebML Online Compiler まあ、ブラウザで動くのでここに貼ることもできるんですけどね。 こういうのどうやって作ったの?っていうのを話していけたらなと思います。 設計 そもそもの話、WebMLはブラウザで動かすために設計、実装されています。 スタートから違うじゃんと思うかもしれませんが、スタートから

                                                                            自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
                                                                          • 64ビットRISC-Vコア、4.25GHzで1万1000CoreMark

                                                                            米Micro Magicが、世界最速をうたう64ビットRISC-Vコアを発表した。「Apple M1」チップや「Arm Cortex-A9」コアベースのチップにも追い付ける性能を実現できるとする。同社は、「RISCのベテラン共同開発者であるDavid Patterson氏が当初掲げていたRISCアーキテクチャ構想をうまく実行することにより、既存の電池式デバイスの電力バジェットの範囲内で快適に動作させることが可能になった」と考えているようだ。 Micro Magicは2020年10月末に、「当社が開発した64ビットRISC-Vコアは、5GHzのクロック周波数と、1.1Vで1万3000のCoreMark値を達成した。公称電圧0.8Vで動作する単一のコア(シングルコア)は、4.25GHzで1万1000CoreMarkを達成し、消費電力はわずか200mWである」という、たった二つの文だけの簡潔なリ

                                                                              64ビットRISC-Vコア、4.25GHzで1万1000CoreMark
                                                                            • Rust製のパーサコンビネータnomを解剖する(v6.0.0) - DrumatoのBlog

                                                                              こちらに移行しました. www.drumato.com

                                                                                Rust製のパーサコンビネータnomを解剖する(v6.0.0) - DrumatoのBlog
                                                                              • 自作Goコンパイラでマルチスレッドが動くようにするまで

                                                                                自作Goコンパイラ babygo でマルチスレッドを動かすこと(=子スレッドの作成)に成功しました。 実は以前に挫折していた 1年半前に 一作目のGoコンパイラ minigo でもマルチスレッドに挑戦したことがあるんですが、そのときは子スレッド生成後すぐに Segmentation Faultが起きてしまい、解決方法わからずあきらめたのでした。(動かなかった syscall cloneの残骸 https://github.com/DQNEO/minigo/blob/5ab7420fbca2f65d81bc761d5cbe51a2b28953a8/internal/runtime/runtime.s#L41-L61 ) (当時は gdb でステップ実行すると他のスレッドも処理が進むということを知らなかったので、ただただ謎の挙動にしか見えなかった) 今回やったこと 今回は以下のように要素技術を

                                                                                  自作Goコンパイラでマルチスレッドが動くようにするまで
                                                                                • Rustで始めるTCP自作入門:ひつじ技研

                                                                                  # この本について 本書では近年話題のプログラミング言語であるRustを用いて,自作TCP実装,その名も「ToyTCP」を作成します.完全な実装を作るのはハードルが高いので,なるべく機能をシンプルにしつつ,しっかりと動くものを目指します.ただTCPを作るだけでは面白くないので,次のようなToyTCPを利用する2つのアプリケーションも同時に作成します. - エコーサーバ,エコークライアント - 文字列のやりとりを行う - サーバは複数のクライアントを同時にハンドリングする - ファイルサーバ,クライアント - アップロード機能のみ - クライアントから数MBのファイルをサーバにアップロードする - 少しくらいパケットがロスしても問題なく完了する TCPの仕様が記述されているRFC793は全部で85ページとかなりのボリュームがあるため,本質的な部分だけを選んで実装していきます.作成する機能は主

                                                                                    Rustで始めるTCP自作入門:ひつじ技研

                                                                                  新着記事