- 投稿日:2019-11-12T23:08:17+09:00
OSのいろいろ
未来電子テクノロジーでインターンをしているtokky08です。
OS/Linuxについて勉強したのでアウトプットとして書いていきます。プログラミング初心者であるため、内容に誤りがあるかもしれません。
もし、誤りがあれば修正するのでどんどん指摘してください。OSって何?
OSとは、「オペレーティングシステム」の略のことです。パソコン全てのハードとソフトをユーザーが利用しやすいように管理・制御してくれます。もし端末にOSがなければ、タスクの管理/ファイルの管理/周辺機器の管理/などなどができなくなります。
タスクの管理って何?
端末が行う仕事の管理のことです。複数のウィンドウを開いたり、調べながらWordを使ったりができるのはOSのおかげです。
ファイルの管理って何?
MacだとFinderのようにファイルは階層構造になっていたり、ファイルの名前を変えたり、内容を保存・書き換えたりと言ったことをOSが管理しています。
周辺機器の管理って何?
キーボード、マウス、ディスプレイ、外付けハードディスクなどの動作をOSが管理しています。
Mac
Appleが販売しているコンピュータのMacだけでしか利用できないOSです。
メリット
- UIが整っていてシンプルで使いやすい印象。
- プログラミング環境が整っている。
- アプリのクオリティが高い。
デメリット
- 導入コストが高い。
Windows
Windowsは世界で一番利用されているOSです。日本のほとんどの企業で導入されているPCは、ほぼWindowsです。
メリット
- カスタマイズ性が高い
- Macよりも安い
デメリット
- ウィルスの標的になりやすい
- UIが分かりにくい
Linux
無料かつオープンソースなOSである。
メリット
- 動作が軽い
- シェル・ターミナルが便利
デメリット
- 敷居が高い
- 学習難易度が高い
まとめ
簡潔にまとめましたが、OSにも種類があってそれぞれの利便性があることが分かりました。僕はMacユーザーなので言うまでもなくMacが好きですね。しかし、就職するとなったらWindowsも使う必要性が出てくると思うので慣れておく必要もあるかなと思いました。Linuxに関してはMacがあるからいいやと思っていましたが無料なのでトライしてみたいですね。(腰が重いですが)
- 投稿日:2019-11-12T22:49:26+09:00
LAMP環境構築手順: 仮想環境
LAMP構築: Linux仮想環境作成 by Virtual Box
よくLAMPの仮想環境作成するので手順をまとめてみました。
多分Vagrantとか使ったらいいんでしょうけど、いろんな仮想環境を構築するのでなれもふくめて、まとめていきます。手順通りにやれば1時間以内には終わると思います。
環境依存かもしれないのでisoファイルは似た感じのを使ったほうが苦労は少ないかと。準備
VirtualBoxのインストール
isoファイルのダウンロード
今回使用するisoはCentOsのMinimalを使用しています。仮想環境の作成
VirtualMachineを作成
- タイプ: Linux
- Version: RedHat(64bit)
それ以外の部分はOkOkOKで大丈夫です。
VirtualMachineの設定
- Network: ブリッジアダプター
起動
マウスで操作できなければ、気合でTabを駆使して頑張ってください。
1. ディスクの選択: CentOS-7-x86_64-Minimal-1810.iso
2. INSTALLATION DESTINATION を選択して、Done で戻ると BeginInstallation が選択できる。
3. root password を設定する。
4. しばらくまつ。
5. Reboot ボタンが押せるようになると思うので、それで再起動しましょうLinuxの設定
root ユーザでloginしてください。
Network接続
nmtuiを起動します。
nmtui
- Edit a connection
- enp0s3(一個しかないはず) > Edit
- Automatically connect をTrueにする(SpaceでOn/Off切り替えができる)
- Ok押して、Quitする。
YumのUpdate
yumのUpdateが行えたら、Networkに接続できてます。
yum -y update
Centさんが頑張ってくれます。長いので気長に待ちましょう...
とりあえずこれで、仮想環境の作成ができました。
次は、Apacheのインストールにまいりましょう。LAMP構築: ApacheのInstallataion
ではではApacheをインストールしていきたいと思います。
Apacheのインストールは簡単ですが、SelinuxやFirewallなどに躓くことがあります。
できるだけ楽してやっていきましょうApacheのインストール
# apacheのインストール yum -y install httpd # apache serverの起動を永続化 systemctl enable httpdこれだけです。簡単ですね。
つぎが最初のころにはまる問題点だと思います。Security関係
初期状態だとApacheServerを起動してもアクセスできないので、
設定を行っていきます。firewallにhttpserviceを追加
ファイヤ―ウォールさんが http の接続をはじいちゃいますので、
http をはじかないように設定しましょう。firewall-cmd --zone=public --permanent --add-service httpSellinuxの無効化
本番環境では無効にしてはいけないのですが開発環境なので、無効にするのが楽なので無効にしてしまいます。
vi で /etc/selinux/config 編集しましょう。
viはLinuxのエディターです。
i を押すと編集モードに、esc でコマンドモードになります。
編集が終わったらコマンドモードで :wp と入力し保存しましょうvi /etc/selinux/config/etc/selinux/configSELINUX=disabledでは設定の反映のため再起動します。
rebootChromeで表示
ではChromeでちゃんとアクセスできるか確認しましょう。
Statusの確認
再起動がおわればそれぞれのStatusを確認しましょう
getenforce service httpd status
- getenforce
- Disabled と表示されればOKです
- service httpd status
- Active: active (running) と表示があればOKです。
サイトにアクセス
では実際にWebサイトにアクセスしましょう。
まず ipaddress を確認します。
ip -a
enp0s3: のsectionにある、これっぽいなーってやつがadressです。(最後が255とかやないやつ)
例: 192.168.1.100そのアドレスをChromeのurlに打ち込みましょう。
Testing 123...
と表示されれば接続できてますねー。
表示内容の編集
apacheの初期設定では、/var/html/ がserverのルートDirectoryです。
そこの index.html を最初に参照します。
実際にindex.htmlを作成して、サイトの表示が変わるか試してみましょう。echo "Hello World" > /var/www/html/index.htmlこれで /var/www/html/index.html に Hello World と書き込まれました。
ChromeをReloadして
Hello World
と表示されれば成功です。
以上でApacheのInstallationが完了しました。
次はPHPのInstallationに進みましょう!
LAMP構築: PhpのInstallation
ではではPHP7をインストールしていきたいと思います。
Php7のインストール
デフォルトではyumにphp7が入ってないみたいなので、
yumでインストールできるようにRepositoryを追加してから。
PhpとPhpの基本Libralyをインストールしていきます。# install php7 repo at yum repository. yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm #install php7 yum install -y --enablerepo=remi,remi-php74 php php-gd php-pdo php-mbstring php-xmlインストールができたらApacheを再起動します。
service httpd restart動作確認
では、実際にPhpが動くか確認しましょう。
/var/www/html/ に php_info.php を追加してChromeで表示してみます。echo "<?php phpinfo();" > /var/www/html/php_info.phpではChromeでアクセスしてみましょう。
URLに [ipadress]/php_info.php でアクセスできます。
例: 192.168.1.100/php_info.phpPhpの情報がずらーと表示されればOKです。
これでphpもインストールすることができました!
次はmysqlですね。
LAMP構築: MySqlのInstallation
ではではMySql8をインストールしていきたいと思います。
個人的には最難関。間違ってMysql5をインストールしてからMysql8に戻すとかする時に、ちょっとつかれる...
ここらへんで VirtualBoxのSnapshot に保存とかしとくといつでも戻れるのでチャレンジしやすいかもです。MySql8のインストール
デフォルトではyumにmysqlが入ってないみたいなので、
yumでインストールできるようにRepositoryを追加してから,
MySql8をインストールしていきます。最新のMySqlのRepositoryを確認しましょう
/mysql80-community-release-el7-3.noarch.rpm の部分を最新のに合わせてください。# add mysql-community-server repo at yum repository yum -y install http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm # install mysql server yum -y install mysql-community-serverCentさんがめちゃくちゃ頑張ってくれます。
長いので、猫と戯れるなりして気長に待ちましょう...MySqlの起動
では実際に起動しましょう
# mysqlの起動永続化 systemctl enable mysqld # mysqlの起動 systemctl start mysqld # statusの確認 systemctl status mysqldこれで Active: active (running) になっていればOKです。
MySqlの初期設定
初期パスワード
まずrootユーザーが作成されているので、rootユーザーの初期パスワードを入手しましょう
cat /var/log/mysqld.log | grep rootA temporary password is generated for root@localhost: xxxxxxxxx
xxxxxxxxxx の部分が初期パスワードです。基本はこれで出てくるはずなんですがもしなんか出てこないとなったらここを参照してください
参照先の my.cnf は /etc/my.cnf のことです。自動設定
では初期設定を行います。
mysql_secure_installation を使用して設定します。mysql_secure_installation
- パスワードを聞かれるのでゲットした初期パスワードを入力しましょう。
- 新しいパスワードを設定してください。
- それ以外はすべてEnterを押していけばOKです。
パスワード認証方式の変更
Mysql8のパスワード認証方式にPHPが対応していないので対応している認証方式に変更します。
/etc/my.cnf[mysqld] default-authentication-plugin=mysql_native_passwordすべての設定が完了したらMySqlを再起動しましょう
systemctl restart mysqldMySqlにアクセス
ではrootユーザでアクセスしてみましょう。
下記のコマンドを実行してパスワードを聞かれるの入力してください。mysql -u root -p # アクセスできるとコマンドラインの最初に mysql>と表示される # databaseの一覧を表示 mysql>show databases; # できたらquitしましょう mysql> quitこれでMysqlのInstallationが完了しました。
まとめ
以上LAMPの環境構築でした。
LAMPの環境構築は始めてやるとはまりまくりますが、黒い画面になれるためにも一度一からやってみると勉強になりますよね。仮想環境はめちゃくちゃ便利なのでぜひ活用していきたいと思います。
なんか変になったら消せばいいし、SnapShot機能もあるので戻せますし。次は復習がてらにPhpの自作WebFrameworkを作ろかと思います。
ではその時に会いましょう。
- 投稿日:2019-11-12T15:44:04+09:00
スパコンで急に計算が止まった
スパコンで計算が止まった
今まで計算がイタレーション回数回っていたところ、こんなエラーが出てきた
=>> PBS: job killed: walltime 3627 exceeded limit 3600
なんかリミットが制限されたと書かれている
調べたところ異常終了に関するエラーだそうで
- 経過時間制限による終了
=>> PBS: job killed: walltime 3602 exceeded limit 3600 aprun: Apid 379565: Caught signal Terminated, sending to application
- どうやら経過時間を増やすオプションがあるらしいので実行してみる
会話型でプログラムを実行する場合,経過時間が標準の制限を超えると,プログラムは強制終了されます. -Wオプション を指定することで,時間を上限まで増やすことができます.
-W オプションをつけてやってみた。しかしジョブが回らずに止まってしまったのでジョブを終了させた。
- オプションつけるのはうまくいかなかったのでいったん置いておく。次に計算時間を指定させる方法を使ってみる。
'''
#PBS -l cput=時:分:秒 例) #PBS -l walltime=03:00:00 ジョブの実行時間を最大で3時間まで使用する指定です。'''
無事回ってるっぽいです。
- デフォルトのwalltime
- 今までのwalltime
が分からないと今後同じ壁にぶつかりそうなので、リサーチしようと思います。
- 投稿日:2019-11-12T15:02:51+09:00
Linuxのメモリ管理について(その②)
ページテーブル
カーネルのメモリ内に保存されている。
仮想アドレスから物理アドレスへの変換に用いる表の事を指す。
ページと言われる単位で管理されており、ページテーブル内の1つのページに対応するデータを「ページテーブルエントリ」と呼ぶ。ページテーブルエントリには仮想アドレスと物理アドレスの対応情報が含まれている。ページフォルト
物理アドレスに紐づいていない。仮想アドレスにアクセスした際に起きる事象。
標準ではページフォルトハンドラと呼ばれる実行中の命令を中断する処理が動く。
ページフォルトハンドラはSIGSEGVと呼ばれるシグナルを用いて、プロセスに通知する。
仮想アドレス空間は独立したプロセス事に作成されそれに応じてページテーブルが作成される為、独立した仮想アドレス空間を持っている。
- 投稿日:2019-11-12T02:45:00+09:00
Ubuntuのインストール(ブートUSB作成から)
今回の目的
UbuntuをUSBからブートして、Ubuntuに再インストールすること
ブートUSBを作ろう
今回は、UbuntuOSが元々ある前提になります。
まずは、このページを参考にブートUSBを作成しましょう。(自分も参考にさせてもらいました)
まあ、結局isoイメージなんでDVDに書き込んでも同じですね。ブート順序を変更してUSBからブートさせるようにしよう
では、シャットダウンさせBIOSを起動させましょう。
↑上の画面ですね。ベンダーによって開き方違いますがThinkPadは最初にEnterでした。そして、ブート順序を変えてUSBを1番にしましょう。これを変更しないと永遠とディスクからOS起動しちゃいます笑
再インストール開始!
あとは、USBを刺して再起動を行うだけですね。
ここで、自分は「gfxboot.c32: not a COM32R image」というメッセージに出くわしました
メッセージを読むと「一度tabキーを押して、helpと入力」すると次に進めるみたいです。
もし出てきた方は試してみてください。OSが起動しましたら、GUI操作でインストールするだけです。
デスクトップにインストール用のアイコンがあるのでクリックすれば始まります。
再インストールするとOS上のデータは無くなりますのでバックアップは取っておきましょう。ログインしましょう
デフォルトで「ubuntu」というユーザーがあるので、ログインしましょう。
パスワードは空白ですので何も入力しなくて大丈夫です。完成
ここまででUbuntuのインストールは完了です。
最初に使うだろうコマンドを記載しておきますね。・rootのパスワードの変更(これをしないと、suでrootになれない気が?)
$ sudo su - # passwd root・CLIモードに変更
# init 3