Blog (5 of 8)
-
Linuxで始めるOS自作入門: 11日目
## 11日目の内容 - ウィンドウを表示する ## ウィンドウを表示する ウィンドウ表示はほぼ前回までの応用なので具体的な部分は割愛 さて、高速に画面を書き換える必要があるときに 画面の書き換えが追いつかない問題が発生することがある (画面のチラツキ問題) これを低減するために不要な書き換えを行わずに、 書き換える箇所をピンポイントで書き換えるといったことを行うのが今回の主な内容 (レイヤーが重なっているときに、 隠れて見えない下の方の書き換えや隠れてしまう箇所の書き換えを行わないようにする
6/21/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 10日目
## 10日目の内容 - メモリ管理の修正 - 重なり制御 ## メモリ管理の修正 前回のメモリ管理方法だと、細かく管理できる半面細切れの領域が多く出来ることが予想されるため、 まとまった領域毎にメモリを確保する方式を追加 ## 重なり制御 マウスの移動の度に移動箇所が上書きされているのを修正 具体的にはレイヤー構造を取り入れて、レイヤー毎に表示制御を行うというもの 後は、書き換え範囲を小さくしたりなどして画面の高速化を行ったり ## 成果物 ![OSの画面](os-10day.png)
6/7/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 9日目
## 9日目の内容 1. コード整理 1. メモリ管理 ## コード整理 1ファイルにいろいろ書きすぎたので、ファイル分割しようねーという内容 完 ## メモリ管理 プロセスを作っていくにあたって、割り当てるメモリを管理しようと言った内容 個人的には興味がある内容だったのでなかなか楽しめた 2種類のメモリ管理の方法を紹介していたので気になる方は買って読んでどうぞって感じ 前にLinuxに関する書籍でLinuxのメモリ管理の解説を読んだのだけど、 それとはまた異なる内容だった おそらくこ
5/31/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 8日目
## 8日目の内容 1. マウスを実際に動くようにする 1. asmからcへ切り替えるときの100行についての説明(32bitsモードへの切り替え処理) ## マウスを動くようにする マウスからの値の受け取りに成功しているため、それを画面のカーソルに反映する処理の追加 この辺は変更箇所、内容がシンプルなため特に詰まるところはなく... 画面が上書きされてしまう現象については次回以降の実装になる レイヤーの概念を取り入れるのだろうか? ## 32bitsモードへの切り替え処理の説明 正直な所、
5/17/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 7日目
## 7日目の内容 1. キーボードの入力信号の受け取り 1. マウスの入力信号の受け取り ## 入力信号の受け取り マウスorキーボードから信号が送られてきた場合に、 それらを受け取って表示する処理をを作成 1. マウスとキーボードそれぞれのバッファ領域を用意 1. 割り込み処理は受け取った信号をバッファに流し込む 1. メイン処理はバッファに値が入っていた場合に 値を取り出して表示 バッファ領域を作ってみたのが今回一番の学びかもしれない ## 成果物 ![OSの画面](os-7day.p
4/19/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 6日目
## 6日目の内容 1. コードの整理 1. 割り込み処理作成 ### コードの整理 今まで1つの`bootpack.c`ファイルに処理を記載していたが、 これを複数のファイルに分けた また、ヘッダー情報を`bootpack.h`として分離した ついでに`Makefile`の整理 ### 割り込み処理作成 キーボード・マウスの割り込み処理を作成 マウスの方は6日目の時点では表示変化はしていないが、 キーボードは入力信号が有った場合に画面に表示するようになった ## 成果物 ![OSの画
4/5/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 5日目
5日目の完成物 ![OSの画面](os-5day.png) 4日目に画面をカラフルにしたので、 文字やマウスカーソルを表示してみよう〜といったもの ちなみに、 このマウスカーソルはまだ動かない C言語のポインター計算は優秀らしく、 8バイトの配列が有った場合に、 ポインターに`+1`すると1バイトではなく8バイト分進むらしい すごい 上書きされないのか心配してたのだけど杞憂だったらしい 文字列は最後に`0x00`が付いたものらしい `"ABC123"`といったコードは`c != 0x00`と
3/30/2020
- OS自作入門
-
Linuxで始めるOS自作入門: 4日目
3日目が約1年前... 再開しました 3日目でC言語を使えるようにしたので、 C言語で画面を表示してみようという内容になっています `goto LABEL`を`for`に書き直したり... ```c fin: io_hlt(); goto fin; ``` ```c for (;;) { io_hlt(); } ``` 久しぶりすぎて詰まったところといえば、 `nasfunc.nas`に関数を追加したときに`GLOBAL`を書き忘れたくらいかなーと 8, 16, and
3/30/2020
- OS自作入門
-
Rust覚書11: ライフタイム
## ライフタイムを使用した有効な参照: validating references with lifetimes Rustの全ての参照には、ライフタイムが存在する これは、参照が有効な範囲のことである 複数の型が可能な場合は、肩にアノテーションを付ける必要がるのと同様に、 参照のライフタイムがいくつかの異なる方法で関連付けられる場合、 ライフタイムにアノテーションを付ける必要がある Rustでは、実行時に使用される実際の参照が確実に有効になるように、 一般的なライフタイムパラメーターを使用して、
3/5/2020
- rust
-
Rust覚書10: トレイト(Traits)
## 共有動作の定義: defining shared behavior トレイトは、特定の型が持つ機能についてRustコンパイラに伝え、 他の型と共有できる トレイトを使用して、共有の動作を抽象的な方法で定義できる トレイトの境界を使用して、ジェネリックが特定の動作を持つ任意の型に できることを指定できる トレイトは、細かい違いはあるが、他の言語でインターフェースと呼ばれることが 多い機能に似ている ## トレイトの定義: defining a trait 方の動作は、その型で呼び出すことが
3/2/2020
- rust