547 行
61 KiB
XML
547 行
61 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
|
||
<id>gemini://technicalsuwako.moe</id>
|
||
<title>テクニカル諏訪子</title>
|
||
|
||
<updated>2024-04-23T00:00:00Z</updated>
|
||
|
||
<author><name>テクニカル諏訪子</name></author>
|
||
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
||
|
||
|
||
|
||
<entry>
|
||
<id>blog/which-openbsd-netbsd-freebsd.gmi</id>
|
||
<author><name>凛</name></author>
|
||
<title type="html">【BSD】OpenBSD、NetBSD、FreeBSD、どっと使っては良い?</title>
|
||
<published>2024-04-23T00:00:00Z</published>
|
||
|
||
<category term="jp"></category>
|
||
|
||
<category term="blog"></category>
|
||
|
||
<category term="linux"></category>
|
||
|
||
<category term="openbsd"></category>
|
||
|
||
<category term="freebsd"></category>
|
||
|
||
<category term="netbsd"></category>
|
||
|
||
<category term="bsd"></category>
|
||
|
||
<link href="gemini://technicalsuwako.moe/blog/which-openbsd-netbsd-freebsd.gmi" rel="alternate"></link>
|
||
<content type="html">
|
||
|
||
|
||
|
||
<p><a href="/blog/digital-autonomy-linux-to-openbsd.gmi">あたしの前の投稿を覚えているかもしんが、あたしは最早Linuxを使用していません。</a><br />
|
||
その代わりにOpenBSDを使用しています。<br />
|
||
最近、長年Linuxを使用してきたユーザーがBSDに移行する事が流行っていましたが、多くの人々がどちらを選択すべきか迷っています。<br />
|
||
その為、この記事の終わりまでに、より良い理解を得て頂けると嬉しいです。</p>
|
||
<h2 id="linuxbsd">LinuxとBSDの違い</h2>
|
||
<p>説明する前に、まずLinuxとBSDの違いを説明したいと思います。</p>
|
||
<p>LinuxはOSではなく、カーネルであり、幾つかのコアユーティリティ(主にGNUから、一部の軽量な物はbusyboxを使用する場合もあります)、幾つかのブートローダー、幾つかのinitシステム、幾つかのlibc、幾つか又は複数のパッケージマネージャー、幾つかのウィンドウマネージャー又はデスクトップ環境、その他のツールのセット等、全てが完全に分離されて開発され、それらを組み合わせると機能するOSが出来ます。<br />
|
||
一方、BSDは其々が1つの専任チームによって完全なOSとして開発され、全ての技術が同じ開発者から提供される為、全てがよりうまく動作し、全てがより良く計画され、利害の衝突がありません。</p>
|
||
<p>Linuxには独自のやり方があり、Unixの世界では「Linuxism」と呼ばれ、Linuxは設計上、POSIX準拠を破る事で、BSDのメンテナや他のUnixベンダーがソフトウェアを移植するのを難しくしていますが、BSDのソフトウェアをSystemV Unixやその逆に移植するのは殆ど問題ありません。<br />
|
||
又、主要な関係者の間には一般的に切り離しがあります。<br />
|
||
何故なら、Linus Torvalds氏はGNUやRed Hat、Lennard Poettering氏、Richard Stallman氏、Microsoft、Google、Cloudflare等とは異なる物を望んでいるからです。<br />
|
||
BSDは伝統的なUnixの精神に忠実であり、それがあたしがGNU Makeの代わりにBSD Make、GNU Tarの代わりにBSD Tarを使用する理由です。</p>
|
||
<p>LinuxはGPLv2でライセンスされており、一部のソフトはAGPL、LGPL、又はGPLv3です。<br />
|
||
これは非常に攻撃的なライセンスであり、非常に注意深く読むと、貴方が書いたコードの所有権は貴方にはなく、FSF(Free Software Foundation)が所有しており、商業利用には使用出来ない事を意味します。<br />
|
||
NetBSDとFreeBSDは2条項BSDライセンスされており、OpenBSDはISCライセンスであり、開発者がコードを所有し、他の誰もが開発者の苦労に対する認識を得ながら、コードを自由に使用できます。</p>
|
||
<p>LinuxディストリビューションとBSDバリアントのユーザーは、どちらも自分の選択したディストリビューションやOSに非常に忠実です。<br />
|
||
しかし、Linuxでは彼らはお互いを本当に好きではないようです。<br />
|
||
その為、ArchユーザーはUbuntuユーザーと仲良くなれず、FedoraユーザーはGentooユーザーと仲良くなれず、AlpineユーザーはOpenSUSEユーザーと仲良くなれず、等です。<br />
|
||
一方、BSDユーザーはお互いに遥に友好的です。<br />
|
||
彼らは未だLinuxユーザーと同様に自分の選択したOSに誇りを持っていますが、通常、お互いをより尊重して扱います。<br />
|
||
これは、より一般的に使用されていない事の副作用かもしん。w</p>
|
||
<p>Linuxには様々なinitシステムがあります。<br />
|
||
最初はSysV Initでしたが、殆どのディストリビューションで広く嫌われるSystemDに置き換えられました。<br />
|
||
しかし、CRUXやVenom等のBSD形式のRCスクリプト、OpenRC(Gentoo、Artix、Alpine)、runit(Void、Artix)、s6(Artix)、sinit(Suckless)、dinit(Artix)等、遥にシンプルなシステムもあります。<br />
|
||
全てのBSDはinitシステムを持っておらず、代わりに各BSDバリアントが独自のスタイルで開発したRCスクリプトを使用します。</p>
|
||
<p>Linuxは徐々にWindowsのようになっていき、Windowsを離れたいと考えている人々に対応する為、Unixライクなシステムの気持ちから徐々に離れています。<br />
|
||
その為、Microsoft WindowsやApple macOSのユーザーにとっては、広範な開発者対応、システムが相互に似ている事、及びWindowsやmacOSの経験を持つユーザーがより多い為、Linuxへの移行がBSDへの移行よりも遥に容易です。<br />
|
||
一方、BSDは出来るだけ元のUnixに近づこうとする傾向があります。<br />
|
||
その為、Sillicon Graphics IRIX、HP UX、IBM AIM、Sun/Oracle Solaris、SGO UnixWare、Microsoft Xenix等の商用Unixのユーザーは、POSIX準拠の厳格さと全体的な馴染みから、Linuxへの移行よりもBSDへの移行が遥に簡単です。</p>
|
||
<p>Linuxでは、システムに問題が発生した場合、オンラインで掲示板で質問したり、オンラインで検索したりするのが非常に一般的です。
|
||
一方、BSDでは、manページを読む事、又は公式ハンドブック(FreeBSD)や公式FAQ(OpenBSD・NetBSD)を読む事が遥に一般的です。
|
||
これらは全て非常にわかりやすく書かれており、貴方が持つ可能性のあるどんな問題でも解決する為に必要な情報を全て含んでいます。</p>
|
||
<h2 id="bsd">BSDの基本</h2>
|
||
<p>4つの主要なBSDバリアントがあります。<br />
|
||
それらはFreeBSD、OpenBSD、NetBSD、及びDragonfly BSDです。<br />
|
||
Dragonfly BSDについては十分な知識がないので、FreeBSD、OpenBSD、及びNetBSDのみを扱います。<br />
|
||
Darwinカーネルの為、macOSもBSDですが、その上位レベルは全てAppleの所有物ですが、BSDのバリアントとしては含まれません。</p>
|
||
<p>4つのBSDを出来るだけ簡潔に説明すると:</p>
|
||
<ul>
|
||
<li>FreeBSDはパフォーマンスに関する物です</li>
|
||
<li>OpenBSDはセキュリティとコードの正確さに関する物です</li>
|
||
<li>NetBSDは移植性に関する物です</li>
|
||
<li>Dragonfly BSDはスケーラビリティに関する物です</li>
|
||
</ul>
|
||
<p>サーバーユーザーにとって、これで十分かもしん。<br />
|
||
しかし、デスクトップユーザーにとっては未だ不明瞭なので、あたし自身の経験を説明します。<br />
|
||
何故なら、あたしはFreeBSD、OpenBSD、及びNetBSDを毎日使用し、3つ全てに開発し、コンパイルし、実験しているからです。</p>
|
||
<p>多くの場合、全てのBSDはパフォーマンス、セキュリティ、移植性、及びスケーラビリティを目指していますが、各個のBSDは其々がその中の1つで最も優れています。</p>
|
||
<p>あたしの友人の中で:
|
||
<a href="http://chaotic.ninja/">テクニカル魔理砂さんはFreeBSDを使います。</a>
|
||
<a href="http://6wyvgarb3kht6umsqdjrkmwxhfobre24cr6bkmjszu4ngtuezjd45mqd.onion/">美々蝶々さんはOpenBSDを使います。</a>
|
||
<a href="https://nishi.boats/mejp/">にしさんはNetBSDを使います。</a></p>
|
||
<p>あたしはOpenBSDのロリで、これがあたしの主要な選択OSです。<br />
|
||
そして、ここからはデスクトップユーザーの視点からの比較のみを行います。</p>
|
||
<h2 id="freebsd-vs-openbsd">FreeBSD vs OpenBSD</h2>
|
||
<p>これら2つを比較するのは奇妙だと思います。<br />
|
||
何故なら、それらは完全に異なる方向に成長してきたからです。<br />
|
||
FreeBSDはNetBSDと同様に4.4BSDから派生していますが、OpenBSDはNetBSDから派生しています。<br />
|
||
しかし、これは最も一般的な比較です。<br />
|
||
何故なら、これらが最も大きな2つのBSDだからです。</p>
|
||
<p>一般的に、OpenBSDはサーバー用に作られた物だと信じられています。<br />
|
||
これは多くのサーバーソフトウェアが付属しており、セキュリティがサーバーにとって非常に重要である為ですが、家庭用ユーザーにとってはあんま重要ではありません。<br />
|
||
しかし、この声明は完全に間違っています。<br />
|
||
実際、FreeBSDの開発者はMacbookを使用し、FreeBSDを仮想マシンで実行していますが、OpenBSDの開発者は実際には自分のThinkPadノート、自分のパソコン、自分のサーバー、自分の全てで自分のOSを使用しています。<br />
|
||
両方のシステムをデスクトップとして使用し始めると、これが非常に明らかになります。<br />
|
||
何故なら、OpenBSDには独自のX11のソフトフォーク、独自のウィンドウマネージャー、及びデスクトップを起動及び実行する為に必要な全ての物が付属しているが、FreeBSDにはそうではないからです。<br />
|
||
更に、OpenBSDはFreeBSDよりもWiFi及びGPUドライバーの対応が広範囲に渡っています。<br />
|
||
その為、WiFiドライバーがFreeBSDで動作しない場合、OpenBSDでは動作する可能性がありです。<br />
|
||
又、AMD Radeonカードでは、特にFreeBSDが意外にも不安定であると感じました。<br />
|
||
但し、Intel HD Graphicsカードでは安定性の違いは殆どありません。</p>
|
||
<p>但し、FreeBSDは非常に高速であり、OpenBSDは全てのBSDの中で最も遅いです。<br />
|
||
FreeBSDは様々なファイルシステムを対応しており、ZFSもネイティブファイルシステムの様に扱われますが、OpenBSDは他のOSの殆どのファイルシステムを対応していません。<br />
|
||
これがあたしがNASにFreeBSDを実行し、全ての異なるOS間でファイルを共有する方法としてNFSを使用する理由です。<br />
|
||
何故なら、それは全てのOSで動作するからです。<br />
|
||
又、FreeBSDはある程度Linuxバイナリを実行出来ますが、OpenBSDは出来ません。</p>
|
||
<p>OpenBSDには独自のテクノロジーが沢山あります。<br />
|
||
その為、PAMの代わりに<code lang="">/etc/login.conf</code>を使用し、ALSA/PulseAudio/Pipewireの代わりに<code lang="">sndio</code>を使用し、Apache2/nginxの代わりに<code lang="">httpd</code>と<code lang="">relayd</code>を使用します。<br />
|
||
一方、FreeBSDは1990年代と2000年代初頭に多くのソフトウェアを作成していましたが、OracleがSunを買収した後、OpenSolarisから多くの技術を採用しました。</p>
|
||
<p>FreeBSDが一般的にデスクトップOSと見なされ、OpenBSDがサーバーOSと見なされる一方で、あたしは実際にはFreeBSDをNAS及びルーターOS、OpenBSDをデスクトップ及びサーバーOSとして考えています。</p>
|
||
<h2 id="openbsd-vs-netbsd">OpenBSD vs NetBSD</h2>
|
||
<p>この比較はより意味があると思います。<br />
|
||
何故なら、OpenBSDは非常に早い段階でNetBSDからフォークされた為、多年にわたり大きく分かれてきました。<br />
|
||
しかし、それでも、これら2つはお互いに多くの類似点を共有しています。<br />
|
||
両方とも独自のX11のソフトフォークを搭載しており、両方ともDMが付属しており、両方とも1つ以上のWMが付属しており、両方ともシンプルさと最小限主義を目指しており、両方とも安定性を目指しており、両方とも多くのハードウェアアーキテクチャを対応しており、両方とも開発者志向であり、非常に友好的で助けになるコミュニティを持っています。</p>
|
||
<p>但し、性能の面では、NetBSDの方が明らかに優れています。<br />
|
||
何故なら、NetBSDはOpenBSDよりも速いからです。<br />
|
||
しかし、セキュリティの面では、明らかにOpenBSDの方が遥に優れています。<br />
|
||
OpenBSD程安全なOSはありません!</p>
|
||
<p>NetBSDにはOpenBSDにはない特定のパッケージがあり、OpenBSDにはNetBSDにはない特定のパッケージがありますが、どちらも非常に多くのソフトを提供しています。<br />
|
||
あたしはOpenBSDの方がNetBSDよりも可也意見が強いと感じます。<br />
|
||
場是なら、OpenBSDの開発者は自分達が使いたいソフトを作成するからですが、NetBSDはそれ程そうではない感じです。</p>
|
||
<p>NetBSDとFreeBSDの両方で、変更はユーザーによって投票されます。<br />
|
||
一方、OpenBSDではTheo de Raadt氏が最終的な決定権を持っています。</p>
|
||
<p>NetBSDにはOpenBSDとFreeBSDの両方に欠けている本当に素敵な物があります。<br />
|
||
それは第一者のソフト、第三者のソフト、及びパッケージマネージャからインストールされたソフトの非常に明確な区別です。<br />
|
||
NetBSDが直接作成又はメンテナンスする全ての物は<code lang="">/usr</code>に入ります。<br />
|
||
<code lang="">pkgin</code>又は<code lang="">pkg_add</code>を使用してインストールされた全ての物は<code lang="">/usr/pkg</code>に入り、<code lang="">make install</code>を使用して自分でコンパイルした全ての物は<code lang="">/usr/local</code>に入ります。<br />
|
||
一方、FreeBSDとOpenBSDでは、自己コンパイルとパッケージマネージャでインストールされたソフトの区別はありません。<br />
|
||
その為、どちらの場合も<code lang="">/usr/local</code>に入ります。</p>
|
||
<p>NetBSDとOpenBSDは両方ともソフトをインストールする為に<code lang="">pkg_add</code>を使用しますが、NetBSDは非常にパフォーマンスの高い新しいパッケージマネージャである<code lang="">pkgin</code>も開発しました。<br />
|
||
これはFreeBSDの<code lang="">pkg</code>のパフォーマンスを思い起こさせます。<br />
|
||
但し、OpenBSDとその第一者のソフトはこれまでで最も一貫性があり、全てが非常に簡単に設定出来、最後の詳細まで説明されています。</p>
|
||
<p>OSのインストールに関して、OpenBSDは世界一簡単にインストール出来るOSです。<br />
|
||
インストールは通常、数分で完了します。<br />
|
||
一方、NetBSDのインストールには非常に長い時間がかかります。<br />
|
||
特に、全てのファイルセットをネットからダウンロードする時です。<br />
|
||
何故かはわかりません。</p>
|
||
<p>しかし、あたしの意見では、NetBSDとOpenBSDの両方が優れたデスクトップOSであり、両方を同じくらい愛するでしょう。</p>
|
||
<h2 id="netbsd-vs-freebsd">NetBSD vs FreeBSD</h2>
|
||
<p>この比較も意味があります。
|
||
何故なら、両方とも同じBSDコードベースに基づいており、それぞれ独自のビジョンを持ってほぼ同時期に到着したからです。<br />
|
||
NetBSDとOpenBSDを比較するのは父と息子を比較する様な物ですが、NetBSDとFreeBSDを比較するのは、異なる国や大陸で育ち、成人するまでお互いに会った事がない兄弟を比較するのと近いです。<br />
|
||
既に述べた様に、NetBSDとFreeBSDはどちらも非常に性能が高いですが、それが彼らが持つ唯一の類似点です。</p>
|
||
<p>NetBSDは遥に広範なハードウェア対応を持っていますが、FreeBSDは遥に広範なファイルシステム対応を持っています。<br />
|
||
NetBSDはより最小限主義でシンプルですが、FreeBSDははるかに完全で高度です。<br />
|
||
NetBSDはFreeBSDよりも遥に優れたデスクトップユーザー経験を提供しますが、FreeBSDはNetBSDよりも遥に優れたサーバー管理経験を提供します。</p>
|
||
<p>両者が最初から完全に異なる意見を持っている為、2つの間のユーザー経験は完全に異なります。</p>
|
||
<h2 id="heading">論断</h2>
|
||
<p>OpenBSD、NetBSD、又はFreeBSDのどれを選ぶかは、貴方次第です。<br />
|
||
明確な勝者はなく、誰もが異なるBSDで最も快適に感じるでしょう。<br />
|
||
選択肢に関係なく、最終的には全てのBSDは兄弟の様であり、あたし達はみなお互いを好きです。<br />
|
||
前述の様に、あたしは全ての異なるUnixシステムを4か月間試した後、OpenBSDで最も快適に感じました。<br />
|
||
にしさんはNetBSDで最も快適に感じ、テクニカル魔理砂さんはFreeBSDで最も快適に感じました。<br />
|
||
この記事では、あたしの個人的な経験に基づいて違いを説明し様としました。<br />
|
||
これが、火タイプ(FreeBSD)、水タイプ(OpenBSD)、又は草タイプ(NetBSD)の間を選ぶのに役立つかもしん。<br />
|
||
又は、貴方が寝過ごして研究所に遅れて到着した場合、電気タイプ(Linux)を選ぶかもしん。</p>
|
||
<p>以上</p>
|
||
|
||
|
||
</content>
|
||
</entry>
|
||
|
||
<entry>
|
||
<id>blog/odl-010.gmi</id>
|
||
<author><name>凛</name></author>
|
||
<title type="html">【076】odl 0.1.0登場</title>
|
||
<published>2024-04-22T00:00:00Z</published>
|
||
|
||
<category term="jp"></category>
|
||
|
||
<category term="blog"></category>
|
||
|
||
<category term="ウエブ開発"></category>
|
||
|
||
<category term="076"></category>
|
||
|
||
<category term="odl"></category>
|
||
|
||
<link href="gemini://technicalsuwako.moe/blog/odl-010.gmi" rel="alternate"></link>
|
||
<content type="html">
|
||
|
||
|
||
|
||
<h2 id="odl">odlって何?</h2>
|
||
<p>odlはGNU wgetの最小限の代替となるものです。</p>
|
||
<h2 id="heading">変更</h2>
|
||
<ul>
|
||
<li>最初リリース</li>
|
||
</ul>
|
||
<h2 id="heading-1">ソースコード</h2>
|
||
<p><a href="https://gitler.moe/suwako/odl">Gitler</a></p>
|
||
<p>以上</p>
|
||
|
||
|
||
</content>
|
||
</entry>
|
||
|
||
<entry>
|
||
<id>blog/c-static-link.gmi</id>
|
||
<author><name>凛</name></author>
|
||
<title type="html">【C言語】静的リンクする方法</title>
|
||
<published>2024-04-16T00:00:00Z</published>
|
||
|
||
<category term="jp"></category>
|
||
|
||
<category term="blog"></category>
|
||
|
||
<category term="c言語"></category>
|
||
|
||
<category term="c++"></category>
|
||
|
||
<category term="openbsd"></category>
|
||
|
||
<category term="freebsd"></category>
|
||
|
||
<category term="netbsd"></category>
|
||
|
||
<category term="linux"></category>
|
||
|
||
<category term="プログラミング"></category>
|
||
|
||
<link href="gemini://technicalsuwako.moe/blog/c-static-link.gmi" rel="alternate"></link>
|
||
<content type="html">
|
||
|
||
|
||
|
||
<h2 id="heading">注意点</h2>
|
||
<p>もし貴方のLinuxディストリビューションがglibcライブラリを使用している場合、この投稿は恐らく動作しません。<br />
|
||
muslを使用したLinuxディストリビューションか、BSD OSをご検討下さい。<br />
|
||
muslを使用した人気のあるLinuxディストリビューションには、Void Linux、Gentoo、Alpine Linuxがあります。</p>
|
||
<h2 id="c">C言語でのソフトを静的リンクは可能!?</h2>
|
||
<p>はい、可能です。<br />
|
||
前述の通り、glibcでは恐らく不可能です。<br />
|
||
しかし、muslを使用したLinuxディストリビューションで静的リンクを行うと、glibcを使用したLinuxディストリビューションでも実行出来るという事です。<br />
|
||
必要なのは、リンクする全てのライブラリの 「.a」 バージョンです。<br />
|
||
コンパイルするコマンドは、動的リンクとは非常に異なる見た目になります。<br />
|
||
例として、自分の「sp」を取り上げましょう。</p>
|
||
<p>動的リンクでは、コマンドは次の様になります:</p>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>cc -L/usr/local/lib -I/usr/local/include -o sp *.c -lgpgme -lassuan
|
||
</span></span></code></pre><p>しかし、静的リンクでは、このコマンドは次の様になります(OpenBSDの場合):</p>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>cc -L/usr/local/lib -I/usr/local/include -o sp *.c -static -lgpgme -lcrypto -lc -lassuan -lgpg-error -lthr -lintl
|
||
</span></span></code></pre><h2 id="heading-1">必要なライブラリを受取方</h2>
|
||
<p>どのライブラリをリンクする必要があるかを知るには、まず動的リンクされたバイナリをコンパイルする必要があります。<br />
|
||
その後、<code lang="">ldd</code> コマンドを使用して必要なライブラリを調べる事が出来ます。</p>
|
||
<h3 id="openbsd">OpenBSD</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>sp:
|
||
</span></span><span style="display:flex;"><span> Start End Type Open Ref GrpRef Name
|
||
</span></span><span style="display:flex;"><span> 00000664e28c2000 00000664e28cd000 exe <span style="color:#666">1</span> <span style="color:#666">0</span> <span style="color:#666">0</span> sp
|
||
</span></span><span style="display:flex;"><span> 000006678e2b6000 000006678e317000 rlib <span style="color:#666">0</span> <span style="color:#666">1</span> <span style="color:#666">0</span> /usr/local/lib/libgpgme.so.24.2
|
||
</span></span><span style="display:flex;"><span> 00000666f3610000 00000666f3824000 rlib <span style="color:#666">0</span> <span style="color:#666">1</span> <span style="color:#666">0</span> /usr/lib/libcrypto.so.53.0
|
||
</span></span><span style="display:flex;"><span> 000006672dfe7000 000006672e0de000 rlib <span style="color:#666">0</span> <span style="color:#666">1</span> <span style="color:#666">0</span> /usr/lib/libc.so.99.0
|
||
</span></span><span style="display:flex;"><span> 000006670aadd000 000006670aaf5000 rlib <span style="color:#666">0</span> <span style="color:#666">1</span> <span style="color:#666">0</span> /usr/local/lib/libassuan.so.2.1
|
||
</span></span><span style="display:flex;"><span> 000006670b08d000 000006670b0b7000 rlib <span style="color:#666">0</span> <span style="color:#666">2</span> <span style="color:#666">0</span> /usr/local/lib/libgpg-error.so.3.26
|
||
</span></span><span style="display:flex;"><span> 0000066744e3e000 0000066744e62000 rlib <span style="color:#666">0</span> <span style="color:#666">3</span> <span style="color:#666">0</span> /usr/local/lib/libintl.so.8.0
|
||
</span></span><span style="display:flex;"><span> <span style="color:#666">0000066705496000</span> 00000667055a8000 rlib <span style="color:#666">0</span> <span style="color:#666">4</span> <span style="color:#666">0</span> /usr/local/lib/libiconv.so.7.1
|
||
</span></span><span style="display:flex;"><span> 00000667c6522000 00000667c6522000 ld.so <span style="color:#666">0</span> <span style="color:#666">1</span> <span style="color:#666">0</span> /usr/libexec/ld.so
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB shared object, x86-64, version <span style="color:#666">1</span>
|
||
</span></span></code></pre><h3 id="freebsd">FreeBSD</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>./sp:
|
||
</span></span><span style="display:flex;"><span> libgpgme.so.43 <span style="color:#666">=</span>&gt; /usr/local/lib/libgpgme.so.43 <span style="color:#666">(</span>0x15272fd71000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libcrypto.so.30 <span style="color:#666">=</span>&gt; /lib/libcrypto.so.30 <span style="color:#666">(</span>0x15272e58e000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libc.so.7 <span style="color:#666">=</span>&gt; /lib/libc.so.7 <span style="color:#666">(</span>0x15273063b000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libassuan.so.8 <span style="color:#666">=</span>&gt; /usr/local/lib/libassuan.so.8 <span style="color:#666">(</span>0x15272ee04000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libgpg-error.so.0 <span style="color:#666">=</span>&gt; /usr/local/lib/libgpg-error.so.0 <span style="color:#666">(</span>0x152731580000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libthr.so.3 <span style="color:#666">=</span>&gt; /lib/libthr.so.3 <span style="color:#666">(</span>0x1527317bb000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libintl.so.8 <span style="color:#666">=</span>&gt; /usr/local/lib/libintl.so.8 <span style="color:#666">(</span>0x15273205b000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#666">[</span>vdso<span style="color:#666">]</span> <span style="color:#666">(</span>0x15272e207000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB executable, x86-64, version <span style="color:#666">1</span> <span style="color:#666">(</span>FreeBSD<span style="color:#666">)</span>, dynamically linked, interpreter /libexec/ld-elf.so.1, <span style="color:#a2f;font-weight:bold">for</span> FreeBSD 14.0 <span style="color:#666">(</span>1400097<span style="color:#666">)</span>, FreeBSD-style, stripped
|
||
</span></span></code></pre><h3 id="netbsd">NetBSD</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ <span style="color:#a2f">export</span> <span style="color:#b8860b">LD_LIBRARY_PATH</span><span style="color:#666">=</span>/usr/pkg/lib:<span style="color:#b8860b">$LD_LIBRARY_PATH</span>
|
||
</span></span><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>./sp:
|
||
</span></span><span style="display:flex;"><span> -lgpgme.11 <span style="color:#666">=</span>&gt; /usr/pkg/lib/libgpgme.so.11
|
||
</span></span><span style="display:flex;"><span> -lassuan.0 <span style="color:#666">=</span>&gt; /usr/pkg/lib/libassuan.so.0
|
||
</span></span><span style="display:flex;"><span> -lgpg-error.0 <span style="color:#666">=</span>&gt; /usr/pkg/lib/libgpg-error.so.0
|
||
</span></span><span style="display:flex;"><span> -lintl.1 <span style="color:#666">=</span>&gt; /usr/lib/libintl.so.1
|
||
</span></span><span style="display:flex;"><span> -lc.12 <span style="color:#666">=</span>&gt; /usr/lib/libc.so.12
|
||
</span></span><span style="display:flex;"><span> -lcrypto.15 <span style="color:#666">=</span>&gt; /usr/lib/libcrypto.so.15
|
||
</span></span><span style="display:flex;"><span> -lcrypt.1 <span style="color:#666">=</span>&gt; /lib/libcrypt.so.1
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB executable, x86-64, version <span style="color:#666">1</span> <span style="color:#666">(</span>SYSV<span style="color:#666">)</span>, dynamically linked, interpreter /usr/libexec/ld.elf_so, <span style="color:#a2f;font-weight:bold">for</span> NetBSD 10.0, stripped
|
||
</span></span></code></pre><h3 id="void-linux">Void Linux</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span> /lib/ld-musl-x86_64.so.1 <span style="color:#666">(</span>0x7f7689c5a000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libgpgme.so.11 <span style="color:#666">=</span>&gt; /lib/libgpgme.so.11 <span style="color:#666">(</span>0x7f7689bfb000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libcrypto.so.3 <span style="color:#666">=</span>&gt; /lib/libcrypto.so.3 <span style="color:#666">(</span>0x7f7689600000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libc.so <span style="color:#666">=</span>&gt; /lib/ld-musl-x86_64.so.1 <span style="color:#666">(</span>0x7f7689c5a000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libassuan.so.0 <span style="color:#666">=</span>&gt; /lib/libassuan.so.0 <span style="color:#666">(</span>0x7f7689be6000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> libgpg-error.so.0 <span style="color:#666">=</span>&gt; /lib/libgpg-error.so.0 <span style="color:#666">(</span>0x7f7689bbe000<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB pie executable, x86-64, version <span style="color:#666">1</span> <span style="color:#666">(</span>SYSV<span style="color:#666">)</span>, dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, BuildID<span style="color:#666">[</span>sha1<span style="color:#666">]=()</span>, stripped
|
||
</span></span></code></pre><h2 id="heading-2">必要なライブラリをインストールする方法</h2>
|
||
<p>OpenBSDとNetBSDでは、リポジトリからgpgmeのみをインストールすると、必要な全ての「.a」ファイルが既に入手出来ます。<br />
|
||
流石ね、OppaiBSDとNyuuBSD!</p>
|
||
<p>FreeBSDとVoid Linuxでは、libassuan.a と libgpgme.a のみが不足しています。<br />
|
||
特にVoid Linuxでは、libgpg-error.a も不足しています。</p>
|
||
<p>しかし、ソースからコンパイルすれば簡単に取得出来るという事です。<br />
|
||
それではやってみましょう!<br />
|
||
手順はFreeBSDとVoid Linuxの両方で有効ですので、コマンドは1度だけ提供します。</p>
|
||
<h3 id="libgpgme-error">libgpgme-error</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>wget https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.48.tar.gz
|
||
</span></span><span style="display:flex;"><span>tar zxfv libgpg-error-1.48.tar.gz
|
||
</span></span><span style="display:flex;"><span><span style="color:#a2f">cd</span> libgpg-error-1.48
|
||
</span></span><span style="display:flex;"><span>./configure --enable-static
|
||
</span></span><span style="display:flex;"><span>make
|
||
</span></span><span style="display:flex;"><span>doas make install
|
||
</span></span></code></pre><p>Void Linuxのみ:</p>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>doas mv /usr/local/lib/libgpg-error.a /usr/lib
|
||
</span></span><span style="display:flex;"><span>doas mv /usr/local/lib/libgpg-error.la /usr/lib
|
||
</span></span></code></pre><h3 id="libassuan">libassuan</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>wget https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.7.tar.bz2
|
||
</span></span><span style="display:flex;"><span>bsdtar -xvf libassuan-2.5.7.tar.bz2
|
||
</span></span><span style="display:flex;"><span><span style="color:#a2f">cd</span> libassuan-2.5.7
|
||
</span></span><span style="display:flex;"><span>./configure --enable-static
|
||
</span></span><span style="display:flex;"><span>make
|
||
</span></span><span style="display:flex;"><span>doas make install
|
||
</span></span></code></pre><p>Void Linuxのみ:</p>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>doas mv /usr/local/lib/libassuan.a /usr/lib
|
||
</span></span><span style="display:flex;"><span>doas mv /usr/local/lib/libassuan.la /usr/lib
|
||
</span></span></code></pre><h3 id="libgpgme">libgpgme</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>wget https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.23.2.tar.bz2
|
||
</span></span><span style="display:flex;"><span>bsdtar -xvf gpgme-1.23.2.tar.bz2
|
||
</span></span><span style="display:flex;"><span>cd gpgme-1.23.2
|
||
</span></span><span style="display:flex;"><span>./autogen.sh
|
||
</span></span><span style="display:flex;"><span>mkdir build &amp;&amp; cd build
|
||
</span></span><span style="display:flex;"><span>../configure --enable-maintainer-mode --enable-static
|
||
</span></span><span style="display:flex;"><span>make
|
||
</span></span><span style="display:flex;"><span>doas make install
|
||
</span></span></code></pre><p>Void Linuxのみ:</p>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>doas mv /usr/local/lib/libgpgme.a /usr/lib
|
||
</span></span><span style="display:flex;"><span>doas mv /usr/local/lib/libgpgme.la /usr/lib
|
||
</span></span><span style="display:flex;"><span>doas mv /usr/local/lib/libgpgmepp.a /usr/lib
|
||
</span></span><span style="display:flex;"><span>doas mv /usr/local/lib/libgpgmepp.la /usr/lib
|
||
</span></span></code></pre><p>必要な全ての「.a」ファイルを取得したら、この投稿の冒頭で提供したコマンドを使用してコンパイルを開始出来ます。</p>
|
||
<h2 id="heading-3">結果</h2>
|
||
<h3 id="openbsd-1">OpenBSD</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>./sp:
|
||
</span></span><span style="display:flex;"><span> Start End Type Open Ref GrpRef Name
|
||
</span></span><span style="display:flex;"><span> 00000a9c31dc9000 00000a9c32131000 dlib <span style="color:#666">1</span> <span style="color:#666">0</span> <span style="color:#666">0</span> /home/suwako/dev/finish/sp/sp
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB shared object, x86-64, version <span style="color:#666">1</span>
|
||
</span></span></code></pre><h3 id="freebsd-1">FreeBSD</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>ldd: ./sp: not a dynamic ELF executable
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB executable, x86-64, version <span style="color:#666">1</span> <span style="color:#666">(</span>FreeBSD<span style="color:#666">)</span>, statically linked, <span style="color:#a2f;font-weight:bold">for</span> FreeBSD 14.0 <span style="color:#666">(</span>1400097<span style="color:#666">)</span>, FreeBSD-style, stripped
|
||
</span></span></code></pre><h3 id="netbsd-1">NetBSD</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ <span style="color:#a2f">export</span> <span style="color:#b8860b">LD_LIBRARY_PATH</span><span style="color:#666">=</span>/usr/pkg/lib:<span style="color:#b8860b">$LD_LIBRARY_PATH</span>
|
||
</span></span><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>ldd: /home/suwako/dev/finish/sp/./sp-: invalid ELF class 2; expected <span style="color:#666">1</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB executable, x86-64, version <span style="color:#666">1</span> <span style="color:#666">(</span>SYSV<span style="color:#666">)</span>, statically linked, <span style="color:#a2f;font-weight:bold">for</span> NetBSD 10.0, stripped
|
||
</span></span></code></pre><h3 id="void-linux-1">Void Linux</h3>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ ldd ./sp
|
||
</span></span><span style="display:flex;"><span>ldd: ./sp: Not a valid dynamic program
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ file ./sp
|
||
</span></span><span style="display:flex;"><span>./sp: ELF 64-bit LSB executable, x86-64, version <span style="color:#666">1</span> <span style="color:#666">(</span>SYSV<span style="color:#666">)</span>, statically linked, BuildID<span style="color:#666">[</span>sha1<span style="color:#666">]=()</span>, stripped
|
||
</span></span></code></pre><h2 id="heading-4">ファイルサイズが大き過ぎ!!</h2>
|
||
<p>静的リンクを行うと、必要な全てのコードがバイナリに含まれる為、再コンパイルする必要なしに異なるコンピュータに単一のバイナリをコピー出来ます。<br />
|
||
その為、バイナリのサイズは、動的リンクされたバイナリよりもかなり大きくなります。<br />
|
||
動的リンクされたバイナリはシステム上のどこかにある「.so」ファイルを指すだけであり、システム間で異なる可能性があり、更に使用されているバージョンが異なる可能性がある為、バイナリは全く移植性がありません。<br />
|
||
ローリングリリースのLinuxディストリビューションを使用している方は、ある時点で自分のプログラムが突然機能しなくなった経験があるかもしれません。<br />
|
||
これは、「.so」ファイルが新しいバージョンに更新された為に発生しますが、プログラム自体は未だ同じバイナリです。<br />
|
||
これがあたしが静的リンクを好む理由です!</p>
|
||
<p>但し、コンパイル後に単純に <code lang="">strip</code> コマンドを使用する事で、バイナリサイズを大幅に削減できます。<br />
|
||
警告に気にしないで下さい。<br />
|
||
これはGNUの開発者の問題です(彼らはlibassuanとgpgmeを作成しました)。<br />
|
||
あたしの「sp」プログラムは100%のコードが正しいです。</p>
|
||
<pre style="background-color:#f8f8f8;; overflow-x: auto"><code lang=""><span style="display:flex;"><span>$ cc -Wall -Wextra -O3 -I/usr/local/include -L/usr/local/lib -o sp *.c -static -lgpgme -lcrypto -lc -lassuan -lgpg-error -lintl -liconv
|
||
</span></span><span style="display:flex;"><span>engine-assuan.c<span style="color:#666">(</span>engine-assuan.o:<span style="color:#666">(</span>llass_set_engine_flags<span style="color:#666">)</span> in archive /usr/local/lib/libgpgme.a<span style="color:#666">)</span>: warning: strcpy<span style="color:#666">()</span> is almost always misused, please use strlcpy<span style="color:#666">()</span>
|
||
</span></span><span style="display:flex;"><span>stringutils.c:107<span style="color:#666">(</span>libgpg_error_la-stringutils.o:<span style="color:#666">(</span>_gpgrt_vfnameconcat<span style="color:#666">)</span> in archive /usr/local/lib/libgpg-error.a<span style="color:#666">)</span>: warning: stpcpy<span style="color:#666">()</span> is dangerous; <span style="color:#a2f;font-weight:bold">do</span> not use it
|
||
</span></span><span style="display:flex;"><span>estream-printf.c:1114<span style="color:#666">(</span>libgpg_error_la-estream-printf.o:<span style="color:#666">(</span>do_format<span style="color:#666">)</span> in archive /usr/local/lib/libgpg-error.a<span style="color:#666">)</span>: warning: sprintf<span style="color:#666">()</span> is often misused, please use snprintf<span style="color:#666">()</span>
|
||
</span></span><span style="display:flex;"><span>assuan-handler.c<span style="color:#666">(</span>libassuan_la-assuan-handler.o:<span style="color:#666">(</span>assuan_write_status<span style="color:#666">)</span> in archive /usr/local/lib/libassuan.a<span style="color:#666">)</span>: warning: strcat<span style="color:#666">()</span> is almost always misused, please use strlcat<span style="color:#666">()</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ ls -thal sp
|
||
</span></span><span style="display:flex;"><span>-rwxr-xr-x <span style="color:#666">1</span> suwako suwako 8.9M Apr <span style="color:#666">16</span> 14:37 sp
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>$ strip sp
|
||
</span></span><span style="display:flex;"><span>$ ls -thal sp
|
||
</span></span><span style="display:flex;"><span>-rwxr-xr-x <span style="color:#666">1</span> suwako suwako 3.4M Apr <span style="color:#666">16</span> 14:39 sp
|
||
</span></span></code></pre><p>以上</p>
|
||
|
||
|
||
</content>
|
||
</entry>
|
||
|
||
<entry>
|
||
<id>blog/hozonsite-130.gmi</id>
|
||
<author><name>凛</name></author>
|
||
<title type="html">【076】保存サイト 1.3.0登場</title>
|
||
<published>2024-04-10T12:00:00Z</published>
|
||
|
||
<category term="jp"></category>
|
||
|
||
<category term="blog"></category>
|
||
|
||
<category term="ウエブ開発"></category>
|
||
|
||
<category term="076"></category>
|
||
|
||
<category term="hozonsite"></category>
|
||
|
||
<category term="保存サイト"></category>
|
||
|
||
<link href="gemini://technicalsuwako.moe/blog/hozonsite-130.gmi" rel="alternate"></link>
|
||
<content type="html">
|
||
|
||
|
||
|
||
<p>保存サイト は1.3.0にバージョンアップしました!!</p>
|
||
<h2 id="heading">保存サイトって何?</h2>
|
||
<p>世界初FOSS系ウエブアーカイバーです。</p>
|
||
<h2 id="heading-1">変更</h2>
|
||
<ul>
|
||
<li>BSD2clause→ISCライセンスに変更</li>
|
||
<li>変なエンコーディングの変換</li>
|
||
</ul>
|
||
<h2 id="heading-2">ソースコード</h2>
|
||
<p><a href="https://gitler.moe/suwako/hozonsite">Gitler</a></p>
|
||
<h2 id="heading-3">公式インスタンス</h2>
|
||
<p><a href="https://hozon.site/">https://hozon.site/</a></p>
|
||
<p>以上</p>
|
||
|
||
|
||
</content>
|
||
</entry>
|
||
|
||
<entry>
|
||
<id>blog/digital-autonomy-linux-to-openbsd.gmi</id>
|
||
<author><name>凛</name></author>
|
||
<title type="html">【デジタル自主】LinuxからOpenBSDに乗り換えた理由</title>
|
||
<published>2024-04-10T00:00:00Z</published>
|
||
|
||
<category term="jp"></category>
|
||
|
||
<category term="blog"></category>
|
||
|
||
<category term="デジタル自主"></category>
|
||
|
||
<category term="linux"></category>
|
||
|
||
<category term="bsd"></category>
|
||
|
||
<category term="netbsd"></category>
|
||
|
||
<category term="openbsd"></category>
|
||
|
||
<category term="freebsd"></category>
|
||
|
||
<category term="openindiana"></category>
|
||
|
||
<link href="gemini://technicalsuwako.moe/blog/digital-autonomy-linux-to-openbsd.gmi" rel="alternate"></link>
|
||
<content type="html">
|
||
|
||
|
||
|
||
<p>あたしのGit履歴を見たならば、GNU MakeをBSD Makeに徐々に置き換え、GPLv2を2条項BSDライセンスに置き換え、益々OpenBSDサポートを優先している事に気付いたかもしん。<br />
|
||
これは、最早Linuxを使用していない為で、今ではOpenBSDを使用しています。<br />
|
||
Steamでゲームをやる為にCRUXを搭載したSSDを未だ持っていますが、ゲームをやらない場合はOpenBSDを使用します。<br />
|
||
そして、Linuxであたしのソフトウェアが動作するかどうかをテストする為にThinkPad X200sにCRUXを持ち続きます。</p>
|
||
<h2 id="linux">Linuxを辞めた理由</h2>
|
||
<p>今日、Linuxはかつての物ではありません。<br />
|
||
そして、全ての変化は悪い方向に進んでいます。</p>
|
||
<p>Linuxの精神は、開発者による開発者の為のシステムであるという事でした。<br />
|
||
今では、精神的に不安定な人々(LGBT)による精神的に病んだ人々(LGBTQ)の為のシステムになったと感じます。<br />
|
||
過去10年間、XorgからGaylandへのオプション、そしてGaylandが必須になり、最終的には全ての人に強制されるまでになりました。<br />
|
||
過去10年間、ALSAからJACK、JACK2、PulseAudio、Pipewireへと移り、更に別のオーディオドライバが開発されていると確信していますが、これらのドライバは全て互いに機能する必要があります。<br />
|
||
過去10年間、systemd、Docker、Flatpak、Snap、PAM等の壊滅的な重いソフトを使用せずにLinuxを使用する事が益々難しくなっています。<br />
|
||
Linuxカーネルには現在、Cが不十分なかの様に、Rustコンパイラが組み込まれています。<br />
|
||
Linuxカーネルはあまりにも膨大になり過ぎており、2023年4月には45分でコンパイルされ、同じモジュールを備えて2024年4月には3時間かかりました。<br />
|
||
Linuxカーネルにはコードラインが多過ぎる為、10年前よりもセキュリティの脆弱性、バグ、又はその他の問題を隠すのが簡単になっています。<br />
|
||
Cloudflare、Red Hat、Intel、AMD、Google、特にMicrosoft等の大手企業が、Linuxに益々影響を与えており、誰もがその影響を受けています。<br />
|
||
Linus Torvaldsさんはカーネルのバグを非常によく知っており、修正を拒否し、修正するとユーザーランドが壊れる為、貴方を侮辱する事さえあります。<br />
|
||
GTKとQt、そしてそれぞれGnomeとKDEは、作業が非常に面倒になってしまったため、対処するのが非常に困難になりました。<br />
|
||
Gnomeはユーザーが望まない事を全て行い、KDEは現在、使用出来ない程膨張しています。</p>
|
||
<p>そして、あたしがコミュニティでこれらの問題を持ち出す度に、「これが未来だ」「私達は永遠に過去にとどまる事は出来ないぞ」「しょうがないね」「全ての変化は良い」と言われます。<br />
|
||
うーん&hellip;<br />
|
||
まあ、問題を修正する事が出来ないのであれば、代わりにUnixの本物の世界が選択肢です。<br />
|
||
今日、Unixには僅かな選択肢しかありません。<br />
|
||
FreeBSD、OpenBSD、NetBSD、Dragonfly BSD、OpenIndiana、macOS、IBM AIX、UnixWare、及びHP UXがあります。<br />
|
||
従って、あたしはそれらを4ヶ月間実験し、そして最も好きな物を選ぶ事にしました。</p>
|
||
<h2 id="openbsd">OpenBSDに乗り換えた理由</h2>
|
||
<p>LinuxからOpenBSDに変更しようと考える前に、あたしは既に1年半程OpenBSDを殆どのサーバーで実行していたので、それには既に慣れていました。<br />
|
||
OpenBSDは非常に馴染みがあり、デフォルトで非常に安全で、非常に安定しており、非常に開発者志向で、非常に保守的であり、全てが常に動作します。<br />
|
||
メーリングリストを読む事は出来ませんが、OpenBSDは常に悪いアイデアを拒否すると聞いていますし、他のBSDとは異なり、OpenBSDの開発者は実際に自分達のハードウェアでOpenBSDを使用していると聞いています。<br />
|
||
開発者達は自分達の為にOpenBSDを作っており、それは076で持っている考え方と同じです。<br />
|
||
何故なら、あたし達は自分達の為にソフトを作り、他から悪いアイデアを取り入れないからです。<br />
|
||
OpenBSDが持っているツールが本当に好きで、CRUXはOpenBSDのミニマリズムと非常に似ているので、変更は非常にスムーズでした。</p>
|
||
<p>そうして、可愛いは正義で、パフィーさんは可愛いだわー!<br />
|
||
<img src="https://ass.technicalsuwako.moe/oppaibsd-neofetch.png" alt="" /></p>
|
||
<h2 id="freebsdnetbsd">何故FreeBSDかNetBSDに乗り換えない?</h2>
|
||
<p>PeerTubeサーバーやMatrixサーバー、NASでは既にFreeBSDを使用しており、非常にうまく機能しています。<br />
|
||
しかし、デスクトップとしてはFreeBSDはあまり良くありません。<br />
|
||
バグが多過ぎる、AMD Radeon上のXorgの問題、メモリー使用量の統計が非常に奇妙、時々2番目のモニターが認識されなくなる、pkgがパッケージを更新する度にFcitx5を削除し続ける為、毎回Fcitx5を再インストールする必要があります。<br />
|
||
等、更に問題があります。<br />
|
||
最初にメインデスクトップにFreeBSDをインストールしましたが、LinuxulatorでSteamを実行出来ると聞いていましたが、結局の所、AMD Radeon GPUがある場合はLinuxulatorが全く機能しない為、ゲームをやりたい場合は引き続きLinuxに戻る必要があります。<br />
|
||
FreeBSDは別のSSDにインストールされており、ソフトウェアをテストする為にThinkPad L420にもインストールされています。</p>
|
||
<p>NetBSDについては、ThinkPad X250にインストールしましたが、結構良いです。<br />
|
||
ZSHに問題があり、時々pkginが正常に機能せず、SSL証明書が見つからないと言われる事がありますが、それ以外はNetBSDは本当に良いです。<br />
|
||
しかし、あたしはOpenBSDに決めました。<br />
|
||
それにはもっと馴染んでおり、安定しています。<br />
|
||
また、NetBSDではWiFiが機能しない様ですので、イーサネットを使用する必要があります。<br />
|
||
但し、このノートではソフトのテストに引き続きNetBSDを使用します。</p>
|
||
<h2 id="dragonfly-bsd">何故Dragonfly BSDに乗り換えない?</h2>
|
||
<p>起動出来なかったのですから。</p>
|
||
<h2 id="openindiana">何故OpenIndianaに乗り換えない?</h2>
|
||
<p>それが非常に遅いからです!<br />
|
||
ThinkPad X250にOpenIndianaをインストールしましたが、新しくインストールされたOSでパッケージを更新するだけでも5時間かかりました。<br />
|
||
光回線を使用しています。<br />
|
||
それだけでも受け入れがたいです!</p>
|
||
<h2 id="macos">何故macOSに乗り換えない?</h2>
|
||
<p>Appleが嫌いだからです。<br />
|
||
9年前に購入したMacBook Proに初めてmacOSをインストールしました(それまではLinuxでした)が、あたしはUnixが大好きなので。<br />
|
||
しかし、あたしにとっては、スマホの様なUIのFreeBSDの様に感じました。<br />
|
||
そして、macOSには非常に多くの迷惑があり、あたしはそれを使用出来ません。</p>
|
||
<h2 id="hp-uxibm-aixunixware">何故HP UX、IBM AIX、UnixWareに乗り換えない?</h2>
|
||
<p>対応しているハードと金がありません。<br />
|
||
そして殆どの人がそれを使用していませんので、それに切り替える事は意味がありません。</p>
|
||
<p>以上</p>
|
||
|
||
|
||
</content>
|
||
</entry>
|
||
|
||
|
||
</feed>
|