什麼環境最適合學習 UNIX ?

FreeBSD?Linux?or?這些Unix-like和UNIX的相似度如何?有什麼區別?優缺點是?那個更適合學習?更Geek?


如果真的要玩unix, 就必須得試試BSD了, 如果要玩BSD, 那就一定要用FreeBSD了

所以, 結論就是, 用FreeBSD


我覺得作為一個學習者,先從主流的,生產上運用廣泛的Linux發行版學起比較好,CentOS源自RHEL,是生產上最廣泛的版本之一,Ubuntu的LTS版本也是廣泛用於生產的版本。

這兩個版本在生產上使用的比較廣泛,而且分別代表了RPM(Redhat主導)和DEB(Debian主導)的包管理風格,資料也較為豐富

BSD的話,建議FreeBSD這一生產環境上最廣泛的版本


FreeBSD 或者買 Mac。

Linux 絕對不是一個好的環境。

以下是 FreeBSD 的優點:

* 文檔齊全

新手可以從《FreeBSD 使用手冊》入門,即使是有經驗的 Linux 用戶也能從這個手冊學到東西。

* 體系完整

FreeBSD 和 Linux 不同,它是一套完整的操作系統。它的源碼樹包含了內核,C/C++ 庫,編譯器,shell,基本命令,文檔,所有構建腳本等等。

* ports 系統

FreeBSD 的上層應用可以通過 ports 編譯安裝,ports 系統完全由腳本寫成,依賴解決得很好。如果軟體有問題,讀代碼也方便。

* ZFS

ZFS 是一個很棒的文件系統,它整合了卷管理功能,支持 RAID-Z、壓縮、快照、回滾、寫時複製(無fsck,且有利於SSD壽命)。FreeBSD 內核原生支持 ZFS,可以從 ZFS 分區啟動,並且支持 TRIM。

* 適合學習 C/C++

FreeBSD 一直在去 GNU 化,近年來的一大成果就是用 clang 代替了 gcc。而 clang 3.2 及其 libc++ 已經完全實現了對 C++11 的支持。另外 vim 的 clang 代碼補全插件也很爽。


FreeBSD或Mac OS X


如果你要學基本命令 腳本這些 各種unix/linux區別不大 找個順手的就行

至於具體的risc小雞上的各種unix 其實你問"為了學aix是先學linux好還是freebsd好?"這種問題是沒啥意義。posix通用的部分都差不多 剩下不一樣的部分 怎麼都不一樣

所以先擼熟linux或者bsd無所謂 然後下一步想玩啥 就去收台二手洋垃圾小雞玩,這才是王道。


個人覺得Linux發行版的使用從零開始的順序是這樣的:

ubuntu -- debian -- arch -- gentoo

ubuntu非常適合入門,遇到問題搜索時中文答案也最多,安裝使用都好學,入門的話這個是必須的,還有著名的滲透測試系統backtrack是基於ubuntu發行的

arch的用戶社區質量很高,這個發行版追求的是簡潔之道,需要自己進行較多的配置,沒有ubuntu里一些用不到但佔用著資源的軟體

debian應該是ubuntu和arch的折衷吧,另外這是個核心發行版,ubuntu就是基於這貨的,自由軟體之父斯托曼對這個也有很高評價,默認下它跑的都是自由軟體

gentoo好像是得自己編譯,這個得大牛才搞得來,小菜表示還沒安裝過

目前本騷年機子上有debian,arch,opensuse。在之前ubuntu用了好久了。按裝多系統是個比較好的選擇。另外freebsd的unix血統比較正宗,屬於bsd系,另一個系的unix是system V系。使用freebsd(就是那紅色小怪獸)比較有unix味道吧

再另外,像centos,這個是紅帽的社區版,還有Fedora也是紅帽系的,Centos偏商業,Fedora偏個人應用,Centos用的是穩定版的內核和軟體,Fedora是很新的非穩定版的軟體,有當測試環境的味道,喜歡最新軟體的同學可以試試,要是初學還是穩定的好點。個人不大喜歡偏商業的系統。此外還有個opensuse,好像被稱為最華麗的發行版,現在用著,就是那些kde桌面的特效,也沒啥,別的發行版也可以安上kde桌面,在說ubuntu的gnome桌面還可以做出mac的效果呢

在另外,除了按下發行版不表,光是Linux/unix的桌面管理器/虛擬桌面又是一個紛繁的世界,fvwm、i3、awesome、twm、openbox。。。這些貨也是極客風格十足,要是閑著沒事,那就都安上試個遍吧。

折騰的過程就是學習的過程

說到適合學習Unix/Linux的真正的東西,還是那個黑底綠字的終端。。

Linux的發行版如此之多。此之多。之多。多。。


如果是用來學習的,而不是用來玩的,不推薦用arch, arch的包太新,不穩定.

gentoo沒用過,但感覺這個不太低碳啊,安裝麻煩.

ubuntu的話,安裝方便,

可以考慮裝Debian.比較乾淨的發行版.

其實大點的公司用RedHat的多.

BSD系的話,可以試試FreeBSD.


macOS


那本《unix高級編程》我一直是在虛擬機裡面的arch寫的程序,裝了gcc和gdb足夠了。另外還裝了sshd,這樣可以用外面的ssh客戶端連接並且更換字體~

虛擬機裡面的字體太蛋疼了~


初學就別折騰自己了,到 http://www.unix-center.net/ 申請個 shell 專門用來學習不好么?


Mac OS X

完全保留和發展了BSD。而且out of box。

更新:最近的BSD方面的發展OS X都及時跟進了。比如集成了來自Solaris的DTrace。還有Mandatory Access Control的framework TrustedBSD。可以說OS X完全是Unix-like世界裡一個合格的有活力的成員。


mint,個人認為這是最友好的,沒有之一,

arch,官方源加archlinux源,軟體應有盡有,而且可以一直得到最新的,


Gentoo 絕對是laptop的killer... 來一次emerge -avuDN world,就能讓筆記本剩半條命..

計劃跳營,轉投Arch ..


最適合學習:CentOS 5 / Ubuntu;

最Geek:Gentoo

折中:ArchLinux

建議:先學習吧,Geek先擱一邊……


用ArchLinux, http://www.archlinux.org

------更新-----

在工作中,我一直再使用ArchLinux。我個人很喜歡ArchLinux的包管理,容易定製,簡單方便。它的系統啟動和配置腳本也很簡潔,容易修改。一句話,ArchLinux是面向開發人員的發行版。

曾經用過很多Linux發行版,OpenSUSE, Ubuntu, Debian等等,但是我個人有潔癖,不需要的東西不喜歡裝。個人一直很不喜歡各種發行版的包管理,安裝一個包有時候帶一串依賴。我曾一度使用LinuxFromScratch,自己編了一個Linux,雖然很簡潔,但是發覺軟體升級維護還得每次都重新編譯安裝,實在是耗不起時間。


如果作為初學者,先從ubuntu開始入門吧,安裝方便,界面友好。系統裝好後再自己安裝軟體,用命令行,習慣linux的系統風格。同時可以看著《鳥哥的linux私房菜》學習linux的具體操作。等到你ubuntu用熟了,再考慮進階。


bsd系列的有OPENBSD FREEBSD

LINUX系列的 UBUNTU 11.4 FEDORA 14 (其實我喜歡MINT這個衍生版,特別是寫文檔的時候) 以上不是我推薦的。

LINUX新手重磅推薦:LFS

其實MAC 不錯。


我用的類unix

windows 10 (hyper-v -&> centos 7.1) + putty


我是從大三開始學習Linux 的,最初是redhat 9,後來因為工作需要一直在Linux平台下工作和學習,主要用Ubuntu平台,個人覺得Ubuntu的desktop產品做得比較人性化,而且安裝和更新軟體都比較方便,社區也比較活躍,很適合初學者。還有一點我覺得也很重要,那就是學習的目的和態度,無論是windows還是Unix/Linux,都是前輩智慧的結晶,也都是各具特色的平台和工具,我們學習它,利用它,關鍵在於解決自己工作或者學習上的問題,他們各有特色,找到最合適的方案,把它利用起來,記住,應用它是最好的學習!


unix當然首選freebsd了,如果是純種的unix當然首選solaris了。


推薦閱讀:

為什麼提到OS X優勢和Windows劣勢的時候都要大說特說Unix血統?
如何評價王垠的文章《unix的缺陷》?
如何Linux入門?
Unix / 類 Unix shell 中有哪些很酷很冷門很少用很有用的命令?
epoll的邊沿觸發模式(ET)真的比水平觸發模式(LT)快嗎?(當然LT模式也使用非阻塞IO,重點是要求ET模式下的代碼不能造成飢餓)

TAG:操作系統 | 編程 | Linux | 黑客Hacker | FreeBSD | Unix | 自由軟體 | Hack | 系統學習 | BSD |