Jak se stát Unix vývojářem?

vyvojar

Jak se stát Unix vývojářem?
« kdy: 21. 10. 2011, 09:35:47 »
Zdravím,
chtěl bych se naučit programovat na unixu a celkově mu poruzumět jak funguje atd. a třeba si případně i někdy v budoucnosti najít práci jako např. kernel developer nějakých embeded OS založených na linuxu. Tak nějak ale celkem tápu kde začít a co např. přečíst za publikaci. Těch verzí je hrozně moc, ubuntu,debian,centos, nějaké to FreeBSD, RedHat, ... Liší se to nějak hodně tou architekturou, jako že pokuď bych uměl dobře na jednom, tak na jiném bych musel začínat skoro od nuly? Díky za odpovědi.
« Poslední změna: 21. 10. 2011, 13:24:34 od Petr Krčmář »


pepazdepa

Re: Unix vývojář
« Odpověď #1 kdy: 21. 10. 2011, 11:09:16 »
Advanced Programming in the Unix Environment (2nd Edition)
    by W. Richard Stevens, Stephen A. Rago

This is a very detailed and easy to read book. It has several examples that you can learn from. There is plenty of information about library and system calls, and associated information so that you can use them. This book along with the OpenBSD manual pages make an excellent combination.

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Re: Unix vývojář
« Odpověď #2 kdy: 21. 10. 2011, 11:18:53 »
Ale vubec ne. Ve skutecnosti jsou ty principy velice podobne.  Vyber distribuce je spise otazkou nejake filosofie nez-li odpovedi na dotaz "Co je nejlepsi distro." Posledni dobou se tu rozhorela komunikace o BSD tak urcite doporucu zabrouzdat i tam a vyzkouset nekterou variantu. Dokumentace je pro nej povetsinou famozne napsana. Zakladem je anglictina, ve ktere jsou psany ty nejlepsi materialy ohledne techto temat a je jich na webu nespocetne a zdarma. Urcite doporucuju se zamerit na jeden vybrany OS a ten se naucit poradne nez-li klasicky modfel z dob drivejsich, ktereho jsem soucasti taktez, "Od vseho neco." Urcite si precti o cem ktere distro je, jak se zameruje, jake ma  cile a jakou ma komunitu. V neposledni rade te zajima jak casto vychazeji nove verze pripadne updaty atp. Ze sveho pohledu muzu rici, ze pro zacatecnika s tvymi cily je BSD skvela volba a rozhodne lepsi nez-li one-click distra typu ubuntu etc. Hlavne si uvedom ale, ze BSD jadro je neco jineho nez linuxove takze je dobre si ujasnit kam ze to vlastne smerujes. Jinak programovani v C a skriptovani v shellu bude nutnost. S pevnymi nervy se to da zvladnout bez problemu. Ja momentalne studuju FreeBSD a lituju ze jsem s podrobnym studiem dokumentace nezacal uz davno spise nez ztracet cas kopirovanim nuznych how-to fungujicich mozna tak pro jeden urcity system a to jeste ne uplne dobre. Za posledni dny studia dokumentace jsem se o unix-like sfere naucil vic nez za celej zivot predtim a to predevsim diky uzivateli "X" co mne tak dokonale nahlodal na paralelnim threadu, ze uz mam doma svatyni zasvecenou BSD :).

Nicmene nezatracuju tim zadnym zpusobem linux. Debian jsem nejakou chvili pouzival a ani Gentoo mi nebylo uplne cizi nicmene pokud se chces zamerit na ty embeded systemy, stoji za zminku NetBSD.

PetrK

Re: Unix vývojář
« Odpověď #3 kdy: 21. 10. 2011, 11:27:05 »
Pro zacatecnika muzu doporucit:

design jadra:
McKusick, The design and implementation of the FreeBSD operating system

na programovani:
Stevens, Advanced programming in the UNIX environment, 2nd edition
Stevens, UNIX network programming volume 1, 3rd edition

Celkem dobre se da cerpat i z "the linux documentation project", ale podle me to zacatecnikovi knihu (kvalitni) nenahradi.

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Re: Unix vývojář
« Odpověď #4 kdy: 21. 10. 2011, 11:29:52 »
Kirk McKusick je borec nejvetsi :). Prej se daji nekde i sehnat videa jeho prednasek coz se mi bohuzel nepostestilo, nicmene ohledne FreeBSD toho vi neuveritelne a je to rozhodne idealni studnice informaci.


D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jak se stát Unix vývojářem?
« Odpověď #5 kdy: 24. 10. 2011, 23:39:18 »
Co se týče filosofie programování v Unixu, mohu doporučit knihu Erica S Raymonda Umění programovaní v Unixu (Computer Press).

A co se týče Linuxu. Výběr distribuce by neměl většinou podstatně ovlivnit vaše možnosti programování, je to spíše otázkou toho co od systému chcete a co od něj očekáváte.  Bylo by dobré se s Linuxem nejdříve trochu seznámit a sžít - Informací a knih na toto téma je plný internet a i v kamenných obchodech se občas něco najde. třeba Linux dokumentační projekt vydávanou Computer Pressem ( http://www.root.cz/knihy/linux-dokumentacni-projekt-4-vydani/ ).

Stejně tak s Linuxovým jádrem. Dobrým průvodcem je kniha pana Lukáše Jelínka Jádro systému Linux (Computer Press), no a samozřejmě dokumentace k jádru, včetně jeho zdrojáků....       

x

Re: Jak se stát Unix vývojářem?
« Odpověď #6 kdy: 25. 10. 2011, 07:14:53 »
Pokud zacinas opravdu od nuly, tak spise nez knizku od Raymonda doporucuji tohle http://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X . Sam jsem tam i po letech objevil veci o kterych jsem nemel tuseni a jde to pekne logicky pekne od zacatecni praci v terminalu, pres shell scripty az po C.

Je to sice starsi kousek a vice o System V Unixech od AT&T, ale bez problemu pouzitelne i na BSD treba. Ten vek se muze zdat nevyhoda, ale naopak je to velke plus, protoze tam clovek nenarazi vubec na to jak neco naklikat nebo ve stylu jak menit barvicky ;-)

Pokud by ti slo o Linux a opravdu se o nem neco dozvedet, tak http://www.linuxfromscratch.org/ a tam tu knizku LFS co je primo na webu.

FreeBSD ma skvelou sadu dokumentace a to i pro vyvojare http://www.freebsd.org/docs.html , ale system samotny je zamereny vice na i386/amd64 stejne jako www.dragonflybsd.org

Takze pokud ti jde spise vice o embedded, tak jednoznacne www.netbsd.org (viz. podporovany seznam HW http://www.netbsd.org/ports/ vcetne specialit jako http://blog.netbsd.org/tnf/entry/support_for_microsoft_emips_extensible ) nebo pripadne www.openbsd.org, ale tam je ten vyber HW limitovanejsi http://www.openbsd.org/plat.html . Embedded to ale taky nejak samozrejme nebrani http://www.informit.com/articles/article.aspx?p=1393496


x

Re: Unix vývojář
« Odpověď #7 kdy: 25. 10. 2011, 07:17:57 »
Kirk McKusick je borec nejvetsi :). Prej se daji nekde i sehnat videa jeho prednasek coz se mi bohuzel nepostestilo, nicmene ohledne FreeBSD toho vi neuveritelne a je to rozhodne idealni studnice informaci.

https://www.youtube.com/bsdconferences

A urcite taky doporucuju prezentaced primo z tech konferenci. Nektere BSD je maji primo na webu, ale jinak casto staci jit primo na stranky AsiaBSDcon, EuroBSDcon atp.

vyvojar

Re: Jak se stát Unix vývojářem?
« Odpověď #8 kdy: 25. 10. 2011, 12:38:49 »
Díky za názory. Začínám od nuly s Linuxem/Unixem, ale programovat v C umím dobře. Spíš bych se chtěl zaměřit např. na to FreeBSD, které jak jsem tak pochytil z diskuzí zde je asi nejlepší os na server. Ty embedded systémy mě lákají, protože sem si vždycky chtěl např. naprogramovat nějaké mikroprocesory a prostě si sám bastlit a kdybych např. věděl, jak do toho zabudovat i OS, tak to by bylo nice, tam by byl na místě asi ten NetBSD, ale to je asi stejně hrozně práce pro jednoho, takže bych asi neměl být tak naivní, že si něco sám sestrojim a hodim na to linux, ale spíš se zaměřit na to FreeBSD. Myslíte, že by se člověk měl naučit nejdřiv dobře např. s nějakou distribucí linuxu jako UBUNTU a pak teprve případně přejiít na BSD systémy?

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Re: Jak se stát Unix vývojářem?
« Odpověď #9 kdy: 25. 10. 2011, 13:04:58 »
Vubec ne!! Naopak. Ja dneska lituju ze jsem nezacal rovnou s BSD poradnym studiem dokumentace, coz vypada jako moc prace na zacatek, nicmene to praci usetri do budoucna kdezto veskere one click distro etc. maji xyz ruznych skvelych how-to kde clovek jen slepe klepe do klavesnice a po hodinach pokus-omyl metody to tak nejak funguje. Nejlepsi je dokumentaci ramcove proletet aby clovek vedel kde co pozdeji najde a mel nejake zakladni postrehy a prehled funkci. Potom se zamerit na zakladni konfiguraci site, uzivatelu etc. a dat zaklady shellu, skriptovani, pipy prace s procesy a se zdroji, fungovani jadra. Zni to jako spousta cteni a prace a taky je, ale opravdu tomu rozumet nez jen kopirovat konfiguraky a hrat si se systemem se postupne stane vobrovskou zabavou a je to spise skola hrou. FreeBSD je dobra volba a pro zacatecnika asi nejidealnejsi. Ostatni BSD nejsou zase az tak rozdilne i kdyz rozdily tam samozrejme jsou. Nicmene zaklady a principy jsou vsude stejne.
Nejidealnejsi je ten system co si vyberes pouzivat jako hlavni OS, tak se ti dostane do krve a poradne se s nim naucis. Ja si zacinam cim dal tim vice zamilovavat tiling managery, vim editor a terminalove nastroje. Neveril jsem, jak nekdo muze v necem podobnem pracovat ale je nutno rici, ze to cloveka posouva trosku nekam do jinych sfer co se tyce vykonnosti a efektivity. Pokud zvladas Cecko tak mas obrovitanskou vyhodu a krome skriptovani se jeste nauc alespon jeden skriptovaci jazyk jako treba python nebo perl. Jsem zatim porad jenom zacatecnik, nicmene mi pripada, ze cim vice toho vim, tim vice jsem zacatecnikem :).

stewe

Re: Jak se stát Unix vývojářem?
« Odpověď #10 kdy: 25. 10. 2011, 14:10:34 »
no po precitani prispevku od smoofy-ho ma boli krk od toho sustavneho prikyvovania :) ma pravdu. ja som tiez zabrdol do bsd-cka, do freebsd a velmi sa mi to pacilo a vseobecne drzim palce viac bsd nez linuxu, no pouzivam blbe xubuntu lebo som pohodlny :) ale asi pred dvoma rokmi som fical na bsd aj na notebooku a naucil som sa o tom celkom vela.

k bsd sa chcem urcite vratit, tiez som zaregistroval ze smoofy si chce spravit certifikat a to chcem aj ja ale nie je cas ... a v bratislave je to zachvilu, ale som v zahranici a zasa to nestihnem :/ stale ten prechod na bsd oddalujem, lebo skola, lebo to, lebo tamto ... ale urcite sa k tomu vratim. je to dobre investovany cas. problemy musite riesit tak ci tak aj v linuxe tak ich pojdem radsej riesit na system ktory ma zmysel (v tom zmysle ze mi to da kopec aj do linuxu).

ja mam tiez blizko k tym embedded systemom a uz viac krat som sa pokusal zbuchat system od nuly, co sa mi aj podarilo. na internete sa povaluju navody nad ktorymi som obrazne povedane dusevne onanoval :D to boli casy ... narval som to do 12 mega a bootol z usb-cka :) a ten pocit ze to ide, ze zapnete top a vidite v ramke 4 mega, ze pingnete google ... to sa fakt neda docenit ked viete, ze ste to spravili vy sami a viete pomaly o kazdej binarke,

chcel by som sa k tomu vratit a proces vyrobi toto image-u zautomatizovat a mozno dat tomu systemu nejaky smer a "purpose", nie len vseobecny system, a par napadov by bolo ... :) su tu pico alebo nanobsd ale mne to akosi nevyhovuje ...

stewe

Re: Jak se stát Unix vývojářem?
« Odpověď #11 kdy: 25. 10. 2011, 14:21:32 »
a jo, velmi dobra "skola" v unixe je spravit nejaku uplnu prkotinu a poslat to niekam "vyssie", ja som spravil pre skolu do freebsd balik, "pwgrp" ktory vam automatizuje pridavanie, mazanie a modifikaciu userov hromadne, a este vam o tom posle aj mail (userovi na mail, ze ma vytvorene konto tam a tam s takym a takym heslom) je to tu: http://devio.us/~stewe/projects/pwgrp/

tu je manual http://devio.us/~stewe/projects/pwgrp/pwgrp.8.pdf

posledny krok, submitnut to ako balik pre freebsd projekt som, som nespravil a dodnes to lutujem, mozno sa najde nejaka dobra dusa co to dotiahne do konca.

ale toto je urcite cesta ako sa stat vyvojarom, pomaly od piky a bolestne :) inak to nejde.

smoofy

  • *****
  • 1 059
    • Zobrazit profil
    • E-mail
Re: Jak se stát Unix vývojářem?
« Odpověď #12 kdy: 25. 10. 2011, 16:46:45 »
No certifikat udelat chci, i kdyz si na nej z daleka neverim :) nicmene jedu na dovolenou do Cech a vzhledem k faktu, ze beztak zrusili lowcostovy lety do Prahy tak to vezmu pres Blavu a zkusim to. Nejvetsi hak je v tom ze se vztahuje na vsechny varianty takze se jednu vec uci clovek casto vicekrat. Bohuzel je to trochu krok do neznama, nakolik se mi nepodarilo ziskat o certifikatu blizsi info a to ani moc na zahranicnich webech tak uvidime. Jinak at uz dopadnu jakkoliv tak rad pripadnym zajemcum poreferuju jak to probihalo.

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jak se stát Unix vývojářem?
« Odpověď #13 kdy: 01. 11. 2011, 18:37:15 »
Možná je to pasé, ale k tomu embedded programování jsem našel vývojové prostředí, které je sice placené, ale vypadá celkem zajímavě. pokud vás to zajímá a neznáte, můžete mrknout :

http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/features

plan-9

Re: Jak se stát Unix vývojářem?
« Odpověď #14 kdy: 01. 11. 2011, 18:46:51 »
jadra linux a BSD jsou hodne velka.
co zkusit mensi, citelnejsi, cistsi jadro a operacni system Plan9 from Bell Labs.
jadro je do 10 tisic radku, linuxove jadro ma miliony radku.

plan9 je unixovejsi nez dnesni un*xy :-)

http://www.faqs.org/docs/artu/plan9.html

http://plan9.bell-labs.com/sys/doc/9.html