Re: lug-bg: Re: Http server v kernel-a
- Subject: Re: lug-bg: Re: Http server v kernel-a
- From: danchev@xxxxxxxxx (George Danchev)
- Date: Wed, 31 Oct 2001 16:11:27 +0200
On Wednesday 31 October 2001 10:14, you wrote:
> Zdravejte!
> To spored men osnovnijat problem na http servera v kernlela
> e slednija:
osnovniq problem e 4e ako nqkoj uspee da "shashne" khttpd po nqkakuv na4in ->
umira cqlata mashina stoto tux e 4ast ot qdroto , nali se sestash, ... no
"tux is tough enough" :)
> Ne poznavam koj znae kolko dobre FreeBSD, no sum 4uval i
az susto ne go poznavam, no eto kakvo znam po vyprosa, razbira se dokato
nqkoj ne me korigira.... 10x
> 4el, 4e ima naj burzija TCP/IP stek i e naj-burzija http
Nqkoj za kratko kazvat TCP/IP stack , no imat predvid realizaciqta na
protokolite IP i IPX ot Network Layer i TCP, UDP, ICMP, IGMP ot Transport
Layer (OSI modela na ISO), no kakto i da e ... da kazhem imash predvid koda
kojto otgovarq za protokolite TCP/IP.
Po princip FreeBSD kato project startira okolo godina sled officialniq 1.0
release na linux kernel. No FreeBSD (kakto i drugita 2 BSD-ta ne po4vat from
scratch (kakto linux), a nasledqvat poslednata prerabotka na koda v
Universiteta Berkeley , dosta dobre testvan kod prez godinite i kojto e bil
otvoren okolo godina sled poqvata na Linux. Predpolagam linux developers baq
idei sa vzeli ot koda na BSD (direktno kod edva li), ponezhe e edinstveniq
otvoren Unix... ama to nqma losho ... dori pyrviq firewall za linux -ipfw e
portnat ot BSD. Kato cqlo linux developers i vyobste GNU software-to se
staraqt da izvle4at hubavite nesta i ot dvata klona na Unix - BSD i
SystemV... kudeto tova e vuzmozhno estestveno... tova vazhi osobeno za
apps , pogledni docs na glibc-to.
> server. Ta vuprosa e Linux nastiga li go po burzodejstvie s
> vklju4ena opcija za http v kernela (pone za stati4nite
> sajtove)?
estestveno 4e ne vinagi horata si kompilirat linux kernel-a s support na
webserver... , dali web-servera raboti v user space (Apache, aolserver, boa i
t.n.) ili v kernel space (tux - za static files, za dynamic vika userland
daemona ) taka ili ina4e polzvat edin i systi mrezhov stack. Vse pak sprqmo
userland daemona , khttpd trqbva da polzva stack-a po-byrzo, stoto i vdete sa
v kernel space-a. Osven tova razlikata e 4e nqkoj nesta (kriti4ni features za
sistemata) rabotqt po-byrzo i po-dobre kogato sa v kernela (Ring0 za
intel-based processors) otkolkoto v user space (Ring3) ... Za programistite
"preska4aneto" ot kernel space v user space i obratno ne e lesna rabota, v
kernel space ne mozhesh da raz4itash na glibc, drugiq na4in e da nabutash
4asti kod ot lib-a v kernela (syotvetno naduva se kernela->grubo) ... Razbira
se ne mozhe da nabutash vsi4ko v kernela , ima ograni4enie po razmer , pyk i
e grubo t.k :) no da ne prikazvam za nesta koito i na men ne sa mi qsni.
Drugi pyk kato X Window ili XFree86 v Unices ba4kat v user space, vyv Winz
primerno znaem kak e ... i nqma oturvavane ...
Ot druga strana Apache ne e naj-byrziq httpd v user space (nezavisimo ot
OS-a), tova e v sledstvie na modela po kojto raboti Apache - edin parent e
pusnal nqkolko child-a , koito o4akvat zaqvki ot klientite, ako child-ovete
sa malko parent-a puska oste ... ( podrobno vyprosa beshe obsuden na
posledniq seminar ot Vasil Kolev , lekciite gi imashe nqkude v audio format)
... Naj-byrzite daemoni (no i naj-trudno se programirat) sa tezi pri kojto
cqlata mnogonishkovost e realizirana vutreshno za tqh - select() (vmesto
parent-a da fork() ili thread() novi i novi procesi ... koeto obsto vzeto
load-va i kernela i uveli4ava broj na procesite).
Ta ... vmesto da mu4ish x86 versiqta na solaris na evtin x86 hardware
(istinskiq solaris e za sparc - RISC ,64-bit ,SMP) , slozhi si nqkoe BSD da
syzhitelstva s Linux-a, ste si mnogo dovolen ... (na evtin x86 box nqma koi
da gi bie spored men )... ako iskash da gi testvash kak se opravqt s http
zaqvki , benchmark-vaj gi s "siege" , kompilira se i pod Linux i pod FreeBSD
(da nqma losho i pod Linux i FreeBSD da ima1000 thread-a na siege na sustata
evtina x86 mashina na koqto e i testvaniq webserver:) . Za obektiven test
startiraj benchmarka ot druga mashina. Zavisi i koj linux kernel ste testvash
- 2.4.0-2.4.7 gi zabravi poradi broken VM, vzemi 2.2.19 ,2.2..20 ili >=2.4.8,
slozhi i FreeBSD 4.4. Razbira se trqbva da polzvash ednakyv webserver i za
dvete OS , i syotvetno da si iz4istil kernelite ot izlishni raboti i set-nal
vsi4ki tunningi za kojto se setish ... ne e lesna rabota da presuzdadesh edin
takuv obektiven test.... Po-lesno e da 4etesh kakvo i kak se testvali drugite
:).
Za qka rabota na RISC SMP mashini free/open unices ima oste malko hlqb da
poqdat, no mislq 4e e vypros na vreme ...
Eh, golqmo ese napisah , dano ne sym dosadil ili izkazal nqkoq glupost ...
--
Greets,
fr33zb1
===========================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers)
http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
|