Linux'u gerçekten derinden anlamak için en iyi kaynak nedir


10

Uzun yıllardır Linux kullanıcısıyım. Son zamanlarda, günlük olarak kullanıyorum. Medya için öneriler arıyorum; ticari kitapları, ücretsiz bilgileri, çevrimiçi videoları vb. işletim sistemini daha derinden anlamama yardımcı olacak. Önerileriniz lütfen.

Yanıtlar:


6

Linux Dokümantasyon Projesi, kılavuzlar sayfasında birkaç ücretsiz kılavuz bulacaksınız . Bu, oradan seçtiğim kısa bir listedir, ancak ihtiyacınız olanı bulmak için sayfada ilerlemelisiniz.

  • Linux'a Giriş - Bir Kılavuz; Haziran 2008
  • Yolda Linux; Kasım 2005
  • Linux Sistem Yöneticileri Kılavuzu; Temmuz 2005
  • Gelişmiş Bash-Scripting Kılavuzu; Mart 2009 (evet, bu da linux'u anlamak için iyidir)

İlgilendiğiniz konular için belirli NASIL belgelerini aramanız gerekir . Başka bir tarih NASIL listesi listelenir .

Linux yorumları yeni başlayanlar sayfasında bazı başlayanlar var .

Son olarak, bu çevrimiçi olarak sunulan küçük bir kitap - Kısaca Linux Çekirdeği . 2007 baskısının PDF formatında.

İhtiyaç duyduğunuz şeyleri aramaya başlamak için bu referansları yalnızca bir duyarga olarak kullanmalısınız.


Harika cevaplar için herkese teşekkürler. Özetle Çekirdek gerçek bir mücevher olduğunu. Aradığım bu tür bir kitap.
Stuart Woodward

16

Linux'u anlamanın en iyi yolu, onu kötü bir şekilde kırmak ve sonra düzeltmektir.


Tee-hee ... Bunu beğendim. Bir şeyleri kırmayı seviyorum.
Evan Anderson

1
-1 Bu iyi bir tavsiye, ama bir kaynak değil.
kullanıcı adı

1
mükemmel cevap. Linux hakkında çok şey öğrendim, sadece onunla uğraşmak ve bir şeyler denemek. Çözdükten sonra, düzeltmenin yolları için internete bakıyorsunuz. "Linux" öyle geniş bir terim olduğundan, bu durumda muhtemelen sadece Linux çekirdeğinden ziyade üzerinde çalışan tüm işletim sistemi ve uygulamalara daha fazla atıfta bulunduğu için, gerçekten önerebileceğiniz tek bir iyi kaynak yoktur.
Kibbee

2
Ancak listeleyebileceğimiz her tür insan için bazı yönergeler vardır. Kişisel favorim mümkün olan en zor dağıtım ile başlıyor ve sonra bir otomajik dağıtım kuruyor. Bir şeyleri kırmak öğrenme için harikadır, ancak belirli bir bilgi edinmek için ilk etapta neyin kırılacağını bilmek çok daha zordur. Çoğu zaman, bir şeyleri kırdığımızda, öğrenmemiz gerektiğini bile bilmediğimiz şeyleri öğreniriz.
Voyager

1
Linux'un ücretsiz ve çoğu durumda kolayca onarılabilir olması kesinlikle bir kaynaktır. Kırık bir sistemle başlamanın ve tüm parçalarını görebilmenin (ticari bir işletim sisteminin aksine) deneyimi büyük bir güçtür ve bir problemi nasıl araştırıp öğreneceğinizi öğrenmenin tek yolu bunu yapmaktır.
Karl Katzke

10

Emin değilim, "daha derin bir seviye" dediğinizde, komut satırına daha fazla girmekten bahsediyorsanız (bazı insanlar dağıtımlarıyla birlikte gelen GUI'yi asla bırakmazlar, bunu hayal edebiliyorsanız) veya gerçekten çekirdek sürücüleri yazmak gibi cesur düşük düzey şeyler. Birincisini ikincisinden daha fazla kabul edeceğim.

Linux ve Linux üzerinde çalışan uygulamaları kullanarak yapmak istediğiniz şeyler için makul hedefler belirlemenizi tavsiye ederim (bir web sunucusu çalıştırın, Windows ana bilgisayarlarına dosya sunun, DHCP sunun, grafik masaüstü çalıştırın, vb.). Benim kesin inancım sadece “yaptığınız zaman” öğrendiğinizdir. Aklınızda bir hedefiniz olduğunda bunu takip edin. Bu, man sayfalarını (çok sayıda ve çok sayıda man sayfaları), "NASIL" belgelerini, posta listelerini arşivleri, rastgele blog gönderilerini ve elbette, yüklediğiniz veya derlemek için çeşitli programlarla birlikte gelen belgeleri kutuları.

Birkaç yıl boyunca sınıf tabanlı BT sertifikasyon dersleri verdikten sonra, en fazla ilerleme kaydettiğini gördüğüm öğrencilerin kendi tasarımlarının çılgın projelerini yapan ve koltuklardan öğrenen öğrenciler olduğunu bir dereceye kadar otorite ile söyleyebileceğime inanıyorum. pantolonlarının.

Daha önce söylediğim gibi, man sayfaları, "NASIL" belgeleri ( http://tldp.org/docs.html ve 'net' üzerindeki birçok başka yerde ve posta listesi arşivleri arkadaşlarınızdır. En azından bu aşamada, çekirdek içi hakkında konuşan kitaplardan uzak dururum. Başlamak için bu kadar derin bilgiye ihtiyacınız yok.

Diğer insanlarla konuş. Sunucu Hatası, iyi tavsiye almak için harika bir yer olduğu ortaya çıkıyor. Burada soru sorun ve bunu aptal gibi yapacağınızı düşünmeyin. Linux'a aşina olanlarla "yüz yüze" gelebiliyorsanız, bunun için gidin. (Gerçi fikrinizi gerçeklerden ayırmanızı tavsiye etsem de. Linux topluluğunda, başka bir toplumda olduğu gibi, nasıl yapılacağına dair farklı görüşler üzerinde pek çok “kutsal savaş” vardır - belki daha da fazlası, topluluğun doğası göz önüne alındığında .)

Linux'un Unix mirası hakkında gerçekten "derin" bilgi edinmek için, Unix'e özgü bazı eski yönetim veya referans kılavuzlarına başvurabilirsiniz. Bunlardan erken bir zamanda (en azından Unix'ten türetilen işletim sistemlerinden bazılarına kıyasla Linux ile "alınmayan yollar" ın tarihsel doğasını takdir edene kadar) yönlendireceğim.

Genel beceri seviyenizin ne olduğunu bilmeden, bir kitaba çığlık atarım ya da olmasın. "TCP / IP Illustrated" ı ( http://www.amazon.com/Illustrated-Volumes-Addison-Wesley-Professional-Computing/dp/0201776316 ) tavsiye ederim . Hiç Linux'a özgü değil, ama TCP / IP ile uğraşan o kadar çok şey yapacaksınız ki, "soğuk" olduğunu bilmek zahmetsizdir.

Kısacası, sihirli bir kitap ya da kitap olmadığını, “ustaların” öğrendiği süper gizli videolar olmadığını, ama buna bağlı kalırsanız ve korkmazsanız ne öğrenebileceğinizle ilgili kesinlikle bir sınır olmadığını söylüyorum. ellerini kirletmek için.


10

Tek tek bileşenlerle oynamak için sadece yılların deneyimi size derin bir anlayış verecektir. Bunu söyledikten sonra, Oreilly Press kitaplarının büyük çoğunluğu bir kukla değilseniz ve 24 saatten fazla zamanınız varsa gerçekten iyi yazılmış ve mükemmeldir. :)

Linux From Scratch adlı bir proje var , bu size hiçbir şeyden linux dağıtımı yapmayı gösteriyor. Bir kez yapmak için eğitici bulabilirsiniz. Her şeyi kaynaktan derlemeniz gerektiğinden zaman alıcı olacak ve sonunda hepsini atacaksınız.

LWN.net'in çekirdek sayfasını, çekirdekte işlerin nasıl üst düzeyde çalıştığına yetişmek için çok değerli buluyorum .


+1 oy kullandı LFS FTW
bandi

7

Her gün kullanmak dışında (ki bence harika bir şey!), Ağınız için bir linux kutusunda uygulanabilecek hizmetleri düşünmeye başlamanızı öneririm. Linux hizmetlerine dayalı olarak tasarım yapmaya başlayın, hazır olduğunuzda araştırın ve uygulayın. Bu süreçte umarım hatalar olacaktır ve bu deneyim işletim sistemini daha derin bir düzeyde anlamanıza yardımcı olacaktır.


3
Linux'u sıfırdan inşa etmek bile mantıklı. Bunu deneyin: linuxfromscratch.org
Caterpillar

Vaov! Kesinlikle +1 bu konuda!
l0c0b0x

Sıfırdan Linux oluşturmak için +1. 90'lı yılların sonlarında uclibc disket tabanlı Linux kurulumlarını kullanarak Linux önyükleme işlemi, araç zincirleri ve yarı gömülü geliştirme hakkında bir yükü öğrendim. Çekirdekten "sıfırdan" herhangi bir Linux makinesinin önyüklenmesi kesinlikle size harika bir deneyim verecektir.
Evan Anderson

5

Genel Unix felsefesi ve komut satırına mükemmel bir giriş için Brian Kernighan ve Rob Pike'ın klasik Unix Programlama Ortamı var .

Ayrıca IBM'in DeveloperWorks web sitesinde Linux bölümünde 900'den fazla makale bulunmaktadır. İlginç bulduğunuz konular için makale listesine göz atabilirsiniz.

Son olarak, nitrit cesaretine girmeye hazır olduğunuzda, kaynağa gidin. Kernel.org adresinde kullandığınız çekirdek sürümünün kaynak kodunu alın (dağıtımınızda yükleyebileceğiniz çekirdek kaynak paketleri de olacaktır) ve Documentation dizinine bakın. Çekirdek iç kısımlarında ve yapılandırma ayarlarında çok sayıda referans malzemesi bulacaksınız.


4

Okulu. Linux sistemini gerçekten anlamak için çok çeşitli Bilgisayar Bilimi sistemleri arka planlarına ihtiyacınız var. Derleyiciler, Bilgisayar Mimarisi ve İşletim Sistemleri. Ve neyin önemli olduğunu gösterebilecek ve sahip olduğunuz veya yanlış anladığınız yanlış anlamaları düzeltebilecek bir rehbere ihtiyacınız var.

Modern işlemcilerin nasıl çalıştığını ve C derleyicilerinin bunlardan nasıl yararlandığını anladıktan sonra, Minix 3 gibi kitaplara dalabilirsiniz :

Minix3

Bu, Linux çekirdeğinin yazarı Torvalds'ın (gevşekçe) eserini dayandırdığı en son sürümüdür. Bir işletim sisteminin temel bileşenlerini ve algoritmalarını ve tam olarak nasıl uygulanacağını öğreneceksiniz: metin, kaynak kodun Minix'e referans ve öğretim amaçlı neredeyse tamamen basılmasıyla birlikte gelir. Sistemin nasıl çalıştığını ve kontrolün nerede aktığını tam olarak anlamak için kesme işleyicisini kontrol edin.

Ve okullaşma ve Bilgisayar Bilimlerinde atılmadan önce, İşletim Sistemlerinin yapması istenen işlerin genellikle NP-tamamlanmış olduğuna dikkat etmek önemlidir. Bu nedenle, çok çeşitli kullanılabilir algoritmaları anlamak, performans ayarı için kritik öneme sahiptir, çünkü kanıtlanabilir şekilde optimal bir algoritma olmayacaktır.

Çekirdeğe ek olarak, başka alanlar da var. Linux açık kaynak olduğundan, bu akademik bir altın madeni. Debian ve Ubuntu gibi sistemler kaynaklarını kullanılabilir hale getirir ve çok basittir:

apt-get source package-name

Birçok yukarı akış, kodlarını revizyon kontrolünde barındırır, böylece bir programın kaynağının en güncel sürümünü okuyabilir veya hatta yıllar önce nasıl oluşturulduğunu görebilirsiniz.


"Ve neyin önemli olduğunu gösterebilecek ve sahip olduğunuz veya yanlış anladığınız yanlış anlamaları düzeltebilecek bir rehbere ihtiyacınız var." Gerçekten en iyi sözlü gelenek tarafından anlaşılan bir işletim sistemidir (maalesef).
Avery Payne

3

Kaynak .

Tabii ki, eğer çekirdeği kastediyorsanız .

Eğer çekirdeğin ve API'nin üzerindeki sistemi öğrenmeye çalışıyorsanız, eski okulu öğrenmeye başlardım Unix. Belki bazı FreeBSD / OpenBSD / NetBSD / DragonflyBSD'yi deneyin . Küçük bir Minix de yardımcı olabilir. Ardından Slackware , Arch , Debian ve Gentoo'ya geçin . Hepsi farklı ( ve harika belgelerle birlikte geliyor ) ve bu farklılıklarda , merakınız sizi neden aradığınızı gösterecek, çok fazla teknik, ticari, politik ve tarihi bilgi kazanacaksınız.

Başka bir yol da /etceski Unix kılavuzları ve elbette Google'ı kazmak olacaktır .

Linux sıfırdanlearning GNU / Linux için harika bir yoldur .


3

Sadece kendi dağıtımınızı oluşturmaya başlayın. Bunu kendiniz için yaptım ve biliyor musunuz? 4 ay geçirdikten sonra 10 yıldan fazla Linux kullanan çevremdeki adamlardan daha çok Linux içselliğini biliyorum.


3

* Nix ortamlarından herhangi birinde öğrenmek bütüncül bir yaklaşımdır. Bir dizi epifani ve deneyim içerir . Bu kaza ile değil. Orijinal ortamın etrafında ve bilgisayar programcıları için tasarlandığı için tasarımının kasıtlı yan ürünüdür. Odak, kullanıcı deneyimine değil, teknik yönlere odaklandığı için de en büyük eksikliğidir. "Hizmetsiz 100 yıl sürecek sağlam bir çerçeveye sahip bir ev, ancak siding gelişigüzel ve boya açıkça ihmal ediliyor".

Bunu, bu felsefenin ayna görüntüsü olan Windows ile karşılaştırın - kullanıcıya somut bir deneyim kazandıran bir şey yapın, ancak onları şeylerin iç işleyişinden koruyun. "Güzel bir döşeme ve boyaya sahip bir ev, ancak birden çok kez etrafı saran bir temel".

Öğrenmeye gerçekten başlamak için, donanımınıza özgü seçeneklere sahip özel çekirdek görüntüleri oluşturmanızı ve bunları istediğiniz seçeneklerle yüklemenizi öneririm. Bir şeylerin, bir yerlerin kırılacağını tam olarak düşünmeyi beklemelisiniz ve işleri "normal" e geri alabilir veya geri çeviremeyebilirsiniz. Bu, bu öğrenme sürecinin normal bir parçasıdır ve buna, işler kırılacak gibi yaklaşmalısınız (yani, bunu birincil yükleme yapmayın, ayrı bir sürücü veya sanal makine veya başka bir şey kullanmayın ...)

Benzer bir soruya cevap verdim , bu yüzden yazmayı azaltmak için burada çapraz bağlantı yapacağım . Ayrıca , bu sayfadaki ilk birkaç paragrafı okumak isteyeceksiniz , bu da size ne için olduğunuz hakkında daha iyi bir fikir verecektir .


2

Dosyaları okumaya / cat'ing'e başlayın /procve /etc- dosyaları okuyarak herhangi bir zarar vermezsiniz (ikili bilgi üreten bir dosyayı kedi yaparsanız belki terminal / ssh bağlantınızı bozabilirsiniz ) ve çoğu insan okunabilir. ' sysctl -a' çıktısı da bir altın madeni. İlginç bir şey bulduğunuzda, google veya manbu konuda daha fazla bilgi için.

Çekirdek ve işletim sisteminin bu şekilde nasıl çalıştığı hakkında bazı gerçek taşlar bulabilirsiniz.

Birkaç hızlı işaretçi:

/ Etc / inittab'deki
/etc/rcS.d
/etc/rc2.d
/ Etc / crontab'ın
/ Proc / 1 / Environ
/ Proc / dosya sistemleri
/ Proc / meminfo
/ Proc / cpuinfo
sysctl -a | grep vm.swappiness
/ etc / default # debian tabanlı
/ etc / sysconfig # redhat tabanlı

Hızlı ipucu - / proc'daki bazı çıktılar NUL ayrılmıştır ve bu nedenle okunması zordur. NUL'ları yeni satırlara dönüştürmek için 'tr' kullanın, örneğin:

sudo kedi / proc / 1 / environ | tr '\ 0', '\ n'

2

Linux veya herhangi bir işletim sistemi hakkında öğrenilecek çok şey var. Bir tür öğrenme, "derinlemesine" öğrenme dediğim şeydir ; bu, çekirdeğin nasıl çalıştığını, hangi varsayımları yaptığını, çeşitli bitlerin birbirleriyle nasıl konuştuğunu ve donanımla nasıl başa çıktığını öğrenir. Bu çekirdek şeyler. Bunun gibi şeyler, işletim sisteminin neden bu şekilde kırıldığını bulmakta çok yararlıdır. Aslında bunu Karl Katzke'nin yaptığı gibi öğrendim . Bir şeyleri kırdım ve daha iyi yaptım.

Bu tür bir bilgi için Linux oldukça kolaydır. Hepsi birçok yerde belgelenmiştir. Aynı şey Windows için tam olarak söylenemez, ancak bunun için hala çok fazla doktor var.

Sonra bash / sed / awk / regex bilgisinin ve diğer tüm şeylerin işe yaradığı 'işletim sisteminde dolaşmak' öğrenimi var. Gerçek şu ki, bir işletim sistemi bugünlerde çekirdeğinden çok daha fazlası. Satıcı tarafından sağlanan sürücü blobları var. Bu dağıtımın başlangıç ​​komut dosyalarını nasıl paketlediğini görebilirsiniz. Çeşitli yama / güncelleme mekanizmalarınız var. Herkesin ihtiyaç duyduğu, ama çekirdek olmayan sistem armağanlarınız var.

Bu basit çekirdek-fu'dan çok daha geniş bir bilgi spektrumudur. Dağıtıcıya göre değişir, bu nedenle Red Hat'taki işler Slackware'de aynı şekilde çalışmayabilir. Dosyaların bulunduğu yerler değişebilir. Ne seçtikleri gibi 'vi' yerine aldı.

"Linux Öğrenmek" basit bir işletim sisteminden daha çok bir ekosistemin tamamını öğrenmekle ilgilidir.


1

İşletim sistemi hakkında bana "Linux Öğrenin" kitabından daha fazla bilgi veren "Linux Programlama" adlı bir kitabım vardı. Keşke ISBN numarası vardı, ama şaşırtıcı oldu ... kısmen çünkü programlama "neden" s, sadece "nasıl" s değil.

Genel olarak, öğrenmemin çoğu dürüstçe onu kırarak ve düzelterek oldu. Yavaşça oldu ve 12 yıl sonra hala yeni şeyler öğreniyorum.

Kesinlikle bir süreç. Anahtar çok, çok meraklı olmaktır. Bilmediğiniz bir şeyle karşılaştığınızda, ona aşina olun. Nasıl ve neden keneler hakkında bilgi edinin ve temel teknolojileri de öğrenin.


1

Linux, FreeBSD, OpenBSD, Solaris ve hatta diğer çeşitli Linux dağıtımları aracılığıyla sürüklenerek Linux hakkında çok şey öğrenmek için iyi bir yol buldum. İşleri nasıl farklı yaptığı hakkında. Bulunduğunuz yer hakkında öğrendiğinizden başka yerleri ziyaret ederken memleketiniz hakkında çok şey öğrenirsiniz.


1

Kitaplar söz konusu olduğunda O'Reilly'nin hoşuma gittiğinden, "Temel Sistem Yönetimi Cep Referansı" ve "Linux Sistem Yönetimi" olası başlangıç ​​noktalarıdır.

TCP / IP Ağ Yönetimi kopyam daha eskidir ve bir süredir kullanmadım, ama olup bitenler hakkında daha derinlemesine bir anlayış elde etmeyi çok yararlı buldum.


1

Linux'u normal masaüstünüz olarak kullanarak zaten ilk adımı atıyorsunuz.

Tüm parçaların nasıl birbirine bağlandığını ve yapılandırıldığını anlamak istiyorsanız, Gentoo'yu çalıştırmanızı öneririm . Normal bir stage3 kurulumundan, kendi çekirdeğinizi derlemeniz, tüm hizmetlerinizi (kutunun dışında olan SSH hariç) kurmanız, X'i kendiniz oluşturup yapılandırmanız gerekir. Bunu yaparken, bir İkili bir linux kurulumuna giren tüm bitleri çok daha iyi anlar. Ayrıca Gentoo'nun bulduğum herhangi bir Distro'nun en iyi belgelerine sahip olması ya da bu portage'ın fevkalade güçlü ve esnek bir paket yöneticisi olması acı vermez.



1

Birisi bundan bahsetti ve sanırım çeşitli linux tatlarını kullanmama en çok yardımcı olan şey. Linux üzerinde makul bir tutacağınız olduğunu düşünüyorsanız, open / net / freebsd kullanmaya başlayın.
Neden olarak, birlikte çalıştığım çoğu linux millet, diğerinden farklı olmayan bir veya iki linux dağıtımını kullanabilir. Elbette, çoğu bu ellerin arkası gibi dağıtımları biliyordu, ancak bazı şeylerle endişe verici bir şekilde hala şaşırabilirlerdi. Bence (bir alev savaşı başlatmak için değil) BSD'lerin bir araya getirilme şeklinin işlerin nasıl yapıldığını "neden" ini keşfetmenin biraz daha kolay olduğunu düşünüyorum ). Bakış açınızı değiştirmeye gelir, birileri tamamen farklı bir şekilde yapana kadar bazı şeylerin neden böyle olduğunu sormak asla size gelmeyebilir.


1

Stackoverflow'daki bu yayın , konuyla ilgili kanonik çalışmaların çoğunu içeren geniş bir Unix / Linux kaynakları listesine sahiptir.

Linux'un perde arkasını neyin tıkladığını öğrenmenin başka bir yolu da Linux From Scratch ( http://www.linuxfromscratch.org/ ) aracılığıyla çalışmaktır . Temelde bir linux sisteminin çeşitli bileşenlerini manuel olarak kurmak ve yapılandırmak için bir dizi egzersizdir ve somunları ve cıvataları öğrenmek için çok iyi bir giriştir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.