Here we put the articles we are working on until they're ready for publishing.
please don't edit this page, use the Parent feature to attaches pages to it.
Ok, This article needs to be cleaned and to be tested/verified.
احب ان اوضح فى البداية اننى لن اتطرق فى هذا المقال الى كيفية تثبيت الخطوط العربية على نظام اللينوكس كما لن اتطرق الى كيفية تمكين كل من GNOME و KDE من عرض المحتوى العربى كل الخطوات التالية تتطلب ان تكون مستخدم جذرى "root" لقد قمت بتجربة هذه الخطوات على نظام Mandrake 9.0 و باستخدام خط Tahoma من نسخة ويندوز 2000 الاصلية الخاصة بى
ينبغى اولا تعريف النظام باننا نريد التعامل مع اسماء الملفات الموجوده على اجزاء القرص الصلب الخاص بنظام تشغيل الويندوز باستخدام اليونيكود
نقوم بفتح الملف /etc/fstab
علينا فقط تعديل السطور الخاصة باقسام ويندوز فمثلا الملف الحاص بى كالتالى
/dev/hda12 / ext3 defaults 1 1 /dev/hda9 /boot ext3 defaults 1 2 none /dev/pts devpts mode=0620 0 0 /dev/hda10 /home ext3 defaults 1 2 /dev/cdrom /mnt/cdrom auto users,ro,noauto,exec 0 0 /dev/sr0 /mnt/cdrom2 auto users,noauto,ro,exec 0 0 /dev/fd0 /mnt/floppy vfat umask=0,sync,nosuid,noauto,user,nodev,unhide 0 0 /dev/hda1 /mnt/win_c vfat defaults 0 0 /dev/hda5 /mnt/win_d vfat defaults 0 0 /dev/hda6 /mnt/win_e vfat defaults 0 0 /dev/hda7 /mnt/win_f vfat defaults 0 0 /dev/hda8 /mnt/win_g vfat defaults 0 0 none /proc proc defaults 0 0 /dev/hda11 swap swap defaults 0 0
بالتاكيد سيختلف الملف الخاص بك هن هذا
سنقوم بالتعديل فى السطور اللتى تحتوى على vfat فى الخانة الثالثة
سنقوم باضافة iocharset=utf8 الى الخانة الرابعة فى هذه الاسطر لتصبح كالتالى
dev/hda12 / ext3 defaults 1 1 /dev/hda9 /boot ext3 defaults 1 2 none /dev/pts devpts mode=0620 0 0 /dev/hda10 /home ext3 defaults 1 2 /dev/cdrom /mnt/cdrom auto users,ro,noauto,exec 0 0 /dev/sr0 /mnt/cdrom2 auto users,noauto,ro,exec 0 0 /dev/fd0 /mnt/floppy vfat umask=0,sync,nosuid,noauto,user,nodev,unhide 0 0 /dev/hda1 /mnt/win_c vfat defaults,iocharset=utf8 0 0 /dev/hda5 /mnt/win_d vfat defaults,iocharset=utf8 0 0 /dev/hda6 /mnt/win_e vfat defaults,iocharset=utf8 0 0 /dev/hda7 /mnt/win_f vfat defaults,iocharset=utf8 0 0 /dev/hda8 /mnt/win_g vfat defaults,iocharset=utf8 0 0 none /proc proc defaults 0 0 /dev/hda11 swap swap defaults 0 0
الان يتبقى خطوتين
اولا: اعداد GNOME2
قم بفتح الملف /etc/profile و اضافة السطر التالى اليه:
export CHARSET=ISO_8859-6 export G_BROKEN_FILENAMES=1
اذا كنت من مستخدمى نظام RedHat 8.0 فيمكنك اغفال باقى الخطوات
ثانيا: اعداد KDE3
اذا كنت تستخدم نظام Mandrake قم بتثبيت حزمة RPM المسماه locales-ar عن طريق الامر التالى:
urpmi locales-ar
فم باضافة السطر التالى الى الملف /etc/profile
export LC_ALL=en_US.UTF-8
الان قم باعادى تشغيل اللينوكس
مبروك عليك الاسماء العربية :-)
فى الواقع الطريقة الاصح هى عمل ملف فى /etc/profile.d نسمية مثلا ar.sh ونقوم باعطائه التراخيص 755 و نضع فية السطرين كالتالى:
touch /etc/profile.d/ar.sh echo "export G_BROKEN_FILENAMES=1" >> /etc/profile.d/ar.sh echo "export CHARSET=ISO_8859-6" >> /etc/profile.d/ar.sh echo "export LC_ALL=en_US.UTF-8" >> /etc/profile.d/ar.sh chmod 755 /etc/profile.d/ar.sh
when translating software using gettext one has to pay attention to plurals, languages differ in how they treat singular and plural forms, gettext tries to be as accomodating as possible by allowing arbitirary rules for each language.
I suppose the rules of plural in arabic are well known enough and it is time we came up with a standard gettext expression to put as a header in all our po files.
so how to express this lovely pattern in the C like expression needed for PO files?
nplurals = 6;
plural = n == 0 ? 0 :
n == 1 ? 1 :
n == 2 ? 2 :
(n % 100 >= 3 && n % 100 <= 10) ? 3 :
(n % 100 >= 11 && n % 100 <= 99) || (n % 100 == 1) || (n % 100 ==2) ? 4 :
5;
pretty isn't it? time to review the whole language me thinks, anyways.
if you're not using kbabel you can edit the header manualy, open the po file in a text editor, find the plural form line and change it to look like this
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : (n % 100 >=3 && n % 100 <=10) ? 3 : (n % 100 >=11 && n % 100 <=99) || (n % 100==1) || (n % 100==2) ? 4 : 5;\n"
The cases are actually five, as zero and three-to-nine use the same form of plural, but since لا تعليقات has more meaning in Arabic than صفر تعليقات, I thought they could be separated.
Okay i'll try to make this mini-howto as simple as possible, It will be like a kick start for anyone interested in Asterisk
We will start by downloading and compiling asterisk:-
You can get asterisk binaries from your GNU/Linux distribution repository or from Asterisk Official website
Before we start we need to install some requirements I always install the headers and the development packages for mysql , postgresql and openssl in case I wanted to use any of this features with asterisk later on also asterisk require the kernel source, kernel headers, bison and libnewt then we will start by extracting and compiling:
tar zxvf libpri-X.X.XX.tar.gz cd libpri-X.X.XX make su - make install
tar zxvf zaptel-X.X.XX cd zaptel-X.X.XX make su - make install
tar zxvf asterisk-x.x.xx.tar.gz cd asterisk-x.x.xx make su - make install make samples
tar zxvf asterisk-addon-X.X.XX.tar.gz cd asterisk-addon-X.X.XX make su - make install
tar zxvf asterisk-sound-X.X.XX.tar.gz cd asterisk-sound-X.X.XX su - make installand You are done with asterisk compiling..
[general] ; here we will define the general options bindaddr = 0.0.0.0 ; so the SIP server will be listing on all the interfaces bindport = 5060 ; default SIP portand now we will need to create 2 SIP account for our softphones
[1001] ; the peer/user username=1001 ; the username for authentication secret=123 ; the password type=friend ; what kind of user is he ? peer,user,friend context=test ; context is one of the key words it's where the incoming and outgoing calls from this user should go host=dynamic ; if the user don't have static IP address or he moving alot with his softphone nat=yes ; if user behind the NAT or no canreinvite=no ; this is important it define if the media path for the call should be directed between the end points or it should go via the asterisk server callerid=sherif nagy <1001> ; this will override the caller ID that is sent out from the softphoneand almost the same configurations will be for the 2nd user
[1002] username=1002 secret=123 type=friend context=test host=dynamic nat=yes canreinvite=no callerid=DarKnesS_WolF <1002>now the heart of this call the dialplan in extensions.conf
[general] [test] ; the test context exten => 1001,1,Dial(SIP/1001) ; when someone dial 1001 should dial 1001 using SIP protocol exten => 1002,2,Dial(SIP/1002) ; when someone dial 1002 should dial 1002 using SIP protocolnow the easy part the softphone ... there is lots of softphones for both GNU/Linux and windows you can use xlite and adjust the username / authentication for each users the domain / sip server is the asterisk IP server and the password is the user password
Directory it's a very useful asterisk application, most of time when you call a company and don't know the extension number for the person you are looking for you have to wait and get help from the operator to reach this person. but if this company has a company directory in there asterisk PBX this will make your life much more easy ..
In more simple words, the directory is a extension numbers searching tool. so you press like * and you go the directory and then you will have to enter the 1st 3 letters of the first or last name of the person you are looking for, and this application will take care of looking UP the extension number for you
Okay so let us get technical a little bit more, how the directory application works. it gets all the information needed from the last place you will ever think about ! the voicemail.conf . Ok how does the voicemail.conf look like ?
[general] ;where the general configurations belongs [context] ;context name extension number => password,user namewhere
[general] [test] 1001 => 0007,sherif nagythen how the directory command look like ?
Directory(vm-context[|dial-context[|options]])where
exten => *,1,Directory(test|f) ; * the number/key to reach the directory , test is the voicemail context , and it'll use looking by first name
so now someone will be calling want to get to me but he don't know my extension number so he will dial * then he will get a message saying Something like this : " welcome to the directory please enter the 1st three letters of the person first name.
each number in the phone keypad contain 3 letters so for example if your are looking for sherif you will type the 1st 3 letters which are "s-h-e" so you will click on 743 which can be any combination of PQES as 1st letter , GHI as 2nd letter and DEF as 3rd letter, so the directory will start to look using this input you may find P-H-F which a person you don't want so you click * , and so on until you find the person you are looking for.
i think that pretty much all about directory searching ..and we are done ;-) later on i hope this howto become more advanced but this is just a startThis seminal text by Eric S. Raymond is a explains the fundamental dynamics of the open source approach. He used the story of the development process of the FetchMail e-mail program to illustrate the advantages of open source development (Bazaar model). Special emphasis is given to Linux and its originator Linus Torvalds.
This well-crafted book by Sam Williams is a biography of Richard M.
Stallman, founder of the GNU project and programmer of legendary
abilities. It makes clear the idealogical differences between the
original Free Software movement and the more recent concept of Open
Source.
A collection of 20 essays on the history of Free and Open Source software by various authors, including Larry Wall, Bruce Perens, Tim O'Reilly, Linus Torvalds, and Richard Stallman.
Ubuntu Linux is a complete open source desktop operating system. The base system and all included software is available for free. Support is available from the community or by professional support providers. "Ubuntu" is an ancient African word, meaning "humanity to others". Ubuntu also means "I am what I am because of who we all are". The Ubuntu Linux distribution brings the spirit of Ubuntu to the software world.
TheOpenCD and Ubuntu have teamed up to support each other's development and distribution. The recently released LiveCD version of Ubuntu contains a slimmed down version of TheOpenCD prepared by our team. With the LiveCD you can run Ubuntu directly from your CD drive without installing anything on your system. If you are ready to leave the frustrations and worries of Windows behind, we recommend the Ubuntu LiveCD as the next step on your journey to software freedom.
This article for Mandrake users.
when you boot your linux you see the following screen

So How do i change this boot screen?
There is many ways
You can install/make bootloader themes
but the easiest way it to just replace the current image with the one you want
open /usr/share/bootsplash/themes/Mandrakelinux/images/ folder
now u can see a collection of images
bootsplash-Sceen resolution.jpg
vt-Sceen resolution.jpg
silent-Sceen resolution.jpg
the default resolution for the bootloader screen is 800x600
so will will replace the 3 800x600 images
choose the image you want to use as your boot loader background
lets take this one http://wallpapers.neo5k.de/content/images/wallpapers/linux/linux-117-1024x768.jpg0
use gimp to resize this image (make it 800x600)
now name it "bootsplash-800x600.jpg"
put this image in /usr/share/bootsplash/themes/Mandrakelinux/images/ (you must be root)
you will be asked to replace the existing one, yes replace it
now goto start-->system-->configuration-->configure your computer
goto boot section --> select the graphical theme of the system while boot
you should be able to see your picture on the right panel
click on Ok button and then reboot your system
can u see your nice picture during the booting???????
Enjoy
Note: I didn't complete this article yet because I don't have enough experiance to complete it, If u can add more information please do
I had to install a mail server, to provide virtual hosting, pop and smtp with webmail.
Why did I choose courier ? Sure to let all of you follow my steps and chew your brains.
Courier is hell, That's why you'll end up chewing your brain, perhaps your whole body and other people bodies too!
I'm talking about Debian stable aka woody.
1st, Don't apt-get install the binary debs.
apt-get source courier-mta
Because there is a unique feature in courier, It force you to use one of the freedoms enforced by the GPL, which is: The freedom to modify the source code!
courier authentication authdaemon and userdb.
courier mta, smtp, pop, imap.
squirrelmail
permit users to change their passwords.
Outline:
While i am searching in Drupal Forums about creating a Recruitment Module to add it to a site i found this discussion, i found it very usefull, you can create any type of forums using flexinode. Have a nice Drupal.
Cron is a tool that lets you specify jobs (could be command or scripts or whatever you like) in the file /etc/crontab these commands will then be executed according to a particular schedule (for instance every Wednesday at 3:00 do a fsck, or every day at 8:00 play alarm.au, or even every 1st of Jan say happy new year).
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/
- run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
the first few lines are environment variables and explain themselves the run-parts is the important one its obvious here that my system has four separate tables for hourly, daily, weekly and monthly jobs
01 0 1 1 * alaa echo 'happy new year' 02 0 1 1 * alaa mail -s 'happy new year' friends < greetings.txt
the subject 'happy new year' and have the content of greetings.txt as the message body.
however cron is of limited use to your usual home user since it assumes your pc is on all the time so if I don't open my pc on 1st of Jan until the morning (which is probably what will happen) my friends will not get a message from me and my computer will not greet me thus ruining the whole year from day one.
a tool that would be more useful is anacron, it doesn't assume your computer will be on all the time but rather you have to describe a frequency for this particular job (like I want this done once a month and that done once a year). however anacron is a totally different story.
both cron and anacron are useful if you like your command/script to run only once (not periodically) in this case you use the tool at
you may want to check the man pages for anacron and at too your GNU/Linux system comes with a whole lot of docs and manuals try to read as many of them as you can.
i've had this in mind for a very long time and finally i could do it yesterday
in the windows world (where i used to live before) you could easily with a couple of mouse clicks get a DNS and a DHCP servers running on your lan up and running.
why would you do that? because you would like to have workstations resolving each other's IPs without using the stupid netbios over tcpip and in linux you would need that defenitley to be able to resolve names without doing it by hand in the /etc/hosts file.
let's start . . .
first here is the setup i have
i have a server SERVER (192.168.0.2) workstations STATION1-3 (192.168.0.1-3) the DSLrouter (192.168.0.1)
i want the stations to get dynamic ips from the server through DHCPD and update their records in the DNS server
to do this you'll need to :
dhcpd.conf
# /etc/dhcpd.conf
#
# Global Settings
#
# Turn on Dynamic DNS:
ddns-update-style interim;
ddns-updates on;
# Don't allow clients to update DNS, make the server do it
# based on the hostname passed by the DHCP client:
deny client-updates;
allow unknown-clients;
#
# 192.168.0.0/255.255.255.0 Scope Settings
#
subnet 192.168.0.0 netmask 255.255.255.0 {
# Range of DHCP assigned addresses for this scope
range 192.168.0.3 192.168.0.6;
# 1 day
default-lease-time 86400;
# 2 days
max-lease-time 172800;
# Configure the client's default Gateway:
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.2;
# Configure the client's DNS settings:
option domain-name "lab.local";
option domain-name-servers 192.168.0.2;
# If you want the client to be configured to also use
# a WINS server:
option netbios-name-servers 192.168.0.2;
option netbios-node-type 8;
}
named.conf
## /etc/named.conf
options {
directory "/var/named";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "lab.local" IN {
type master;
file "lab.local";
allow-update { localhost; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.rev";
allow-update { localhost; };
};
include "/etc/rndc.key";
i won't go into details of creating the zone files cause that's the most easy part or maybe someone would update the article and add it.
now it should be working
note : FC3 users or any other SELINUX enabled distro users must modify the selinux security policy to allow named to overwrite the zone files (in FC3 is done using the security-level tool)
hope it was helpful to any of you
references http://voidmain.kicks-ass.net/redhat/redhat_9_dhcp_dynamic_dns.html .. http://www.csd.uwo.ca/staff/magi/doc/bind9/Bv9ARM.html
When i saw the JBoss Portal 2.0 i thought about Drupal. why i use Drupal instead of Jboss portal, i can see the difference between portal and CMS but i found many features in JBoss Portal similer to Drupal. i found this discussion about the difference between JBoss Portal and drupal:
Hello , Its Me Again
The original author was thinking to write how-to mount windows partition but the idea gets more fat to get more than windows to be generally FSTAB
On Mandrake and some other Distributions, The System mounts Windows Partitions Automatically,
By Other Means, When You cd To /mnt/windows ... You'll Find Your Files there ...
But on Fedora Core and some other Distributions, You Must mount your Windows Partitions each Time you Boot into your System ... Now, The Question is : How To Make it mounted Automaticlly each time your System Boots UP ?!
Before Getting Into Details .. You'll Have to Know That ...
When you Boot Your System .. The Kernel Looks for a File called /etc/fstab Which Describes all the File Systems that Should Be mounted and Then mounts Them All.
This File not Only Includes Your root and swap Partitions but Also Includes any Extra Partitions you Want to mount .. Plus all Logical/Virtual File Systems like the /proc File System.
Note: fstab Stands For "File System Table"
Now, Inorder to Make The Partitions mounted Automaticlly Every Time Your System Boots UP What You Need is to Add Entries in Your /etc/fstab
Here is The Format of The Entry ..
device_name|mount_point|fstype|option|another_option|kaman_option|etc|dump_frequency|fsck_priority
Note: fsck Stands For File System Check and it is used to Check and Repair a Linux File System
/dev/hda2 / ext3 defaults 0 1 /dev/hda6 /home ext3 defaults 0 2 /dev/cdrom /mnt/cdrom iso9660 noauto,user,noexec,ro,uid=501,gid=22 0 0 /dev/cdrom1 /mnt/cdrw iso9660 noauto,user,noexec,ro,uid=501,gid=28 0 0 /dev/fd0 /mnt/floppy vfat user,sync,noauto 0 0 /dev/hda1 /mnt/win_c vfat noexec,rw,uid=501,gid=6 0 0 /dev/hda5 /mnt/win_d vfat noexec,rw,uid=501,gid=6 0 0 none /proc proc defaults 0 0 /dev/hda3 swap swap defaults 0 0 /dev/hdb2 /mnt/edge reiser4 defaults 1 1
The Entry for the CDRW Drive is Exactly the Same As for the CDROM, You Don't Need to Make it read/write Since Writing to the CDR Media is Done While the Media is unmounted.
The Benefit of having a CDROM Entry in Your fstab will be Revealed Now :
mount -t iso9660 /dev/cdrom /mnt/cdrom -o noauto,user,noexec,ro,uid=501,gid=22
mount /mnt/cdrom
mount /dev/cdrom
As you Can See you Don't Really Need to Tweak All Options .. A Line that Says
/dev/hda5 /mnt/win_d vfat
Is Enough to mount your Windows Partition.
some distributions like red-hat/fedora could not mount NTFS file system automatically like the vfat due to patent promise or ,license conflicts so the decide to remove the NTFS.
but you still need your ntfs file system .so open source people generously found the NTFS-Linux so you need to install the rpm which is provided to your kernel . then change the vfat in file system to ntfs .
As FSTAB file describes all the File Systems that Should Be mounted locally .it may be also mount network resource on boot .
hostname:/path/to/share /mount/point nfs defaults 0 0
the defaults may be changed with many other option as i remember some of them
192.168.0.10:/home/conceptor/exports /mnt/mounted nfs defaults,ro,rsize=8192,wsize=8192,soft
the most linux boxes could mount the M$ share resources automatically without any problems
the entry will looks like
//192.168.0.1/myshare-name /mount/point defaults 0 0
the options is diffrent from nfs the could be
so the entry will be something like
//hostname/files /mount/point defaults,username=diaa,password=eglug,uid=514 0 0
This Article is Originally Written by Alaa and re-organized by CVirus,and many contributers
ALT x (written as M-x) opens the emacs command.
CTRL x (written as C-x) for commands related to the editor.
CTRL h (written as C-h) for help commands, also u can access it through F1
Immediately after installtion, you may encounter situations in which you are required to upgrade the system . Although the Linux kernel has seen many advances, it may not fulfill the needs of your system. for this reason, the kernel which is available at www.kernel.org is updated often.
You may have several reasons to update the kernel on your system, including the following:
- Regardless of the reasons for upgrading the kernel, the installers should be competent at performing this task.
Each file has an owner and belongs to a group.
Each running process has an owner and belongs to a group.
Users may belong to multiple groups.
at any session a user has an active group, and process she starts will inherit this active group.
each user has a default active group.
users may change the current active group using the commands newgrp and sg.
this security model is sufficient for most needs because GNU/Linux tries to represent everything as a file.
Each file has 3 sets of permissions that apply to different users, one set applies to the file owner, one applies to members of the file's group and the last set applies to anyone else.
in case one needs more some kernel modules offer Access Control Lists which provide more fine grained control.
| Read | Write | Execute | SetUID | SetGID | Sticky | |
|---|---|---|---|---|---|---|
| file | Can read | can modify | Can execute | executed as if owner | executed as if were in that group | no effect |
| directory | can ls | can make new files and delete file | can cd to directory and access its files and subdirectories | no effect | new files get group & new dirs get setgid | only owners can delete files |
| alphabetical chmod | +r | +w | +x | u+s | g+s | o+t |
| numerical chmod | 4 | 2 | 1 | 4000 | 2000 | 1000 |
Because Microsoft knows how to be a good politician:
Being the leader doesn't necessarily mean you're the best. I read a comment on the net about Microsoft that is very relevant to political life ;o)
"Microsoft would rather be pirated than being free" …!!!
"Greetz from Planet Haram" by Mohannad Faried and others yet to come
Introduction "why am i doing this ?"
ever since i started to tinker around with linux, it was very important for me to have a solid understanding about how do i go about doing the things i already do on windows, since my major is architecture, and a have this artistic streak "well i hope it is an artistic streak!", plus my freelance work as a graphical designer, with some occasional web designing, it was quite important to know the ropes on linux. right now i intend to share what i know with you! , you poor soul! :)
structure of this document:
the idea is very simple, we find out what the keycode of the annoying key is, then we use xmodmap to remap it to a new harmless or useless meaning.
you make a file called masalan ~/.xmodmap
in ~/.xmodmap you need to make entries that look like this
keycode 111 = XF86Excel
on the left is the X specific keycode generated by this key, and on the right is the symbolic keyname X will assign to this keycode.
you can find out the keycode by running xev
xev catches any X events when its in focus and writes what happens on the terminal, put the focus on the xev window and press your key you'll see lines that look like
KeyPress event, serial 28, synthetic NO, window 0x2a00001, root 0x71, subw 0x2a00002, time 74933419, (53,51), root:(57,68), state 0x0, keycode 111 (keysym 0xff61, Print), same_screen YES, XKeysymToKeycode returns keycode: 92 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 28, synthetic NO, window 0x2a00001, root 0x71, subw 0x2a00002, time 74933496, (53,51), root:(57,68), state 0x0, keycode 111 (keysym 0xff61, Print), same_screen YES, XKeysymToKeycode returns keycode: 92 XLookupString gives 0 bytes:
- xev
the symbolic keynames are all mentioned in the file /usr/X11R6/lib/X11/XKeysymDB
to completly disable a key use a keysym you're unlikely to ever need like the microsoft specific multimedia keys.
you can use the same technique to modify your keyboard in anyway (disable annoying hindi numerals, stop caps lock etc).
keycode 111 is the keycode of printscreen on my pc, the above line in ~/.xmodmap is enough to stop it
when you're done editing ~/.xmodmap you need to run
- xmdomap ~/.xmodmap
this loads the new keymap, if the behavior is right you want to configure your system so that it runs xmodmap everytime you run X (you figure out how).
How to install Oracle 10g on Mandrake 10.1 Official
1- Creating Oracle User Accounts
To create the oracle account and groups, execute the following commands:
su - root
groupadd dba # group of users to be granted SYSDBA system privilege
groupadd oinstall # group owner of Oracle files
useradd -c "Oracle software owner" -g oinstall -G dba oracle
2- Unzip the database by running this command:
gunzip ship.db.lnx32.cpio.gz
3- Uncompress the database by running this command:
cpio -idmv < ship.db.lnx32.cpio
In order to install oracle the system must have at least 512MB of RAM and 1GB of swap space or twice the size of RAM. And for systems with more than 2 GB of RAM, the swap space can be between one and two times the size of RAM.
4- To check the size of physical memory, execute:
grep MemTotal /proc/meminfo
5- To check the size of swap space, execute:
grep SwapTotal /proc/meminfo
(OPTIONAL)
You also can add temporary swap space to your system by creating a temporary swap file instead of using a raw device. Here is the procedure:
su - root
dd if=/dev/zero of=tmpswap bs=1k count=900000
chmod 600 tmpswap
mkswap tmpswap
swapon tmpswap
To disable the temporary swap space execute the following commands:
su - root
swapoff tmpswap
rm tmpswap
6- Check how much space is in the /tmp :
According to Oracle's documentation, the Oracle Universal Installer (OUI) requires up to 400 MB of free space in the /tmp directory. But OUI checks if /tmp is only greater than 80 MB.
To check the space in /tmp, run:
df /tmp
(OPTIONAL)
If you do not have enough space in the /tmp filesystem, you can temporarily create a tmp directory in another filesystem. Here is how you can do this:
su - root
mkdir //tmp
chown root.root //tmp
chmod 1777 //tmp
export TEMP=/# used by Oracle
export TMPDIR=/# used by Linux programs like the linker "ld"
When you are done with the Oracle installation, shutdown Oracle and remove the temporary /tmp directory:
su - root
rmdir //tmp
unset TEMP
unset TMPDIR
7- Check for required RPMs
rpm -q gcc make binutils setarch openmotif mandrakelinux-release
This command queries the RPM database if these RPMs are installed or not (gcc, make, binutils, setarch, openmotif, mandrakelinux-release) If not so execute:
urpmi gcc
urpmi make
urpmi binutils
urpmi setarch
urpmi openmotif
urpmi mandrakelinux-release
8- Make the OUI believe that its installing Oracle 10g on Redhat , because Mandrake is not supported by Oracle.
You have to edit these 2 files ( /etc/redhat-release , /etc/mandrakelinux-release ) file on Mandrake to make Oracle10g believe it is running on RHELAS3. To change the /etc/redhat-release file, you can simply copy/paste the following commands:
su - root
cp /etc/redhat-release /etc/redhat-release.backup
cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
su - root
cp /etc/mandrakelinux-release /etc/mandrakelinux-release.backup
cat > /etc/mandrakelinux-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
>>
After you are done with the Oracle10g installation undo the changes you made to
/etc/redhat-release:
su - root
cp /etc/redhat-release.backup /etc/redhat-release
su - root
cp /etc/mandrakelinux-release.backup /etc/mandrakelinux-release
9- Check the kernel parameters
To see all kernel parameters, execute:
su - root
sysctl -a
For Oracle10g, the following kernel parameters have to be set to values greater than or equal to the recommended values which can be changed in the proc filesystem:
shmmax = 2147483648 (To verify, execute: cat /proc/sys/kernel/shmmax)
shmmni = 4096 (To verify, execute: cat /proc/sys/kernel/shmmni)
shmall = 2097152 (To verify, execute: cat /proc/sys/kernel/shmall)
shmmin = 1 (To verify, execute: ipcs -lm |grep "min seg size")
shmseg = 10 (It's hardcoded in the kernel - the default is much higher)
semmsl = 250 (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $1}')
semmns = 32000 (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $2}')
semopm = 100 (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $3}')
semmni = 128 (To verify, execute: cat /proc/sys/kernel/sem | awk '{print $4}')
file-max = 65536 (To verify, execute: cat /proc/sys/fs/file-max)
ip_local_port_range = 1024 65000 (To verify, execute: cat /proc/sys/net/ipv4/ip_local_port_range)
I added the following lines to the /etc/sysctl.conf file which is used during the boot process:
kernel.shmmax=2147483648
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
Adding these lines to the /etc/sysctl.conf file will cause the system to change these kernel parameters after each boot using the /etc/rc.d/rc.sysinit script which is invoked by /etc/inittab. But in order that these new added lines or settings in /etc/sysctl.conf become effective immediately, execute the following command:
su - root
sysctl -p
Explanation for Semaphores:
Semaphores can best be described as counters which are used to provide synchronization between processes or between threads within a process for shared resources like shared memories. System V semaphores support semaphore sets where each one is a counting semaphore. So when an application requests semaphores, the kernel releases them in "sets". The number of semaphores per set can be defined through the kernel parameter SEMMSL.
To see all semaphore settings, run:
ipcs -ls
The SEMMSL Parameter
This parameter defines the maximum number of semaphores per semaphore set.
Oracle recommends to set SEMMSL to the largest PROCESSES init.ora parameter of any database on the Linux system plus 10. Oracle also recommends to set SEMMSL to a minimum value of 100.
The init.ora parameter PROCESSES specifies the maximum number of operating system processes that can be started by the Oracle instance. In a non MTS environment, Oracle spawns a system user process for each connection. This means that in such an environment the PROCESSES parameter defines the maximum number of simultaneous Oracle connections minus sum of all Oracle background processes. It can also be said that the PROCESSES value should never be greater than SEMMSL.
The SEMMNI Parameter
This parameter defines the maximum number of semaphore sets in the entire Linux system.
Oracle recommends to set SEMMNI to a minimum value of 100.
The SEMMNS Parameter
This parameter defines the total number of semaphores (not semaphore set) in the entire Linux system. A semaphore set can have more than one semaphore, and according to the semget(2) man page, values greater than SEMMSL * SEMMNI makes it irrelevant.
Setting it to a minimum value of 256 is for initial Oracle installation only. Oracle recommends to set SEMMNS to the sum of the PROCESSES parameter for each database on the system, adding the largest PROCESSES twice, and then adding 10 for each DB.
The maximum number of semaphores that can be allocated on a Linux system will be the lesser of: SEMMNS or (SEMMSL * SEMMNI)
Setting SEMMSL and SEMMNI to 100 makes sure that SEMMNS semaphores can be allocated as determined by the above calculation.
The SEMOPM Parameter
This parameter defines the maximum number of semaphore operations that can be performed per semop(2) system call.
The semop(2) function provides the ability to do operations for multiple semaphores with one semop(2) system call. Since a semaphore set can have the maximum number of SEMMSL semaphores per semaphore set, it is often recommended to set SEMOPM equal to SEMMSL.
Oracle recommends to set SEMOPM to a minimum value of 100.
10- Setting semaphores
First of all to avoid wasting your time if you want to undo the following settings take a backup for this file "sysctl.conf" by using this command:
cp /etc/sysctl.conf /etc/sysctl.conf.backup
Setting the Semaphore Kernel Parameters
echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
To make the change permanent, add or change the following line in the file /etc/sysctl.conf. This file is used during the boot process.
Alternatively, you can use sysctl(8) to change it:
sysctl -w kernel.sem="250 32000 100 128"
To see the new updated semaphore settings, run:
ipcs -ls
11- Setting Shell Limits for the Oracle User (steps 12 & 13)
If you just install a small test database, then you might be ok with the current settings (note that the limits very often vary). But for (larger) production databases, you should increase the following shell limits to the following values recommended by Oracle:
nofile = 63536 (To verify, execute: ulimit -n)
nproc = 16384 (To verify, execute: ulimit -u)
The nofile option denotes the maximum number of open file descriptors, and nproc denotes the maximum number of processes available to a single user.
To see all shell limits, execute:
ulimit -a
12- Setting the file handles
The maximum number of file handles can be changed in the proc file system without reboot:
su - root
echo "63536" > /proc/sys/fs/file-max
Alternatively, you can use sysctl(8) to change it:
sysctl -w fs.file-max=63536
To make the change permanent, add or change the following line in the file /etc/sysctl.conf. This file is used during the boot process.
echo "fs.file-max=63536" >> /etc/sysctl.conf
13- Setting the shell limits for the Oracle user
Now login to the oracle account again since the changes will become effective for new login sessions only.
$ su - oracle
$ ulimit -n
1024
$
To change this, you have to edit the file /etc/security/limits.conf as root and add the following lines, respectively:
oracle soft nofile 4096
oracle hard nofile 63536
Now login to the oracle account again since the changes will become effective for new login sessions only.
$ su - oracle
$ ulimit -n
4096
$
The default limit for oracle is now 4096 and the oracle user can increase the number of file handles up to 63536:
$ su - oracle
$ ulimit -n
4096
$ ulimit -n 63536
$ ulimit -n
63536
$
To make this change permanent, add "ulimit -n 63536" (for Bash) to the ~oracle/.bash_profile file which is the user startup file for the Bash shell on Mandrake Linux (to verify your shell run: echo $SHELL). To do this you could simply copy/paste the following commands for the oracle's Bash shell:
su - oracle
cat >> ~oracle/.bash_profile << EOF
ulimit -n 63536
EOF
>
PAM modules are required for performing login
This is the PAM module that will read the /etc/security/limits.conf file. You need to add the following entry to these files: (1) /etc/pam.d/system-auth (2) /etc/pam.d/sshd (3) /etc/pam.d/su (4) /etc/pam.d/login
session required /lib/security/pam_limits.so
14- Setting Limits for the Maximum Number of Processes for the Oracle User
To see the current limit of the maximum number of processes for the oracle user, run:
su - oracle
ulimit -u
Note that the ulimit options are different for other shells.
To change the "soft" and "hard" limits for the maximum number of processes for the oracle user (as ROOT), add the following lines to the /etc/security/limits.conf file:
oracle soft nproc 2047
oracle hard nproc 16384
To make this change permanent, add "ulimit -u 16384" (for Bash) to the ~oracle/.bash_profile file which is the user startup file for the Bash shell on Red Hat Linux (to verify your shell run: echo $SHELL). To do this you could simply copy/paste the following commands for the oracle's Bash shell:
su - oracle
cat >> ~oracle/.bash_profile << EOF
ulimit -u 16384
EOF
>
15- Creating Oracle Directories
For Oracle10g you only need to create the directory for $ORACLE_BASE:
su - root
mkdir -p /u01/app/oracle
chown -R oracle.oinstall /u01
16- Setting Oracle enviorments
su - oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
To have these environment variables set automatically each time you login as oracle, you can add these environment variables to the ~oracle/.bash_profile file which is the user startup file for the Bash shell on Red Hat Linux. To do this you could simply copy/paste the following commands to make these settings permanent for your oracle's Bash shell:
su - oracle
cat >> ~oracle/.bash_profile << EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
EOF
>
SID = "System Identifier" whicjh is the global databse name
17- Before you execute runInstaller, make sure the Oracle environment variables are set. You can verify the settings by running the set command:
su - oracle
oracle$ set
In order to have this event running smoothly we need as much information as we can get from the people involved and also to answer all questions that visitors my ask.
Linux community common word for : "installation festival"; Linux user groups run this event to introduce foss and install gnu/linux on visitor's computers. Computer users are invited to bring their machines to have GNU/Linux installed on their machines. The idea is to ease migrating to Linux, which is initially installing and configuring it for the user's machine.
if you are visiting us alone (without your pc) you will find some people who use free software and they also have some experience in other OS,they will be pleased to explain it for you. But if you bring your pc and you need to install gnu/linux you're also welcome, just make one suitable partition with 5 GB free. or unallocated space. If you can not do this it's ok just defrag your harddisk or have at least one partition that has free space.
The word free has nothing to do with the price .It means freedom. And about the freak command line, you will see some intresting window transparency and more cool applications, seems that you are outdated check.
Sure! Add ur name on our volunteer list and you can go for the wiki to participate.
read the introductory pamphlets.
We encourage everyone to bring a computer on which he can install Linux. Any distribution, any version. Several members often bring in CDs, so all you really need to do is bring in a computer. Some people bring spare monitors, keyboards, and mice as well as power cables and power strips, but we encourage everyone to bring their own, as sometimes there's still not enough to go around, even with the spares. The more experienced members are there to lend a hand with any questions which may arise.
If you need only the other os for .doc file ,you can use Open Office. you can also use the old system through dual boot. Ask about this from the installer.
You are asking many questions. GNU/Linux is not related to any behavior of window$ . if there is any support needed just leave your message on the forum and you will find the reply. Anyone can ask anything without moderators verification . go for http://www.eglug.org
NetoDragon softmodems "56k voice modem" seems to be taking over the market from Motorola's SM56. Here is the installation guide:
cp /path/to/driver/tarball /wherever/you/want cd /wherever/you/wanted tar -zxvf slmodem-2.9.X.tar.gz cd slmodem-2.9.X make su make install modprobe slamr slmodemd -c=YOUR COUNTRY'S NAME &
For the 2.6 kernels you must have the kernel source installed in /usr/src/linux If you are using mandrake do as root:
urpmi kernel-source
And Happy surfing
I will attempt to use a consistent layout for this document:
NAMES OF PEOPLE AND PROGRAMS WILL BE IN NOUN STYLE LIKE THIS.
'ARABISH1 WORDS WILL BE IN NOUN STYLE AND QUOTED LIKE THIS'
file names and directories will be emphasized like this.
Warning and Important notices will be emphasized and bold.
commands entered by a normal user will be preceded by a dollar sign $.
command entered by root will be preceded by a hash sign #.
any input or commands you should enter will be in typewriter style.
``quotes will look like this and will be followed by a reference pointer.''Most examples and commands are to be executed from the command prompt of the console or an X terminal, if your system automatically runs the X windows you have to open an X terminal2.
You can skip the first section completely and jump to the practical problems and solutions, I intend to use heavy referencing to make it easier to jump from different locations in the document; a table of contents is inserted at the top of the document for your convenience.
You may have heard/read the names LINUX, GNU, GNU/LINUX, X WINDOWS, KDE, GNOME, RED HAT, MANDRAKE, distro and a lot of other names, in the beginning its not clear what they all mean.
You probably already know that LINUX is free, but you know there are companies selling it, and then there is all this talk about the source, what does it all mean??.
Strictly speaking LINUX is a an operating system kernel; a kernel is the part of the operating system that is responsible for the very basic operations of your system.
``The LINUX kernel acts as a mediator for your programs and your hardware. First, it does (or arranges for) the memory management for all of the running programs (processes), and makes sure that they all get a fair (or unfair, if you please) share of the processor's cycles. In addition, it provides a nice, fairly portable interface for programs to talk to your hardware.[1]''The LINUX kernel was first written by LINUS TORVALD when he was a student, it is now being developed by thousands of developers around the world.
Mostly when people speak about LINUX they mean the GNU/LINUX operating system which is the OS that runs your computer. GNU stands for (GNU IS NOT UNIX) it is a free clone of the popular UNIX operating system.
GNU was first written by RICHARD M STALLMAN the chairman of the Free Software Foundation http://www.fsf.org (FSF|), since the GNU system was still missing a kernel3, it was combined with the LINUX kernel to make the GNU/LINUX operating system.
GNU are all the basic tools you use in maintaining your system, it also includes lots of applications, libraries and a compiler.
Distributions or distros are products made by companies to simplify the installation and configuration of a GNU/LINUX operating system, some of the most popular distro are RED HAT, MANDRAKE, SUSE and DEBIAN. They are all GNU/LINUX and so they're very much similar, most software you use under LINUX is being developed independently from these distributions so applications will look and feel the same no matter what distro you use. The distro however provides you with an easy install script and wizards to automate lots of the configuration tasks, it also provides lots of precompiled packages that you can use directly without having to configure and compile yourself. The companies that make these distros also provide technical support, manuals and other services for their customers.
Yes LINUX is free, but its not necessarily free as in zero price 'MAGANY'4 it is free as in freedom '7OR' this means that you the user have certain freedoms that no one can take from you.
``* The freedom to run the program, for any purpose (freedom 0).This simply means that you have the right to make any number of copies of GNU/LINUX and distribute them in any way you like; even selling it. And it means that you have the right to change it in anyway you like and distribute your changes.
* The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
* The freedom to redistribute copies so you can help your neighbor (freedom 2).
* The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this.[2]''
This is not the way WINDOWS or any other commercial software is, with WINDOWS you have no legal right to make copies of it; you can't even install it on more than one computer even if its yours. And there is no way you can access the source code for WINDOWS or be able to modify it.
If you manage to modify it you are not allowed to tell the world about it, even if your modification is an important bug fix or a new feature that MICROSOFT was never going to implement.
As we mentioned in the previous section in order for GNU/LINUX to be free you the user must have access to the source code5. when the code of a piece of software is available to the public to study it is called open sourced.
All free software is open sourced, but not all open sourced software is free, some programs may allow you access to the source code but you can't modify or distribute it as you please[3].
The GPL[4] or the GNU GENERAL PUBLIC LICENSE is the most popular and strongest free software license, it is the GPL that ensures you have all the freedoms described in section 1.3, the GPL is a strong license because it is a copyleft license, copyleft (as opposed to copyright) means that if you distribute modified GPL software your modifications should be distributed under the GPL too, this ensures that no company can take a GPLed program and turn it into a secret closed one restricting its user's freedoms[5].
MICROSOFT software is distributed under an END USER LEGAL AGREEMENT that is very restrictive, any breach of this agreement (like making a copy of WINDOWS for your friends) is considered a criminal act and puts you in the risk of heavy sentences.
Free software has no owners, although the FSF holds the copyrights to the GNU system and LINUS holds the copyrights and trademarks to LINUX; this only means that no one can go and make another product and call it LINUX or GNU and that no one else can claim they were the first to write LINUX.
Not even LINUS or the FSF can restrict your freedoms to use and modify the GNU/LINUX system.
Or in other words, why do we need free software, if its safe to copy non free software?!
You may think it is safe to copy non free software, this is more or less true if you are a home user, but large organizations such as companies and government agencies cannot afford to run illegally copied software anymore, with the pressure generated by extra-territorial laws and international agreements such as the GATT. If you are trying to set up a small business then most probably you cannot afford the price of commercial software licenses (think of what will happen to all these offices in 'BEIN EL SARAYAT' if they had to pay for the software they use).
But free software isn't about the price only, when you buy non free software form a company like MICROSOFT, you have to rely on MICROSOFT for support and further development of the software, if you are a computer professional you have to rely on MICROSOFT for certification and training. This means more money to be paid for a foreign economy, but since LINUX is free, you can set up your own LINUX company that supports and further develops it; this way when someone buys your product or request your services the money will benefit your local economy.
With free software it doesn't matter how underdeveloped the country is or how far ahead the rest are, when technology is free we can really own it. If technology isn't free then we have to choose between reinventing the wheel or relying on others to provide us with it.
Even if you are not a programmer the openness of the code is
very important to you, its because the code is open and free that
GNU/LINUX is such a reliable OS, since thousands of
programmers are working on developing and fixing it.
If a anyone finds a bug they can look at the code and fix it, if
you find a bug and can't fix it yourself you can report it and
someone else will fix it. If there is a feature in a free software
package that is missing you can hire someone to develop it for you,
and if this feature is useful for many people you can probably find
someone to implement it for free.
The open sourced nature of GNU/LINUX protects you
from security problems and trap doors, since the system is heavily
peer reviewed by the world best programmers. With
WINDOWS you cannot tell if it has trap doors or not,
you cannot know if it sends data about you compromising your
privacy.
Actually MICROSOFT software is known to be full of
secret undocumented features, for instance all office documents
carry a special ID that is unique to your machine, thus
compromising your privacy.
WINDOWS is notorious for its security problems and its weakness towards viri, GNU/LINUX on the other hand is very secure and no known virus was ever able to harm it thanx to its open nature.
Availability of the code also ensures that your favorite piece of software will not suddenly die because its author lost interest or got busy, since its free anyone can develop it and release new versions, you don't need to rely on one vendor.
As we told you before, GNU is a UNIX clone, so its natural that GNU/LINUX would share many common features with UNIX, it is this UNIX heritage that makes GNU/LINUX so different from M$ WINDOWS, in this section we'll explore the basic ideas behind a UNIX system.
UNIX is the oldest living operating system, it was first written by KEN THOMPSON and DENNIS RITCHIE6 when they were working at AT&T, it could be considered as the grand daddy of all operating systems in use today.
AT&T licensed UNIX to many companies and universities, who in turn developed their own versions of it, which resulted to many different UNICES, these UNICES fall into the two wide categories of BSD UNIX and AT&T UNIX.
Efforts to standardize all these UNICES resulted in the POSIX standard, GNU/LINUX is very POSIX compliant.
No not at all, most UNIX and LINUX users would tell you that the command line is much more powerful and versatile. This power of the command line is an integral part of the UNIX philosophy.
So while WINDOWS is trying very hard to get rid of the command line, GNU/LINUX relies on it for all its functionality, to the point that most graphical tools and applications rely on command driven tools to do the real work. This of course give you the best of the two worlds, and most important of all it gives you choice.
So if you prefer Graphical User Interfaces (GUI) go ahead, you'll find it as easy to use as WINDOWS and even more powerful.
But if you want to release the power of your computer and your mind try to learn the command line, its not as scary as it seems.
I told you that UNIX is an operating system, but to think of it as a mere OS would be a gross understatement, it is much more than that, it is a complete philosophy specifying that small and simple is better. All UNICES are geared around the idea that writing small programs that do one job but do it perfectly thus becoming tools and not applications gives the user more power since he can combine these tools and use them together to get a result that is greater than the sum of these tools.
But the efficient use of these tools depends on the creativity and intelligence of you the user.
So unlike WINDOWS which assumes you have the IQ of a potato and tries to tell you how to do things, GNU/LINUX like all UNICES waits for you to harness it and tell it what you want done.
Although the UNIX command line looks a bit like the old DOS command line which still lives in the heart of WINDOWS, don't be fooled by its appearance it is much more powerful than DOS.
UNIX is from day one a multi tasking environment, which means you can run several task at the same time.
try this:
But thats not all GNU/LINUX is a multi user system too, since it was designed for a networking environment it allows several users to use the computer and run different programs at the same time.
Try it your self press Ctrl-F2 and a new login screen will open, you can login with a different account, or even open a new session of the same account.
You may think this is only useful for satisfying split identity disorders, but on the contrary as you get used to GNU/LINUX you'll find many uses for this feature.
WINDOWS is not really a multiuser OS although it acts as if it is, this multi user nature of GNU/LINUX is one of the main reasons behind many confusions to new users, issues like ownership and permissions would make perfect sense when you understand the multi user nature of UNICES.
While WINDOWS is based around the idea of drives, where every partition and media has its own drive name (like C: D: E:) and each drive has its own directory tree that begins with a root directory for every drive (C:\, D:\, E:\). GNU/LINUX on the other hand follows the UNIX tradition of having only one tree. This tree has only on root directory (/) and all partition and media are connected to this tree through a process called mounting.
So in WINDOWS if I want the second partition I have to go to D:, but in GNU/LINUX I'd go to the directory /mnt/win_d
This is a bit confusing in the beginning but you'll get used to it quickly.
The fact that GNU/LINUX has only one tree, meant that it could have a much more organized file structure, where files are grouped together by their type and function instead of letting each program handle its own files in any random way.
This is one of the most confusing yet powerful aspects of GNU/LINUX.
By everything we mean literally everything; directories are files, hard disks are files, partitions are files, Internet connections are files. EVERYTHING is a file in GNU/LINUX.
But this makes us wonder what is a file exactly??
In a very non formal way a file is just a stream of bytes, and you can usually read and write streams of bytes to the file.
Files could either be:
Yes UNIX tools and programs always had funny and interesting names, GNU took this to an extreme like the pager called LESS because it is a more powerful pager than the pager called MORE.
These naming conventions reflect a whole culture; the Hackers' culture, which in itself reflects how fun and enjoyable computing could be.
This is one of GNU/LINUX'S main advantages over WINDOWS, it is fun, it doesn't try to hide its weaknesses with obscure technical messages and yet it doesn't try to sound too stupid and dumb (ala my computer style).
For an interesting look at Hackers' culture check The Jargon File http://www.tuxedo.org/ esr/jargon/html/index.html.
As mentioned in the previous section, the GNU/LINUX system follows the UNIX tradition by having one tree only, in this section we study with more details the organization and structure of this tree and of various file types.
One point where GNU/Linux excels is its wide support of file systems, your GNU/Linux file system could access nearly all file systems in use today7, This means that you don'thave to worry about what other OSes you or your friends use, for instance you could have all your media files stored in a windows partition so you can use them from both Linux and Windows.
originaly the native file system for GNU/Linux was minix, but then Linux finaly had its own file system called ExtFS which stands for Extended File System.
the FS most widely used today is EXT2FS.
yes can you believe it, they spent all this time and effort making it and no one thought of making a defrag utility!
but slow down, the Linux native file systems don't need a defrag utility, yes thats right ExtFS is sooo good and stable it doesn't need to defrag at all!
Windows as you are sure to know needs defraging once a month.
not so fast, while Linux is much better than windows at handeling the file system, and since it is much more stable, data loss of the harddisk hardly happens without your help, but since nothing is perfect8 you still need a file system checking and repair tool, in GNU/Linux its called fsck.
most distros will run a fsck every twenty or thirty reboots, and off course if you ever restart the computer without closing the system it will do a fsck.
some file system use a technology called journalling, journalling simply means that the FS keeps track of all changes made and changes that should be made in a special table called the journal, the journal is written to the harddisk frequently, so when harddisk crash or power outage happens, the file system can go back and finish what needs to be done or undo what needs to be undone.
the native EXT3FS adds journaling to EXT2FS, thus making it more stable and giving you the benefit of nearly never running a fsck.
another nice thing about EXT3 is that it uses the same structure as EXT2 this means that migrating from EXT2 to EXT3 or back takes seconds and there is no risk of data loss involved.
the fact that GNU/Linux uses a different file system from windows means that there are some differences in how it handels files and in the properties and attributes of these files, most of these attributes are necessary for a multiuser envirement.
you should know about these properties in order to avoid problems and be able use GNU/Linux efficiently.
unlike windows, file names in GNU/Linux are case sensitive, this means that files foo, Foo, FOO and fOo are different files. this could cause lots of confusion when you are looking for files or applications.
very few excutables9 have capital letters but you should still be careful.
While Widows uses file extensions to determine the data type of files. GNU/Linux does not need filename extensions at all, you'll find thousands of files with no extension in your GNU/Linux system10, intead GNU/Linux uses a tool called file to determine the datatype of each file.
however note that some GUI apps specially MIME enabled apps use extensions to guess the type of media files.
you can run the file tool yourself to check the datatype of file like this
>fubar.pdf: Ogg-Vorbis compressed sound file
>foo: Bourne-Again shell script text executable
>hello_world.cc: ASCII C program text
because of the multi user nature of GNU/Linux systems, files have ownership, since you cannot let users read each others email and delete each others work.
each file has an owner and belongs to a group. to see who owns certain files you do this
>-rwxrwxr- 1 foo mail 26624 Jan 27 06:02 foo
>-rw-rw-r- 1 foo code 300 Feb 7 14:15 hello_world.cc
>-rw-r-r- 1 root root 3932007 Feb 7 01:42 fubar.pdf
^^^^ ^^^^
these two values are sometimes reffered to as UID and GID (which stands for User ID and Group ID)11.
as you can see from the listing, the owner of foo is user foo and it belongs to group mail, the owner of hello_world.cc is foo and it belongs to the group code and finaly the owner of fubar.pdf is root and it belongs to group root12.
but what are groups??
groups are a way to give multiple users access to the same files or resources, all users belonging to the group mail can send and recieve mail, all users belonging to the group audio can play music, etc.
permissions are file attributes that tell the system who has access rights to files and directories.
to see file permission you need to run this command again
>-rwxrwxr-x 1 foo mail 26624 Jan 27 06:02 foo
>-rw-rw-r- 1 foo code 300 Feb 7 14:15 hello_world.cc
>-rw-r--- 1 root root 3932007 Feb 7 01:42 fubar.pdf
^^^^ ^^^^
the letters r, w, and x are used to represent different permissions.
but why does the listing have more than one r,w and x??
this is because there are three sets of permissions:
for instance in the previous listing the file foo is readable,writable and executable by its owner the user foo, and it is also readable, writable and executable by all members of the group mail. but other users only have read and execute permissions
while the file hello_world.c is readable and writable by its owner foo and all members of the group code. other users are only allowed to read it.
and finaly the file fubar.pdf is readable and writable by the its owner the user root, other members of the group root can only read it and the rest of the world has no access to it at all.
since directories are files, they too have the same set of permissions, but their meaning is a bit different from files.
for directories the read permission means you have the right to
an interesting situation occurs when you only have excute permission to a directory, in that case you have the right to enter the directory but you cannot list its content, you can however read any file in the directory if you have the permission to that file, but you cannot tell what the filenames are.
if you have read permission only you can list the files inside the directory but you cannot access them at all.
so to be able to modify a file you have to have all permissions to its parent directory.
Remember the delete permission is a directory write permission
Unlike WINDOWS programs, all GNU/LINUX Programs follow a standard way of organizing files based on the content and function of the files, similar files are grouped together and put in one directory.
These directories don't have to belong to one partition, they could even belong to another computer on the network.
Lets explore these directories.
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)
Copyright © 1993, 1994, 1995, 1996, Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics
Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_subdir -split 0
-show_section_numbers
/tmp/lyx_tmpdir24679ybuTjF/lyx_tmpbuf0/linuxintro.tex
The translation was initiated by alaa on 2004-08-05
Slides originally written by Bernhard Glomm, who gave us an introductory to CFEngine session.
4. DHCP
maintained by one set of rules and values.
CFEngine runs local.
generate configuration .
code to push values to target files
module to export our values for cfengine
our values for configuration.
perform actions before regular cfagent run
like : copy new value files. copy new cf code.
hi everyone and welcome i'll talk about the installition of mandrake linux 10 operating system
first of all i want to say that you can setup two operating system on your machine,what i mean is that you can install linux and windows-MS together in the same machine but i want to say that you don't need windows in anything coz linux comes with many programmes and features that provide you with everything you will need when i say everything i mean