azma0_0のブックマーク (167)

  • UEFIによるELFバイナリの起動

    azma0_0
    azma0_0 2017/09/27
  • ブートローダーは4行で実装される

    この記事はUEFI Advent Calenderと自作OS Advent Calenderのためにかかれました。 22日(+3日)の記事です。 遅れてもうしわけないです。 ブートローダー まず、自作OSにはブートローダーによってカーネルをロードしなければはじまりません。 特段複雑なローダーがなくとも、たとえばBIOSから直接起動するのなら そのための形式で用意せねばなりません。 しかし、これが自作の入口としてかなりの関門になってしまっているのではないでしょうか。 なので自作OSからはちょっと離れますが、ブートローダーについて書きます。 UEFI ということで、UEFI Appsとしてブートローダーを実装する話です。 まず、UEFIとは何かについてはUEFI Advent Calender 1日目の記事を、 そしてこの作業の前知識としてUEFI Advent Calender 12日目の記

    azma0_0
    azma0_0 2017/09/27
  • EDK II で UEFI アプリケーションを作る — osdev-jp core docs 1.0 ドキュメント

    EDK II で UEFI アプリケーションを作る¶ この記事は UEFI アプリケーションを EDK II 上で作り、QEMU で動かすまでを解説します。動作確認は Ubuntu 16.04 でやっていますが、Linux ならどれも同じ方法で動作すると思います。 UEFI アプリを作る 3 つの方法¶ UEFI アプリを作るには、使う SDK によって主に 3 つの方法があります。参考記事:UEFIのSDK事情 - syuu1228’s blog SDK を使わない gnu-efi EDK II SDK を使わないで作る方法は ツールキットを使わずに UEFI アプリケーションの Hello World! を作る - 品川高廣(東京大学)のブログ が参考になります。Hello World アプリを作るだけなら、恐らくこの方法が最も簡単だと思います。新しく買った UEFI 搭載の組み込みボ

    azma0_0
    azma0_0 2017/09/27
  • 自作OSにファイルシステム・アプリローダを追加しました - へにゃぺんて@日々勉強のまとめ

    システムコールと特権管理などを追加しました - へにゃぺんて@日々勉強のまとめ こちらの記事の続きで、自作OS(仮称:OS5)の記事です。 自作OSについては、以下のページにこれまでの記事や成果物のまとめを載せています。 http://funlinux.org/os5/ 今回は以下の機能を追加しました。 メモリアロケータ ファイルシステム アプリケーションローダ これらの機能追加により、シェルに 「シェル組み込みコマンドではない文字列を受け付けた時、 その文字列をファイル名とするファイルを開き(システムコール:open)、 実行する(システムコール:exec)」 という挙動を取らせることができるようになりました。 (上のGIFアニメでuptimeを実行することで、右上にシステム起動時間が表示されるようになりました。) 例によって、日時点のソースコードを以下からダウンロードできます。 ht

    自作OSにファイルシステム・アプリローダを追加しました - へにゃぺんて@日々勉強のまとめ
    azma0_0
    azma0_0 2017/09/26
  • Newlibビルドメモ - uchan note

    Newlibをclangを使って自作OS向けにビルドしたメモ 環境:Ubuntu 16.04、clang 3.8 Newlibバージョン:d6cac3e1da1a117f8a93b91371f3f0a5c071219f Newlibはなぜか、host=targetでconfigureしてしまうと何もビルドが走らない。 たとえホスト環境と同じ環境で動く自作OSをビルドする際も、ちょっと違うtargetを指定する必要があるらしい。 target=x86_64-none-elfとすることでビルドが走るようになった。 (2017/07/26追記:newlib-cygwinのトップディレクトリではなく、newlib-cygwin/newlibを直接ビルドすることでhost=targetでもビルドできた。詳しくは後述) さて、target=Xとすると、Newlibのビルドスクリプトは X-cc という

    Newlibビルドメモ - uchan note
    azma0_0
    azma0_0 2017/09/26
  • SourceForge.jp: Project Info - プロジェクトD 〜車輪を再発明せよ!〜

    D言語でひたすら車輪を再発明します。現在はOS・パーサフレームワークの開発を行っています。ゆくゆくはスクリプト言語・GUIツールキット・ゲームエンジン等も開発していく予定です。

    SourceForge.jp: Project Info - プロジェクトD 〜車輪を再発明せよ!〜
    azma0_0
    azma0_0 2017/09/25
  • OS自作入門記(1~2日目) - たにしきんぐダム

    azma0_0
    azma0_0 2017/09/24
  • 起動するまでの長い道のり IPL篇(1) ディスクイメージ作成の巻 - Outlandish Watch

    PC/ATマシンで動くOSを作る場合、PC/ATでのOS起動規格に則ってブートセクタ等を用意しなければならない。 マシンはどうやってOSを起動するか まっさらなマシンにWindowsとかLinuxとかのインストールCDを入れて起動すると、CDがガリガリ読み込まれてインストール画面が出る。だが、まっさらなマシンに他のソフトのCDを入れて起動すると「No operating system」とかメッセージが出てそのまま止まってしまう。たとえインストールCDのファイルを別のCDに全部コピーしても、その不正コピーCDではインストール画面が立ち上がらない。上記のことはフロッピーディスクにも当てはまる。起動できるディスクと起動できないディスクがあるのだ。 起動できるディスクには、ブートセクタ(IPL)と呼ばれる領域がディスクの先頭にある。マシン(BIOS)は、接続されているFDDやHDDにブートセクタを

    起動するまでの長い道のり IPL篇(1) ディスクイメージ作成の巻 - Outlandish Watch
    azma0_0
    azma0_0 2017/09/24
  • osaskjp_index - khfdpl-wiki

    せつめい osask.jp はこれまで osask.net へ無条件にリダイレクトしていましたが、OSASK計画が多くのサブプロジェクトを有するに至り、もはやどこに何があるのか非常にわかりにくくなったので、目次ページを用意しました。 また普通にhtmlで目次ページを作ることも検討したのですが、メンテナンスの手間を考えて、手っ取り早くwikiで作ることにしました。 また目次ページのためだけに新規のwikiを立てるのも手間だったので、既存のプロジェクトのwikiを流用しています。 ↑ 目次(2) OSASKコミュニティ → http://osask.net/ 掲示板やOSASK計画の分かりやすいまとめがあります!(第一世代OSASK, 第二世代OSASK) easy-C (現在開発中) → https://essen.osask.jp/?a23_ec001 プロジェクト開始日: 2023.01

    azma0_0
    azma0_0 2017/09/24
  • PEG基礎文法最速マスター - kmizuの日記

    Scala基礎文法最速マスターを書こうか迷っていたら、既にyuroyoroさんに書かれてしまったので、ちょっと違う方向で。BNFを既に知っている人は、これを読めばPEGの基礎をマスターしてPEGを書くことができるようになるでしょう(ほんとか?)。 基 Parsing Expression Grammar(PEG)はBNFに似ているけど、ちょっと(かなり?)違う文法の表記法です。BNFはその文法がどのような言語を表現しているかを定めるのに対して、PEGは入力がどのように解析されるかを定めます。PEGとBNFの一番大きな違いは、PEGには曖昧さが無いことです。たとえば、プログラミング言語のif文を表現する次の擬似BNFには曖昧さがあります。 statement ::= if_statement | ...; if_statement ::= IF LPAREN expr RPAREN sta

    PEG基礎文法最速マスター - kmizuの日記
    azma0_0
    azma0_0 2017/09/23
  • GitHub - dotnet/LLVMSharp: LLVM bindings for .NET Standard written in C# using ClangSharp

    azma0_0
    azma0_0 2017/09/23
  • LLVM 言語マニュアル(Language Reference Manual)

    この文書は、LLVMアセンブリ言語の参照マニュアルです。 LLVMは、型安全で、低水準な操作ができる、柔軟な、 そして 全ての 高級言語を簡潔に表現できる能力を提供する静的単一代入(Static Single Assignment:SSA)ベースの表現です。 これはLLVMのコンパイル戦略のすべてのフェイズにわたって使用される共通コード表現です。 LLVMコード表現は、3つの異なる形式で使用できるように設計されています。 インメモリコンパイラ(IR)、 ディスク上でのビットコード表現(JITコンパイラの高速ロード対応)、 そして、可読アセンブリ言語表現です。 これは、変形にデバッグや視覚化の自然さを残しながら、 LLVMが効率的なコンパイラ変形および分析に強力な中間表現を提供することを可能にします。 LLVMの3つの異なる形式はすべて等価です。 このドキュメントは人間の判読可能な表現および

    azma0_0
    azma0_0 2017/09/22
  • LLVM上で、LuaのCライブラリを使用して、コンパイラを使わずにソフトウェアを書く(前半) | POSTD

    LLVM上で、LuaからCライブラリを呼び出し、コンパイラを使わずにソフトウェアを書く 私は、ある プログラミング言語 の開発に取り組んできました。私はよく ビデオゲーム を作りますが、ゲーム開発に利用できる既存の言語には、それぞれ私のやり方に合わない欠点がありました。そこで、自分で新しい言語を作ることにしたのです。私はインタプリタを実装し、ちゃんと動きます。素晴らしい!しかし、あまりに遅いのです。自分がやりたいことを実現するには、私は決めたのです、インタプリタではなく、コンパイラを書くべきだと。ところがそのように決めるとたちまち、このプロジェクトは行き詰ってしまいました。なぜなら、当はコンパイラを書きたくなかったからです。作業量は多いし、今までやったことがないことも多く、どこから始めればいいかも当に分かりませんでした。しかも、私はパーサを書くのが当に嫌いなのです。 そして先週、次の

    LLVM上で、LuaのCライブラリを使用して、コンパイラを使わずにソフトウェアを書く(前半) | POSTD
    azma0_0
    azma0_0 2017/09/22
  • GitHub - BIDData/BIDMat: A CPU and GPU-accelerated matrix library for data mining

    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 - BIDData/BIDMat: A CPU and GPU-accelerated matrix library for data mining
  • GitHub - oreilly-japan/deep-learning-from-scratch: 『ゼロから作る Deep Learning』(O'Reilly Japan, 2016)

    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 - oreilly-japan/deep-learning-from-scratch: 『ゼロから作る Deep Learning』(O'Reilly Japan, 2016)
    azma0_0
    azma0_0 2017/09/18
  • GitHub - deeplearning4j/nd4s: ND4S: N-Dimensional Arrays for Scala. Scientific Computing a la Numpy. Based on ND4J.

    ND4S: Scala bindings for ND4J ND4S is open-source Scala bindings for ND4J. Released under an Apache 2.0 license. Main Features NDArray manipulation syntax sugar with safer type. NDArray slicing syntax, similar with NumPy. Installation Install via Maven ND4S is already included in official Maven repositories. With IntelliJ, incorporation of ND4S is easy: just create a new Scala project, go to "Proj

    GitHub - deeplearning4j/nd4s: ND4S: N-Dimensional Arrays for Scala. Scientific Computing a la Numpy. Based on ND4J.
    azma0_0
    azma0_0 2017/09/17
  • 多層パーセプトロンによる関数近似 - 人工知能に関する断創録

    パターン認識と機械学習(PRML)まとめ(2010/8/29)の続きです。以下、つづくかも?になってましたが、2014年はDeep Learningを勉強しよう(2014/1/4)と思っているので、関連するニューラルネットワーク関係の実験結果をもう少し追記します。 今回は、PRMLの5章ニューラルネットワークの中から図5.3にある多層パーセプトロンによる関数近似をPythonで実装してみました。 上の図にあるようにxを入れたときにsin(x)の近似値を出力するようなニューラルネットワークを学習します。もっと詳しく言うと (x, sin(x)) のたくさんの組(訓練データ)を教師データとして用いて、xを入れたときにsin(x)の近似値を出力するようにニューラルネットワークの重みを更新します。 多層パーセプトロン(Multilayer perceptron) p.228にあるようにバイアスパラ

    多層パーセプトロンによる関数近似 - 人工知能に関する断創録
    azma0_0
    azma0_0 2017/09/17
  • Kerasで学ぶAutoencoder

    Kerasの公式ブログにAutoencoder(自己符号化器)に関する記事があります。今回はこの記事の流れに沿って実装しつつ、Autoencoderの解説をしていきたいと思います。間違いがあれば指摘して下さい。また、Kerasの公式ブログはKerasでの実装に関してだけでなく、機械学習自体についても勉強になることが多く、非常におすすめです。 今回の記事では様々なタイプのAutoencoderを紹介しますが、日語ではあまり聞き慣れないものもあるかと思いますので、今回は名称を英語で統一したいと思います。 目次 イントロダクション Undercomplete Autoencoder Sparse Autoencoder Deep Autoencoder Convolutional Autoencoder Denoising Autoencoder まとめ イントロダクション Autoencod

    Kerasで学ぶAutoencoder
    azma0_0
    azma0_0 2017/09/15
  • はじめてのGAN

    今回はGAN(Generative Adversarial Network)を解説していきます。 GANは“Deep Learning”というの著者でもあるIan Goodfellowが考案したモデルです。NIPS 2016でもGANのチュートリアルが行われるなど非常に注目を集めている分野で、次々に論文が出てきています。 また、QuoraのセッションでYann LeCunが、この10年の機械学習で最も面白いアイディアと述べていたりもします。 “The most interesting idea in the last 10 years in ML, in my opinion.” –Yann LeCun GANは聞いたことはあるけれどあまり追えてないという人向けに基礎から解説していきたいと思います。それでは順に見ていきましょう。 目次 基礎理論 DCGAN 実装 論文紹介 まとめ 基礎理

    はじめてのGAN
    azma0_0
    azma0_0 2017/09/15
  • MXNetR で Autoencoder を作ってみる - Qiita

    背景 MXNet とは Deep learning のフレームワークで、Kaggler の間で流行っている(流行っていた?)らしい。対応している言語が豊富で、その中に R も含まれているので、R 使いの人でも deep learning できます。分散処理前提の h2o と比べてローカルマシンで走らせても速く実行できるようなので、R でお手軽に deep learning したい場合にはいいんじゃないかなあと思っています。 以下のページを読んでもらえれば雰囲気は掴めると思います。 Deep Learningライブラリ{mxnet}のR版でConvolutional Neural Networkをサクッと試してみた(追記3件あり) Deep Learningライブラリ「MXNet」のR版をKaggle Otto Challengeで実践してみた DMLC によるチュートリアル記事もあります。

    MXNetR で Autoencoder を作ってみる - Qiita
    azma0_0
    azma0_0 2017/09/14