Transcription of The Linux kernel - Muli Ben-Yehuda
1 TheLinuxkernelPast,PresentandFuture- ResearchLabsTheLinuxKernel- HRL2003 a free(speechandbeer)UNIX like operatingsystem,developedby thousandsof volunteersaroundtheworld - includingyourstrulystartedasa hobby, grew andmaturedwiththeyearscountlessmanyearsw entintoit, somepaid,someforfunoneof theleadingserveroperatingsystemstoday .. andoneof theleadingembeddedoperatingsystemspoised to take overthedesktop?Hebrew support?TheLinuxKernel- HRL2003 Aug 91 20:57:08 GMTH elloeverybodyout thereusingminix-I m doinga (free)operatingsystem(justa hobby,won tbe big andprofessionallikegnu)for 386(486)AT beenbrewingsinceapril,and is startingto get d likeany feedbackonthingspeoplelike/dislikein minix,as my OS resemblesit somewhat(samephysicallayoutof the file-system(dueto practicalreasons)amongotherthings).
2 I vecurrentlyportedbash( )and gcc( ),and thingsseemto llget somethingpracticalwithina few months,andI dliketo suggestionsare welcome,but I won tpromiseI Yes - it sfreeof any minixcode,and it has a is NOT protable(uses386 taskswitchingetc),and it probablyneverwillsupportanythingothertha nAT-harddisks,as that sall I have:-(TheLinuxKernel- HRL2003 kernelorsystem?Linuxis thenamegivento theLinuxkernelby itscreator,LinusTorvalds. In commonusage, Linuxalsorefersto theentiresuiteof softwareinstalledona machine, includinglibrariesandenduserapplications , mostof dowe know whichis which?)
3 Sidenote, thereare Linuxdistributions thatdonotusetheLinuxkernel,andat leasttheoretically, theLinuxkernelcouldbeusedby HRL2003 doesit work?UNIX like kernel ,exposingPOSIX interfacesto userspace(systemcalls),but onlywherePOSIXisn canafordto implementthingsourownway if they give substantialperformanceimprovementcomplet efrom-scrachimplementationof a monolithickernelemphasisonpragmaticsolut ions- Linuxis nota toy orresearchOS!Havingsaidthat,we play withit plenty;-)mostof thekernelis platform independent,supportsmany differentplatformsandhardwareflavorssame codebaserunsoneverythingfromwristwatches to supercomputersTheLinuxKernel- HRL2003 is it developed?
4 (thereusedto be)a stable branchandexperimentalbranch- ,thekernelmaintainersareexperimentingwit hvariousnewschemesthatblurthedistinction betweenstable andexperimental).(thereusedto be)longformalreleasecycles, butcloselyadheringto the releaseearly, releaseoften principlefordevelopmentsnapshotsmany people, companiesandorganizations, eachpushingto have LinusTorvalds,a benevoletdictatorLinus s jobis to sayNOIBM contributesheavilyto Linuxdevelopment,viatheLTCandOSDLTheLinu xKernel- HRL2003 March1994,i386only, March1995,nolongeri386:Alpha,SparcandMip sarenow June1996,initialSMPsupport ( ) January 1999,many thebetterLinuxkerneltrees, many HRL2003 thelateststable releasetree.
5 It is in wideusageandobviouslyworks, but hasitsshareof problemsandflaws(obviously, thosearefixedin thelatestandgreatest, )highlydivergentvendortrees. TheLinuxvendors, suchasredhatandSuSE,areundera lotof customerpressureandthushave a differentview of whatshouldgoin thekernelsthey analmoststandstill.(Almost)allnew developmentoccursin ,most(?)commercialkernelcodeis HRL2003 HRL2003 reversemappings part of RikvanRiel , andVMbehaviourundercertainloadsshouldimp rove. Slightperformancehitdueto rmap?rmapallowstheVMto know, givenaphysicalmemory page, whichprocessesareusingit ,betterbehaviouron enterprisemachines.
6 Thekernelbootedwith32 Gband64 Gbof memory on32bitmachines!(work donemostlyby LTCmembers)TheLinuxKernel- HRL2003 SMPsafe ,therearestillcaseswherepreemptionmustbe temporarilydisabledwherewe placeswhereper-CPUdatais subsystemsarenotknownto bepreemptsafe youget xxxexitedwithpreemptcount=n messagesin syslog,don tpanic, thesearenonfatal,but aresomewhatunclean.(Somethingis takinga lock, andexitingwithoutunlocking)TheLinuxKerne l- HRL2003 useanO(1) loads, andincreasedscalabilitywithlargenumberso f processes, thescheduler(bindingprocessesto CPUsetc). ()andyield()cannow make task sprocessoraffinity:sched_getaffinity()an dsched_setaffinity()work onthescheduler, especiallyin theareaofinteractive performance, is on-goingTheLinuxKernel- HRL2003 work wentintothreadingimprovements.
7 Someofthefeaturesof thiswork are:generic pidallocator(arbitrary numberof PIDswithnoslowdown,unifiedpidhash).POSIX threadsignalsstuff(atomicsignals, sharedsignals, etc.)threadedcoredumpingsupportsys_exit( )speedups(O(1)exit)generic, improvedfutexesusersshouldnoticeis a significantspeedupin basicthreadoperationsthisis PosixThreadingLibrary (NPTL).A userspacethreadinglibrary utilizingthenew HRL2003 theblock layermeantvariousblock devicedrivershada largescalecleanupwhilstbeingupdatedto , size andalignmentof dataperdevice, devicescannow accessupto 16 TBon32-bitarchitectures, andupto now includedin thekernel,but seemsto offernosubstantialbenefits?
8 TheLinuxKernel- HRL2003 ,you llgetanoprofilefsfilesystemwhichyoucanmo unt,thattheuserspaceutilitiestalkto. Theuserspaceutilitiesforthisarevery young, prettyuseful,fromexperience. It allowsyoutoprofilebothuserspaceapplicati onsandthekernel(hencethe systemwide moniker).TheLinuxKernel- HRL2003 UML?UserModeLinux(UML,hereafter)is a port of Linux (thekernel)to runasa programinsideLinux(thesystem).Insteadof workingdirectlywiththehardware, UMLusesthehost s systemcallinterfacein placeof ,it HRL2003 it goodfor?testinganddebuggingkernelpatches , withoutrequiringa rebootprivateserversonsharedhostsexperim entingwithsystemadministrationscenariost eachingoperatingsystems;-) (whenUML-win32comesof age)runningLinuxonwindowsmachine- tappingintounusedresourcesatnightTheLinu xKernel- HRL2003 doesit work?
9 A UMLprocessexecutesa systemcallinstruction(int0x80)viaptrace, thetracingthreadis wokenupthetracingthreadannulsthesystemca llonbehalfoftheUMLprocess, andthenforcesthekernelto executethesystemcallthesystemcallis executed,andwhenit is done, thetracingthreadis wokenupagainthetracingthreadmanipulatest heUMLprocessstateto thinkit completedthesystemcalltheUMLprocessconti nuesTheLinuxKernel- HRL2003 goodies(Innoparticularorder)Infiniband,S ELinux,Ingo s RT work,seccomp, 4 Kstacks, auditingframework, kernelevents,laptopmode, IOschedulers, scheddomains, circularpipebuffers, CKRM,kprobes, kexec, debugfs, four-level pagetables, inotify, futexes, fuse, reiser4,NXsupport, addressspacerandomization,netpoll, HRL2003 infoTheLinuxkernel: ,by Bovet andCesati,2ndeditionthelinux-kernelmaili nglist- s new in : : HRL2003 ,A,MandT?
10 TheLinuxKernel- HRL2003