FreeBSD i Slackware

Odeljak za diskusije o ostalim Linuks distribucijama i drugim *NIX-like operativnim sistemima

Moderator: Urednik

Post Reply

Administrator
Administrator
offline
User avatar

Posts: 1680
Joined: 07 Jun 2012, 18:01
Location: Najlipši grad na svitu :)

Post Napisano: 14 Nov 2012, 23:22


Ovako, zanimaju me razlike između *BSD i Slackwarea, a da nisu kernel i licenca, pa bi molio upućenije da mi pojasne ;)
Unaprijed hvala ;)
Udruga SOK - službena stranica
Spreman sam umrijeti časno, ali ako nečasno, onda ništa



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 16 Nov 2012, 11:17


Jako zanimljivo pitanje. :)

Da bise odgovorilo na njega prvo je potrebno preći razlike između GNU/Linuks distribucija i BSD izdanja, a zatim se vratiti na Slack i videti koje su to sličnosti u odnosu na FreeBSD. Elem, napisano uzmite sa malom dozom rezerve. Nisam neki veliki poznavalac BSD izdanja, kao ni razlika među njima, ali nekoliko osnovnih razlika mogu da izdvojim.

Generalne razlike između BSD izdanja i GNU/Linuks distribucija:
  • BSD kernel vs Linuks kernel - o ovoj materiji nemam dovoljno znanja, a na netu ne postoji nijedan tehnički ispravan članak. Većina su aktivistički koji lobiraju jedno ili drugo i bave se opštim tačkama koje ne dodiruju kernel. Po meni bi odgovor na pitanje o razlikama u samim jezgrima najbolje odgovorio neko ko ima iskustva sa razvojem oba kernela. Taj odgovor bi vrlo verovatno bio na tehnički dosta visokom nivou i zahtevao bi jako predznanje teorije arhitekture operativnih sistema za razumevanje.

    Elem, par stvari ipak mogu da kažem:
    • Linuks kernel je zavisan od GCC i to često od specifičnih verzija. Tipa: kernel 1.0 je zahtevao GCC 2.5, kernel 1.3 GCC 2.7, kernel 2.4 GCC 2.95. BSD kernel je ranije razvijan sa GCC, ali su sada BSD-ovci prešli na LLVM i C Lang. Moja (neproverena) pretpostavka je da je BSD kernel verovatno portabilniji od Linuks kernela u tome što nije toliko zavisan od specifičnog kompajlera.
    • Oba kernela su monolitna, ali podržavaju runtime učitavanje kernel modula.
    • Specifičnost BSD kernela je u tome da sadrži layer kompatibilnosti sa Linuks kernelom, tako da je na njemu moguće pokretati softver i drajvere koji koriste Linuks specifične API-je.
  • C biblioteka

    Linuks distribucije u najvećem broju slučajeva koristi GNU C biblioteku, mada postoje i izuzeci, pogotovo kad su u pitanju distribucije za embedded uređaje (mobilni telefoni, tableti, ruteri, firewall-ovi, itd...). Android koristi Google-ovu Bionic biblioteku. U ruterima se često koristi uclibc. Poneki uređaj možda koristi i dietlibc ili Red Hatov newlib. Od skoro je dostupna i musl, ali je ona prilično nova i verovatno je upotreba još uvek ograničena.

    GNU C biblioteka i BSD C biblioteka imaju dosta sličnosti, ali i neke značajne razlike. Sličnosti se ogledaju u implementaciji POSIX kompatibilnih API-ja. Za userspace razvoj, oba operativna sistema će u većem delu pružati skoro identične API-je. Ipak postoje razlike. BSD C biblioteka sadrži i neke BSD specifične API-je, dok GNU C biblioteka sadrži i neke GNU specifična proširenja standardnih API-ja. To ne znači da softver nije portabilan između dva sistema. Za Linuks postoje biblioteke koje implementiraju BSD specifične API-je dok je, s druge strane, GNU Lib C biblioteka je dostupna i kao BSD port.

    Takođe postoje i hibridna rešenja bazirana na GNU Lib C biblioteci i BSD kernelu. Napr: Debian GNU/kFreeBSD.
  • Particije

    GNU/Linuks distribucije koriste standardne DOS-olike particije (kao Windows ili OS/2), BSD izdanja koriste tradicionalne BSD "slices". Na PC sistemima se obično odvoji jedna particija koja se onda deli na slajsove (ne usuđujem se da prevedem :)).
  • Init sistem

    BSD izdanja koriste modifikaciju tradicionalnog BSD inita. Novi BSD init podržava i paralelno izvršavanje zadataka kao i zavisnosti između servisa.

    Init sistemi među GNU/Linuks distribucijama su prilično raznoliki. Ubuntu koristi upstart, Fedora koristi systemd, Gentoo koristi openrc, Slack koristi BSD-oliku modifikaciju Sys V Inita.
  • Shell

    BSD izdanja koriste pdksh ili tcsh, sa izuzetkom MirOS koji koristi mksh. Linuks distribucije najčešće koriste bash, iako često dolaze i sa drugim shellovima. Manji broj distribucija dolazi sa zsh kao podrazumevanim shellom. Embedded distribucije i instalacioni mediji najčešće koriste busybox. Za pokretanje init skriptova se često koristi (d)ash.

    Iako su današnji Korn kompatibilni shellovi većim delom kompatibilni, postoje specifična proširenja ili ograničenja pojedinih. Recimo zsh i bash imaju veliki broj proširenja koja nisu kompatibilna sa tradicionalnim Korn kompatibilnim shellovima (napr: ash, pdksh).
  • *nix userspace

    BSD izdanja koriste BSD alate, GNU/Linuks distribucije koriste GNU alate (coreutils, findutils, itd..). Postoje razlike u opcijama između BSD i GNU alata. Embedded distribucije najčešće koriste busybox.
  • Podrazumevano razvojno okruženje

    BSD izdanja podrazumevano koriste LLVM/C Lang, GNU/Linuks distribucije koriste GCC. Iako su oba dostupna i za jedan i za drugi sistem. BSD ne koristi GNU diff i patch alate (iako su, opet, dostupni iz portova).
  • X11

    I BSD izdanja i GNU/Linuks distribucije koriste Xorg X11 server. Razlika je jedino u distribuciju. BSD izdanja koriste Xenocara Xorg distribuciju. Ova distribucija je monolitna slično nekadašnjoj XFree86 distribuciju. Ovo se bolje uklapa u način razvoja BSD izdanja.
  • Način upravljanja softverom

    Osnovno BSD izdanje predstavlja monolitan sistem, uključujući i source. Izgradnja core BSD izdanja se vrši jednostavnim zadavanjem make World u korenu direktorijuma sa izvornim kodom. Za instalaciju dodatnog softvera, BSD izdanja koriste varijante sistema portova. U FreeBSD portovima je dostupna ogromna količina softvera. Svaki port dolazi sa Makefile datotekom koja integriše port u standardni FreeBSD build sistem. NetBSD koristi pkgsrc - framework za upravljanje portovima i paketima. Pkgsrc je dostupan i za druge JUNIKS-olike sisteme. Iz portova su često dostupne i binarne verzije paketa. I FreeBSD portovi i NetBSD pkgsrc podržavaju automatsko upravljanje zavisnostima. Tj. instalacija jednog paketa će podrazumevati i instalaciju svih zavisnosti.
Sličnosti između Slacka i BSD-a
  • Tekstualni installer sa izborom paketa. Mada mislim da BSD installer automatski pokreće fdisk.
  • Slack koristi BSD-oliki init sistem. Umesto /etc/init.d i sys V start/kill skriptova, koriste se /etc/rc.d i rc.script skripte. Sama softverska implementacija nije bazirana na BSD initu, već na modifikaciji sysvinit - sys V kompatibilnog init sistema za Linuks.
  • Slack pored GNU userspace alata, dolazi i sa određenim brojem BSD alata.
  • Core Slack distribucija dolazi na jednom DVD-u, uključujući source
  • SlackBuilds.org sistem je donekle inspirisan sistemom portova. Neki od alata koji se koriste za izgradnju softvera iz SBo su inspirisani sličnim BSD alatima
  • Slack se podrazumevano diže u konzoli i zahteva od korisnika da prethodno podesi neke parametre sistema ukoliko želi desktop radnu stanicu.



Administrator
Administrator
offline
User avatar

Posts: 1680
Joined: 07 Jun 2012, 18:01
Location: Najlipši grad na svitu :)

Post Napisano: 16 Nov 2012, 14:35


nema smajlić za klanjanje :)
svaka čast Bocke, ovo je odličan odgovor :)

Ovako mi je odgovorio čovjek na linuxzasve forumu:

Code: Select all

Na svom laptopu paralelno vrtim FreeBSD 8.2 i Debian Wheezy testing, dakle kao desktop sustave, pa evo pokušat ću u par riječi sumirati svoja iskustva.

Prva razlika između FreeBSD (pa i ostalih BSD-ova) i Linuxa odnosi se na način na koji gledaju diskove. Razlika je prije svega terminološka, pa tako na primjer particija u BSD i particija u Linuxu ne označavaju istu stvar. Druga bitna razlika je ta da je FreeBSD moguće instalirati samo na primarnu particiju, dok je Linux tu daleko fleksibilniji. FreeBSD koristi svoj filesistem - UFS2, ali može koristiti i NTFS, ext2,3,4... ipak, s tim se treba pozabaviti i obaviti dodatne instalacije i podešavanja. Na primjer, ext4 nije podržan, ali mu je iz FreeBSD-a moguće pristupiti kao ext2 (bez journalinga). S druge strane Debian može čitati UFS2 po defaultu, ali za mogućnost write pristupa je potrebno rekompajlirati kernel.

Instalacija FreeBSD-a je vrlo slična instalaciji Archa, text installer i onda konfiguracijski fajlovi. I tu sličnosti ne prestaju, jer je FreeBSD dokumentacijski zbilja jak, baš kao i Arch. Na http://www.freebsd.org se mogu naći kompletne i iscrpne upute za instalaciju i tu ne bi trebalo biti nikakvih problema.

Što se tiče drivera, nisam imao nekih većih problema, radi mi grafička, zvuk, wireless, ali treba biti realan - FreeBSD nema takvu podršku za hardware kakvu ima Linux i tu je nešto slabiji. Na FreeBSD stranici postoji hardware compatibility lista pa se tamo može provjeriti da li je neki komad hardverije podržan ili ne.

FreeBSD ima dva osnovna načina instalacije softvera: preko paketa (binarni) ili preko portova (source). Preporučujem portove jer je izbor veći i svježiji, iako ne baš up to date kao na Linuxu. Postoji i Linux compatibility sloj preko kojega je moguće pokrenuti Linux software, a ako se FreeBSD troši kao desktop onda je to i obavezno. Flash plugin za browsere, na primjer, radi preko Linux compatibility layera. E sad, ta priča nije skroz bez problema, na primjer nisam uspio instalirati oracle client i povezati ga s Pythonom, ali s druge strane dosta linux softwera radi bez problema. 

Ono što mene osobno oduševljava kod FreeBSD-a je činjenica da je organizacijski strogo podijeljen u dva dijela: base system i userland. Ta činjenica bitno pridonosi stabilnosti cijelog sustava, a isto tako omogućuje da se bez problema obrišu svi naknadno instalirani paketi i sustav dovede u nulto stanje. FreeBSD je upravo fenomenalno stabilan i nisam ga uspio skršiti niti jednom u godinu i pol dana intenzivnog korištenja, probavanja, reinstaliranja paketa, updateova i općenito zlostavljanja svake vrste. I još uvijek imam na laptopu podignutu onu prvu instalaciju koja radi bez greške.   

Osobno me beskrajno živcira licenčna svađa između BSD i GNU zajednica, pa tako postoji želja da se GCC potpuno izbaci iz upotrebe i zamijeni sa LLVM/Clangom u slijedećoj verziji FreeBSD-a, ali tako to valjda mora biti.   

Na kraju, preporučio bih ljubiteljima slobodnih OS-ova (kao i onima koji će to tek postati), da instaliraju FreeBSD i vide da li im se sviđa. Osjećaj je drugačiji od Linuxa (vrag leži u detaljima). Pri tome, naravno, ne želim reći da je jedan ili drugi bolji - oba kvalitetno obavljaju posao i gušt ih je koristiti.

Ipak, moćna je to fora imati OS koji vuče direktno porijeklo od oriđiđi Unixa sa PDP-11 strojeva kraj kojih cupkaju mlađahni Ken Thompson i Dennis Ritchie.  
Udruga SOK - službena stranica
Spreman sam umrijeti časno, ali ako nečasno, onda ništa



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 178
Joined: 29 Jan 2012, 18:39
Location: Novi Sad (Beočin)

Post Napisano: 16 Nov 2012, 19:15


Lepa objasnjenja, stvarno ga treba probati, FreeBSD Handbook je meni medju najboljim dokumentacijama :)
Sad mi dodje da instaliram opet FreeBSD :D
Open your source open your mind



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 16 Nov 2012, 19:26


Odlično. Bolje je slušati o razlikama od nekoga ko aktivno koristi FreeBSD. :)

Jedino bih dodao jednu malu ispravku. Slobodna BSD izdanja su nastala iz distribucije Unix softvera koji je razvijen u Berkley-u. To nije uključivalo i originalni Unix kernel. Prvobitno je objavljen samo source TCP/IP implementacije (BSD NET) pod liberalnom BSD licencom. Kada su ljudi iz Berkley-a videli da im je to uspelo (da se oslobode stega AT&T licence), počeli su da prikupljaju delove distribucije, manično prepisujuči Unix korisničke programe i biblioteke. Sledeće slobodno izdanje: Net/2 je, pored TCP/IP-a sadržavao i veliki deo userspacea. Ali neke stvari nisu mogle biti uključene (C kompajler, vi, itd) zato što, iako je veći deo koda nastao u Berkley-u, vuku poreklo iz AT&T koda. Zbog toga je to bilo potrebno reimplementirati. William Jolitz je napisao 386BSD i uključivao je pojedine delove Net/2, kompletirajući 386BSD u OS nezavisan od AT&T Unix-a. 386BSD je napušten vrlo brzo, ali je postao baza za NetBSD i FreeBSD, u kombinaciji sa ostatkom koda za Net/2, veliki brojem ispravki i delovima GNU projekta (gcc, napr). Nešto kasnije Theo De Raadt, jedan od osnivača NetBSD, napušta projekat i osniva OpenBSD. To je ukratko istorijat 3 glavna bSD igrača. :)

Današnja BSD izdanja ne vuku direktno poreklo iz originalnog AT&T Unix-a, već više predstavljaju reverzni inženjering istog. ;)

Na Youtube-u postoje snimci predavanja Dr. Kirk McKusick-a (koji je bio u Berkley-u u doba Net i Net/2, a sada je aktivan u FreeBSD) o istorijatu BSD projekta:


Možda mi je promakla koja greška. Davno je bilo kad sam poslednji put proučavao literaturu na ovu temu. :) Volim nekad da bacim pogled unazad i saznam kako se razvijao Unix svet. ;)
Pri tome, naravno, ne želim reći da je jedan ili drugi bolji - oba kvalitetno obavljaju posao i gušt ih je koristiti.
+1 :azn:



Administrator
Administrator
offline
User avatar

Posts: 1680
Joined: 07 Jun 2012, 18:01
Location: Najlipši grad na svitu :)

Post Napisano: 16 Nov 2012, 19:32


nije da reklamiram, ali ovo je bsd mailing lista:
http://lists.sok.hr/listinfo/bsd" onclick="window.open(this.href);return false;
pa koga zanima, dobrodošao je ;)
Udruga SOK - službena stranica
Spreman sam umrijeti časno, ali ako nečasno, onda ništa



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 17 Nov 2012, 00:35


Malo si me zainteresovao pa sam bacio pogled:
freebsd-xfce.png
Nisam imao baš puno vremena za igranje (a ni prostora na hard disku) pa sam Xorg, Xfce i Vim instalirao pomoću pkg_add. Ovo je verovatno bila greška pošto vidim da su u portovima dostupne novije verzije (Xfce 4.8 vs Xfce 4.10 napr). Ali instalacija kratko traje i uz malo čitanja dokumentacije FreeBSD je instaliran i upotrebljiv.

Inače installer (testiran je 9.0 i novi installer) koristi curses interfejs i raspored dijaloga jako liči na Slack. Razlike... Kako je osnovna distribucija u BSD izdanjima upakovana u mali broj velikih paketa koji sadrže sav softver (vrlo slično tradicionalnim Unix sistemima), ne postoji izbor paketa, samo izbor opcionalnih grupa. Pored toga, postoji i dijalog za kreiranje novih korisnika, kao i dve opcije particionisanja: automatska i ručna. Inače, vizuelni osećaj je vrlo sličan i Slackovci će se lako snaći s njim. Nakon instalacije sledi skidanje snapshota ports drveta, ekstrakcija i zatim instalacija softvera. Naravno tu je i opcija instalacije gotovih binarnih paketa, ali kao što sam napisao iznad, može se desiti da su binarni paketi stariji. Inače, servisi koji se pokreću pri bootu se podešavaju /etc/rc.conf (ovo malo više liči na Arch nego na Slack), ali su skriptovi za pokretanje servisa u /etc/rc.d (tj. /usr/local/etc/rc.d). Ovi skriptovi nemaju sufiks "rc.".

Inače, moj utisak je da je i Arch dosta pozajmio od BSD-a. :)

P.S. Shicy, nije vam javno dostupna arhiva mailing liste. ;)



Administrator
Administrator
offline
User avatar

Posts: 1680
Joined: 07 Jun 2012, 18:01
Location: Najlipši grad na svitu :)

Post Napisano: 17 Nov 2012, 01:10


Bocke, jako dobar i koristan post ;)
El Presidente uređuje mailing listu pa ću m proslijediti ;)
Udruga SOK - službena stranica
Spreman sam umrijeti časno, ali ako nečasno, onda ništa



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 09 Jan 2013, 23:13


Testirao sam malo i NetBSD. NetBSD je malo siroviji od FreeBSD. Iako je particionisanje moguće odraditi automatski pri instalaciji (samo u opciji "na ceo disk"), ni u njegovom instaleru ne postoji mogućnost dodavanja novih korisnika. Sistem je pre korišćenja potrebno podesiti. Podrazumevana podešavanja su prilično "sirova". NetBSD koristi pkgsrc. pkgsrc je u principu modifikacija na sistem portova. Ali se pri instalaciji kreiraju tgz paketi i tek onda instaliraju. Takođe ima automatsko upravljanje zavisnostima. Kao što za FreeBSD postoji pkgng, tako u NetBSD postoji pkgin za upravljanje binarnim paketima. Tako da je moguće instalirati i već gotove binarne pakete, ali je obično port u pkgsrc noviji. pkgin ima sličnu sintaksu kao slackpkg ili apt-get (pkgin install, pkgin remove, pkgin search).

NetBSD kernel nema grafički meni (ncurses ili X) za konfigurisanje. Sve se podešava u konfiguracionoj datoteci. Ima manje opcija nego Linux jezgro, ali se zato i mnogo brže kompajlira. Ima utisak da je Linuks modularniji. Gotovo jezgro se kopira u /netbsd. Nije potrebno pokretanje boot loadera ili izmena konfiguracionih fajlova (ovo je slično klasičnoj Unix tradiciji). To je nekad bila praksa i kod Linuks distribucija (/vmlinuz), ali je kasnije jezgro preseljeno u /boot. Neke distribucije još uvek prave simbolički link vmlinuz ka /boot/vmlinuz (ne i Slack).
netbsd09012012.png
NetBSD sam malo bolje istražio od FreeBSD. Ali možda se vratim na FreeBSD nekom prilikom kad se ukaže više vremena.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 09 Jan 2013, 23:19


Btw, Xfce u NetBSD portovima je prilično mator. 4.6.1. :|


Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests