Linux naast MS Windows
Dus Ook Samen
voordracht bij de DOSgg op zaterdag 22 januari 2000
voordracht bij afdeling Groningen op dinsdag 25 januari 2000
door Johan Swenker, Swenker@NL.Linux.org
Inleiding bij de webpresentatie
Op verschillende plaatsen in deze presentatie staan links. De meeste
links verwijzen naar de uitvoer van het bijbehorende commando in de
vorm van een GIF-file. Deze files zijn 10 to 60 kbyte groot.
Een paar links verwijzen naar leveranciers waar software te downloaden
is.
De hele presentatie inclusief alle gelinkte plaatjes is
hier als een gezipte file (pkzip formaat)
van 360kbyte te downloaden.
Inleiding
Ik ben Johan Swenker, coordinator van de Linux werkgroep
van de afdeling Groningen van de HCC. 17 Jaar geleden kwam ik
met Unix in aanraking. Sindsdien wilde ik Unix op mijn eigen
computer hebben.
Toen ik 7 jaar geleden Linux wilde gaan installeren, was mijn
eerste vraag: kan ik nog bij mijn DOS-bestanden? Die vraag
blijkt nog steeds de meest voorkomende vraag te zijn. Ik zal
die vraag vandaag een beetje uitgebreider beantwoorden als
simpelweg "ja".
Inhoud
De onderwerpen die aan bod komen zijn:
- benaderen van de DOS schijf;
- benaderen van files op een FAT-filesysteem;
- benutten van files in open-standaard formaat, zoals JPG, HTML en TXT;
- benutten van files in proprietary formaat, zoals .WP, .DOC en .XLS;
- gebruiken van DOS en Windows programma's zoals freecell.exe.
Ondertussen vertel ik het een en ander over Linux.
Benaderen van de DOS-schijf
Ik zal het eenvoudig houden. Ik ga uit van 2 IDE-disken en een ATAPI
CD-Rom speler, zoals ze in mijn computer zitten.
Eén IDE-disk zit als master op het eerste IDE-interface. De eerste
partitie van die schijf heet in DOS de C-schijf. Onder Linux
is dat /dev/hda1
. Onder Linux heet de 2e partitie van diezelfde
schijf /dev/hda2
.
Mijn andere harde schijf zit als slave op dit zelfde interface. De
hele disk heet /dev/hdb
; de individuele partities heten /dev/hdb1
,
/dev/hdb2
, etc.
Mijn CD-speler is de master op het tweede IDE-interface. De hele
disk heet /dev/hdc
. Op CD's worden nooit partities aangemaakt.
Huiswerkopgave: hoe zou de slave op het 3e IDE-interface heten?
Als gewone gebruiker mag ik de schijf niet direct aanspreken:
$ strings /dev/hda1
strings: /dev/hda1: Permission denied
Als systeembeheerder, in MS Windows NT termen administrator, in
Unix termen root, mag ik dat wel. Het leukste commando ter demonstratie
vind ik strings /dev/hda1 | less
.
strings
haalt alle leesbare tekens uit het bestand
less
laat de invoer pagina voor pagina zien, net als more
|
(het pipe-symbool) de uitvoer van het ene programma is de invoer voor het
volgende programma.
# strings /dev/hda1 | less
Linux is multi tasking. Beide commando's worden kwasi gelijktijdig
uitgevoerd. Anders zou een tussenbestand van ongeveer de hele disk
gemaakt moeten worden.
Bladeren we door de uitvoer heen, dan zien we een typische
FAT structuur.
Mensen die met bijvoorbeeld Norton Commander wel eens naar de schijf
gekeken hebben zullen dit herkennen. Zoeken we /AUTO vinden we de
directory, zonder punt tussen de AUTOEXEC en BAT.
Kortom: als het moet kunnen we op deze manier bij de inhoud van de
files. Maar handig is anders.
Benaderen van files op een FAT-filesysteem
Je zou dus een programma kunnen schrijven dat weet hoe een FAT
in elkaar zit; dat weet hoe een directory in elkaar zit; dat losse
files kan lezen.
Bij Linux is het zo: als het kan, als je een beschrijving kunt vinden
en als je een programmeur kunt vinden die er belang bij heeft, dan
bestaat het. Met de mtools
programma-verzameling kun je op deze manier
files verwerken. Het bevat onderdelen met als namen mdir en mtype.
# mdir C:
# mtype C:autoexec.bat
Dit werkt, ik gebruik het vooral om losse files naar een
DOS-geformatteerde floppy te copieren. Als ik veel met een
DOS-geformatteerde disk wil doen, dan zorg ik ervoor dat deze disk
een onderdeel wordt van de Linux-filestructuur. Op mijn machine
heb ik dat gedaan met de C-schijf en de D-schijf. Ik heb er zelf
de namen /Cdos en /Ddos voor verzonnen.
$ cd /Cdos
$ ls
$ cat autoexec.bat
Op mijn C-schijf staat een hele directory boom van files.
In Windows worden deze aangeduid met C:\dirnaam\filenaam
.
In Linux wordt zo'n hele boom opgehangen in de Linux filestructuur:
je neemt een directory, bijvoorbeeld /mnt/documenten
,
daarin hang je met het mount commando de directory boom
van een hele disk.
# umount /Cdos
# mount -t vfat /dev/hda1 /mnt/documenten
mount
het commando om te koppelen, mounten heet dat in Unix
-t vfat
geeft aan dat het een FAT-filesysteem betreft
/dev/hda1
geeft aan dat het filesysteem op /dev/hda1
staat
/mnt/documenten
geeft aan dat de hele boom hier opgehangen
moet worden.
# ls /mnt/documenten
# umount /mnt/documenten
# mount /Cdos
Op een vergelijkbare manier kun je ook een share koppelen van
een MS Windows NT fileserver of van de MS Windows 95 machine
van je vader/zoon.
Op een vergelijkbare manier kun je de files op de CD-rom
in de algemene directory boom ophangen.
Uitstapje: andere filesystemen
Linux gebruikt normaal het ext2 filesysteem. Dit kent zaken
die bij een modern operatingsysteem horen, zoals lange filenamen,
snelkoppelingen (symbolic links heten die in Unix) en
eigendomsrechten. Unix gebruikt een paar zaken die niet in
MS Windows 95 voorkomen, onder andere de device files in /dev
en eigendomsrechten per file.
Om Unix op je W95 systeem te draaien moet je dus iets bijzonders
doen:
- een extra disk in je machine zetten, en daarop een ext2 filesysteem
zetten. Dit is de duurste oplossing die de minste problemen oplevert.
- op bestaande vrije partitie een ext2 filessysteem plaatsen. De meeste
mensen hebben geen vrije partitie. Dit is mijn standaard inrichting.
- met partition magic diskruimte vrijmaken, zodat je een vrije
partitie krijgt waar je een ext2 filesysteem op kunt zetten.
- in plaats van partition magic kun je ook de combinatie van defrag.exe
met FIPS.exe gebruiken. FIPS.exe staat op elke Linux distributie.
Deze combinatie is iets minder gepolijst als partition magic.
- een heel fraaie truc: maak in je DOS-partitie een grote file aan
van zeg 200 Mbyte. Laat Linux in deze file een ext2 filesysteem
maken. Winlinux2000 maakt van deze truc gebruikt. Nadelen zijn dat
het iets trager is (2 stukken filesysteem moeten doorlopen worden)
en iets minder betrouwbaar (2 stukken filesysteem moeten doorlopen
worden)
- een andere truc is vergelijkbaar met de truc die W95 gebruikt om
in een FAT-partitie toch lange filenamen onder te brengen. Het UMSDOS
filessysteem heeft in elke directory een hidden file staan die
de koppeling aanbrengt tussen de DOS-benaming en de Linux-benaming
en -rechten. Verschillende andere mini-linux distributies,
bijvoorbeeld DragonLinux maken hier gebruik van. Ook dit is trager
als het Linux eigen filesysteem.
Met de huidige versie van Linux kun je ook files op het NT-filesysteem
verwerken.
Partitioneringsadvies (voor thuissystemen)
Als je partities voor Linux gaat maken, dan raad ik je aan om er meteen
3 te maken:
- een partitie van ongeveer 10 Mbyte voor
/boot
. Hierin komen files
die door de BIOS tijdens het booten gelezen worden. Omdat de BIOS
de files moet kunnen benaderen moet de hele partitie in de eerste
512 Mb resp 8 Gb liggen.
- een swappartitie van 16 Mb tot 128 Mb. Dit wordt gebruikt
als uitbreiding op het fysieke RAM van de machine. Wil een
swappartitie nuttig zijn, dan moet die een omvang hebben die
minimaal vergelijkbaar is met je fysieke RAM. Op je oude trouwe
486 met een 120 Mbyte harde schijf en 8 Mbyte geheugen zul je
merken dat je een swappartitie van 16 Mb nodig hebt.
- een partitie met de rest van het filesysteem.
Voor multi-user productie servers gelden heel andere regels.
Die systemen zullen ingericht worden door professionele Unix
systeem beheerders.
Benutten van files in open-standaard formaat
We hebben gezien dat we files kunnen lezen. We gaan nu bekijken
of we de files kunnen begrijpen, kunnen verwerken. Als voorbeelden
kies ik een jpg-file, een html-file en een textfile.
Joint Photographic Experts Group
Als jpg-file heb ik een heel mooie foto. Ik hoop dat niemand
zich stoort aan dit soort foto's. Ik bekijk ze met
$ seejpeg bill.jpg -F G640x480x32k
Voor de rest van de demonstratie is een grafische mode beter.
Ik kies er voor om Linux in tekst mode op te starten en dan,
als ik dat wil, over te gaan in grafische mode. Er zijn
dagen dat ik de grafische mode helemaal niet gebruik.
$ xinit
We kunnen nu grafische tools gebruiken om onze jpeg file aan
te passen.
$ xv bill.jpg
Met xv kun je eenvoudige wijzigingen in het plaatje
aanbrengen. En soms is dat voldoende.
Als je echt iets moois wilt maken, dan gebruik je The GIMP
(GNU Image Manipulation Program). Dit heel complete pakket
is ook voor MS Windows beschikbaar. Ik heb laatst het
recept
opgevolgd en de volgende tekening gemaakt.
$ gimp voorbeeld.jpg
Hypertext Markup Language
HTML-files zijn de files waarin internet documenten geschreven
zijn. Het aanmaken, genereren van zo'n file doe ik bij voorkeur
met een tekst editor:
$ vi samen.html
Dit is de presentatie van vandaag, zoals die op Internet
beschikbaar komt. Ik geef de voorkeur aan vi
als tekst-editor.
Er zijn veel meer van dit soort tekst editors. Mensen die
net uit de DOS-wereld gestapt zijn geven vaak de voorkeur
aan joe
of pico
. Veel ervaren Linux gebruikers geven de
voorkeur aan Emacs
(Eight Megabytes And Constantly Swapping)
vanwege de grote flexibiliteit.
Het bekijken van een file gaat met willekeurig welke
browser. Ik zal er twee laten zien:
$ lynx samen.html
Dit is de Linux manier van werken. Platte tekst zonder franje.
Mensen gebruiken lynx als ze over een traag modem ingelogd zijn
bij hun internet provider.
$ netscape ./samen.html
Dit is gewoon de standaard netscape. Op mijn machine heb ik
Netscape 4.03 geinstalleerd. De Linux versie van Netscape
loopt parallell aan die voor Windows. Dit betekent dat je ook
met de composer van Netscape HTML-bestanden kunt aanmaken.
Tekst file
Ik heb vi reeds laten zien om een HTML-file te maken.
Maar laat ik even een echte DOS txt-file in vi openen:
$ vi /Cdos/bootlog.txt
Elke regel eindigt in ^M
. In Unix eindigt een regel met
een enkele linefeed (ascii 10). In DOS eindigt een regel
met een carriage return - line feed combinatie (hex: 0D 0A
)
Bij het uitwisselen van txt-files tussen Linux en DOS moet je
hier rekening mee houden.
De meeste Linux commando's kunnen hier rekening
mee houden. Zo zal het print-commando de returns toevoegen
om het zogenaamde staircase effect te voorkomen.
Benutten van files in proprietary formaat
Feitelijk was zo'n txt-file al bijna in proprietary formaat.
Ik doel nu echter op MS-Office en WP-files.
WordPerfect
WordPerfect word tegenwoordig door
Corel verkocht.
Voor Linux is een vrije versie te
downloaden.
$ xwp
(na het openen van bemi.wp)
Het enige voorbeeld in WordPerfect wat ik heb is een document
wat de internationale esperanto fietsclub (BEMI) me ooit
toegestuurd heeft. Dit is dus een document wat mij toegestuurd
werd, waarvan ik niet weet op welk platform het aangemaakt is.
Ik kan het onder Linux verwerken.
Microsoft Office
Om MS-Office documenten te verwerken gebruik ik
StarOffice.
$ soffice -geometry 715x485
StarOffice mag gratis gebruikt worden. Je hoeft slechts een
file van 70 Mbyte te downloaden vanaf de website van SUN.
Spreadsheet.xls openen
Dit is een spreadsheet wat ik midden vorig jaar toegezonden
kreeg toen ik een nieuw notebook zocht. Het is een gewoon
Excel spreadsheet wat ik met StarOffice kan aanpassen en
naar een MS Windows-gebruiker kan terugsturen.
hcc99brf.doc openen
Dit is een word-document wat ik toegestuurd kreeg als
uitnodiging om aan de HCC-dagen voor de DOSgg mee te doen.
Net zoals MS-Office HTML-documenten kan genereren, zo
kan ook StarOffice HTML-documenten genereren.
Een save as levert dit
op.
Tekstverwerkers
Er zijn nog veel meer tekstverwerkers, ook grafische
zoals de verwende windows gebruikers tegenwoordig
verwachten. Ik noem slechts KOffice, een onderdeel van
KDE. Als je op freshmeat.net
gaat zoeken naar wordprocessor,
dan vind je er een stuk of 10.
Ik vind het leuk om een niet-grafische tekstverwerker
te demonstreren: TeX. Het TeX-document wat ik voor deze
demonstratie gekozen heb is het TeXbook zelf. Dit is een document
van bijna 500 pagina's. De beschrijving is iets meer dan
een megabyte. Met vi kan ik wijzigingen aanbrengen:
$ vi -c :13541 texbook.tex
TeX is een combinatie van platte tekst, opmaakcodes en bij
tijd en wijle heel ingewikkelde macro's. Het heeft wel iets
weg van HTML. Ook daar geef je met een opmaakcodes in de
tekst aan dat iets onderstreept moet zijn of zo.
Nu 2 eenvoudige wijzigingen: vervang 30 door 130 en
vervang 'The' overal door 'the' 1,$ s/The/the/g
.
Zo, probeer dat maar eens zo snel met een grafische
tekstverwerker. We moeten het wel nog omzetten in een
printbaar bestand:
$ tex texbook.tex
Dat hoeft je enkel te doen als je het naar de
printer wilt sturen of als je een preview doet van je
document. Ik kan het nu previewen met
$ xdvi texbook.dvi
Op pagina 218 staan onze 130 priemgetallen.
Gebruiken van DOS en Windows programma's
DOS
Dosemu is iets wat op een dosemulator lijkt. Het emuleert eigenlijk
alleen de BIOS-calls. Je hebt er een echte DOS bij nodig, zoals FreeDOS.
Ik heb het ooit aan de praat gehad met mijn eigen harde schijf.
Ik kon toen turbo pascal 5.0 draaien. Na de laatste upgrade heb ik
het niet meer gebruikt.
Windows
Wat ik wel regelmatig gebruik is freecell.exe
. Op mijn andere machine
wordt het zo vaak gebruikt dat het gerechtvaardigt was er een eigen
button voor te maken. Ik kan het ook direct met wine opstarten:
$ cd /Cdos/freecell
$ wine ./freecell.exe
Wine wordt steeds beter. Corel stopt er momenteel een hoop effort
in. Ze willen hun office suite op Linux beschikbaar krijgen en
denken dat wine daar een
geschikte weg voor is.
Wine is begonnen als Windows 3.11 emulator. Inmiddels worden ook
een groot aantal systemcalls van W9x en WNT nagebootst. Toch zou
ik Wine niet gebruiken als ik met Word for Windows een word document
zou moeten verwerken.