リアルタイムOS, プロトコル, ドライバ, オセロ, Unicode, WSL
その他
OSは日常のあらゆる場所で目にします. パソコンには必ずと言っていいほどOSが走っており, 携帯, ゲーム機などにもOSが走っております. このような普段よく使うOSですが, そのOSの仕組みを分かっていても, 実際どのように作るのかはよく知られておらず気になります.
このページでは, 実際にArduinoで動くOSを作成することで, OSの理解を深めます. 使用するプログラミング言語はC言語です. (作成といいましても, すでに在りますFreeRTOSから必要な機能を抜き出し, Arduinoで動くようにしました.) なお, 今回扱うOSは汎用OSではなくリアルタイムOS(RTOS)と呼ばれるものです. 汎用OSとは, すべてのタスクに等しく優先度が与えられますが, RTOSではタスクごとに優先度を設定できます.
話の進め方ですが, 今回のOS製作では実装に重きを置くため, コードを中心に話を進めていきます. 各コードごとに簡単な説明を行い, その中で特に重要な部分―OSの仕組みに深くかかわる部分―もしくはさらに詳しい説明については別ページで行います. これら別ページ―詳細ページ―は子コンテンツである"仕組み"にまとめられています.
話の流れは次のとおりです.
- RTOSとは
- 目標と使い方
- 準備
- ファイル構成
- スクリプト
- ボードの設定
- 仕組み
対応状況
- Arduino UNO
- Arduino Mega
動作確認済み環境
- Arduino IDE 1.8.10
- Arduino AVR Boards 1.8.1
本稿は, 筆者が今まで文を書いてきて, 先輩, 先生方から言われた文の校正内容をまとめたものです. 文の意味で校正をするのではなく, 文を文字列として扱いプロトコル的に校正します.
公式リファレンスを参考しつつ, Ubuntu 上にNVIDIA GPU ドライバ, CUDA, cuDNNを入れて, tensorflow をGPUで動かす方法を, フローチャートで進めます.
オセロです. 遊びで作ったものなので, きれいにできている自信はありません.
より多くの石をひっくり返した方が勝利です.
遊ぶには, pythonの環境が必要です.
AI搭載で一人でも遊べます. (貧弱なAIですので改良しちゃってください.)
広く使われているUnicode規格を理解し, エンコーディングの手法, UTF-8, UTF-16, UTF-32, を理解して, 多言語の文字コードを扱えるようになることを目指します. 具体的に, UTF-8, UTF-16, UTF-32間の変換方法をC++で実装し, 手法はできるだけ速い方法を用います.
本稿では, C++でバージョンに左右されずに文字を扱うために, 以下の機能を持つライブラリを紹介します.
- 型依存しないUTF-8, UTF-16, UTF-32間の相互変換
- UTF-8, UTF-16文字(コードポイント)ごとのイテレート
- 標準イテレータを使ったイテレート
- 型依存しないイテレータの対応
広く使われているUnicode規格を理解し, エンコーディングの手法, UTF-8, UTF-16, UTF-32, を理解して, 多言語の文字コードを扱えるようになることを目指します. 具体的に, UTF-8, UTF-16, UTF-32間の変換方法をC++で実装し, 手法はできるだけ速い方法を用います.
本稿では, C++でバージョンに左右されずに文字を扱うために, 以下の機能を持つライブラリを紹介します.
- 型依存しないUTF-8, UTF-16, UTF-32間の相互変換
- UTF-8, UTF-16文字(コードポイント)ごとのイテレート
- 標準イテレータを使ったイテレート
- 型依存しないイテレータの対応
2021年12月現在, この記事で紹介している方法は古い可能性があります.
最新の方法について, microsoft 公式の以下のページか, 他の最新情報サイトをご覧ください.
WSL2上でUSBデバイスを認識させるために, VirtualHereを用いた方法を, Linux側でUSB/IPの機能を有効にする方法も含めて, 説明します.
![WSL2上でArduino UNO が認識されている](/Master/WSL/Tips/WSL2-USB/Images/lsusb.jpg)
shell環境における開発をするためには,まずその開発環境を整える必要があります. 本稿では,開発環境を整えるスクリプトを公開します.
本稿で上げるスクリプトは,WSL(Windows Subsystem For Linux)上でのセットアップにも対応させています.
このセクションでは, Windows Subsystem for Linux について書かれます.
2021年12月現在, この記事で紹介している方法は古い可能性があります.
最新の方法について, microsoft 公式の以下のページか, 他の最新情報サイトをご覧ください.
WSL2上でUSBデバイスを認識させるために, VirtualHereを用いた方法を, Linux側でUSB/IPの機能を有効にする方法も含めて, 説明します.
![WSL2上でArduino UNO が認識されている](/Master/WSL/Tips/WSL2-USB/Images/lsusb.jpg)