tag:crieit.net,2005:https://crieit.net/tags/OS/feed 「OS」の記事 - Crieit Crieitでタグ「OS」に投稿された最近の記事 2023-04-10T00:50:27+09:00 https://crieit.net/tags/OS/feed tag:crieit.net,2005:PublicArticle/18422 2023-04-09T21:54:23+09:00 2023-04-10T00:50:27+09:00 https://crieit.net/posts/OS-6432b57f27a42 【随時更新】「ゼロからのOS自作入門」の実践 <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4839975868?&_encoding=UTF8&tag=nightbug-22&linkCode=ur2&linkId=14df8d2610c24373245d26ad5a25657d&camp=247&creative=1211">ゼロからのOS自作入門</a><br /> 第3刷を読みながら、基本的には内容通りにやっていき、詰まったところをメモしていく。<br /> 記事を分けずに追記を重ねていきます。</p> <h1 id="環境"><a href="#%E7%92%B0%E5%A2%83">環境</a></h1> <ul> <li>OS<br /> Windows11</li> <li>開発環境<br /> WSL2+ubuntu18.04にみんな大好きVSCodeからSSH接続する形で作業<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/uchan-nos/mikanos-build">https://github.com/uchan-nos/mikanos-build</a>の「ビルド環境の構築」に従い環境構築</li> </ul> <h1 id="1章"><a href="#1%E7%AB%A0">1章</a></h1> <h2 id="1.1"><a href="#1.1">1.1</a></h2> <h3 id="WSL2でokteta使えるよ"><a href="#WSL2%E3%81%A7okteta%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88">WSL2でokteta使えるよ</a></h3> <p>バイナリエディタoktetaのインストール。書籍ではWSLならWindowsのバイナリエディタを使った方が良いとあったが、現在のWSLはGUIアプリに対応しているため、oktetaがそのまま使える。<br /> リンク:<a target="_blank" rel="nofollow noopener" href="https://forest.watch.impress.co.jp/docs/news/1458044.html">Windows 10でもLinux GUIアプリが利用可能 ~Microsoft Store版が既定の「WSL」に</a></p> <h2 id="1.4"><a href="#1.4">1.4</a></h2> <h3 id="実行環境"><a href="#%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83">実行環境</a></h3> <p>作成したEFIの実行環境は、書籍では以下の3通りが紹介されていた。<br /> ・USBメモリに入れて同じPCで起動(いちいち開発環境の中断になるため、非推奨)<br /> ・USBメモリに入れて別PCで起動<br /> ・エミュレータ(QEMU)での起動<br /> 自分はQEMUでの起動を選択したが、ubuntu版ではなくWindows版QEMUをインストールした。<br /> この場合ビルド・デプロイした一式をWindowsから起動する1手間が必要になるが、VcXsrvのインストール・常駐は不要になる。Windows版は性能に制限がありそうなので、今後限界が来たら諦めてubuntu版QEMUを使用する事にする。</p> <h3 id="バイナリ直打ち結局動かない"><a href="#%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E7%9B%B4%E6%89%93%E3%81%A1%E7%B5%90%E5%B1%80%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84">バイナリ直打ち結局動かない</a></h3> <p>書籍ではまずバイナリエディタで直接HalloeWorld実行ファイルを作成し、それを起動していたが、自分の環境ではどうやっても「Start PXE over IPv4」のエラーが出て正常に起動しなかった。まあ筆者と環境が違ったらその可能性もあるのでは?と、この項目をあきらめて、次に進んだ。</p> <h2 id="1.9"><a href="#1.9">1.9</a></h2> <p>C++で1.4章と同じ内容のソースコードを作成・ビルドしたものを起動したら、こちらは正常起動した。なので1.4章がうまくいかなくても次に進んでしまって問題はないと思う。<br /> そう考えるといろんな環境に対応してるWindowsってすごいなって思った。</p> <h1 id="2章"><a href="#2%E7%AB%A0">2章</a></h1> <h2 id="2.2"><a href="#2.2">2.2</a></h2> <h5 id="git不慣れマン"><a href="#git%E4%B8%8D%E6%85%A3%E3%82%8C%E3%83%9E%E3%83%B3">git不慣れマン</a></h5> <p>書籍に書いてあるcheckoutじゃなくてcloneした。</p> <pre><code class="bash">git clone -b osbook_day02a https://github.com/uchan-nos/mikanos.git </code></pre> <h5 id="EDKⅡビルドでの生成ファイルの場所"><a href="#EDK%E2%85%A1%E3%83%93%E3%83%AB%E3%83%89%E3%81%A7%E3%81%AE%E7%94%9F%E6%88%90%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A0%B4%E6%89%80">EDKⅡビルドでの生成ファイルの場所</a></h5> <p>自分は以下になっていました。<br /> <code>/home/common/edk2/Build/MikanLoaderX64/DEBUG_CLANG38/X64/MikanLoaderPkg/Loader/DEBUG/Loader.efi</code></p> <h2 id="2.5"><a href="#2.5">2.5</a></h2> <h5 id="すすめかた"><a href="#%E3%81%99%E3%81%99%E3%82%81%E3%81%8B%E3%81%9F">すすめかた</a></h5> <p>checkoutして本読んでビルドするだけでは勉強にならなそう、でも写経は大変そうだったので、<br /> 1. 2.2章でcloneしたソースにgithubの該当タブのソース差分を直接コピペして育てていきながら<br /> 2. 本を読んでソース上にコメントで読解内容を書き込み<br /> でやっていく事にする。<br /> <a href="https://crieit.now.sh/upload_images/2b30e9729b2b45bf6fe4eb8e39ef58ee6432de70e084b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2b30e9729b2b45bf6fe4eb8e39ef58ee6432de70e084b.png?mw=700" alt="image.png" /></a></p> uskz tag:crieit.net,2005:PublicArticle/17219 2021-05-21T11:39:15+09:00 2021-05-21T11:39:15+09:00 https://crieit.net/posts/2-OS サーバ入門2 OSインストール及び初期設定 <h1 id="仮想マシンへのOSインストール及び初期設定の流れ"><a href="#%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%B8%E3%81%AEOS%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%8F%8A%E3%81%B3%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%81%AE%E6%B5%81%E3%82%8C">仮想マシンへのOSインストール及び初期設定の流れ</a></h1> <p>OSエディションの選択&インストール<br /> ↓<br /> Administratorパスワード設定<br /> ↓<br /> IPアドレス設定<br /> ↓<br /> IPアドレス設定確認<br /> ↓<br /> リモートデスクトップ設定<br /> ↓<br /> リモートデスクトップでサインイン</p> <h2 id="リモートデスクトップとは"><a href="#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%81%A8%E3%81%AF">リモートデスクトップとは</a></h2> <p><strong>WindowsServerを運用する現場ではかかせないリモート接続機能</strong><br /> セキュリティ上、運用者から離れた場所(データセンター等)に置かれているWindowsServerの画面をネットワーク越しで見たり、操作できる。また、リモートデスクトップクライアントのソフトウェアを使うと、サーバへファイルを送ることも可能。</p> <h1 id="仮想マシンへのOSインストール手順"><a href="#%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%B8%E3%81%AEOS%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86">仮想マシンへのOSインストール手順</a></h1> <p>1.「今すぐインストール」を押す<br /> 2.使用するエディションを選択し、 [次へ]<br /> 3.「同意します」を選択し、 [次へ]<br /> 4.カスタムを選択し、 [次へ]<br /> 5.Windows のインストール場所ではそのまま [次へ]<br /> 6.インストールが始まる。<br /> 7.再起動後、設定の画⾯が表⽰されたらAdministrator のパスワードを設定して完了をクリック<br /> ※Administrator … 最強の権限を持つ管理⽤のユーザ<br /> 8.これでインストールが完了。サインインはVirtualBox仮想マシンの為「右側」のCtrl と Del キー を使う。Altキーは使わない。</p> <h1 id="OSの初期設定の際の注意点"><a href="#OS%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%81%AE%E9%9A%9B%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9">OSの初期設定の際の注意点</a></h1> <p>・初回サイン後しばらくすると「ネットワーク」の画面が出るのでこれを「はい」を選択<br /> はいを選択しないと、パブリックネットワークになり、うまく進めなくなる<br /> ・コマンドプロンプトで「ipconfig/all」のコマンドの際、設定したIPアドレス、DNSサーバーアドレスがは寧されているか確認する。<br /> ・リモートデスクトップをローカルサーバから有効か知ることを忘れない。<br /> ・リモートデスクトップ接続できないときは、<br />  1.クライアントPCでリモートデスクトップ接続アプリを起動しているか<br />  2.Webサーバの動的IPアドレスが変わっているかを確認すること。<br /> ・ファイアウォールの設定で受信に新しい規則(ICMPv4)を追加することを忘れずに。</p> <p># プライベートネットワークへの変更手順<br /> 1.Power Shellを起動する<br /> 2.以下コマンドでパブリックになっているか確認<br /> <strong>Get-NetConnectionProfile</strong><br /> 3.以下コマンドでプライベートに変更する<br /> <strong>Set-NetcoonectionProfile -NetWorkCategory Private</strong><br /> 4.2のコマンドで<strong>プライベートに変更されたことを確認</strong>できたら完了</p> ko00w1 tag:crieit.net,2005:PublicArticle/17199 2021-05-19T15:41:13+09:00 2021-05-19T15:41:13+09:00 https://crieit.net/posts/OS-60a4b309f16a0 OS基礎知識ざっくりまとめ <h1 id="OS(OperatingSystem)とは"><a href="#OS%EF%BC%88OperatingSystem%EF%BC%89%E3%81%A8%E3%81%AF">OS(OperatingSystem)とは</a></h1> <p><strong>ハードウェアの管理や制御などをアプリなどのプログラムに代わってやってくれる。</strong><br /> シングルコアのCPUでyoutube見ながらExcelとかできるのはOSのおかげ<br /> OSの中には<strong>カーネル</strong>と<strong>シェル</strong>というものが組み込まれている</p> <h3 id="カーネル"><a href="#%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB">カーネル</a></h3> <p>ハードウェアのリソースをアプリケーションプログラムに割り当ててくれる</p> <h3 id="シェル"><a href="#%E3%82%B7%E3%82%A7%E3%83%AB">シェル</a></h3> <p>ユーザからの操作の受付をしてくれてるやつ</p> <h1 id="サーバとして使われる二つの代表的なOS"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E3%82%8F%E3%82%8C%E3%82%8B%E4%BA%8C%E3%81%A4%E3%81%AE%E4%BB%A3%E8%A1%A8%E7%9A%84%E3%81%AAOS">サーバとして使われる二つの代表的なOS</a></h1> <h2 id="①Windows Server"><a href="#%E2%91%A0Windows+Server">①Windows Server</a></h2> <p>Microsoftが開発している<strong>企業の社内向けサービス(情報システム系)</strong><br /> <strong>GUI</strong>操作中心。<br /> <strong>ActiveDirectryサービス(パソコンのアクセス権限とかをまとめて管理できるやつ)の機能追加ができる</strong><br /> クライアントに<strong>サービスを提供する機能</strong>が多く追加できる</p> <h2 id="②Linux"><a href="#%E2%91%A1Linux">②Linux</a></h2> <p><strong>OSS</strong>で開発されている<strong>Linuxカーネル</strong>を採用したOS<br /> <strong>リーナス・トーバルズ</strong>が作成<br /> 気軽に使えない<strong>UNIX</strong>を気軽に使いたいがために作った<br /> 無償。コマンド操作(<strong>CLI</strong>)が主流<br /> <strong>LAMP環境</strong>で動作するWebアプリケーションを<strong>社外向けに公開</strong>するために必要なOSとして採用されている。</p> <h6 id="LAMP環境...Linux,Apache,MySQL,PHPの頭文字が由来"><a href="#LAMP%E7%92%B0%E5%A2%83...Linux%2CApache%2CMySQL%2CPHP%E3%81%AE%E9%A0%AD%E6%96%87%E5%AD%97%E3%81%8C%E7%94%B1%E6%9D%A5">LAMP環境...Linux,Apache,MySQL,PHPの頭文字が由来</a></h6> <p>データベースを使ったwebアプリケーションを開発・運用するのに適したOSSの組み合わせの一つ。webアプリケーションとしては、WordPressが非常に有名</p> tobara tag:crieit.net,2005:PublicArticle/17193 2021-05-19T14:50:20+09:00 2021-05-19T14:50:20+09:00 https://crieit.net/posts/OS サーバ入門1 OSの基礎知識 <h2 id="OS(Operating System)"><a href="#OS%28Operating+System%29">OS(Operating System)</a></h2> <p>・・・OSは主にハードウェアの管理や制御などをアプリケーションなどのプログラムに代わって担当する。これらのソフトウェアが動作するのに必要な「CPU」や「メモリ」などのソフトウェアリソースを均等に分け与える役割を持つソフトウェア。<br /> ・OSの中には、ハードウェアリソースやアプリケーションプログラムを割り当てる役割を持つ、<strong>カーネル</strong>やユーザから操作を受け付ける、<strong>シェル</strong>等のプログラムで構成されている。</p> <h2 id="Windows Server"><a href="#Windows+Server">Windows Server</a></h2> <p>・・・Microsoft社が開発している企業の<strong>社内向けサービス</strong>を提供を得意とするサーバ</p> <ul> <li>Linuxと違いマウス操作(GUI操作)が中心</li> <li>Windows10と違い、クライアントに<strong>サービスを提供する機能</strong>が多く追加できる。</li> </ul> <h2 id="Linux"><a href="#Linux">Linux</a></h2> <p>・・・オープンソフトウェア(OSS)で開発されているLinuxカーネルを採用したOS。<br /> ・操作系はWindowsとは異なり、コマンド(CLI)操作が中心。</p> <h3 id="UNIX"><a href="#UNIX">UNIX</a></h3> <p>・・・メインフレームコンピュータ用に開発されたサーバOS</p> <h3 id="オープンソフトウェア(OSS)"><a href="#%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%28OSS%29">オープンソフトウェア(OSS)</a></h3> <p>・・・誰でも改編や再配布ができる自由なソフトウェア。</p> <h1 id="Windows ServerとLinuxの対比表"><a href="#Windows+Server%E3%81%A8Linux%E3%81%AE%E5%AF%BE%E6%AF%94%E8%A1%A8">Windows ServerとLinuxの対比表</a></h1> <div class="table-responsive"><table> <thead> <tr> <th>比較項目</th> <th>Windows Server</th> <th>Linux</th> </tr> </thead> <tbody> <tr> <td>配布元</td> <td>Microsoft社</td> <td>世界中に様々なプロジェクトがあり、数えきれないくらいの種類が存在</td> </tr> <tr> <td>ソース公開</td> <td>クローズドソース</td> <td>オープンソース</td> </tr> <tr> <td>ライセンス</td> <td>有償</td> <td><strong>無償(商用向けのRed Hat等は有償)</strong></td> </tr> <tr> <td>ユーザーインターフェース</td> <td><strong>GUIメイン(マウス操作中心)</strong></td> <td><strong>CLIメイン(キーボード操作中心)</strong></td> </tr> <tr> <td>新技術の採用</td> <td>Linuxよりは遅い</td> <td>早い</td> </tr> <tr> <td>得意分野</td> <td><strong>社内用途(情報システム系)</strong></td> <td><strong>社外用途(Webアプリ系)</strong></td> </tr> </tbody> </table></div> <h3 id="クローズドソース"><a href="#%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%BA%E3%83%89%E3%82%BD%E3%83%BC%E3%82%B9">クローズドソース</a></h3> <p>・・・Microsoft社の中の人にしか見られない、要はブラックボックス</p> <h3 id="オープンソース"><a href="#%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9">オープンソース</a></h3> <p>・・・誰でも、ソースコードがみられる、世界中の技術者が開発に貢献している。</p> ko00w1