Categories
Open & free

Linux Standard Base 4.0

Er zijn veel Linux-distributies en vele komen er elke week weer bij en vele verdwijnen ook weer. De kern is redelijk stabiel en zal hoogstwaarschijnlijk ook zo blijven in de komende jaren met Red Hat, Novell, Debian en tegenwoordig ook Ubuntu. Maar blijkbaar is de markt te verdeelt en tracht met sinds 2001 eenheid te brengen zoals POSIX dit moest brengen in de Unix-wereld.

Als ik eerlijk ben zal Linux Standard Base me gestolen worden, omdat het simpel weg een vendor dwingende specificatie is en niet richtlijnen aan voldaan moet worden. De grootste twee bezwaren zijn denk ik wel het verplichten van RPM en Qt aangezien dit redelijk bedrijfsafhankelijke oplossingen zijn. Dit geeft ook aan wat er eigenlijk mis is met de LSB en dat ze geen functionele eisen opleggen, maar afdwingen welke leveranciersoplossing er gekozen moet worden.

De toegevoegde waarde van Linux Standard Base is dus eigenlijk niet meer dan als je een applicatie van een derde partij wilt gaan gebruiken zoals bijvoorbeeld van Oracle. Ik ben dan ook meer geneigd om het pad te gaan bewandelen van Sun Solaris waar dingen al jaren volgens bepaalde afspraken worden gedaan die je niet direct verplichten tot een leverancier. Dit is eigenlijk ook de strijd die gaande is binnen Sun Microsystems en het open sourcen van hun producten. En ik kan me er wel iets bijvoorstellen. Ook omdat het geen wat ze misschien het meeste vrezen, het GNU-project, misschien wel hun grootste medestander is in deze strijd samen met de mensen achter BSD.

Helaas is het probleem dat Linux op dit moment beter allround uit de bus komt dan zeg BSD, GNU/Hurd of Solaris. Dit terwijl ze alle drie eigenlijk technologisch beter zijn. Het wordt misschien tijd om of Linux op orde te krijgen of serieus de nadelen van de alternatieven te bekijken en beoordelen of ze opgelost kunnen worden. Want de concurrentie heeft voldoende in huis voor de toekomst waar Linux misschien nog wel jaloers op kan.

Een andere optie is om Linux-distributies te gaan beoordelen op hoe goed ze zijn ingericht qua al geldende standaarden, maar ook vertalingen, documentatie, proactief veiligheidsbeleid. Het kan zijn dat de gemeenschap hier meer mee geholpen is dan bij Linux Standard Base, maar deze is ook meer ontworpen voor bedrijven die software willen verkopen ipv een dienst.

Categories
Internet, Unix en security

Voorbereiden voor DNSSEC

Hoewel DNSSEC eigenlijk op mijn todo-lijst stond voor over een paar maanden als PowerDNS daadwerkelijk ondersteuning zou krijgen, maar helaas is daar verandering in gekomen door recente ontwikkelingen. Zeker nadat er serieuze problemen zijn ontdekt waardoor vrij snel nameservers die acteren als resolver kunnen worden voorzien van valse data. En hoewel er voorlopig tijdelijke oplossingen zijn is een echte oplossingen eigenlijk alleen DNSSEC.

Aangezien DNSSEC ondersteuning bij PowerDNS en NSD beperkt is blijft voorlopig alleen Bind over als bruikbare optie aangezien het wel crossplatform moet werken. Bind is en blijft de defacto-standaard op bijna elke Unix-platform zoals HP-UX, Solaris, AIX, BSD en vele Linux-distributies. Ook omdat dit de referentie implementatie is van bijna elke RFC gerelateerd aan DNS.

Een eerste probleem dook al op bij de eerste testen, want goede entropy gaat een probleem vormen. De normale pseudogenerator voor deze getallen is blocking totdat er weer voldoende random getallen zijn, maar helaas kan het dus even deuren voordat er onvoorspelbare sleutels zijn. Een alternatief is om de non-blocking pseudogenerator te gebruiken welke vrij snel getallen kan opleveren, maar deze kunnen voorspelbaar zijn door hergebruik van oude getallen. Als dit laatste gebeurt zijn we weer terug af bij waar we begonnen zijn met de huidige DNS-problemen.

Voor deze problemen zal een oplossing moeten worden gezocht welke hoogstwaarschijnlijk in de vorm van hardware zal gaan zijn om aan de vraag van willekeurige getallen te kunnen voldoen. De eerste apparaten die lijken te voldoen zijn ongeveer 100 euro per stuk wat een redelijke prijs is. Nu wordt het uitzoeken of deze worden ondersteunt onder oa Linux en Solaris, maar hopelijk zijn er andere oplossingen zeker nu het kernel cryptographic framework vormt heeft gekregen in Solaris 10.

Categories
Internet, Unix en security

Een paar MB besparen

Geheugen is goedkoop wordt vaak geroepen, maar is dat wel zo? Soms moet je dan volledige nieuw geheugen kopen om te kunnen uitbreiden. Of er is geen mogelijkheid om uit te breiden zoals bij steeds meer mini-ITX systemen het geval is waarbij de Mac Mini mogelijk het bekenste voorbeeld wel mogelijk is. Of omdat geheugen toch niet zo goedkoop blijkt te zijn voor je drie jaar oude computer omdat men nu ineens de hoofdprijs wil hebben voor een paar reepjes geheugen.

Gelukkig zit er in sommige systemen nog wel wat ruimte om zonder aanpassingen aan de hardware er wat meer performance uit te krijgen. Bij veel Linux-distributies heb je de mogelijkheid om virtuele consoles te gebruiken, maar bijna niemand gebruikt deze virtuele consoles nog terwijl ze wel draaien. Dit terwijl je gelijktijdig bijvoorbeeld KDE of GNOME gebruikt en het is misschien een paar een megabyte, maar het is wel voldoende om /var/run in geheugen te houden.

In het bestand /etc/inittab kom je het volgende tegen:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

En door dit te veranderen naar:

1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Als men nu een `kill -HUP 1` doet of reboot dan zal er nog maar een console overblijven welke kan worden gebruikt in geval van problemen. Maar de overige virtuele consoles zijn gestopt en nemen nu niet meer een paar honderd kilobyte per console in beslag. En dit is iets wat soms net het kleine beetje kan zijn om wat oudere of kleinere machines snel te houden.

Categories
Technologie & techniek

Muziek op USB-storage

Het multimedia geweld werd altijd gezien als een probleem op Linux, want het was moeilijk en je moest cryptische dingen overtypen. Maar dit tijdperk is al een geleden tijd afgesloten met de komst van oa HAL en D-BUS welke een abstractielaag vormen om automatisch bijvoorbeeld een muziek CD-ROM te starten of je USB-storage beschikbaar te maken. Projecten zoals GNOME en KDE maken dankbaar gebruik van deze functionaliteit wat direct merkbaar is voor de gebruiker.

Een praktisch voorbeeld hiervan is je muziekverzameling op USB-storage welke netjes bruikbaar is in bijvoorbeeld Rhythmbox. Maak een bestandje aan met de naam .is_audio_player op het hoogste niveau van het USB-storage device en vul deze met de volgende inhoud:

audio_folders=MUSIC/,RECORDINGS/
folder_depth=3
output_formats=application/ogg,audio/x-ms-wma,audio/mpeg

Elke keer als je dit USB-storage device in een computer steekt welke de specificaties van freedesktop.org begrijpt zal oa je muziekspeler op de hoogte worden gebracht. Dit kan zijn bij je eigen Linux-desktop of de FreeBSD-desktop bij een kennis, maar ook je Sun Solaris-workstation op je werk. Het begint er op te lijken alsof computers eindelijk makkelijk beginnen te worden voor de normale gebruiker.

Categories
Internet, Unix en security

Geheugen filesystem onder Linux

Onder Solaris zijn geheugen gebaseerde filesystemen al jaren gemeengoed en zo zijn bijvoorbeeld /var/run en /tmp de meest bekende filesystemen die in geheugen worden gehouden. Linux heeft ook al flink wat jaren ondersteuning voor geheugen gebaseerde filesystemen, maar lijkt niet echt voorstanders te vinden binnen de gemeenschap. Dit terwijl er voordelen zijn omdat geheugen sneller toegankelijk is dan disk en de prijs van geheugen zorgt ervoor dat je eigenlijk niet meer op geheugen hoeft te beknibbelen.

Het eerste voorbeeld versnelt veel Linux-machines bij onder andere het stoppen en starten van het systeem, maar geeft ook minder disk IO. Veel processen schrijven een PID-file weg in de directory /var/run voor eigen gebruik of door andere applicaties. Dit is zinloze ruimte eigenlijk, want deze files zijn alleen van toepassing voor de machine in de huidige staat en hoeven dus ook geen reboot te overleven.

We voegen de onderstaande regel toe aan /etc/fstab en reboot hierna om alles files in /var/run correct op de nieuwe locatie te krijgen. Maar wat doet deze regel nu echt. Het zorgt ervoor dat er een geheugen gebaseerd filesysteem van maximaal 4MB wordt gemount op /var/run met de correcte permissies en de noexec flag. Deze laatste is niet nodig maar zorgt ervoor dat niemand daar een bestand kan plaatsen en dan kan executen.

/dev/shm   /var/run   tmpfs noexec,size=4m,mode=0755,uid=0,gid=0 0 0

Een andere plek waar veel te winnen is /tmp en zoals FHS aangeeft hoeven bestanden op deze locatie een reboot niet te overleven. Er is alleen wel een uitdaging met /tmp dat de juiste grote wordt gekozen om problemen met ruimte te kort te voorkomen. In dit voorbeeld zijn de beperkingen op wat mag met dit filesysteem wat scherper gezet en behoeft bij oa Debian wat aanpassingen aan APT. Ook is er een limiet gezet van maximaal 256MB, maar deze kan online met een remount worden vergroot en verkleint.

/dev/shm   /tmp   tmpfs noexec,nosuid,nodev,size=256m,mode=7777,uid=0,gid=0 0 0

Wat levert het op? Minder disk IO en iets snellere applicatie, want een gemiddelde disk haalt z’n 20MB per seconde en hedendaags geheugen als minimaal 1800MB per seconde. Dit is dan ook iets wat voor applicaties met veel tijdelijke bestanden zoals bij amavisd-new een grote performance impact kan hebben. Ook levert dit inzichten op om te kijken of Linux zonder disken kan werken of met een minimale disktoegang mogelijk is. Iets wat nu bij Flashdrives al een voordeel heeft om de levensduur te verlengen van een Flashdrive door het aantal writes te beperken.

Het levert ook besparing qua energie en warmte op doordat disken meer in idle-state kunnen verkeren en zometeen als Linux 2.6.25 a 2.6.26 beschikbaar komen ook de SATA-link op een lager vermogen kunnen laten draaien. Dit laatste is nog vrij experimenteel, maar de technologie is er en komt beschikbaar. Ik gebruik de technologie van geheugen gebaseerde filesystem nu al een tijdje en de machines zijn stiller geworden omdat er minder vaak naar disk wordt geschreven.