みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

FreeBSD と Linux

プログラミングの勉強をしたい学生です。
PCはほとんど初心者で、最初はPyothonから始めようと考えています。

プログラムの勉強はWindows上でやるよりもUNIXの上でやるとたくさんの事が学べると聞き、
FreeBSD か Linux のどちらかを選んで学びたいのですが……非常に迷っています。

私がサイトなどで見た印象を比べると、

FreeBSD
・種類が統一されているのでわかりやすい
・大きなサーバーに向いている
・サポートが少ない
・Linuxに押されぎみ?
・堅実である

Linux
・サポートが充実してる
・流行っている
・種類がありすぎて互換性がない?

の様に思えます。

linuxを使う場合は FedoraかCentOS というものを使おうかと思っています。

まだ自分でやりたい方向性が決まっていないので曖昧なところが多いと思いますが、
どのようなことでも良いので気付いたことがあればアドバイスお願いいたします。

投稿日時 - 2009-10-09 00:20:28

QNo.5352969

暇なときに回答ください

質問者が選んだベストアンサー

まだ将来の方向性が決まっていないということでいろいろと試してみるのは良いことです。
IT関連の仕事にはざっくりと大きく分けると
・研究型
・実用型
の2種になるかと思います。
まあ、ほとんどの方が「泥仕事」と言われる後者に進むことになると思いますが状況によっては行ったり来たりの場合もあるしこれからいろいろと経験して考えれば良いと思います。

pythonをはじめられるのであれば環境は当然UNIX系のOSでということになろうかと思います。
ただ個人的な感想を言うと「初めての方がpythonというのはどうかなー」と思ってます(まあ人それぞれなので・・・)。

環境の選定に関しては勉強のためだけで実用向きのものを作るのでなければ、手近なもので組んじゃえばいいと思います。
もしテキストなんかがあるならそれに合わせるのがベストですね。

ただし、実用的なものを作りたいと考えているなら環境に左右されますので、どういうものを作りたいのかで環境を選定する必要があるかと思います。
その場合はOSに関する知識はもとより開発環境や作りたいものに関する知識は不可欠になります。
よく、C言語を勉強しろとか言われる方で、Cの文法や命令セットを理解しただけで一人前の顔をされる方をお見受けします。
C言語の信者か評論家(そんなのいるの?)ならそれでも結構ですが、それで実用になるものを創りたいならデバッガやリンカ、コンパイラやプリプロセッサの知識、さらにはMake(Makeスクリプト)やGrepなど開発環境をなんとか使えて「タコ以上、一人前未満」です。
アカデミックな意味合いでのプログラミングと言うことならたしかにOSそのものとの関連性は多少薄くなるかなと思いますが、実装しなければ絵に描いたもちですので、まったくの無関係という意見には賛成できかねます。
話が脱線してすいません。

FreeBSDとLinuxの印象に関しては、客観的に見るとだいたいその通りかと思います。
こういうのをいろいろと仕事でいじっていろんな目に会ってると意固地になってあれがどうだとかこれはこうだとこういうとこでウサをはらしたくなるものです。
ただしオープンソースにサポートは期待しないようにしてください。
ハックすると言うのは、自分の持つ好奇心とかマンパワーで疑問を克服することです。
耳学問ではなく地道な努力と試行錯誤がハッキングの基本です。
ひとさまに迷惑をかけるクラッカーにはならないでね。

最後にOSを選ぶ際ですが、ハードを最新のものにしてしまうとLinuxでもFreeBSDでもその機能をフルに活かす環境とはなりませんので気をつけてください。
とくに初心者の方は立ち上げでてこずる羽目になってしまうでしょう。
その手のOSなら民生部品で組み上げた一般的な中古機で十分です。
ただしその際も、部品が手に入りにくい独自ハードを搭載しているような有名メーカー製のはできるだけさけましょう。
自作もいいかも。

投稿日時 - 2009-10-09 11:13:36

お礼

回答ありがとうございます。

>環境の選定に関しては勉強のためだけで実用向きのものを作るのでなければ、手近なもので組んじゃえばいい

最初はプログラムの勉強を中心に学んでいきたいので、手近なもので組んでみようと思います。
テキストに合わせるというのもよさそうですね、細やかなアドバイス非常に助かります。

>実用的なものを作りたいと考えているなら環境に左右されますので、どういうものを作りたいのかで環境を選定する必要がある
>その場合はOSに関する知識はもとより開発環境や作りたいものに関する知識は不可欠

まずは作りたいものの方向性を固めて、その方面の知識を吸収していかなければ実用的なものを作ることは難しそうですね。

>デバッガやリンカ、コンパイラやプリプロセッサの知識、さらにはMake(Makeスクリプト)やGrepなど開発環境をなんとか使えて「タコ以上、一人前未満」

C言語が使えるだけではタコにもなれないとは……厳しい世界です。広く学ばないといけないのですね。

こういうものを仕事で使う人たちは正直すごいと思います。私の知識不足がもとで手を煩わせて申し訳ないです……。

>耳学問ではなく地道な努力と試行錯誤がハッキングの基本

心に銘記します。
いままでは実際に行動せずにいることが多かったのですが、
今日からはなるべく自分でやっていきます。
刑務所に入りたくないのでクラッカーにはならないように気をつけたいです。

アドバイスとても役立ちました。知らないことが多かったので、これからの勉強に参考になります。
中古か自作……これは予算と相談してみます。

最後まで丁寧な解説、本当にありがとうございました。

投稿日時 - 2009-10-09 14:28:42

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.6

_・) LinuxはUNIXとは違うよ

FreeBSDもUNIXとは別物だけど違う訳では無い

例えるなら
そうだな車で例えると
UNIXが一般の企業で作った車なら
FreeBSDは工学生がサークルで作ったカート
Linuxは園児が作った粘土細工

くらい違いがある

で回答を先にしておくと
既に出ていますが
プログラムを勉強するのにOSは全く関係ない
関係が有ると思ってる時点で才能が無いので諦めた方がいい

それと
FreeBSD
・種類が統一されているのでわかりやすい
↑FreeBSDは一つしかない 統一以前の問題

・大きなサーバーに向いている
↑サーバの意味を全く理解できていませんね

・サポートが少ない
↑サポートなんか必要ないから少ないんじゃなく 無いんだけど?

・Linuxに押されぎみ?
↑FreeBSDを使えない多くの人たちが流れていっただけです。

・堅実である
↑何もないからねぇ(笑)

Linux
・サポートが充実してる
↑課金が必要ですが

・流行っている
↑FreeBSDを使えない多くの人たちが流れていっただけです。

・種類がありすぎて互換性がない?
↑上記と同様多くの人たちが好き勝手に自分のしたいように作った結果です。

投稿日時 - 2009-10-09 08:41:24

お礼

回答ありがとうございます。

>UNIXが一般の企業で作った車なら
>FreeBSDは工学生がサークルで作ったカート
>Linuxは園児が作った粘土細工

だいぶ違いがあるようですね。企業はUNIXが主流ということでしょうか。

>プログラムを勉強するのにOSは全く関係ない
>関係が有ると思ってる時点で才能が無いので諦めた方がいい

厳しいお言葉で……。知識不足は確かなのでじっくり学んでいきたいと思います。
丁寧で経験にそった回答ありがとうございました。

投稿日時 - 2009-10-09 13:52:04

ANo.5

一台のパソコンでデュアルブートで使う場合は、LINUXが楽だと思います。
FreeBSDは、単独起動が使いやすいと思います。
FreeBSDは、フリーという呼称のとおり、非常にパッケージ管理が
シンプルで単純であるという裏に、使用者の技術力が必要です。

具体的に言えば、各プログラムの依存性チェックが大まかなだけに
サブルーチンライブラリのバージョン管理で、各プログラム間の
リンケージを、使用者側での調整といったソースレベルでの修正が
必要になってくる場合があります。
これらの知識は、コンパイルエディタ、リンケージエディタ、
実行という基本や、技術力が付けば常識と思えるようなことが要求されると思います。
こういった事情で、初心者の場合、Linuxから学ぶ方が良いと思います。

投稿日時 - 2009-10-09 06:56:24

お礼

回答ありがとうございます。

FreeBSDとLinuxの特徴をお教えいただきとても助かります。

使用者の技術力で選ぶというのも一つの選択肢、
どうやら初心者ならばLinuxから入ったほうがよさそうですね。

投稿日時 - 2009-10-09 12:58:00

ANo.4

はっきりいって、プログラムを学ぶのにOSなんぞは関係ないんでは?
そもそもPC初心者と思っているなら、背伸びせず、Windowsで始めたらと思うよ。
Linuxの場合は、ソースからコンパイルとかも必要になってくることもあるし、実際に書籍を見ながらなら、圧倒的にWindowsを元に説明してるし。
「Windows上でやるよりもUNIXの上でやるとたくさんの事が学べると聞き、」って、何のことか、ちゃんと聞きましたか?
抽象的な点を具体的な点に落として、自分で判断できるようにしないと、やる事の方向性を考えるのにつながらないです。

投稿日時 - 2009-10-09 06:22:46

お礼

回答ありがとうございます。

>背伸びせず、Windowsで始めたら

自分の実力に見合った勉強法が一番ということでしょうか。

>やる事の方向性を考えるのにつながらない

私は方向性などほとんど考えてませんでした……。
どの道に進むにしても指針が大切なのですね。

投稿日時 - 2009-10-09 12:51:04

ANo.3

>実はハッカーに憧れていて、そちらの勉強には
某ドラマ/漫画(あんなの嘘な内容)のあれとかでハッカーの本来の意味をはき違えたあわれな質問者の様ですね。
こういう勘違い人間にはプログラミングやってほしいく無いですね。

投稿日時 - 2009-10-09 02:39:28

お礼

回答ありがとうございます。

>某ドラマ/漫画(あんなの嘘な内容)

というと例のドラマですかね。

私は他の質問者とは違う!……ともいえないのが現状です。

確かに勘違いしてる部分がたくさんあるようなので
しっかり基本的な知識を取り入れてから取り組みたいと思います。

投稿日時 - 2009-10-09 12:45:42

ANo.2

>最初はPyothonから始めようと考えています。
Pythonやる程度ならWindowsで十分。


>プログラムの勉強はWindows上でやるよりもUNIXの上でやるとたくさんの事が学べると聞き、
OSの中核のカーネルのソースを読むことができるからね。
それ以外でプログラミングの勉強のためにLinuxやFreeBSDを選ぶ必要性はない。
はっきりいってWindowsで十分。

投稿日時 - 2009-10-09 00:49:44

お礼

回答ありがとうございます。

>Pythonやる程度ならWindowsで十分

実際にプログラムの経験がある人からのアドバイスでとても助かります。

最初はWindowsでプログラムの勉強をして、その後linuxという選択もありでしょうか?

実はハッカーに憧れていて、そちらの勉強にはUNIXの勉強も不可欠と書いてあったのでLinuxを検討しています。

投稿日時 - 2009-10-09 01:12:25

ANo.1

とりあえずどっちでもいいのでやってみればいいのでは?
「サポート」がどういうものかわからんけど.

投稿日時 - 2009-10-09 00:41:54

お礼

回答ありがとうございます。

言葉足らずでスイマセンでした……。
私のいうサポートとはLinux導入や導入後のアフターケアなどです。

>とりあえずどっちでもいいのでやってみればいい

実際に手を出さなければわからない事もあるのですね。早速試してみます。

投稿日時 - 2009-10-09 01:01:02

あなたにオススメの質問