アレルギー対策、自宅でできる効果的な方法とは?

マジレス希望です。
UNIXとBSDとLinuxの違いがイマイチ分かりません。
それらは何が違うのですか?

Linux使は上級向けで
使いこなせるようになると
マウス持ち替える時間なんてもったいねぇ!

と言うようになるという話を聞いたことがあるので、
キーボード…カタカタカタカタ…ッターン!ビンゴォッ!
みたいなイメージを持っています。

また、LinuxはUNIXの一部だとかなんとかで、間違えるとUNIX様に怒られるとか怒られないとかいう話を聞いたこともあります。
さらにGNU/Linuxとか呼ばれたりで、これもまた間違えると怒られるとか怒られないとかで、よく分かりません。第一Linuxはカーネルだから、その辺勘違いしてるやつ多いよねとか言っている人もいます。間違えると怒られるとか怒られないとかでよく分かりません。

そしてBSDなる物が存在するようで、
これはLinuxとは別物らしく、
Linuxと間違えると怒られるとか怒られないとかで本当によく分かりません。
さらに、Linux使いはBSD使いに敵わないとか言うことを聞いたこともあります。
Linuxにも上級者向けのSlackwareとかドライバとかを自分シコシコしてなんとかするやつとかあるみたいなのですが、それでもLinux使いはBSD使いには敵わないのでしょうか?
Linux使いがBSD使いに敵わないと言われている具体的な根拠ってなんですか?
本気でBSD使いこなせる人の技術力ってどんな感じなのですか?

MacがUNIXを導入したのはBSDということも聞いたことがあります。

そして、登場順からすると、BSDは70年代生まれ、バイキンみたいな守護神、Macはよく分からない、リンゴ、Windowsは90年代生まれ、窓、Linuxは平成生まれ、ペンギン

…なんだかよく分かりません。
BSD使い最強説の根拠は何でしょうか?
結局はどのOSでも使いやすいものを使うのが一番だとか、本人の技術力次第とか、普及しているOSこそが最強だとかいう回答ではなく、
OSの歴史やそれらの性能の点から違いを教えてもらえませんか?

Wikiではよく分かりませんでした。アンサイクロペディアではだいぶ説明が省略されていたため分かりにくかったです。アンサイクロペディアに書いてあるところのジョークが分かってなぜそこがジョークになっているのか分かって楽しめるくらいになりたいです。

小学生でも分かるくらいに教えてもらえませんか?
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>BSD使い最強説の根拠は何でしょうか?


>結局はどのOSでも使いやすいものを使うのが一番だとか、本人の技術力次第とか、普及しているOSこそが最強だとかいう回答ではなく、OSの歴史やそれらの性能の点から違いを教えてもらえませんか?

ほとんどのUNIX系OS(もともとAT&Tのライセンスを必要とするか必要としていたもの)の著名なものはv7か32Vを元に拡張されたものです。傍流は大筋System IIIを元にしていますが、ほとんどのUNIX系OSはv7、32V以外にもそれ以降に出たSystem Vの影響も受けています(簡単に言えば良い所取りをしているということ)。MINIXとLinuxはあえてAT&Tのライセンスを回避し、動きを真似ることに特化したため、ここには含みません。

UNIXの血統を求める人は沢山いますが、v7系統の流れはSystem V R4(SVR4)までです。別途v8、v9、v10と発展していったものもありますが、plan 9系統への発展であり、あえて言うなら直系ではなく後継でしょう。

商業的に成功したものは多々ありますし、商業面での適用拡大に貢献したものはありますが、UNIXそのものの仕様に大きな影響を与えたものはそうそう多くはありません。

32V: AT&T自身の拡張。UNIX初めての仮想記憶(スワッピング)を実装。
3BSD: BSDによる拡張。仮想記憶(ページング)を実装。
4BSD: BSDによる拡張。(BBN社の非効率な実装を排除して効率的に作り直した)TCP/IP、ソケットの実装、シグナルの拡張。SVR4にほとんど取り入れられた。
XENIX: Microsoftによる実装。386BSD、Linuxより前に86系CPU環境で動作。ここで開発されたデバイスドライバが無ければi386アーキテクチャなんて相手にしなかったはず(つまりこの蓄積が無ければPCアーキテクチャベースのUNIX系OSの出現が5年くらい遅れたはず)。
HP-UX等: HPによる拡張。リアルタイムシステムの実装、そもそも広範に使われるものでもなく、かつどこなの実装が主流になりえた訳ではない。
AIX等: IBMによる拡張。ファイルシステムの改良。数ある改良の一つでしかない。
SunOS: Sunによる拡張。NIS、NFS等。発展してDNSになったり、NAS等を生み出したが、今日では既に過去の技術。NFSはSVR4に取り入れられた。

各社が勝手に機能を拡張して覇権争いをしていた訳です。もちろんUNIX互換という錦の御旗は営業上絶対に必要ですから、グループを作ったり、標準化団体を立ち上げたりと色々なことはしていました。当初は技術的な優位で市場を握ろうとしていた各社も、暫くすると政治的行動がほとんどを占め、足の引っ張り合いを始めました。そういう動きはその会社のマニアでない限り、人々の共感を得られるものではありませんでした。こういった会社にはHPやIBM、DEC等が相当します。これを国レベルでやってしまった国が日本です。ΣOSという日本独自仕様UNIXに官主導で走りました。

もちろん、何の技術的発明もなく政治グループの末席に座っているだけの日本のコンピュータメーカは馬鹿にされこそすれ、相手にはされていません。富士通や日立、NECはここに属しています。器用に小型のUNIX機を安価に作成したメーカ(SONYやOMRON等)は、別の観点で高評価を得ました。こういったメーカはOS仕様の主導権争いには積極的には参加していなかったように思います。

話を戻すと、1990年代中頃まではBSDとSVR4に技術的優位がありました。しかしながら、BSDはその後、実質誰でも持っていたAT&TのコードをBSDの開示ソースに含めたということでAT&Tから訴えられました。AT&TもBSDのコードを流用(これは違反ではありません)しつつBSDの著作権表示を意図的に削っていた(これは違反)ことが判明し、途中から下らない泥沼裁判になりました。これが訴訟リスクを避けるメーカから禁忌されました。また、開発費用の削減を狙うメーカがLinux支持に回りました。

LinuxもUNIXの権利を握ったSCOに訴えられました。SCOはほとんど全てのUNIX系OSを訴えました。メーカが負ければLinuxのみならず自身が売ったUNIX系OSも罰金を払わなければならなくなりますので、どのメーカも必死で防戦しました。元々は運転資金が欲しいだけのSCOが仕掛けた言い掛かりでしたが、広く訴えたために敵も多く、結果的にはLinuxの勢いを増すことにしか繋がっていません。

GNUを率いるストールマンがUNIXのコードを一切使わない互換OSであるHurdを作っていましたが、一向に出来上がる気配はありませんでした。一方同じようなアプローチでフィンランド人がカーネルだけを作り上げました。GNUのライブラリ、ツール、コマンド+Linuxのカーネル+まとめた人の好みの味付け=Linuxのディストリビューションという図式です。ストールマンはフリーソフト真理教のグル(写真を見れば納得するでしょう)ですから、Linuxにもホーリーネームを授けます。それがGNU/Linuxです。

Linuxによる技術的貢献はほとんどありません。動かすことに重きをおき、洗練さは皆無。バグは素早く直す傾向にありますが、そもそも仕様が分かっていないか、深く考えて実装している素振りは全く感じられません。
理学博士でないと社員になれないAT&Tで開発された本家のUNIX、工学博士なんて掃いて捨てる程いるカリフォルニア大学バークレイ校が開発したBSDでは滅多に起きないようなことがLinuxではしばしばバグとして出現します。近々では閏秒や497日でカウンタがオーバフローするという問題で、そもそも100*HZを量としての1秒と、時間要素の1秒と混同して一律に扱うあたりが原因です。使用するチップによってマイナ番号を割り当てるという眩暈がする仕様もありましたが、少しは改まったのでしょうか。

もちろん、コンピュータメーカの生暖かいレベルでの金銭的支援はありますので、Linuxは暫く安泰ではありますが、素人臭いバグ、素人臭いインプリメント、ストールマンのマスターベーション仕様でのコマンド拡張など、個人的には使いたくなるものではありません。そういった意味ではBSDの方が安心ではありますが、昨今のBSDはサーバ寄りで標準インストールしても、デスクトップ環境どころかX-Windowさえも無いのでとっつき難いといえばとっつき難いでしょう。それを以ってBSDの方が難しいとか最強と言うことはできませんが、素人でもとっつき易い環境にまで持っていくのはBSDの方がスキルは求められるという側面はあろうかと思います。
    • good
    • 3

>BSD使い最強説の根拠は何でしょうか?


最強か否かは別として、BSDはUNIX BSDの直系子孫であり、Linux
は良くにているが赤の他人の様な関係です。
しかもLinuxはBSD的要素とAT&T(System V)的要素が混在していて
配布元(ディストリビュータ)によって異なるので、一つのLInuxを
勉強しても他のを使おうとした時に、差異分を勉強しなおす必要が
有りますが、BSDは配布元が同じなのでその必要がないという面は
有ります。
但し、Linuxには多くの配布元が有り、互いに競争・協力している
分、開発速度が早いのと初心者向けに重点を置く物も多く、そう
いった点ではBSDより導入しやすくなっています。
    • good
    • 1

その昔コンピュータの世界にとても発展したUNIX王国がありました。


UNIX王国の王UNIXはとても有能でコンピュータの世界はUNIX王のもと発展しました。
当時の庶民(パソコン)はUNIX王家を慕いつつも、とても貧乏なDOSという
低レベルな民族がほそぼそと暮らしていました。

さてUNIX王にはSYSTEM VとBSDという2人の王子がいました
SYSTEM V王子はUNIX王家の伝統を守り優秀でしたが贅沢でお金には苦労しているようです
一方BSD王子は開いた王家を目指して王家に伝わる書物を庶民に開放しました
BSD王子の子供の4.3BSDの頃には、庶民の愛人との間に386BSDという子供を密かにつくります。
386BSDは王家と家督争いをしますがやがてうまく仲直りし独自の家庭をつくります。
その子供のFreeBSDやNetBSD、OpenBSDなどが元気に育ちます。
ただBSD家は王家の血筋もありややお高くとまるのが庶民からは疎まれているようです
そのなこともありやはりお高く止まるので有名なMacという人たちとは仲がよいようです。

ところで、庶民はUNIX王家がお家騒動をしているうちに徐々にお金に余裕がでてきて
屈強な武装をもつようになりました。i386からi486という装備に変わる頃には
Windowsという民族によって一気に繁栄をはじめました。
とはいえWindowsの部族長のMicrosoftはお金儲けはうまいのですがいかんせん頭がわるく
せっかくの装備も性能をいかせません。Pentiumという装備ができたころには、
庶民はUNIX王家の教えにさらに強いあこがれを持つようになりました。

あるときリーナスさんというお坊さんが悟りを開き、Linuxという新しい宗教を始めました
それはUNIX王家の知識に似ているものでしたが、実際は完全に新しい考え方です。
なにかとお金のかかるWindowsともちがい、貧乏な人にも優しいのが特徴です。
Linuxは庶民の体によく馴染むんだため、庶民たちの中の一部の賢者たちはこぞって
Linuxを信仰し赤い帽子を好んでかぶるようになります。
ただLinuxは教えはコアな部分しかなく細かい部分は緩かったため派閥がたくさん出来てしました
結局一般庶民には何が本流かわからなくなってしまいなかなか馴染んではもらえません。

Linux教が広まると徐々にUNIX王家は役目を終え庶民からの支持が減っていきました
UNIX王国は衰退の一途をたどるばかりです

そして現在、庶民にイマイチ浸透しなかったLinux教ですがスマフォという外国人たちが
大量に流入してきたときにAndroidという簡単な教えにかわり一気に広まります。
いまやWindows部族を中心とした庶民はスマフォに取って代わられようとしています。
    • good
    • 25

UNIX:


コンピュータ用のマルチタスク・マルチユーザーのOSの一種
最初に開発したのは、1969年、AT&Tのベル研究所
1973年にほぼ全体をC言語で書き直したことで、開発が容易になり
他のハードウエアへの移植も容易になった。
ソースを公開していた事もあって、大学や研究所などの教育機関で
広範囲に採用されました。
その中からカリフォルニア大学バークレー校を、オリジナルとする
BSD系統が誕生しました。
UNIXの系統の多くは、AT&Tを源流とするものと、BSDを源流にする
ものとの2系統に分かれます。
現在はソースを公開されない商用版のUNIXも各種存在します。

パソコン用OSとしてBSDからAT&Tライセンスを除き、Intel386 CPU
用に移植した物に、FreeBSD、NetBSD等があります。
その流れから派生し商用化した物の一つが、アップルのMac OS X。

Linux:
UNIXを安価なPC/AT互換機PC用として、同様な機能になる様に1991年
から新規に作成されたのがLinuxの中核部分となるKernel
OSとしてのLinuxは、フリーウエアの集合体と言えるもので、通常は
直ぐに使用できる様に、インストーラを始めとして必要なソフトや
良く使用するソフトを集めてパッケージにした物を指します。
ソフトの中にはUNIXで使用されていた物を移植したのも多数有ります。

以前は、環境設定を変更するのに、設定ファイル等をエディタで直接
修正しなければいけない事もありましたが、最近では、環境設定用の
プログラムも揃ってきているので、一般的な使用ではKDEやGNOME等の
GUI環境でマウスのみでの設定も可能となってきています。

PC用OSとしてのBSD(FreeBSD、NetBSD)とLinuxの違いは、Linuxには
含まれるソフトや構成が異なる複数の配布元(ディストリビュータ)が
有るのに対し、BSD系は単一のみである事です。
    • good
    • 2

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QandroidがIPadに劣る、Linuxだから?

androidはカーネルがLinuxで、Linuxから派生したものと聞いています。Linuxは元々商用ではなく、Windowsほど一般の広い顧客に対して商品として晒されてこなかったため、WindowsほどこなれてはいないOSなのではないかと思います。今ではUbuntuなどかなり進んだLinuxOSもありますが、それでも何らかの不具合を潜在的に抱えているような気がします。androidがIPadに使いやすさなどの使用感などで劣るのは、歴とした商用ベースではないLinuxの派生版だからなのでしょうか?

Aベストアンサー

最大の違いは、ブランド力ですよ。
また多様性を求めるか求めないかの違いも大きな要素で…

Apple社がハードウェアベンダーであることが、最も大きな要素と言えるでしょう。

iOSは、ほんの数種類の製品のために、AppleがプロデュースしたOSです。
同時に、ブランド力の元、ルールを強制し、破綻の無いインターフェイスが実現されています。

対して、Googleは非ハードウェアベンダーで、サービスとソフトウェアを商品としています。

その象徴的な出来事が、iPhone5(iOS6)搭載の地図サービスの品質問題でした。
標準ソフトを自社ブランドで固める過程で、Googleの地図サービスを排除し
結果的にユーザーを落胆させることになりました。


反面、GoogleはAndroidにあまりブランド力を求めてはいません。
Microsoftやintelが、盛んに、パソコンのCMで、Windowsやintelの名前を宣伝させているのに対して
TV CMでAndroidの言葉を聞くことは、けっこう少ないんじゃないかと思います。


実は、Appleと競っているのは、パソコンやスマートフォンのベンダーで、Googleでは無いのです。
Googleの中心はサービス業ですから、自社のサービスに
顧客を集める手段として、Androidというウェブと親和するOSを開発しました。

ゆえに、iPhone4まではGoogleの地図ソフトが搭載されてきましたし
それを反故にしたのは、Google側ではなくApple側でした。


結果的に、一企業がApple以上のスマフォシェアを掴むことはありませんでしたが
Android搭載製品は、iOS搭載製品よりも大きなシェアを占めるようになりました。


残念ながら、アプリの審査がAppleよりも緩やかなこともあって、品質の低いものもあり
また、アプリの使い勝手が、機種ごとに違ってくることはあります。

でも、これは汎用OSゆえの必然で、極論してしまえば、同じWindows8が入った最新PCでも
低価格製品では、まったく楽しめないようなゲームソフトがいくつもあるのと同じです。


Appleも「iOSが入っていれば~ができます」という宣伝と
「新たなiPhoneでは~が~」といった宣伝を使い分けています。
そして、iOS5ではiPhone3Gを切り捨てていたように、使い勝手が破綻する組み合わせを排除していきます。

Windowsでもそういった切り捨てはありますが、Androidは市販OSでは無いこともあって
ハードウェアベンダーの判断に、すべてを委ねているわけです。

結果的に、快適に使えない場面は多々あるでしょう。でも、それはAndroidの問題ではなく
その機種以外を前提に作られたアプリを入れたがゆえの問題なのです。


WindowsXPにも対応したソフトは今でもたくさんありますが…2001年発売のPCで
快適に使えないソフトは、数えることが難しいほどたくさんあります。
そういった問題は、汎用化されたOSの宿命で、決してAndroidだけのものでもありません。


既にWindows PCの例を挙げてあることからわかるように
AndroidがLinux系OSであることが原因と考えるのは、まったくの勘違いです。



余談ですが
たとえば…今現在、自宅にLinuxが無いという人は少数派です。

特に意識しなければ、ルーター装置,NAS,HDDレコーダー,地デジテレビとして
Linuxが組み入れられた製品が、一般家庭にいくつも購入されているのです。

シェアはともかくデジカメやシンセサイザーやカーナビ,フォトフレーム,プリンター
今後はトヨタ車などにも組み入れられる予定がありますし
iPhoneで操作できるラジコンとして有名なAR.Droneも、組み込みLinuxが入っています。


こういった多様性がソフトウェアベンダー的なあたりまえの展開で
OSの名前にブランド力は必要ではなく、わかっている人が採用し
そのOSが入ったハードウェアこそが、それぞれのブランドで販売されるのです。

言い換えれば、パソコン全体のノウハウを培ってきたApple社と
ハードウェアだけをやってきた企業が、スマフォへと移行する携帯電話市場で
対等の勝負するために、Androidは最大の武器となったわけです。


その各社が…
スマフォベンダーのほとんどがWindowsパソコンも販売しているにも関わらず
Windows MobileやWindowsPhoneを主力とせず、Androidで展開している現状が
Linuxカーネルを基礎としたAndroidが、他の組み込みLinuxと同様に
高く評価されて採用されていることがわかると思います。


むしろ、私はiOS,MacOSX、それにiTunesの最大の欠陥は
ハードウェアベンダーが産み出したことにあると思っています :-)

アホな人が文句言わないように束縛するやり方と
うまく使いこなせる人だけ使えばいいじゃんというやり方があります。

その前者がiOSやMacOSX、後者がLinuxやFreeBSDなどです。
WindowsやAndroidは、その間で、それなりの制限と自由で提供されています。

Linuxの本質であるカーネルやFreeBSDは、それぞれの領域で
使いこなせる人のところで、非常に安定して大活躍しています。このサイトのサーバーもそうですし。

Androidは、Windowsがそうであるように、自由度と制限の両方において
不満を抱えながらも、高いシェアを得ています。
わかっているハードウェアベンダーの中の人に選ばれることによって、です。

最大の違いは、ブランド力ですよ。
また多様性を求めるか求めないかの違いも大きな要素で…

Apple社がハードウェアベンダーであることが、最も大きな要素と言えるでしょう。

iOSは、ほんの数種類の製品のために、AppleがプロデュースしたOSです。
同時に、ブランド力の元、ルールを強制し、破綻の無いインターフェイスが実現されています。

対して、Googleは非ハードウェアベンダーで、サービスとソフトウェアを商品としています。

その象徴的な出来事が、iPhone5(iOS6)搭載の地図サービスの品質問題でした。
...続きを読む

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Q「x86」と「amd64」の違い

CPUの種類で「x86」と「amd64」がありますが、その違いについて教えてください。

先日、AMDプロセッサのマシンにUbuntu8.04のAMD版をインストールしようとしたところ、「AMDではありません」のようなエラーが出てインストールできませんでした。そこでx86版を試してみたら正常にインストールできました。
しかしインストール直後から動作が不安定で、高い確率でフリーズします。
特に重要な設定を変更した訳でもなく、マシンの性能が悪いとも思えず、唯一思い当たる節がインストールしたUbuntuが「x86」版か「amd64」版かくらいです。

私の認識では、
  x86 … Intel系
  amd64 … AMD系
と思っているのですが、もっと複雑なのでしょうか?
またUbuntuを不安定する原因が何かあれば教えてください。
よろしくお願いします。

●環境
CPU:AMD Athlon 64, 2200MHz 3500+
メモリ:2G
HDD:160G × 2

Aベストアンサー

AMD64はお考えの通りAMD CPUが元になってできた用語で、ごくごく大雑把に言うと
x86→Intel,AMD問わず32ビット版のプログラム
AMD64→Intel,AMD問わず64ビット版のプログラム
となります。64ビット対応はIntelではPentium4の末期から、AMDではAthlon64からになります。

AMD64ではありません~というメッセージですが、当方Ubuntuを使ったことはないので想像になりますが、BIOSに64ビット命令の有効無効を指定するような項目はないでしょうか?
確か古いマザーにはそういうスイッチが設定されているという話を聞いたような…(かなり自信なし)

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Qprintf で二進表示を行いたい。

すみません。教えていただきたいことがあります。
printf で普通のintの値をフォーマット指定子を使用して二進表示をしたかったのですが見当たりませんでした。
どうにかintの内容を二進で確認したいのですが、どのようにすれば良いですか?
宜しくお願いします。

Aベストアンサー

★2進整数を表示する関数を自作すればよい。
・作り方は簡単で、最上位ビットから順に『0』と『1』を調べていき、ビットが
 立っていれば『putchar('1');』にして、ビットが OFF なら『putchar('0');』
 にすれば良いでしょう。
・下にサンプルを載せますので使いやすいように改良して下さい。

サンプル:
unsigned int bit = (1 << (sizeof(int) * 8 - 1));
int value = 12345; ←これが表示したい int 型の整数値です。

printf( "value の 2進表記は " );

for ( ; bit != 0 ; bit >>= 1 ){
 if ( value & bit ){
  putchar('1');
 }
 else{
  putchar('0');
 }
}
printf( " です。\n" );

最後に:
・1バイトが 8 ビットの環境が前提です。→まぁ、普通は 8 ビットですが…。
・上記のサンプルを関数などにすれば使いやすくなります。→print_bin()など
・以上。おわり。

★2進整数を表示する関数を自作すればよい。
・作り方は簡単で、最上位ビットから順に『0』と『1』を調べていき、ビットが
 立っていれば『putchar('1');』にして、ビットが OFF なら『putchar('0');』
 にすれば良いでしょう。
・下にサンプルを載せますので使いやすいように改良して下さい。

サンプル:
unsigned int bit = (1 << (sizeof(int) * 8 - 1));
int value = 12345; ←これが表示したい int 型の整数値です。

printf( "value の 2進表記は " );

for ( ; bit != 0 ; bit >>= 1 ){
 if...続きを読む

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

QNTP の TCPポートは?

NTPは123/UDPでようは足りると思うのですが、
WELL KNOWN PORTとかいろいろな資料に「123/TCP」ポートが割当たってます。
ntpd,ntpdate等でNTPを使う場合、実際には123/TCPは使われているのでしょうか?

Aベストアンサー

RFC1305では「ntpには123/udpを割り当てる」となっていますが、RFC1700では「123 ntp」となっており、「123/udp」と明示されているわけではありません。
よって、「123/tcp ntp」が間違っている(または使えない)という明確な根拠にはなりません。

「現状では『123/tcp ntp』を実装するための定義が存在しない」程度に考えた方が良いと思います。

ただ、将来的にRFC2030のSNTPが(IPv6対応などの点で)主流になる可能性があるので、「123/tcp ntp」は定義されない可能性もあります。

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む

Q「i386」「i486」「i586」「i686」とは?

Linux系OSを使うと、ソフトウェアをダウンロードする
時、そのソフトウェアに付いた記号は、「i386」
「i486」「i586」「i686」がよくあります。その記号
の意味は何ですか?どう違えますか?インテルのCPU
のアーキテクチャとの関係があると思いますか?普通
PC(Pentium3、700MHz)では、どんな記号と利用
すれば良いですか?教えてお願いします。

Aベストアンサー

おっしゃるように、intelのアーキテクチャの違いです
i386とi486はその名のとおり80386と486用で
i586がPentium用
i686がPentiumPro,Pen2,Pen3,Celeronなどのシリーズになります
ですのでご使用のPen3ではi686にすればよいと思います


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報