IV International Conference of Unix at Uninet
  • Presentation
  • Register
  • Program
  • Organizing Comittee
  • Listing of registered people
  • Translators team
Talk

20031223-3.du

garoedagoed, laat ons de volgende talk beginnen
garoedaonze volgende spreker is rik van riel, linux kernel hacker ++
garoedaik ken rik van dit kanaal maar we hebben nog niet zoveel gesproken, de keren dat ik hem tegenkwam was hij altijd heel aangemaan, slim en inzichtrijk
garoedaik geloof dat hij momenteel werkt voor redhat in de VS, niet ?
garoedariel: idd
garoedajose_n: deze presentatie heet "cool things that missed 2.6"
garoedaen nu, rik van riel :)
garoedariel: ok
garoedahet voelt goed om terug te zijn op Umeet
garoedadit is nu de 4de keer dat ik meedoe
garoedaen het is altijd leuk geweest
garoedavandaag ga ik spreken over een paar coole patches (en projecten) die bijna klaar zijn om in de 2.6 kernel te gaan
garoedaik heb geen tekst voorbereid dus ik ga live spreken
garoedadus, maak je geen zorgen wanneer je me wil vragen stellen
garoedaje kan op elk moment vragen stellen in het #qc kanaal
garoedaer gaat een vertaling naar het spaans zijn in #redes
garoedaen een naar het nederlands in #taee
garoedai denk dat ik moet beginnen met te zeggen dat de 2.6 kernel stukken beter lijkt dan de 2.0.0, 2.2.0 of 2.4.0 kernels
garoedadus jullie zouden allemaal de 2.6 kernel moeten proberen en bugs rapporteren op linux-kernel@vger.kernel.org ;))
garoedaik ga spreken over de volgende projecten
garoeda- execshield
garoeda- 4/4 split
garoeda- CKRM (class-based kernel resource manager)
garoeda- memery hotplug
garoeda...
garoedade eerste patch die ik ga bespreken is security related
garoedazoals jullie waarschijnlijk allemaal wel weten heeft de 2.6 kernel enkele security verbeteringen die de schade die kan gedaan worden door een security hole limiteren
garoedabijvoorbeeld, met selinux kan je de schade beperken die gedaan wordt wanneer sendmails NOGMAALS geexploit wordt
garoedaof bind ;)
garoedamet exec-shield kan je nog een stap verder doen om het systeem secure te maken
garoedaeigenlijk wordt de layout van het process geheugen veranderd
garoedaen de gegevens op de stack zijn bij default niet meer executable
garoedadit maakt het veel moeilijker om een normale buffer overflow te doen veranderen in een exploit
garoedaop x86 CPUs hebben de page tables geen executable permissie bit, dus exec-shield moet nogal lelijke segmentatie hacks doen
garoedagelukkig hebben de andere cpu's waar linux op draait, inclusief AMD64, executable bits in hun page tables, waardoor de segmentatie trukken niet meer nodig zijn in de toekomst
garoedavraag: gaat dit proces de snelheid van dit systeem niet naar beneden brengen ?
garoedariel: ja, natuurlijk
garoedasegmenatie doet het programma een beetje trager draaien
garoedade verhoogde veiligheid zal het verlies in snelheid wel waard zijn voor sommige mensen
garoedaop dit moment moet ik ook zeggen dat exec-shield niet de meest goede geheugen management verandering is voor security
garoedaPaX is waarschijnlijk meer flexibel
garoedamaar heeft meer overheid dan exec-shield
garoedai denk dat exec-shield een redelijk compromis zal zijn tussen extra security en snelheid voor de meeste mensen
garoedahet gaat gepaard met sommige truks zoals het randomisern van het start adrres van de stak, de heap en de exeuctables en libraries
garoedahet gebruik van buffer overflows om naar een libc functie te jumpen wordt erg moeilijk
garoedaintegendeel, de aanvaller zal sendmail doen crashen ipv een root shell te krijgen
garoedaof meer waarschijnlijk: de overflow zal niet eens een aanval zijn
garoedavraag: wat is de oplossing die het minste aantal resources nodig heeft ?
garoedawel, het beste zou zijn een AMD64 chip gebruiken ;))
garoedadeze hardware heeft de executable bit voor de page tables ingebouwd
garoedaen er is geen performance verlies voor een non-exec stack of heap
garoedavraag: wat maakt dit beter dan bv een chrooted omgeving voor applicaties ?
garoedaok, exec-shield is niet "beter"... ik zou de 2 tesamen gebruiken
garoedaje kan (en eigenlijk moet) named draaien in een chroot omgeving
garoedamaar wanneer iemand inbreekt kunnen ze je computer nog altijd gebruiken om network packets te verzenden naar ergens anders. (bv meedraaien in een DDoS)
garoedahet verkleinen van de kans dat een buffer overflow geexploit kan worden is dus een goed ding om te doen
garoedaoh, en je kan de exec-shield verkrijgen als deel van Arjan's 2.6 kernel rpm
garoedaop http://people.redhat.com/~arjanv/
garoedaik heb dit nog niet gezien in andere kernel patch sets
garoedavraag: andere distro's zoals adamantix gebruiken rsbac en pax voor de security, wat met deze patches ?
garoedaok
garoedarsbac is een beetje zoals selinux
garoedait helpt heel veel in het verkleinen van de schade die men kan doen nadat men kan inbreken via een progromma
garoedamaar het helpt de inbraak niet te voorkomen
garoedaPax helpt hierin wel maar komt aan een hogere kost dan execshield
garoedaals je echt paranoide bent zal je waarschijnlijk wel PaX gebruiken
garoedamaar persoonlijk denk ik dat de performantie impact van PaX (in het bijzonder het extra ruimte gebruik, dus dat je programma's minder adress ruimte hebben) het te "duur" gaan maken voor de meeste mensen
garoedazijn er andere vragen over exec-shield ?
garoeda(anders ga ik over naar de 4/4 split)
garoeda...
garoedaok, 4/4 split
garoedaik ga nu uitleggen wat waarschijnlijk het grootste probleem is dat linux heeft op 32 bit x86 systemen
garoedahet probleem is dat x86 systemen tot 64 gb fysiek geheugen kunnen hebben maar enkel 4 gb virtueel geheugen
garoedaen de klassieke linux virtual memory layout houdt in dat de kernel maar 1 GB ruimte heeft !
garoedadit betekent, 1 GB om  64 GB geheugen te beheren
garoedadit is simpelweg niet genoeg ruimte om het soort programma's te draaien dat je op een 64 GB server draait
garoedaom een lang verhaal kort te maken, met 1 GB kernel space zal een systeem met meer dan 24 GB ram bijna onbruikbaar worden
garoedaomdat je niet genoeg kernel geheugen hebt om de programm's te draaien die mensen met zo'n systeem draaien
garoedain 2.6 en latere 2.4 kernel werden de page tables verplaatst naar high memory
garoedadus, ze worden opgeslagen buiten de 1 GB kernel space
garoedadit verhoogde de limiet van 16 GB naar 24 GB of 32 GB
garoedamaar nog altijd ver van de 64 GB die x86 systemen kunnen gebruiken
garoedanatuurlijk, de oplossing voor mensen met echt grote server is het gebruik van een 64 bit CPU
garoedadus de kernel heeft dan alle ruimte die het maar nodig heeft
garoedamaar nee, ze willen een goedkope server ;((
garoedadus kopen ze x86
garoedaen natuurlijk, het zijn de software mensen die met het probleem blijven zitten ;)
garoedahet eenvoudigste dat we kunnen doen is de kernel space verhogen naar 4 GB
garoedamaar er is slechts 4GB aanwezig in Linux, verdeeld tussen kernel- en user space
garoedadus moeten we dat veranderen
garoedaIngo Molnar schreef een patch die iets heel vuils doet maar wel werkt en weinig verandering in de rest van de code vereist
garoedaje weet dat een proces zijn eigen memory space heeft
garoedamet Ingo's split 4/4 patch, heeft de _kernel_ ook zijn eigen 4 GB memory space
garoedaen iedere keer je een system call doet of een interrupt optreedt doet het systeem een memory context switch
garoedain de 4 GB grootte kernel memory space
garoedaop deze manier heeft de kernel genoeg geheugen om 64 GB fysieke ram te beheren en de processen die erin draaien
garoedahet heeft echter wel zijn kostprijs
garoedagebruikelijk verlies je er 10 % prestatie mee
garoedaomdat de CPU iedere keer van memory adress space moet wisselen
garoedaop sommige benchmarks kan dit verlies zelfs oplopen tot 30 %
garoedaen ook, dit is de laatste grote verandering die men kan doen op 32 bit systemen
garoedaals Intel ooit uitkomt met een 32 bit chip die meer dan 64 GB geheugen kan adresseren is er geen andere truk meer die we kunnen gebruiken
garoedadat is de reden waarom ik denk dat de enige echte oplossingen is een 64 bit chip te gebruiken
garoedaals je veel geheugen nodig hebt
garoedavraag: hoe lang denk je nog dat de mensen ia32 gaan gebruiken voor groote systemen ?
garoedaik denk dat ze ia32 gaan gebruiken totdat Intel een goedkope 64 bit CPU uitbrengt
garoedaof tot wanneer ze meer dan 128 GB geheugen nodig hebben
garoedaik betwijfel wel of IA64 ooit goedkoop zal worden
garoedaomdat het gedesigned is als een high-end chip
garoedahoewel, nu AMD zijn goedkope 64 bit chip market denk ik dat Intel met iets zal komen
garoedaik hoop het echt ... ;)
garoedanog andere vragen over de 4/4 split of geheugen management problemen ?
garoedaok, ik ga 1 minuut pauze houden om de vertalers de kans te geven in te halen
garoedadan ga ik verder gaan met CKRM, de class based kernel resource manager
garoeda...
garoedadit is in feite het project waar ik al van droomde sinds de 2.0 kernel ;)
garoedaen enkele kleine aspecten ervan zitten in de kernel
garoedaCKRM bestaat uit 2 delen:
garoeda1) een classifier, om tasks te groeperen in resource classes die gebaseerd zijn op
garoeda- pied
garoeda-gid
garoeda- uid
garoeda- name
garoeda- resource class id
garoeda- ...
garoeda2) resources control modules , die inpluggen in de CKRM core en
garoeda- verdeel de cpu eerlijk tussen resource classes
garoeda- leg memory limieten op tussen verschillende resource classes
garoedamet CKRM kan je dingen doen zoals:
garoeda"ik wil dat sendmail en alle processen die door sendmail gestart worden niet meer dan 10 % geheugen gebruiken en 20 % cpu"
garoedadus onafhankelijk van de belasting van je mail queue zal je systeem in het geheel niet overbelast worden
garoedaop de universiteit kan je specifieren als volgt: "studenten krijgen tussen 10 % en 50 % van het geheugen, personeel tussen 30 % en 80 % en de systeembeheerder krijgt zoveel ie wil"
garoedade mogelijkheden van CKRM zijn bijna onuitputtelijk
garoedaik ben er zeker van de dat mensen met BOFH inspiraties zeker met creatieve ideeen zullen afkomen
garoeda(en terug, als je vragen hebt stel ze in #qc)
garoedaje kan informatie vinden over CKRM op  http://ckrm.sourceforge.net/
garoedamaar natuurlijk, CKRM heeft ook enkele negatieve kanten
garoedahet is zeer cool en flexibel maar is ook zeer complex
garoedaik zou niet verbaasd zijn moest CKRM te ingewikkeld zijn voor Linux
garoedahet moet dus vereenvoudig worden eer het in de 2.7 kernel kan
garoedavraag: ok, stel dat je limieten instelt voor bv sendmail, wat gebeurd er dan wanneer deze bereikt worden ? stopt de geheugenallocatie ?
garoedain de meeste gevallen zal sendmail uitgeswapt worden
garoedahet zou virtual memory krijgen, niet enkel fysiek geheugen
garoedabovendien, als  het systeem nog vrij geheugen heeft dat niet gebruikt wordt op dat moment kan de resource class dat lenen
garoedavraag: en wat is de kostprijs qua performantie ?
garoedaik kan daar nog geen antwoord op geven daar CKRM nog in de ontwikkelfase zit
garoedade code is nog niet klaar en heeft nog oplapwerk nodig
garoedaik denk dat de performance overhead klein zal zijn voor de meeste resource schedulers
garoedavraag: kan CKRM enkel cpu en ram geheugen controleren of ook andere dinge nzoals fork()s en send()s per seconde ?
garoedamomenteel kan CKRM enkel cpu, geheugen en IO controleren
garoedamaar men plant meerdere  modules
garoedavoor cpu en IO, is de CKRM module een scheduler
garoedadus je kan zekere bandbreedte garanties geven of een maximum aan sommige groepen
garoedageheugen kan ongeveer hetzelfde, met 1 groot verschil
garoedaje hebt een nieuwe seconde cpu tijd iedere seconde, maar geheugen kan niet groeien ;)
garoedain computerwetenschappen termen is geheugen een niet-vernieuwbare resource
garoedadus als een resource groep meer geheugen nodig heeft dan zijn limiet maar iets anders heeft het nodig moet het systeem werken om het weg te nemen (swapping out)
garoedavoor CPU, IO bandwith or netwerk scheduling heeft het systeem zo geen werk te doen
garoedavoor de systeembeheerders is er nog iets dat ze in de gaten moeten houden
garoedaals je iedere resource groep in je systeem een minium van 10 % garandeert, wees er dan zeker van dat je niet meer dan 10 resource groepen hebt
garoedavraag: hoe ziet de system call interface naar CKRM eruit ? is het een hoop ioctl()s ?
garoedade interface naar userspace staat nog niet vast
garoedaCKRM A0* gebruikte system calls maar CKRM B0* gebruikt een /proc interface
garoedadit kan nog veranderen in de toekomst, totdat Linus gelukkig is ;)
garoedavraag: ondersteunt Linus CKRM voor 2.7 ?
garoedaik denk niet dat men hem dat al heeft gevraagd
garoedahet lijkt me moeilijk om hem te overtuigen dat CKRM cool is
garoedahet houdt niet zo van server-only dingen
garoedaLinus wil dat functinaliteit nuttig is voor iedereen
garoeda...en daar heeft hij gelijk in
garoedamaar , CKRM kan ook goed zijn voor desktops
garoedabv, de desktop gebruiker kan een gegarandeerd minimum aan resources krijgen zodat updatedb het system niet traag maakt
garoedaja, het is een hack, maar het maakt de desktop beter ... ;)
garoedanog vragen of ga ik over naar "memory hotplug" ?
garoeda...
garoedaok, memory hotplug :)
garoedade serverfabrikanten werken aan een nieuwe functionaliteit
garoedahet idee is dat systeembeheerders nieuw geheugen (DIMMs)  in hun systeem kunnen pluggen terwijl het systeem nog draait
garoedasommigen willen zelfs dat de beheerder  geheugen kan wegnemen
garoedahet toevoegen van geheugen in 2.6 is doenbaar
garoedawe hebben al NUMA ondersteuning in de kernel, om verschillende geheugen gebieden in een systeem te ondersteunen
garoedawanneer de beheerder nieuwe geheugen toeveoegt kunnen wij een nieuwe geheugenzone creeren ervoor
garoedaen dan de nieuwe zone toevoegen aan de lijst van de andere zones
garoedadaarna kunnen we het geheugen gaan gebruiken
garoeda"eenvoudig" op een paar details na waar ik jullie nu niet mee ga lastig vallen
garoedavraag: hoe kan je geheugenverwijderen als er nog dirty pages inzitten ?
garoedaok, het verwijderen van geheugen is een GROOT probleem
garoedaik denk niet dat Linux dat zal gaan ondersteunen in de nabije toekomst
garoedaals al het geheugen in een DIMM tot gebruikersprogramma's behoort kunnen we deze uitswappen wanneer de admin zegt dat hij de DIMM uit het systeem wil halen
garoedamaar wat wanneer het geheugen mlocked is en we ze niet kunnen uitswappen ?
garoedaof erger, als de DIMM  kernel data structuren bevat die gereferenced worden door fysieke geheugen adressen ?!
garoedaik zie geen goede manieren om dit op te lossen
garoedaik ken enkele SLECHTE manieren, maar dat willen we niet ;)
garoedavraag: zelfs als een DIMM volledig kan leeggemaakt worden moet je nog altijd hopen dat de admin er doe goede module uithaalt
garoedaik denk dat er hiervoor de groene en rode lichtjes zijn ;))
garoedamemory hotplug kaarten hebben  gelukkig genoeg allerlei soorten status lampjes op zich
garoedabovendien, waarom zou iemand geheugen uit een systeem willen verwijderen ?
garoedaik kan denken aan 2 dingen die een systeembeheerder zou moeten doen
garoeda1) meer geheugen toevoegen omdat het systeem meer nodig heeft
garoeda2) een slecht stuk geheugen vervangen door een correct werkend...maar dat kan gedaan worden in hardware, die het slechte geheugen mirrort op een stuk goed geheugen en dan de beheerder het slechte stuk er laat uithalen
garoedain dit geval is "slecht geheugen" geheugen dat corrigeerbare ECC errors heeft
garoedadus de data is nog altijd goed
garoedavraag: je kan geheugen vervangen door een soort met hogere snelheid ? of met hogere capaciteit ?
garoedaok, 2 goede punten
garoedavooral het hogere capaciteit DIMM argument is een goed
garoedaik was dat al even vergeten
garoedaiemand van VALinux Japan werkt aan hot memory removal
garoedamaar hij ondervindt de fundamentele problemen die ik zonet beschreven heb
garoedazijn code werkt dus niet altijd
garoedaen hij kan alleen maar geheugen verwijderen dat geen kernel data structuren bevat
garoedain het kort, voor de 2.6 kernel kan je waarschijnlijk alleen maar memory hot-add verwachten
garoedahot-remove is zeer complex
garoeda...
garoedanog vragen hierover ?
garoedaok, den is deze presentatie over ;)
garoedaik wil de Umeet organisatoren bedanken om dit event te organiseren
garoedaik weet hoeveel werk het is en ben dankbaar dat ze een nieuwe Umeet georganiseerd hebben
garoedaik wil ook de vertalers bedanken, die hard werken om deze presentaties (live!) te vertalen
garoedaals jullie nog steeds wakker zijn wil ik het publiek bedanken
garoedahet zou niet hetzelfde zijn moest ik enkel tegen mezelf spreken
garoeda*riel stapt van het virtuele podium
garoeda<einde vertaling>

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net!

email usmore information


© 2003 - www.uninet.edu - contact organizing comittee - valid xhtml - valid css - design by raul pérez justicia