地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2017-01-01から1年間の記事一覧

リバースプロキシ L4/L7のメモ

リバースプロキシ のメモ

構造体の中の構造体

構造体の中のポインタ変数をもつ構造体から各々のメンバに値を代入したい 構造体のメンバーについても、その配列数などが前もって定まらない場合は、 そのメンバをポインタ(必要であればポインタのポインタ)にしておいて、 構造体を確保した後でそのメンバに…

mallocは失敗するのか

malloc(マロック, エムアロック)、free、calloc、reallocは、動的メモリ確保を行うC言語の標準ライブラリの関数である mallocは必ず成功するとは限らない。利用可能な空き領域が無いと失敗するらしい。このご時世メモリ不足って話もあまり聞かないがユーザ…

ポインタを早速入門する

ポインタの前に ポインタの前に、ポインタを理解する上で理解する必要のあるものがひとつあります それはアドレスです。 もっと簡単に言うならメモリの場所です。 プログラムを作成する際に変数などを作成すると その変数はデータ型に応じて、必要な分だけメ…

Test

Tv から

【Bash】entrypoint.sh

#!/usr/bin/env sh usermod -u "${UID}" neovim groupmod -g "${GID}" neovim # su-exec neovim nvim +UpdateRemotePlugins +qa cd "${WORKSPACE}" && su-exec neovim nvim "$@" # su-exec neovim sh

シェルスクリプトでオプション解析

シェルスクリプトのオプション解析 シェルには、コマンドオプションの解析を行う「getopts」というコマンドがあります。 スクリプトに「シェル名 -オプション」のようにオプションを利用して引数を渡したい場合に使用します。 $ which getopt /usr/bin/getop…

osとかの用語

OSの機能 メモリの管理 プロセスの管理 プロセス間通信 ファイルシステム ネットワーク ユーザ管理(権限など) タイマー ファイルディスクリプタ プロセスが起動されるとOSは3つの擬似ファイルを作成する 0:標準入力 1:標準出力 2:標準エラー出力 POSIX系OS…

【AWS】スポットインスタンスとは

AWS

スポットインスタンスとは スポットインスタンスとは、AWSで余剰のインスタンスを入札制で大幅に安い価格で利用できる仕組みです。需要と供給のバランスで価格が決定するため、時には通常のオンデマンドインスタンスで利用するときより高い価格になる場合も…

アセンブラでHello World

環境 Windows Subsystem for Linux Windows 10 Home 64bit Ubuntu ソース等 ソース msg: .ascii "hello, world\n" .globl _start _start: mov $1,%rax # write mov $1,%rdi # stdout mov $msg,%rsi # addr mov $13,%rdx # len syscall mov $60,%rax # exit m…

デバッグの心得

バグとは 自分の意図したとおりにプログラムが動かない状態のことなどをバグと言います。 デバッグとは バグの原因を調べ、問題を解決する一連の作業をデバッグと言います。 一般的にプログラムが意図したとおりに動かない原因には「内的要因」と「外的要因…

ELFとは

ELFとはコンパイラが生成するオブジェクト。 ライブラリとリンクされた実行ファイルのフォーマットである。 読み方はエルフ

プリプロセッサを使ったデバッグ法

プリプロセッサ指令を使ってデバッグモードを付けてみる カウンタ変数iの値を調べるためにprintf文を挿入した九九プログラム 計算途中の結果は何も表示されない。本番の仕様でも計算結果が必要ないがどこかでバグがあるかもしれない #include <stdio.h> int main(void</stdio.h>…

UEFIとBIOSの話

UEFIとBIOSの違い UEFI(Unified Extensible Firmware Interface)とはマザーボードに保存されているプログラム OSが起動する前にパソコンに接続されているハードウェアの制御を行うもの UEFIが登場する前はBIOSがUEFIの代わりを担っていた。 BISO自体は現役で…

Linuxカーネルの機能の概要

カーネルって何をするのか調べた記事 プロセス管理 プロセス生成・消滅 スケジュラ ファイルシステム 名前空間管理 VFS ext2, etc3, JFS, ReiserFS, XFS, ISO9660... ネットワークファイルシステム ** デバイスファイル プロセス間通信 セマフォ メッセージ…

sizeof演算子

sizeof演算子は2種類の使い方があります. sizeof(型) sizeof 変数や定数,あるいは式など 1:(struct _data*)0 0をポインタと見なして、struct _data型にキャスティングする。 2:((struct _data*)0)->C キャスティングした結果をもとに、変数Cを参照する。 3…

【ネットワーク】サブネットマスクの計算

サブネットマスク計算(IPv4)/サブネット一覧(早見表)

【Linux】カーネルソースを読む勘所

arch arch サブディレクトリには、アーキテクチャ(architecture)固有の カーネルコードが含まれている。 さらに深いサブディレクトリがあり、たとえば、i386 や alpha と いったサポートするアーキテクチャごとに分かれている。 include include サブディレ…

32bitと64biの違いって?

ビットとは 「bit」とはコンピュータの扱う情報の最小単位のことであり「binary digit」の略 CPUの違い 32bitと64bitというのはCPUの違いである。 CPUのビット数はcpuinfoコマンドとかで見れる 32bitと64bit 「記憶装置のbit幅」が違うというのが一番 ここで…

【Linux】LinuxのTip集

コマンド基本+α 省略しない名前 省略しない名前を知っているとちょっとした時に役に立つかも? cd : change directory pwd : print working directory mv : move cp : copy ls : list ln : link teeでリダイレクト リダイレクトと言えば>であるがこれだと実…

yum コマンド tips

インストール可能なパッケージの一覧の表示 # yum list available インストール済みのパッケージの一覧の表示 # yum list installed 省略されたパッケージグループも含めてグループの一覧を確認する # yum grouplist hidden インストールするパスを指定する …

【Linux】procを綺麗に見る

"/proc/${PID}/environ"をみるときにcatだと末尾が改行じゃなく\0 (NULL文字)のため見辛い そんな時はstringsコマンドを使うと良いことに気づいた $ strings /proc/29732/environ LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin …

Dartでファイル操作する

dartでファイルを読む入門としてはstreamが一番速そう import 'dart:io'; import 'dart:convert'; void main() { new File("something.text").openRead() .transform(UTF8.decoder) .transform(const LineSplitter()) .forEach((line) { print("> $line"); }…

おひさしぶりです

お久しぶりです。 入社して早半年が経ちました。 せっかくなのでここまでの振り返り。 4~6月 研修 7~10 実務 言語は主にBashとC言語。 古くからあるプログラムですね。 正直未経験入社してよくわからないまま日が立っている気がします。 まあこれからも頑張…

PCが起動するまで

PCが起動するまで ①PCの電源を入れる ②マザーボードのBIOS(Basic Input Output Subsystem)が起動する ※BIOSは周辺機器との間の入出力を制御するためのプログラム ③このときBIOSは、ハードウェアリセットの割り込みが発生したものとして、あらかじめ設定され…

【Linux】監視の便利コマンド

# CPU使用率が高いプロセス watch -n 2 "ps aux| sort -nk +3 | tail" or watch -n 2 "ps aux| sort -nk +4 | tail" # swap使用中のプロセス grep VmSwap /proc/*/status | sort -k 2 -nr # ファイルサイズが大きい順 du -b | sort -n | numfmt --to=iec --s…

RASISとは

Reliability(信頼性) Availability(可用性) Serviceability(保守性) Integrity(保全性) Security(機密性)

内積を求める

内積を求めるプログラム 2 つのベクトルの内積は高校数学当たり範囲 プログラムで書くとすごく簡単に求まるんだなーって感慨深い /* header files */ #include <stdio.h> #include <stdlib.h> /* functions */ double InnerProduct(double *, double *, int); /* main */ int ma</stdlib.h></stdio.h>…

カテゴリ用記事

カテゴリ用

カテゴリ用

カテゴリ用の記事