2018年07月17日

「ARMで学ぶアセンブリ言語入門」を読みながら、qemu-arm -L /usr/arm-linux-gnueabi/ helloworld.elf 実行してARMプロセッサ向け実行可能ファイルをQEMUを通して実行してみた

OS:Ubuntu18.04です。

「ARMで学ぶアセンブリ言語入門」を読みながら、P38 はじめてのクロス開発、
を実際に実行してみました。

まずは、パッケージのインストールから。

0.準備
apt install qemu
apt install qemu-kvm
apt install gcc-arm-linux-gnueabi
apt install libc6-armel-armhf-cross

apt install qemu-kvm-extras <=これはパッケージが無かった(PPAだとあるかな?)


1.ソース
  helloworld.c
----------------------
#include

int main(int argc,char argv[]){
printf("hello,world\n");
return 0;
}


2.ビルド
 クロスコンパイラ「arm-linux-gnueabi-gcc」でビルドします。
 -LでダイナミックリンクライブラリをPATH指定します。

arm-linux-gnueabi-gcc -o helloworld.elf helloworld.c


3.実行

qemu-arm(QEMUのARMプロセッサ向けユーザーエミュレーションモード)で実行します。

$ qemu-arm -L /usr/arm-linux-gnueabi/ helloworld.elf


helloworld.elf を通常のgccでコンパイルした実行可能ファイルと比較すると、


objdump -h helloworld.elf

15 .ARM.exidx とか  24 .ARM.attributesなどが表示されていることが確認できます。

通常のIntel CPUでの実行可能ファイルと違うので、これから調べてみます。


●参考1
http://blog.kmckk.com/archives/4950141.html
.ARM.exidxセクションは、libgcc によって使用される C++ の例外処理用コード等が含まれるセクション 、らしい。


●参考2
http://nsaito-nmiri.hateblo.jp/entry/2015/05/22/201534



◎ARMで学ぶアセンブリ言語入門:円

ARMで学ぶ アセンブリ言語入門
ARMで学ぶ アセンブリ言語入門



◎リンカ・ローダ実践開発テクニック:円
リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術 (COMPUTER TECHNOLOGY)
リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術 (COMPUTER TECHNOLOGY)




●追記

readelf -h helloworld.elf を実行すると、ARM と表示されていますね。

ELF ヘッダ:
マジック: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
クラス: ELF32
データ: 2 の補数、リトルエンディアン
バージョン: 1 (current)
OS/ABI: UNIX - System V
ABI バージョン: 0
型: EXEC (実行可能ファイル)
マシン: ARM
バージョン: 0x1
エントリポイントアドレス: 0x1030c
プログラムの開始ヘッダ: 52 (バイト)
セクションヘッダ始点: 6876 (バイト)
フラグ: 0x5000200, Version5 EABI, soft-float ABI
このヘッダのサイズ: 52 (バイト)
プログラムヘッダサイズ: 32 (バイト)
プログラムヘッダ数: 9
セクションヘッダ: 40 (バイト)
セクションヘッダサイズ: 29
セクションヘッダ文字列表索引: 28



検索していると、なにやら凄い役立ちそうなサイトも見つかったので、
リンクしておく。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0474ej/DHCCFGFG.html




$ file helloworld.elf を実行すると、どのCPUアーキテクチャ向け実行可能ファイルか
確認可能です。

helloworld.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=2a3eca168ccd376d0766be5df41db9762a915f46, not stripped



次は、P56 はじめてのアセンブリプログラミング(2つの値を加算する)、です。
posted by アンドレアス at 08:47| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年07月16日

特集1Linux&ラズパイで楽するレシピ30より、expectとrenameを使ってみた!(日経Linux2018年7月号)

Ubuntu18.04に expectとrenameをインストールして
早速使ってみました。便利ですね。

expectって、操作の自動記録出来たんだな。
値入力する場合に使ったことがありましたが、
操作記録出来るとは知らなかった(忘れたのではないはず)


# apt install expect
# apt install rename

@expect
$autoexpect -f example.exp

cd /tmp/
ls test*
rm -i test*
y
y
y
exit



確認
touch /tmp/test1 /tmp/test2 /tmp/test3
./example.exp
ls -la /tmp/



Arename

touch 1.jpeg
touch 2.JPG
touch 3.JPEG


rename -n 's/\.(jpeg|JPG|JPEG)/\.jpg/' *

rename -v 's/\.(jpeg|JPG|JPEG)/\.jpg/' *


Pythonを使うSelenium Driverのスクリプトも動かしました。
Firefoxがデフォルトでインストールされていないので、
インストールしたり、若干手間がかかりますが、動きました。

Fedora28等でも動作させてみます。
一通り動作したら、アップします。



◎日経Linux 2018年 7 月号:1,890円
日経Linux 2018年 7 月号
日経Linux 2018年 7 月号


◎日経Linux 2018年 5 月号:円
日経Linux 2018年 5 月号 -
日経Linux 2018年 5 月号 -
posted by アンドレアス at 23:25| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年07月15日

第1特集 vim絶対主義を読みながら(ソフトウェアデザイン 2018年7月号)、Ubuntu18.04に最新Vim(GTK3版)をインストールする

今日も暑いですね〜。
攻殻機動隊を見ながら、第1特集 vim絶対主義を参照して
Ubuntu18.04に最新Vim(GTK3版)をインストールしてみました。

1.OS
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"


2.Vimインストール
sudo apt install openssh-server

sudo apt install git
cd
mkdir -p work/github
cd !$
git clone https://github.com/vim/vim.git

sudo apt install -y git build-essential libtinfo-dev
sudo apt install -y python3-dev libxmu-dev libxpm-dev libgtk-3-dev

vi copt.txt

--enable-gui=gtk3 --enable-python3interp=dynamic --enable-fail-if-missing

cd vim/
./configure $(cat ../copt.txt)
make
sudo make install


3.vim設定
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 100
sudo update-alternatives --install /usr/bin/vim vim /usr/local/bin/vim 100
sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 100

sudo apt install -y curl

curl https://raw.githubusercontent.com/h-east/dotfiles_simple/master/.vimrc -O
curl https://raw.githubusercontent.com/h-east/dotfiles_simple/master/.gvimrc -O

ls -la

mkdir -p .vim/pack/my/start
mkdir -p .vim/pack/my/opt
cd !$
git clone https://github.com/vim-jp/vimdoc-ja.git


4.vim起動
:helptags $HOME/.vim/pack/my/opt/vimdoc-ja/doc


:help




◎ソフトウェアデザイン 2018年7月号:円
ソフトウェアデザイン 2018年7月号
ソフトウェアデザイン 2018年7月号


◎Software Design総集編【2013~2017】:2,160円
4年分の記事がこのコスパで読めます、特に若手や転職者におススメです。Software Design総集編【2013~2017】
Software Design総集編【2013~2017】
posted by アンドレアス at 13:05| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年06月29日

発売中!WEB+DB PRESS Vol.105の面白かった記事は・・・・これ!

昨晩の日本V.Sポーランドですが、
非常にストレスの溜まる試合でしたが、
決勝トーナメントに進んだので、結果良しですね。

次の試合に良いコンディションで臨める選手が多いのは
良いことです。

・・・
さて、WEB+DB PRESS Vol.105 ですが、

(つづく)

◎WEB+DB PRESS Vol.105:1,598円
WEB+DB PRESS Vol.105
WEB+DB PRESS Vol.105

Firebase大活用は、ありそうで無かった内容のため、
こちらも大注目です。


◎ソフトウェアデザイン 2018年7月号:円
ソフトウェアデザイン 2018年7月号
ソフトウェアデザイン 2018年7月号


◎Software Design総集編【2013~2017】:2,160円
4年分の記事がこのコスパで読めます、特に若手や転職者におススメです。Software Design総集編【2013~2017】
Software Design総集編【2013~2017】
sakubann
posted by アンドレアス at 09:17| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

CentOS6.9のチェック箇所です。

CentOS6.9のチェック箇所です。

1.hostname


2./etc/sysconfig/network
Before
HOSTNAME=ホスト名
After

3./etc/sysconfig/network-scripts/ifcfg-eth0
Before

DEVICE=eth0
TYPE=Ethernet
####UUID=fa743702-18ad-4fa8-84a0-2f8292b3a3ab
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:XX:XX:XX
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
IPADDR=10.10.10.10
NETMASK=255.255.255.0
IPADDR2=10.10.10.11
NETMASK2=255.255.255.0
After


4./etc/udev/rules.d/70-persistent-net.rules
Before
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
After


5./etc/sysconfig/network-scripts/ifcfg-何とかかんとか


6.アンチウイルスソフト(GUID)


◎Linuxシステムコール基本リファレンス ──OSを知る突破口:円
Linuxシステムコール基本リファレンス ──OSを知る突破口 (WEB+DB PRESS plus)
Linuxシステムコール基本リファレンス ──OSを知る突破口 (WEB+DB PRESS plus)


◎[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識:円
[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識
[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識


◎Linuxとpthreadsによる マルチスレッドプログラミング入門:円
Linuxとpthreadsによる マルチスレッドプログラミング入門 (プログラミング基礎講座)
Linuxとpthreadsによる マルチスレッドプログラミング入門 (プログラミング基礎講座)

posted by アンドレアス at 09:15| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年06月27日

Amazon Linux 2のLTS(Long Term Support)が正式版になったようだ・・・


「Amazon Linux WorkSpaces」リリース。マネージドなLinuxの仮想デスクトップをクラウドから提供
https://www.publickey1.jp/blog/18/amazon_linux_workspaceslinux.html

を読んでいくうちに、最後の方に

Amazon Linux 2のLTS(Long Term Support)が正式版になったことも発表されました。


だそうです。

本家のアナウンスはこれですね。↓
https://aws.amazon.com/jp/about-aws/whats-new/2018/06/announcing-amazon-linux-2-with-long-term-support/

見つけるのに時間がかかりました。


◎Amazon Web Services パターン別構築・運用ガイド 改訂第2版:円
Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)
Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)

◎Amazon Web Services 業務システム設計・移行ガイド:円
Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)
Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)


◎合格対策 AWS認定ソリューションアーキテクト - アソシエイト:円
合格対策 AWS認定ソリューションアーキテクト - アソシエイト
合格対策 AWS認定ソリューションアーキテクト - アソシエイト

posted by アンドレアス at 07:28| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年06月24日

いよいよ、日本V.Sセネガル!footballista 2018 RUSSIA WORLD CUP GUIDEBOOKを片手にセネガルの選手をチェックする

頑張れ、日本!

試合終了の2時頃まで、眠らずに応援するぞ!!



◎月刊フットボリスタ 2018年7月号:円
月刊フットボリスタ 2018年7月号
月刊フットボリスタ 2018年7月号


◎footballista 2018 RUSSIA WORLD CUP GUIDEBOOK:円
footballista 2018 RUSSIA WORLD CUP GUIDEBOOK (月刊footballista)
footballista 2018 RUSSIA WORLD CUP GUIDEBOOK (月刊footballista)


◎Number(ナンバー)954・955・956号 日本代表 未来を懸けて。 WORLD CUP RUSSIA 2018:円
Number(ナンバー)954・955・956号 日本代表 未来を懸けて。 WORLD CUP RUSSIA 2018 (Sports Graphic Number(スポーツ・グラフィック ナンバー))
Number(ナンバー)954・955・956号 日本代表 未来を懸けて。 WORLD CUP RUSSIA 2018 (Sports Graphic Number(スポーツ・グラフィック ナンバー))


posted by アンドレアス at 23:53| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年06月23日

発売まであと2時間1分、付録付き!特集の「新 乗っ取り&詐欺防衛術32」を読みたい!「日経PC21 2018年 8 月号」

いつの間にか毎月購入するようになってしまった日経PC21ですが、
今月は付録がついてます。

特集の「外付けHDDで悩み全解決」は
役立ちそうです。

バックアップ用途で先日、USB 接続の3TB HDDを買ったばかりですが、
ポータブルも価格が安くなっているので、
特集を読んでVM等もUSBに保存していこうと考えているところです。

◎日経PC21 2018年 8 月号:780円
日経PC21 2018年 8 月号
日経PC21 2018年 8 月号



◎日経PC21 2018年 7 月号:690円


posted by アンドレアス at 08:02| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2時間8分後発売開始!特集 サーバーレスは真っ先に読みたい「WEB+DB PRESS Vol.105」

明日24日が日曜日のため、今日発売開始です。
書店が開店次第、即買います。


◎WEB+DB PRESS Vol.105:1,598円
WEB+DB PRESS Vol.105
WEB+DB PRESS Vol.105

Firebase大活用は、ありそうで無かった内容のため、
こちらも大注目です。


◎ソフトウェアデザイン 2018年7月号:円
ソフトウェアデザイン 2018年7月号
ソフトウェアデザイン 2018年7月号


◎Software Design総集編【2013~2017】:2,160円
4年分の記事がこのコスパで読めます、特に若手や転職者におススメです。Software Design総集編【2013~2017】
Software Design総集編【2013~2017】
posted by アンドレアス at 07:55| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする

2018年06月19日

再読しても面白さは変わらず!「理系の子」

冒頭から面白くて、読み始めると止まらなくなります。

読むのは、2回目!

面白さは、変わらず。
核にとり憑かれた少年が、ガイガーカウンターを入手したり
電子レンジでプラズマを発生させたり・・・など、
次から次へと、興味をそそるシーンが連続しています。

必読の1冊です。

◎理系の子:円

理系の子 高校生科学オリンピックの青春 (文春文庫 S 15-1)
理系の子 高校生科学オリンピックの青春 (文春文庫 S 15-1)

◎フェルマーの最終定理:円
フェルマーの最終定理 (新潮文庫)
フェルマーの最終定理 (新潮文庫)
posted by アンドレアス at 07:20| Comment(0) | vi上級 | このブログの読者になる | 更新情報をチェックする