The articles here are published in the articles section, but this doesn't mean they're done feel free to edit and enhance them.
Here's the copy of the report I've sent to the arabeyes mailing list. Late as usual but I expect that you all are used to this when it comes to my side ;-)
From the 28th of January to the 4th of February, Was Asia source I Co organized by The Tactical Technology Collective and Mahiti in Bangalore, India.
I was short in time when Arabeyes asked me to present them there as no one from the core team was free. I was able to take a vacation from my job and fly there, I was preparing my papers till the last hour.
We stayed in a camp on the outskirts of Bangalore.
The 8 day event came with a flexible agenda. It included an outing to either the IT park or to a school. And this was the only time we had to be divided into 2 groups! and the organizers left a good room for us to modify it.
This event was not an event seminar, but a workshop seminar. Rather than having the attendees sit and listen to lectures, the event concentrated more on hands-on learning and activity. The overall aim of the event was to increase the uptake of FLOSS by NGOs (non-government organizations). They planned 3 main tracks for the camp:
1) Localization Track, which I was part of as a facilitator. In it we were trying to transfer our knowledge regarding l10n to the attenders.
2) Open Content Track, which was further divided into the 2 sub tracks of content and media. The overall aim was building skills on how to use FLOSS tools in the multimedia field and how to build community websites using open source CMSs.
3) Migration and Access Track, which included an introduction to GNU/Linux and FLOSS for to the win32 platform. i.e. How to plan migration of NGOs from the latter to the former and how to apply the plan etc...
In addition to the documentation side-track to document the whole event.
As I said, The whole thing was done via hands-on sessions that included interaction between the facilitators and the other attendees, As this is believed to be the better way to learn and teach by the event's organizers.
Every day began at 8 AM with breakfast of course, followed by a morning's circle at 9 driven by "Gunner" the awesome guy, and on of the events' organizers, which is then followed by the main tracks' outings from 10 AM to 1 PM.
The day resumes at 3 PM with another meal, followed by a 4 to 5 session at the same time covering various relevant topics and sure you can only attend one of them ;-) The broad spectrum of topics covered issues from 'FLOSSophy' to wireless sessions and wireless antenna building to GNU/Linux security to FreeBSD introduction and many many more.
Another meal was dispensed at 7:30 PM? (not exactly sure), followed by a single evening event, It could be a movie watching, A DJ. Or anything, And one has a choice not to attend it.
During the week we also had some various side activities. One of them was the wiki painting, where the idea is that each one is supposed to go and paint whatever he wants on a board prepared for that. The board stayed there for days, And each one got a piece of the large painting.
As I was representing Arabeyes more than EGLUG "But I was representing myself too ;-)" I think I came out with the following from the event (This does not include any lessons or things I learned personally). They may be of help:
1) We can get in contact with the pootle and translation toolkit development teams. Those are written in Python, and maybe we as Arabeyes can join the development (I'm thinking about doing it myself). Pootle as a web-based translation tool "plus some tools to convert mozilla and open office translation formats to PO files and vice versa." can be used when we have people with permanent connection and even by someone like me who hates GUIs ;-)
2) I came out with a basic understanding about how the translation teams work. How to plan for a l10n project.
3) How do teams translate hard words? Usually people try to see the English roots of the word and examine other languages they know and see how they came out with the translation.
4) I got in touch with the KhmerOS founder. They have an NGO with employed people to do the translation. Another project (perhaps the Hindi translation, not sure) is based on dictatorship were each volunteer is assigned a file to translate.
5) Most of the people I found are not asking the volunteers to use CVS to manage the translation. I see that this is a good point as we shouldn't require the volunteers to interact with the CVS or have good technical skills, but can rely on people with pure translation skills.
6) I think I somehow understand a basic idea on how to create fonts.
7) I'm somehow interested in helping the Pashto and Urdu people but this is my own interest which not tied to arabeyes.
8) I have a report on "A project for the computerization of East Timor in Tetum language" But I'm not yet sure about the license so I'm not going to publish it, And I have to read it 1st.
9) I think I found someone to help in certifying the Quran data files, I didn't take any actions yet, But I'm planning to contact the guy "It seems that the this won't happen!".
10) Each participant (myself included) went back home with a copy of NGO-in-a-box which is basically a box containing some distros and documentation among other software suitable for NGOs trying to switch to FLOSS (I didn't find time to look at it, but I'm sure it's worthwhile).
11) I'm sure I've forgot many things!
I have also been interviewed by Frederick ;-).
IMHO we didn't gain much regarding Arabic. Very few of the attendees had issues related to Arabic. The event was mainly organized via the wiki. You can find all the information you want there. Also the contact info for the localization track facilitators . Last but not least is the list of participants.
We as Arabeyes could have gained much more had we been given more time to prepare. I however gained quite a few contacts and friends :-)
Another source event'll take place in Africa this year, But they are thinking about organizing it in north Africa as almost no Arabs did attend the previous source event in Africa but they are having a problem finding a place to organize it.
I'm not sure whether Arabeyes can hold such an event alone, But IMHO if we can find a sponsor we can do it.
Egyptian companies have long relied on proprietary software to get their work done. There are many reasons for this, mainly lack of knowledge & awareness of the Free/Open Source alternatives. Most business owners/managers are simply wary of free (zero cost) software. "How would a free O/S have the quality of windows ??" is a popular question. Even grandma has some sort of windows experience, which makes them feel assured that it will be easy to obtain technical support, should problems arise.
Well, how about showing a real Egyptian business which relies solely on FOSS ??
Mr. Omar BayehElDin. is the owner of Abu Youssef company, which works in cloth. He's been running solely on GNU/Linux & Free software for years, and he's quite satisfied. He forgot all about crashes, viruses and has saved a lot of money ever since. here is the story:
6 years ago one of Mr.Omar's relatives (who was studing in U.S.A) showed to Mr.Omar And his Brother a strange Oprating System. that oprating system was GNU/Linux and they kept playing with it but it`s wasn`t a very friendly operating system like nowadays and it wasn`t known in Egypt at all.
In those old days windows was alrady installed in Mr.Omar company`s Lan ( 2 computers , 2 Laptops ) but he was using GNU/Linux on 386 box as a file server. After closing uneeded services it ran perfectly. He also used FoxPro for database stuff and sure the microsoft office on the computers of his Lan. but all that was about to change.
That change happend 3 years ago when el mosnfat (kinda like egyptian Intelectual Property police) sent Mr.Omar a letter asking him to rearrange his software and get rid of any pirated software he use if he using any or else face the consequences (very high fines and confisication of equipmen, not to mention lengthy trials and legal dances). so he chose to forget about that headache and save some money by switching to FOSS and GNU/Linux and use them full time in his company.
He started with the accounting system, after quickly reviewing Nola, Compier and SQL-Ledger he settled for SQL-Ledger which is a powerful accounting system that can do almost everything in accounting.
he also used OpenOffice.Org (and somtimes Koffice for compatibility with legacy proprietary formats like *.doc *.rtf), KDE as desktop env.
They're using Mandrake (after playing with Redhat, Slackware and Debian), currently running Mandrake 10, Mandrake was chosen for its ease of use and for adding arabic support very early on, but at the moment they're contemplating a move to debian due to the greater stability.
Mr Omar faced little hardware compatibility problems (some old soundcards that are now well supported), one big problem was internal winmodems, they avoided this eternal problem by buying external modems and switching to ADSL the moment it was available.
They get support online from free community sites, sometimes it difficult to find answers but a bit of searching is all they ever need.
Mr.Omar is quite happy and satistfied with FOSS and it`s work. since there is are viruses like windows and the system is less likely to be compromised, He says it was soo easy to switch to GNU/Linux becouse it did not required special skills from the employees all thay have to do is File->open stuff. Nothing fancy, just regular GUIs with menus, data entry fields and stuff which is user-friendly and quite similar to windows applications.
While Mr. Omar and his employees are no hackers, they're not simple users either, Mr Omar often finds himself using command line tools to find and grep things feeling that its much faster than the typical graphical ways.
when faced with a need that was not covered by existing FOSS apps, Mr Omar started thinking how he can help solve the problem by helping or contributing, the acountants needed a localized accounting package, Mr Omar quickly realised that if they don't do it themselves no one will, and after finding out that the process was rather simple he sat down and did the job himself, till this day he still maintains the Arabic translation of SQL-Ledger.
Really FOSS is great for all kind of work. and Mr.Omar Advise other small business owners to switch for FOSS if they are can dig enough into computers (or find employees who can).
We thank Mr. Omar for his contribution (FOSS is all about contributing and giving something back) - and for his precious time (as busy as he was, he gave us all the time we needed and was quite helpful). He showed us some of the very useful features of SQL-Ledger.
We hope this small interview would urge other businesses to migrate to Open Source software and benefit from the stability, security & cost savings. Having seen someone who's already done that may be just what we need.
if you know of other cases of FOSS usage or development in Egypt, tell us so we can cover them.
And now here are some pics of SQL-Ledger in Action.
NOTE:We coudn`t get (elmosanfat) letter since it was hard to find.
![]()
This is an invoice with some sold items, to be printed.
![]()
Creation of the invoice, you can change the currency and add new currency for the items that the company deals in (selling or buying).
![]()
Incoming statments for the company (trial).
![]()
Mr. Omar ,DarKnesS_WolF and ShErbO - Mr. Omar was showing us some work with SQL-Ledger.
![]()
This is the 2nd computer on the network.
2 -Terminal Emulators ( Psuedo ) ---> from the GUI ( Graphical User Interface )
$ls -la
$ls –list
$ls --almost -list
$ls -h!( h : for human readable )
ls -k is your friend ..
$man -k
What manual page do you want?
$man -k kernel
$man -k copy
$man -k delete
$man cp( the copying command )
$man mv( the moving "deleting command - or renaming )
Old School ASCII Graphics ;)
$cd .." Up "
$cd -" Back"
$touch oct-{first,second,third,fourth}-{1,2,3,4,5,6,7}
$ls oct*
$ls oct-fourth*
for more information about the “ touch “ command
$man touch;)
$cp -F( F: Force )
$cp -R( R: Recursive )
$cp -rf( recursive and force )
$ pwd
/home/slacker
$which mozilla
/usr/bin/mozilla
$whereis mozilla
mozilla: /usr/bin/mozilla /usr/lib/mozilla /usr/local/mozilla /usr/share/man/man1/mozilla.1.bz2
$whatis mozilla
mozilla (1) - a Web browser for X11 derived from Netscape Communicator
$whoami
slacker
$id -un
slacker
$echo $SHELL
/bin/bash
$echo $PATH
/usr/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/home/slacker/bin
$echo GO $USER
GO slacker;)
$echo DJ KING IS A $USER
DJ KING IS A slacker= )
$echo YOU NEVER KNOW == MohammedSameer
YOU NEVER KNOW == MohammedSameer
ls -l
-rw-r--r-- 1 1000 users 366481 Jul 24 19:59 tls1.4.1-linux-x86.tar.gz
drwx------ 5 acidtears acidtears 8192 Aug 18 01:32 tmp/
-rw-r--r-- 1 acidtears acidtears 4665344 Aug 2 23:41 Usher_vs_Bee_Gees_Stayin_Yeah.mp3
drwxr-xr-x 5 acidtears acidtears 56 Aug 17 08:23 Wireless-NIC/
for an example : -rw-r—r-- in learning these permissions first of all we must divide them into the 3 parts i have just told you about -|rxw |r-- |r--
1 2 3
r : read
w : write
x : execute
in the same example we can notice easily that the user (1) can read (r) , write (w) and execute(x) where the group and others can only read (r)
to change these permissions we use the command line “ chmod “
we can do that using two methods
$chmod u -/+ rwx
$chmod g -/+ rwx
$chmod o -/+ rwx
user | group | others
r w x |r w x | r w x
4 2 1 0 0 1 4 2 0
then simply the command will be
$chmod 716 testfile
-ggdb
"strip -S"
A list of steps by the application or a list of function calls lead to this situation.
Simply the memory of the application is being dumped to a file!
-ggdb
gdb <application> <core file> where
gdb <application> <pid> where
This is useful if the application is started via a script as openoffice and mozilla.
gdb foo [set args bar zot] r "When the crash happens: go back to the terminal, You might need to press C-C" where quit
break file.c:#
* How to generate a unified diff:
diff -Naur <orig> <modified> -N - Treat absent files as empty. -a - treat all files as text -u - Unified diff: -r - recursive
-X <file>
patch [--dry-run] [-p#] < patch --dry-run: Don't really modify files. -p#: strip # leading slashes from the files.
patch -R -R: Reverse.
cvs -d:pserver:anonymous@uniball.dyndns.org:/var/lib/cvs login export CVSROOT=":pserver:anonymous@uniball.dyndns.org:/var/lib/cvs" cvs login
cvs -d:pserver:anonymous@uniball.dyndns.org:/var/lib/cvs co projects/illigal or export CVSROOT=":pserver:anonymous@uniball.dyndns.org:/var/lib/cvs" cvs -z3 co projects/illigal
cvs -z3 update
cvs diff -u or cvs diff -u <file>
The intent behind the composition of this paper is to define a guiding framework for cooperative activity between the EOSBC and the Egyptian Linux Users' Group. Broadly speaking, four concepts will be tackled.
These are:
We will be focusing on Free and Open Source Software (FOSS) and not simply open source software for the simple reason that the `free as in beer' aspect is the most immediately beneficial to a developing nation such as Egypt due to its effect of lowering capital investment requirements.
Different segments of the market have different expectations of software and may require separate handling.
We will segment where relevant as follows:
There is no clear picture of the state of FOSS in Egypt at the moment. This lack of information is expended upon in section sub:Information. There are, however, subjective and highly unscientific yet nevertheless indicative observations upon which conclusions can be made.
There is no visible government policy either regarding or involving open source software. Not even a negative one; FOSS is simply not on the map. Contrast with emerging South American government policies stipulating open source software in government contracts.
There is no visible government sponsorship of FOSS development.
There is FOSS being employed in government, but it is spare and very invisible. An example is the meteorological service's work developing weather system models on Linux clusters.
It is probably more difficult to gauge FOSS status within the local enterprise and the business environment than in government. Let us try all the same.
It is a rarity to see job adverts in the Friday edition of Al Ahram1 requiring Linux experience.
Probably the most visible source of local linux knowledge is the LUG's website at http://linux-egypt.org. The frequency of discussion of enterprise-relevant topics there is very low. A possibly meaningless indicator, take it or leave it.
The LUG, the most prominent forum for Linux end users, claims under 1,500 members.Let us say that only 25% of the people who would register with this community are aware of its existence and did so. This makes for 6,000. It is unlikely that all 6,000 are even know what Linux is2. If 80% of people who registered knew what FOSS and Linux is, then this leaves 4,800 persons. Of these 4,800 persons, if 75% (a terribly optimistic figure) have actually tried Linux, this gives us 3,600 persons who know what FOSS is and have tried Linux. If 50% of people who try Linux stick with it, then we have gone down to 1,800 aware Linux users in Egypt. It makes no sense to assume this figure down any further; it is already low enough to reflect the state of adoption of Linux in Egypt.
In any case, it is indicative that the most visible Linux Users' Group in the country can only claim 20 to 40 active members at best.
This is probably the most significant factor hindering FOSS adoption in Egypt.
FOSS is quite simply not visible. End users do not know that there is such a thing as Mozilla/Firegoat. It gets worse; the concept of Internet Explorer as an independent entity which has alternatives is rare. This kind of misconception is not endemic to Egypt, but it is exacerbated by the almost absolute platform monoculture.
Similarly, there is the inability to separate the operating system from the physical hardware conceptually. Windows is the computer. This leads to charming notions such as Linux being something you install over windows.
Part of what has been generating awareness of FOSS as a viable alternative in Europe and North America has been the support of large companies, most notably IBM with their interesting Linux marketing ploys. This is not conducted here in Egypt, partially because the awareness problem extends into these companies. It is perhaps also felt that it is not worth pushing Linux in Egypt because the market is not there. Chicken and egg.
People, additionally, are deluded into thinking that what they have works. If the computer crashes, this is because computers crash and not because the OS is buggy. If Outlook is busy redistributing viruses, this is the virus author's fault and not the e-mail client architecture. If Exchange is a beast to set up, this is because e-mail servers are beasts.
People are not aware they have a choice because the alternative is not visible.
There is also a severe lack of awareness regarding the importance of the code being open.
Five primary misconceptions can be identified. Several of them are not specific to Egypt, but are mentioned nonetheless since they are factors.
They are, in no particular order:
The relative ease or difficulty of obtaining FOSS is a factor not only in deployment and adoption, but in visibility also. Let us assume that Linux is the most frequently sought after FOSS product.
Linux can be gotten either in physical media or through an internet download.
Physical media requires distribution points and these exist but are sparse and ill-advertised. There are perhaps two or three shops carrying Linux, but these are exceptions. The LUG maintains a distributors' list; this is a list of volunteers in various locations with contact information whom you can get in touch with to obtain copies of linux. Needless to say, even if this list were operating smoothly (it isn't) it is hardly a solution to the availability issue.
Internet downloads are not a solution in a country where telephone lines are not yet ubiquitous and where DSL is still in its infancy. One does not download the latest three-CD Mandrake distribution over dial-up.
See section sub:Improving-Access for a proposed solution.
Non-end user adoption of FOSS requires several things which don't exist.
The pool of available FOSS-skilled labor is too small3. If an enterprise is aware of, for example, the plentitude of excellent FOSS enterprise and business-class software and wishes to deploy one such item, it will most likely not be able to find someone to deploy and run such a thing. Proposed longer-term remedies are in section sub:Infrastructure-Building.
Additionally, there is no institution-backed liability coverage for FOSS, or it is not visible enough. The business will want a supplier to sue when the database eats all the historical data, and you do not get this when you download and install postgresql, for example. Of course, part of this is related to the business overestimating the extent to which existing software suppliers are willing to assume liability (covered in section sub:The-Liability-Myth).
This is primarily an issue at the government level and the development-oriented business. There is a strong impetus to export at the governmental level, and domestic software output is not exempt from this; there is the perception that FOSS means zero price, which is not true. One effect of the anticipated dominance of FOSS is the commodification of software which, when taken at face value, works against government efforts to boost revenue from software exports. In reality, this is far from certain; `exported software' could translate to programming tasks outsourced to Egypt which would make the development task an in-house affair and thus exempt from the GPL requirement for redistribution of code. In any case, this point is likely to be a complicated one to tackle.
The project must have measurable goals such that progress may be measured. This section is a list of proposed indicators to assess this.
Awareness is Achieved
Misconceptions are Educated Down to Acceptable Levels
The end user segment will be regarded as requiring no further action when: Availability is Ubiquitous
FOSS is either deployed to cover 85% of business needs for which a FOSS package exists which is at least equivalent to the most logical proprietary alternative, or plans to deploy to reach 85% are in place.
FOSS status within this segment of business is beyond the scope of this document.
Information is needed in several areas to better appreciate the status quo and to quantify progress made in this initiative to promote FOSS. These areas are:
A number of documents will be needed to be able to quantify some of the above-mentioned points.
Visibility is the key. Misconceptions cannot be handled before there is awareness, so this should be the key area of action.
Traditional Islamic views on intellectual property is said to mesh very well with the spirit of the General Public License. In a country which is overwhelmingly Muslim, this angle is begging to be explored.
Since this is a potentially sensitive area, any work here had best be conducted by a respected Islamic legal scholar.
It is a good topic for discussion, certainly; there are several prominent Islamic-themed websites where one can solicit the advice of a sheikh.
Why small to medium sized businesses? Enterprise-class business in Egypt will tend to be multi-national in which case the decision making will occur predominantly abroad. One of the benefits of reliance on FOSS is lower capital investment requirements, which will be felt more acutely at smaller scales.
One possible approach is to think backwards: use specific FOSS packages to introduce the concepts of FOSS rather than using the concepts of FOSS to stimulate adoption of specific packages. To take an example, promote postfix/exim/qmail as a mail solution and use its adoption to educate about FOSS as opposed to aducating about FOSS such that businesses may use postfix/exim/qmail.
The advantages are:
There is one readily apparent way of implementing this.
Run training programs covering specific packages serving specific needs, such as an `Installing and Administering Linux with Postfix' course. Market this program to businesses. Develop some form of rudimentary certification to cater to people's needs for scraps of paper describing what they can do. Conduct such a program under the aegis of a respected entity such as the EOSBC to establish legitimacy. The resources needed for this are minimal; some organization, an appropriate venue, a few capable instructors, and some effort. The FOSS message will be integrated in the curriculum. There will be a strong enabling focus to such a program; the instructee will be taught how the distributed support model works and will be tested on ability to tap this resource; he/she will additionally be taught that this specific package the program covers is but one of thousands7.
The best method of tackling this misconception is probably letting the person try for themselves. This will happen if access to linux is easy and inexpensive (refer to section sub:Improving-Access); curiosity will kill this misconception.
The BSA branch in Egypt is not moving quickly enough to stamp out the idea that windows is free. Since piracy is commonly equated with theft, perhaps a religious edict8 would help.
There exist several very professional and freely redistributable propaganda documents on the internet9; these could, at low cost, be reproduced in hard copy and distributed to businesses. This would optimally be carried out by a reputable entity (the EOSBC?) to establish legitimacy.
Concerns regarding liability are likely to be restricted to enterprises (as argued in section sub:The-Liability-Myth), though in the longer term reduced levels of piracy should spark such concerns at the sub-enterprise level.
Improved availability is perhaps the sine qua non in this document; note three of the five listed misconceptions in section sub:Misconceptions can be educated down with improved access to FOSS. Availability primarily addresses the end-user, and much adoption of Linux in Egypt at the business and government levels depends on end-user adoption.
Just as access to Linux and other FOSS is a key factor, so is access to relevant documentation. There are several high quality and freely redistributable Linux books available. These need to be translated into arabic and disseminated. The translation will require sponsorship; it is not a trivial task.
To take a cue from Microsoft, the time to capture mindshare with the generations of system administrators, IT decision makers, and programmers is when they are learning the tools of their trade: in university.
This prompts a series of proposed actions:
The above-mentioned point regarding printed documentation such as books is also more generally applicable and can be worked in very nicely with the availability suggestion in section ite:Kickstart-an-independent.
Where support is concerned, it is probably advisable to let nature take its course. One of the (admittedly quirky) key selling points of FOSS is the distributed support model; one has to already be fairly deep in FOSS culture to experience this, unfortunately.
Eventually, if FOSS takes hold, commercial support businesses should arise in response to demand12.
If the grassroots are properly nurtured and the awareness, access, and infrastructure building issues are handled well, this issue should resolve itself; companies will find themselves internally capable of supporting linux without any specific effort13.
هذة المقالة توصف بأختصار ماذا يحدث فى نظام اللينكس عندما تبدء الجهاز حتى تسجل دخولك . فهم هذا سوف يساعدك عندما تريد حل بعض المشاكل او تتحكم فى اعدادات جهازك.
أنني اجد انه من المحبط ان العديد من الاشياء تحدث داخل جهاز لينوكس الخاص بي لا افهمها. فإن كنت مثلي، تريد حقا ان تفهم نظامك و ليس فقط ان تعرف كيفية استجدامه، فهذا المستند يمكنه ان يكون مكانا جيدا للبدء. و سوف تحتاج هذا النوع من المعلومات الاساسية يلزمك ايضا إن كنت تتطلع الى ان تكون من نخبة مستخدمي اللينوكس.
أنني افترض ان عندك كمبيوتر يعمل بنظام لينوكس، وأن عندك بعض المعلومات الاساسية الخاصة باليونكس و عتاد الحهاز، فإن لم يكن فيمكنك البدء بقراءة Eric S. Raymond's The Unix and Internet Fundementals HOWTO وهو مستند قصير و سهل القراءة و يغطي الاساسيات.
الجزء الاساسي في هذا المستند هو كيف يقوم بتحميل نفسه، و لكنه ايضا يحاول ان يكون اكثر شمولا. فقد الحقت تمارين بكل فصل ، فإن اردت ان تقوم تقوم بحل هذه التمارين فإنك ستتعلم اكثر بكثير من مجرد القراءة.
وأنا ارجو ان بعض القراء سيقومون بممارسة افضل تمرين اعرفه لتعلم اللينوكس، وهو بناء نظام من المصدر البرمجي. جلامباتيستا فيكو، وهو فيلسوف ايطالي (1668-1744) قال "verum ipsum factum" وهو ما يعني "الفهم يأتي عن طريق الصنع". شكرا لألكس لهذا الاقتباس.
ان كنت تريد ان تبني نظامك، فأنا انصح ان تقرأ Gerard Beekmans' Linux From Scratch HOWTO LFS . إن LFS به تعليمات مفصلة لبناء نظام كامل قابل للإستخدام من المصدر البرمجي. و يمكنك على صفحة الويب الخاصة به ان تجد قائمة مراسلة للناس الذين يبنون انظمتهم بهذه الطريقة. هذه التعليمات كانت جزء من هذا المستند و لكنها انفصلت في مستند اخر "Building a Minimal Linux System from Source Code" و يمكن الحصول عليه من موقع From PowerUp to Bash Prompt. و منه ستتعلم منه كيف تبني نظاما كتمرين تعليمي.
الحزم هنا مقدمة بنفس الترتيب الذي تظهر به في تحميل النظام, هذا يعني انك اذا قمت بتثبيت الحزم بهذا الترتيب يمكنك اعادة التشغيل بعد كل مرة و رؤية النظام يقترب اكثر و اكثر من محث الباش، وهذا يعطي احساسا بالتقدم.
اخيرا فانا انصح بان تقرا اولا الجزء الاساسي من النص في كل فصل متجاهلا التمارين و المراجع، ثم تقرر مدى التفهم الذي تسعي اليه و مدى الجهد الذي يمكن ان تبذله في سبيل هذا التفهم، ثم تبدأ من البداية مرة اخرى، ممارسا التمارين و القراءات الإضافية هذه المرة.
عندما يتم تشغيل جهازك يقوم بعمل اختبار ليتأكد من أن الأمور تجري في مسارها الصحيح. يسمى هذا اختبار بدأ التغشيل. و بعد هذا يقوم برنامج يسمى محمل مقطع قيام نظام التشغيل، و هو موجود في بيوس الروم ROM BIOS,يقوم هذا البرنامج بالبحث عن مقطع قيام نظام التشغيل مقطع قيام نظام التشغيل هو اول مقطع من القرص الصلب و يحتوي على برنامج صغير يمكنه من قيام نظام التشغيل يتم تحديد مقاطع قيام التشغيل برقم 0xAA55 = 43603 على بايت 0x1FE = 510 هذه هي اخر بايتين في المقطع هكذا يتمكن العتاد من تحديد غذا كان هذا المقطع مقطع قيام لنظام التشغيل ام لا.
يحتوي برنامج محمل مقطع قيام نظام التشغيل على قائمة بالاماكن التي سيبحث عن مقاطع قيام نظام التشغيل في جهازي القديم يتم البحث اولا في محرك الاقراص المرنه و من بعد ذلك في القرص الصلب الاولي و في الاجهزة الاحدث يمكن البحث ايضا على اسطوانات الليزر و اذا وجد اي مقطع قيام لنظام التشغيل يقوم بتحميله في الذاكرة و و يقوم بتمرير التحكم للبرنامج الذي سيقوم بتحميل نظام التشغيل في نظام اللينكس العادي هذا البرنامج هو اول مرحلة في ليلو lilo = Linux Loader و يوجد العديد من الطرق المختلفه ليتم قيام نظام التشغيل راجع دليل مستخدمي ليلو للحصول على عنوان الصفحة راجع قسم ليلو
من الواضح ان هناك العديد الذي يمكن ان يقال عما يفعله عتاد الجهاز لكن هذا ليس المكان المناسب لذكر كل هذا يمكنك مراجعه العديد من الكتب عن عتاد اجهزة الكمبيوتر
يقوم الجهاز بتخزين بعض المعلموات عنه في CMOS الخاص به. يتضمن ذلك ماهي الأقراص و الذاكرة في النظام. يحتوي الBIOS الخاص بالجهاز على برنامج يتيح لك التعديل في هذه الإعدادات. تحقق من الرسائل التي ستظهر عند تشغيل الجهاز لتعرف كيفية الدخول إليها. على الجهاز الخاص بي أقوم بضغط رز delete قبل أن يقوم بقيام نظام التشغيل.
من أفضل الطرق للتعلم عن عتاد أجهزة الكمبيوتر هو تركيب جهاز من قطع مستعمله. استخدم قطع 386 على الأقل لكي تتمكن من تشغيل لينوكس عليه بسهولة. لن يكلف هذا الكثير حاول أن تقوم بالبحث فقد تجد قطع مستعمله بأسعار رخيصه. قم بتحميل و تجميع و عمل قرص قيام لـ Unios ( كان موقعهم الرئيسي http://www.unios.org لكن الموقع اختفى ) هذا البرنامج هو عباره عن برنامج قيام بسيط يحتوي على حوالي 100 سطر من اكواد الأسمبلي قم بفتح صورة القرص بواسطة محرر هكس hex. هذا الملف عبارة عن 512 بايت فقط لا غير بالتحديد مقطع واحد فقط. قم بإيجاد الرقم السحري 0xAA55. قم بعمل نفس الشئ بالنسبة لمقطع قيام نظام التشغيل من قرص قيام مرن أو على جهازك الخاص. يمكنك استخدام أمر dd لتقوم بنسخه لملف: dd if=/dev/fd0 of=boot.sector كن حذرا لتضع ملف الإدخال if (input file) و ملف الإخراج of (output file( في أماكنهم الصحيحه! تحقق من المصدر البرمجي لمحمل نظام التشغيل لليلو.
* The Unix and Internet Fundamentals HOWTO by Eric S. Raymond, especially section 3, What happens when you switch on a computer? * The first chapter of The LILO User's Guide gives an excellent explanation of PC disk partitions and booting. See section LILO for a URL. * The NEW Peter Norton Programmer's Guide to the IBM PC & PS/2, by Peter Norton and Richard Wilton, Microsoft Press 1988 There is a newer Norton book, which looks good, but I can't afford it right now! * One of the many books available on upgrading PC's
بواسطة Eric S. Raymond, خاصة القسم الثالث What happens when you switch on a computer? الفصل الأول من دليل مستخدمي ليلو لـ IBM PC & PS/2 بواسطة Peter Norton و Richard Wilton
عندما يبدأ الكمبيوتر فى تحميل مقطع قيام نظام التشغيل على نظام لينوكس عادى, فأنه يبدأ فى تحميل جزء من lilo يسمى "المرحلة الأولى من محمل نظام التشغيل". هذا البرنامج الصغير مهمته الوحيدة فى الحياة هى تحميل و تنفيذ "المرحلة الثانية من محمل نظام التشغيل".
تعطيك المرحلة الثانية لتحميل نظام التشغيل محث للأوامر (إذا تم تثبيته بهذه الطريقة) و تحمل نظام التشغيل الذى تختاره.
عندما يقوم نظامك و يبدأ فى العمل, و تشغل lilo فانك فعليا تشغل "مثبت المتناظرات". فيقرأ ملف الإعدادات /etc/lilo.conf و يكتب محملات نظام التشغيل, و المعلومات الخاصة بأنظمة التشغيل الذى يستطيع تحميلها على القرص الصلب.
توجد طرق مختلفة لإعداد نظامك للقيام. ما قمت بشرحه الآن هو أوضح الطرق و أكثرها "طبيعية", على الأقل بالنسبة لنظام نظام تشغيله الأساسى هو اللينوكس. يقوم دليل مستخدمى Lilo بشرح أمثلة عديدة "لمبادئ قيام نظام التشغيل". هذه الأمثلة تستحق القراءة و التجربة.
ملف إعدادات lilo هو /etc/lil.conf. يوجد صفحة فى دليل المستخدم )man page( خاصة به: اكتب man lilo.conf فى غلاف لترى الصفحة. اشئ الأساسى فى lilo.conf هو وجود مدخل لكل شىء معد للقيام فى lilo. لمدخل خاص باللينوكس, هذا يتضمن مكان النواة, و أى قسم فى القرص الصلب يلحقه كأنه نظام الملفات الأصلى. لأنظمة تشغيل أخرى, المعلومة الأساسية هى أى قسم نبدأ قيام نظام التشغيل منه.
خطر: انتبه فى هذه التدريبات. فمن السهولة الاخطاء فى شئ و تخريب سجل قيام نظام التشغيل الرئيسى فتجعل نظامك لا يصلح للاستخدام. تأكد من وجود قرص انقاذ صالح معك, و أنك تعرفة كيفية استخدامه لأصلاح كل شئ مرة أخرى. انظر بالأسفل رابط tomsrtbt, قرص الأنقاذ الذى استخدمه و انصح به. أحسن احتياط هو استخدام جهاز غير مهم.
اضبط lilo على قرص مرن. لا يهم إذا كان لا يوجد شئ عدا النواة - ستحصل على "ذعر فى النواة" عندما تكون النواة مستعدة لتحميل init و لكنك على الأقل ستعرف أن lilo يعمل.
إذا رغبت يمكنك الأستمرار و معرفة ما مقدار النظام الذى يمكنك و وضعه على القرص المرن. غالبا هذا هو ثانى أحسن نشاط لينوكس تعليمى موجود. انظر دليل قرص قيام جهاز التشغيل (Bootdisk HOWTO) الرابط بالأسفل, و tomsrbt (الرابط بالأسفل) للتلميحات. اجعل lilo يحمل unios (انظر جزء تدريبات العتاد للحصول على الرابط). و كتحدى أكبر, حاول عمل هذا على قرص مرن.
اعمل حلقة للتحميل. اجعل lilo فى سجل قيام نظام التشغيل الرئيسى يقوم بتحميل lilo فى احد مقاطع قيام نظام التشغيل الأولية, و اجعل هذا يقوم بتحميل lilo فى سجل قيام نظام التشغيل الرئيسى... أو يمكن استخدام سجل قيام نظام التشغيل الرئيسى و الأربع مقاطع الأولية الخاصة بقيام نظام التشغيل كلها لعمل حلقة من خمس نقاط. استمتع!
أن النواة تفعل الكثير من الاشياء. أظن الطريقه الوحيدة لتجميع كل ما تفعله هو جعل العتاد تفعل ما يريده البرامج. المعالج يمكنه تنفيذ أمر في المره, اكن أنظمه الينوكس تظهر كأنها تنفذ العديد من الاشيء انيا. النواه تستطيع ذلك عن طريق التبديل من مهمه الي مهمه فى سرعه فائقه. يستخدم المعالج أفضل استخدم بتتبع اي مهمه جاهزة للتشغيل, أي منهم منتظره شىء مثل الحصول علي ملف من القرص الصلب.
لو ملف لا يفعل شيء, أذن لا يهم أن يكون في ذاكرة الوصول العشوائيز حتي لو أن عمليه تفعل شيء, كد يكون بعض من أجزائها لا تفعل شىء. عناوين المهمات تنقصم الي صفحات. النواة تتبع أي صفحه من أي مهمه تستخدم أكثر. الصفحه التي لا تستخدم كثيرا يمكن أن تحذفؤ الذاكرة ألافتراضيه. عندما يتم الاحتياج أليها, تحذف صفحه غير مستخدمه من أجل الصفحه المحتاج أليها. هذا هو أدارة الذاكرة ألافتراضيه.
لو جمعت النواة الخاصه بك, فد تلاحظ أن هناك العديد من ألاختيارات لأجل أدوات (modem, sound card ...etc) معينه.
و أن النواة تدير ملفات النظام, ألاتصلات, و ألشبكات.
بمجرد أن النواة تحملت, أول شيء تفعله هو البحث عن البرنامج init لتنفيذه.
معظم الإعدادات للنواة تتم بمجرد بنائها, باستخدام menuconfig, أو xconfig في usr/src/linux/ (أو أي مكان تجده فيها). يمكنك أعادة النمط للفديو, ملفات النظام الجذري, ذاكرة الوصول العشوائيه بأستخدام rdev. براميترات يمكن تمريرها ألي النواة عن طريق الlilo. يمكنك تمريرها للنواة من lilo.conf أو محث الlilo. مثل لو تريد أستخدام hda3 كملفات النظام الجذري عوضا عن hda2 , يمكنك كتابة
LILO: linux root=/dev/hda3
لو أنك تبني نظامك من المصادر, يمكنك جعل حياتك أسهل بصنع نواة منليثيه. أذن لا يوجد داعي لنسخ وحدات النواة الي النظام المستهدف.
ملاحظه: أن ملف system.map يستخدم بامسجّل النواة للتحديد أسماء الوحدات التي تولد رسائل(fix me)
فكر في هذا: أن dev/hda3/ ملف من نوع خاص الذي يوصف قسم من القرص الصلب. لكنه يسكن في ملفات النظام مثل أي ملف أخر. النواة تريد معرفه أي قسم من القرص الصلب تريد ألحاقه كملفات النظام الجذري - لأنها لا تحتوي علي ملفات النظام الجذري بعد. فكيف يمكن قرائه dev/hda3/ لتعرف اي قسم تلحقه؟
لو لم تبني النواة الخاصه نكز أقرأ كل المساعدة المتوافره لكل أختيار.
أنظر الي أي مدي يمكنك أن تصنع نواة صغيرة و تظل تعمل. يمكنك تعمل المزيد عن طريق ترك ألاشياء الخاطئه!
أقراء ``The Linux Kernel'' (الموقع في ألاسفل) كلما تفعل ذلك, أبحث عن المصادر النرمجيه التي تشير اليه.الكتاب يشير الي اصدار النواة 2.0.33 الذي يعد قديم. قد تكون سهله أذا أنزلت ألاصدار القديم من النواة و أقرأ المصدر الخاص بها. أنه مذهل (fixme)
هاك! أنظر أن كان بأمكانك أظهار بعض الرسالات الجديدة.
ر
الشئ الثاني الذي يحدث عندما يبدا جهازك هو انه يتم تحميل و تشغيل الاينت init و مع ذلك اينت init تقريبا يشبه جميع البرامج..حيث يستخدم الدوال من المكاتب و ربما قد تكون رايت مثال لبرنامج سي مثل هذا :
main() {
printf("Hello World!\n");
}
البرنامج لا يحتوي على تعريف للprintf .. اذا من اين اتت ؟ اتت من مكتبات السي المعياريه..على نظام جنو/لينوكس هي glibc اذا قمت بتجميعه compile تحت فيجوال ++C , اذا فهي تاتي من تطيبق مايكروسوفت لنفس الدوال المعياريه هناك مليارات من هذه الدوال المعياريه , للرياضيات , عباره برمجيه , ايام/اوقات تخصيص الذاكره و على هذا المنوال كل شئ على اليونكس ( بالاضافه للينوكس ) اما مكتوبه بلغة السي او عليك ان تبذل مجهودا كي يظهر و كانه كتبو بلغة السي على اساس ان كل شئ يستخدم هذه الدوال اذا نظرت في lib/ على نظام الينوكس على جهازك فانك سوف ترى العديد من الملفات تسمى libsomething.so او libsomething.so الخ. هم عباره عن المكتبات لهذه الدوال. ال Glibc هو فقط تطبيق الجنو لهذه الدوال هناك طريقتين البرامج من خلالها يمكن ان تستخدم هذه الدوال.اذا قمت بتوصيل برنامج بشكل دائم statically , مكتبة هذه الدوال تنسخ في ملفات التشغيل EXCUTABLE التي يتم انشائها CREATED , و هذا هو سبب وجود مكتبات libsomething.a لكن ان قمت بتوصيل برنامج بشكل متغير ( غير دائم ) statically " و هذا هو الطبيعي default " اذا فهذه الحاله و اثناء تغشيل البرنامج و يحتاج الى كود مكتبي , فانه يتم استدعائه من ملف ْْْlibsomething.so الامر 1dd هو صديقك عندما تريد تحديد اي المكتبات لتغشيل برناج محدد.على سبيل المثال , هنا توجد المكتبات التي يستخدمها ال bash :
[greg@Curry power2bash]$ ldd /bin/bash
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40019000)
libc.so.6 => /lib/libc.so.6 (0x4001d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
بعض الدوال في المكتبات تعتمد على موقعك على سبيل المثال في استراليا نكتب التواريخ على شكل : dd/mm/yy , بينما الامريكان يكتبون mm/dd/yy . و هناك برنامج ياتي مع توزيع ال glibc و يسمى localedef و الذي يجعلك قادر على تظبيط هذه التعديلات
استخدم ldd لتعثر على المكتبات التي تفضلها تطبيقاتك استخدم ldd لتعثر على المكتبات التي تستخدمها init
قم بعمل مكتبه تجريبيه "toy library " تحوي فقط واحده او اثنتان من الدوال.البرنامج ar يستخدم لانشائهم , صفحة ال man لبرنامج ال ar قد تكون بدايه جيده للتحقق كيف يتم
سنتكلم فقط عن طريقة النظام V من الInit التى تستخدمها معظم نظم لينوكس و يوجد بدائل . فى الحقيقة يمكنك وضع أى برنامج تحب فى (sbin/init/) و ستقوم نواة النظام بتشغيله عندما تنتهى من التحميل.
إنها وظيفة ال init أن يشغل كل شىء بطريقة سليمة . إنه يتحقق من أن ملفات النظام مضبوطة و يقوم بتحميلها . إنها تبدأ (العفاريت) (Deamons) و هى برامج الخدمات الخلفية لتسجيل رسائل النظام , تقوم بعمل الشبكات تخدم صفحات الويب , تستمع للفأرة و هكذا . و هى أيضا تبدأ عمليات برنامج getty التى تضع محثات تسجيل الدخول على طرفياتك الإفتراضية.
توجد قصة كاملة و معقدة حول تبديل مراحل التشغيل و لكن سأتجاوز ذلك تقريبا و أتكلم فقط عن بدء تشغيل النظام.
ال init يقرأ ملف إسمه /etc/inittab , و الذى يخبره ماذا يفعل . عادة أول شىء يقوم به هو تشغيل سكريبت بدء. البرنامج الذى يقوم بتشغيل هذا السكريبت هو برنامج bash ,و نفس البرنامج الذى يعطيك محث الأوامر . على نظم ديبيان , سكريبت البدء هو /etc/init.d/rcS و على الريد هات هو /etc/rc.d/rc.sysinit هذا هو المكان حيث يتم التحقق من و تحميل ملفات , و ضبط الساعة و إتاحة تشغيل الذاكرة الإفتراضية , و تعيين اسم الجهاز (hostname) و ما إلا ذلك .
بعد ذلك يبدأ تحميل سكريبت آخر لكى يبدأ مستوى التشغيل التلقائى. وهذا يعنى عملية تحميل مجموعة من الأنظمة الفرعية. وتوجد مجموعة من المجلدات وهى /etc/rc.d/rc0.d, /etc/rc.d/rc1.d, ..., /etc/rc.d/rc6.dفى نظام الريدهات أو /etc/rc0.d, /etc/rc1.d, ..., /etc/rc6.d فى نظام الديبيان والتى نناتظر مستويات التشغيل المختلفة. لو كنا سنستخدم مستوى التشغيل الثالث على نظام ديبيان سيقوم السكريبت بتشغيل السكريبتات الموجوده فى /etc/rc3.d التى بتدأ بحرف الـ S كأول حرف من كلمة Start. وهذه السكريبتات هى مجرد روابط للسكريبتات الموجودة فى مجلد آخر يسمى غالبا init.d.
وبذلك قام init بتحميل مستوى للتشغيل المطلوب، ويبحث فى مجلد عن السكريبتات التى تبدأ بحرف الـ S. قد تجد S10syslog أولاً. وهذه الأرقام تخبر سكريبت مستوى التشغيل بأى ترتيب يبدأ بتحميلهم. وفى حالة S10syslog يتم تشغيله أولاً نظرا لعدم وجود سكريبتات تبدأ بـ S00 ... S09. ولكن S10syslog هو فى الحقيقة رابط لـ /etc/init.d/syslog: وهو سكريبت لبداية وإيقاف مسجل النظام System logger. ونظراً لأن الرابط يبدأ بالحرف S فإن سكريبت مستوى التشغيل يقوم بتشغيل سكريبت syslog بإعطايه متغير "start" وتوجد روابط مناظرة تبدأ بالحرف K كأول حرف من كلمة Kill والذى يحدد ما يتم إغلاقه وبأى ترتيب عند ترك مستوى التشغيل.
ولتغيير ما تبدأه الأنظمة الفرعية تلقائيا، يجب عليك ضبط هذه الروابط مجلد rcN.d. حيث تعبر الـ N عن رقم مستوى التشغيل المعد تلقائيا فى الـ inittab الخاص بك.
وأخر ما يقوم به init هو بداية بعض برامج getty's. ويطلق عليهم "respawned"، وتعنى أنه إذا توقفت هذه البرامج يقوم الـ init بإعادة تشغيلها مرة أخرى. أغلب الإصدارات تكون لديها بست طرفيات افتراضية. ولكنك قد تحتاج لأقل من هذاالعدد لكى توفر من استخدامك للذاكرة، وقد تحتاج أكثر من هذا العدد لترك العديد من الأشياء تعمل في نفس الوقت وتنتقل بينها عندما تحتاج أى منها. قد تحتاج أيضاً إلى تشغيل تشغيل برنامج getty للحصول على شاشة نصوص طرفية، أو شاشة اتصال بجهازك عن طريق المودم. فى هذه الحالة ستحتاج إلى إعادة تحرير ملف inittab.
يعد /etc/initiab هو ملف التنسيق للمستوى الأعلى من init. ومجلدات rcN.d، حيث N=0,1,...,6 تحدد أى من ملفات النظام الفراعية يتم تحميلها. وفى مكان ما فى السكريبتات التى يتم تشغيلها بواسطة init، يوجد أمر mount -a. وهذا يعنى تحميل ملفات النظام التى من المفترض أن يتم تحميلها. لو أردت تغيير ما يتم تحميله وأين عند بدء التشغيل فهذا هو الملف الذي تحتاج إلى إعادة تحريره . و هناك صفحة لدليل المستخدم ل fstab .
حاول إيجاد مجلد rcN.d لمستوى التشغيل التلقائى لجهازك و استخدم أمر ls -l لترى ما تشير إليه الملفات غير عدد ال getty التى يتم تشغيلها على جهازك قم بإزالة أى نظم فرعية لا تحتاجها من مستوى التشغيل التلقائى الخاص بك
قم بتجهيز قرص مرن بإستخدام lilo , و نواة و برنامج موصول بشكل ثابت من نوع hello program يسمى /sbin/init و راقبه يحمل ةو يقول hello
راقب جيدا بينما يقوم جهازك ببدء التشغيل و قم بتسجيل بعض الملاحظات عما يحدث أو قم بطباعة جزء من رسائل log/var/log/messages الخاصة بجهازك من وقت بداية التشغيل . ثم بداية من inittab يتحرك خلال كل السكريبتات و يلاحظ كل جزء من الكود يؤدى اى وظيفة . كما يمكنك وضع رسائل بدء تشغيل إضافية مثل
echo "Hello, I am rc.sysinit"
هذا تدريب جيد فى تعلم كتابة السكريبتات ل bash shell . بعض السكريبتات معقدة بعض الشىء . فيستحسن الإحتفاظ بمرجع جيد لل bash فى متناول يدك.
يوجد دليل المستخدم (man page) ل init و fstab . اكتب inittab man إلى صدفة (shell) حتى تراها.
المصدر البرمجى , انظر بناء أصغر نظام لينوكس من المصدر البرمجى
في هذا الجزء سأستخدم كلمة نظام الملفات بطرقتين مختلفتين.هناك مظام ملفات في أقسام القرص و الاجهزة الاخرى و هناك نظام ملفات كما يعرض لك بتشغلك لنظام لينكسانك في نظام التشغيل لينكستقوم بإلحاق mount قرص نظام التشغيل على نظام ملفات نظام التشغيل.
في الجزء السابق,ذكرت ان سكربتات الـinit تقوم بفحص و إلحاق لنظام الملفات و الاوامر التي تقوم بذلك هي fsck و mount على الترتيب.
ان القرص الصلب هو عبارة عن مساحة كبيرة حيث تستطيع ان تكتب احاد و اصفار عليه .
نظام الملفات بفرض بعض الهيكلة على ذلك ويجعله يشبه الملفات داخل مجلدات و هذة المجلدات بداخل مجلدات اخرى و هكذا . كل ملف يمثل عن طريق inode (عقدة إالكترونية) ,التي تخبرك ملف من هذا , و متى انشئ, و اين تجد محتويات الملف, و المجلدات ايضا تمثل بـ inode لكن هذة الـ inode تخبر اين تجد الـ inode الخاصة بالملفات الموجوده في هذا المجلد و اذا كان النظام يريد مثلا قراءةhome/greg/bigboobs.jpeg/ فإنه يقوم اولا بإجاد الـ inode للـدليل الاصلي / في الـsuperblock , وبعد ذلك يبحث عن الت inode للدليل home/ في وجود محتويات الـ / ثم البحث عن الـ inode للدليل greg في وجود محتويات home/ثم البحث عن الـ inode لملف bigboobs.jepg التي ستخبرة اي بلوك من القرص يقوم بقراءته.
اذا اضفنا بعض المعلومات او البيانات لنهاية ملف قد يكون تم اضافة تلك البيانات الي الملف قبل ان تقوم بعمل تحديث للـinode حتى تعلم ان البلوك الجديد ينتمي الي هذا الاملف و بالعكس .
إذا حدث انقطاع في التيار الكهربائي فجأة فان نظام الملفات سيعطب. ان هذاة الامور يقوم امر fsck بعمل تحديد للعطب و اصلاحه,ان امر mount يأخذ نظام الملفات الموجود على الجهاز ويضيفه الي التسلسل الهرمي الذي تراة عندما تشغل نظامك.
عادة النواة تحمل نظام الملفات للقراءة فقط, لكن الامرmount يقوم بتحميل نظام الملفات للقراءة و الكتابة بعد ان يقوم امر fsck بعمل الفحص و التأكد انه سليم.
نظام التشغيل لينكس يدعم العديد من انوع الملفات الاخرى من نظام الملفات msdos , vfat, minix والي ذلك...
إن تفاصيل بعض نظم الملفات المعينة يتم تجردها الي نظام ملفات افتراضي لن اقوم بالدخول في كثير من التفاصيل في هذة النقطه ويوجد شرح لها في الجزء الخاص بـنواة اللينكس.
نوع مختلف تماما من نظم الملفات يتم الحاقة في الدليل proc/ , انه في الحقيقة عرض للاشياء الموجودة في النواة,هناك دليل لكل عملية تجري في نظام و اسم المجلد يكون على رقم العمليه التي تجري .
هناك ايضا ملفات مثل interrupt وmeminfo التي تخبرك كيف تعمل وتستخدم العتاد,تستطيع ان تتعلم الكثير بتفصح الـproc/ .
هناك براميترات للامر mke2fs التي تنشئ نظام الملفات ext2 هذا الامر يتحكم في حجم البلوك و عدد الـinode والي ذلك , انظر في صفحة دليل المستخدم لامر mke2fs للتفاصيل.
ما يتم الحاقفي نظام ملفاتك يتم التحكم به في etc/fstab/ ولها ايضا صفحة دليل مستخدم انظر بها للتفاصيل .
قم بأنشاء نظام ملفات صغير و قم بعرضة على نظام ترير النصوص hex على النظام الرقمي بقاعدة 16 وبـinode محددة والبلوكاتالعليا و محتويات الملفات .
اعتقد ان هناك ادوات التي تسهللك رؤية النظام بطريقة مصورة أعثر على واحد و جربة و ارسل الي و اخبرني عنه . افحص نظام الملفات ext2 في المصدر النواة .
الفصل التاسع من كتاب IDP نواة اللينكس عرض ممتاز لملفات النظام تستطيع ان تجدة في
www.Mirror.aarnet.edu.au/linux/LDP/LDP
ان امر mount جزء من حزمة util-لينكس هناك رابطة في بناء نظام لينكس صغير من كود المصدر وهي:
www.netspace.net.au/~gok/power2bash
صفحة دليل المستخدم للاوامرmount , fstab, fsck, mke2fs, proc . إن الملف doucumentation/proc.txt/ المصدر البرمجي لينكس يقوم بشرح /proc
ادوات نظام الملفات ext2 ,الصفحة الرئيسيه له هي:
www.mit.edu/tytse/www/linux/esfsprogs.html
وهناك ايضا مستند يعرض ext2fs رغم انه قديم وليس قابل للقراءة كما في الفصل التاسع نواة اللينكس.
هناك وصلة اخرى لنظام الملفات يونكس القياسي وهذة تقوم بشرح ماذا و اين يجب ان يذهب الي نظام الملفات يونكس و لماذا يجب ان يذهب الي هذا المكان كما انها تقول لك الحد الادنى للمتطلبات من محتويات /bin و /sbin وما الي ذلك و هذا مرجع جيد اذا كنت تريد ان تنشئ نظام صغير متكامل و هي:
www.Tsx-ll.mit.edu/pub/linux/docs/linux-standards/fsstnd
و هى برامج (العفريت) التى تدور فى الخلفية و تستجيب للأحداث الخارجية (مثل : الفارة و لوحة المفاتيح)
إذا حاولت تشغيل أمر ps aux سترى شيء كالأتى:
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND root 1 0.1 8.0 1284 536 ? S 07:37 0:04 init [2] root 2 0.0 0.0 0 0 ? SW 07:37 0:00 (kflushd) root 3 0.0 0.0 0 0 ? SW 07:37 0:00 (kupdate) root 4 0.0 0.0 0 0 ? SW 07:37 0:00 (kpiod) root 5 0.0 0.0 0 0 ? SW 07:37 0:00 (kswapd) root 52 0.0 10.7 1552 716 ? S 07:38 0:01 syslogd -m 0 root 54 0.0 7.1 1276 480 ? S 07:38 0:00 klogd root 56 0.3 17.3 2232 1156 1 S 07:38 0:13 -bash root 57 0.0 7.1 1272 480 2 S 07:38 0:01 /sbin/agetty 38400 tt root 64 0.1 7.2 1272 484 S1 S 08:16 0:01 /sbin/agetty -L ttyS1 root 70 0.0 10.6 1472 708 1 R Sep 11 0:01 ps aux
و هذا عبارة عن قائمة بالعمليات الجارى تنفيذها على النظام . المعلومات تأتى من نظام الملفات /proc التى ذكرناها فى الفقرة السابقة . لاحظ إن ال init هو العملية رقم واحد . العمليات رقم 2 و 3 و 4 و 5 هم kflushd, kupdate, kpiod and kswapd على الترتيب . على الرغم من هذا يوجد شيء غريب هنا : لاحظ أن فى كل من أعمدة حجم التخزين الإفتراضى و و أعمدة حجم التخزين الحقيقى , تحتوى على أصفار . كيف لعملية ألا تستخدم ذاكرة ؟
معظم برامج الخدمات الخلفية (Deamons) لا تبدى قوائم العملبات بالمرة . و لا يمكنك حساب الذاكرة التي تستخدمها النواة إلا عن طريق طرح الذاكرة المتاحة من حجم الذاكرة الكلى على جهازك . برامج الخدمات الخلفية (Deamons) تبدإ بعد ال init . لذا تحصل على ارقام عمليات تماما مثلما تفعل العمليات العادية , و لكن يبقى الكود و المعلومات الخاصة بها فى الجزء الخاص بالنواة فى الذاكرة .
يوجد أقواس حول المداخل فى عمود الأوامر لأن نظام الملفات /proc لا يحتوى على معلومات سطر الأوامر لهذه العمليات .
إذن , لأى غرض تستخدم برامج الخدمات الخلفية (Deamons) ؟ - الإصدارات السابقة من هذا المستند إحتوت على طلب للمساعدة , حيث أنى لا أعلم الكثير عن برامج الخدمات الخلفية (Deamons) . القصة القصيرة القادمة تم تجميعها من مختلف الردود لهذا الطلب , التى أمتن لها كثيرا . أرحب الحلول و المراجع و التصحيحات الإضافية.
الإدخال و الإخراج تتم عن طريق مناطق تخزين مؤقت (Buffer) فى الذاكرة . هذا يتيح للأشياء أن تنفذ أسرع . ما تكتبه البرامج يمكن حفظها فى الذاكرة قى (Buffer) ثم كتابتها على القرص فى قطع أكثر فعالية . يتولى هذا العمل كل من daemons kflushd and kupdate : kupdate يتم تنفيذه دوريا كل 5 ثوان للتحقق من وجود Buffers تم الكتابة عليها . إذا وجد , يحضر kflushd لكتابتهم على القرص .
العمليات عادة لا تجد ما تفعله , و هؤلاء الذين يتم تنفيذهم غالبا لا يكون هناك داعى لوجود الكود و البيانات الخاصة بهم فى الذاكرة . هذا يعنى أنه يمكنك أن تستغل ذاكرة جهازك بشكل أفضل ., عن طريق تبديل الأجزاء الغير مستخدمة من البرامج التى يتم تنفيذها و نقلها إلى قسم الذاكرة الإفتراضية (Swap Partition) من القوس السابق . تحريك هذه البيانات من و إلى الذاكرة حسب الحاجة يتم عن طريق kpiod and kswapd . كل ثانية ( أو ما إلى ذلك) kswapd يصحو للتحقق من حالة الذاكرة و ما إذا كان هناك شىinit script (/etc/rc.sysinit or /etc/rc.d/rc.sysinit)ء على القرص يجب إستدعاؤه للذاكرة و ما إذا كان هناك ذاكرة خالية كافية و يتم إستدعاء kpiod .
قد يكون أيضا هناك kapmd daemon تعمل على النظام إذا كنت قد نسقت إدارة الطاقة (Power Managemnet) أوتوماتيكيا فى النواة.
تحديث البرنامج يسمح لك بتنسيق kflushd and kswapd . جرب update -h لمزيد من المعلومات.
يتم فتح مساحة الذاكرة الإفتراضية عن طريق swapon و غلقها عن طريق swapoff . سكريبت ال etc/rc.sysinit or /etc/rc.d/rc.sys) init) عادة ينادى swapon عند بداية النظام . علمت أن swapoff مفيد لحفظ الطاقة على الأجهزة المحمولة .
نفذ update -d لاحظ الحماقات فى السطر الأخير حول threshold for buffer fratricide . الأن يوجد مبدأ مخادع . إذهب إستثمر.
غير المجلد الحالى إلى /proc/sys/vm و إستخدم cat أمر لفتح الملفات هناك . أنظر ما يمكنك أن تفعل.
Linux Documentation Project's ``The Linux Kernel''
المصدر البرمجى لنواة اللينوكس , إذا كانت لديك الشجاعة الكافية , كود ال kswapd موجود فى linux/mm/vmscan.c و kflushd and kupdate فى linux/fs/buffer.c .
يقوم Init بتشغيل برامج الخدمات الخلفية syslogd و klogd ، يتم التعامل مع رسائل النواة من قبل klogd بينما يقوم syslogd بالتعامل مع الرسائل من باقي العمليات. السجل الرئيسي موجود في /var/log/messages. هذا المكان هو الأنسب للبحث عن أدلة في حال حدوث أي خطأ في النظام
يقوم الملف /etc/syslog.conf بتحديد أي رسائل سيتم وضعها في أي مكان. يتم تعريف الرسائل عن طريق الخدمه التي تأتي منها و مستوى أهميتها. يحتوي ملف التنسيقات على سطور تشير هذه إلى أن الرساله من الخدمه أ ذات الأهمية ب ستذهب إلى الملف د لاحظ: يحتاج Syslog وجود ملف /etc/services. يقوم ملف الخدمات بتحديد المنافذ. لست متأكدا اذاكان syslog بحاجه لتحديد منفذ ليقوم بتخزين السجلات عن بعد أو ما اذا كان التخزين محليا يتم عن طريق منفذ أو إذا كان سيستخدم /etc/services لتحويل أسماء الخدمات التي ادخلتها /etc/syslog.conf إلى أرقام منافذ.
ألقي نظره على نظام السجلات في نظامك. حاول إيجاد رساله لم تستطع فهمها، و حاول معرفه ماذا تعنيه. أرسل كل رسائل سجلاتك إلى tty (أعده إلى الوضع الطبيعي عندما تنتهي)
Australian sysklogd Mirror
ان Getty هو البرنامج الذي يتيح لك الدخول عن طريق جهاز تسلسلي، مثل المحطة الطرفية الإفتراضية او المحطة الطرفية النصية او مودم. انه يعرض محث الدخول, وعندما تدخل اسم المستخدم، فإن getty يسلمه الي login الذي يسأل عن كلمة السر، يتأكد منها ثم يعرض لك الغلاف (shell).
هناك العديد من الاصدارات المتاحة ل getty بعد التوزيعات مثل ريدهات تستخدم اصدار صغير جدا يدعى mingetty و الذي يعمل فقط مع المحطة الطرفية الإفتراضية
برنامج login هو جزء من حزمة util-linux, والتي تحتوي على اصدار getty يدعى agetty و هو اصدار جيد. هذه الحزمة تحتوي ايضا على mkswap, fdisk, passwd, kill, setterm, mount, swapon, rdev, renice, more و بعض البرامج الأخرى.
10.1 تنسيقات الرسالة التي تظهر في اعلى الشاشة والتي تحتوي على محث الدخول, تأتي من /etc/issue, اصدارات getty تبدأ عادة من /etc/inittab . و login يتأكد من تفاصيل المستخدم من /etc/passwd ، اما إذا كان لديك تظليل لكلمات السر فهو يتأكد من /etc/shadow.
10.2 تمارين انشئ ملف /etc/passwd باليد. كلمات السر يمكن ان تترك فارغة, و تغير باستخدام برنامج passwd عندما يتم الدخول الى النظام. راجع صفحة دليل المستخدم لتعاليم استخدام هذا البرنامج, و يمكنك استخدام man 5 passwd لمطالعة صفحة الدليل الخاصة بملف passwd بدلا من تلك الخاصة بالبرنامج.
إذا أعطيت عملية الدخول اسم مستخدم و كلمة سر صحيحين سيقوم بالتحقق في /etc/passwd ليرى أي حساب غلاف سيقوم بإعطاءه لك. في معظم الحالات في نظام لينوكس سيكون هذا باش bash. وظيفة باش هي قرائة أوامرك و التحقق من تنفيذها، ببساطه هو واجهة للمستخدم و مترجم للغة البرمجة.
كواجهة للمستخدم يقوم بقرائة أومرك و يقوم بتنفيذها إذا كانت داخليه مثل cd أو يقوم بالبحث عن البرنامج الذي سيقوم بتنفيذها إذا كانت أوامر خارجية مثل startx. و يقوم أيضا بعمل بعض الوظائف مثل حفظ تاريخ للأوامر و مثل إكمال أسماء الملفات.
د رأينا باش من قبل كمترجم للغة برمجة. السكربتات التي يشغلها init لبدأ النظام هي عادة سكربتات للغلاف و يتم تنفيذها بواسطه باش. وجود لغة برمجة مع ملحقات النظام العادية متوفرة في سطر الأوامر يوفر تشكيلة قوية، إذا كنت على دراية بما تقوم بفعله. مثلا (smug mode on) قد احتجت لتطبيق مجموعة من الترقيعات لمجلد من المصادر البرمجية من فتره. لقد قمت بهذا بواسطة الأمر التالي:
for f in /home/greg/sh-utils-1.16*.patch; do patch -p0 < $f; done;
يقوم هذا بالبحث في مجلدي الرئيسي عن الملفات التي تبدأ بـsh-utils-1.16 و تنتهي بـ.patch و من ثم يأخذ كل من هؤلاء بدورهم و يقوم بتعيين المتغير f لهم و يقوم بتنفيذ الأمر بين do و done. في هذه الحاله يوجد 11 ملف ترقيعه.
يتحكم ملف /etc/profile في طريقة عمل باش في النظام كله. ما سوف تضعه هنا سوف يؤثر على كل مستخدمي باش على النظام. سيقوم بعمل أشياء مثل إضافة مجلدات إلى PATH و تحديد متغير مجلد البريد.
التهيئة الافتراضية للوحة المفاتيح توفر العديد لتطلبه. في الحقيقه يقوم readline بالتعامل مع هذا. و هو حزمة مستقله تقوم بالتعامل مع واجهة سطر الأوامر ، بتوفير تاريخ للأوامر و توفير إكمال لأسماء الملفات، و بالإضافة لبعض المميزات المتقدمة. و هو مجمع افتراضيا بداخل باش.يتم تنسيق readline بواسطة الملف.inputrc في مجلدك الرئيسي، يمكن استخدام متغير INPUTRC لتخطي هذا في باش. مثلا في ريد هات 6 تم تحديد INPUTRC لـ /etc/inputrc في /etc/profile. معنى هذا أن زر التراجع و الخذف و زر home و end سوف تعمل بشكل جيد للجميع.
بمجرد قيام باش بقراءة ملف تنسيقات النظام بكامله سوف يبحث عن ملف تنسيقاتك الشخصي. سيقوم بالتحقق في مجلدك الرئيسي للبحث عن .bash_profile, .bash_login و .profile. و يقوم بتشغيل أولواحد منهم سيجده. إذا أردت تغيير طريقة تصرف باش بالنسبة لك فقط بدون التأثير على الآخرين على النظام قم بذلك من هنا. مثلا يوجد العديد من التطبيقات التي تستخدم متغيرات معينه ليتحكم في طريقة عمله. يوجد لدي قيمة المتغير EDITOR محدده إلى vi لكي أستطيع استخدام vi في Midnight Commander ( مدير ملفات ممتاز لسطر الأوامر) بدلا من محرره.
أساسيات باش سهلة التعلم و لكن لا تتوقف عند هذا الحد يوجد عمق هائل له. حاول التعود على محاولة الحصول على طرق أفضل لأداء أي شئ.
إقرأ سكربتات الغلاف، ابحث عن أشياء لا يمكنك فهمها.
يوجد مع هذا ``Bash Reference Manual'' و لكنه كبير و عميق. يوجد كتاب O'Rielly عن الباش، لست متأكد من جودته ليس لدي علم عن أي دروس مجانيه حديثه عن الباش، إذا كان لديك برجاء إرسالها إلي. المصدر البرمجي، راجع Building a Minimal Linux System from Source Code للحصول على وصلات
يتم أداء معظم العمليات في الباش بواسطة الاوامر مثل cp. معظم هذه الاوامر هي برامج صغيره بالرغم من أن البعض مثل cd مبنية بداخل الغلاف
تأتي الأموار في حزم، معظمها من منظمة البرمجيات الحرة GNU. بدلا من أن أضع الاومر هنا سوف أرشدك لـ Linux From Scratch HOWTO. يوجد بها قائمة حديثه بالحزم التي تأتي مع نظام لينوكس و مع ارشادات لكيفية استخدامهم.
واحد من أفضل الأشياء في لينوكس في رأي الشخصي هو الإمكانية أن تتعمق بداخله وأن تعرف كيف تعمل الأشياء حقا. أتمنى أن تستمع بهذا بنفس القدر الذي استمتع أنا به. و أتمنى أن تكون هذه الملاحظة البسيطه ساعدتك لتفعل هذا.
هذه الصفحه تجمع أغلب مراكز التدريب على لينكس فى مصر. و أيضا اماكن الحصول على شهادات دوليه معتمده. بعض اماكن التدريب هدفها هو تهيئت المشتركين الى هذه الشهدات، و البعض الاخر يهدف الى تعليم نظام لينكس للغرض تعليمى و ليس كتهيئة لهذه الشهدات.
هذه الصفحه لم تكتمل بعد ، و سيجرى تعديلها من وقت لاخر. أذا اردت أضافه أى معلومة برجاء مخاطبتى بالبريد الكترونى.
الأمتحان لهذه الشهاده يؤخذ فى مراكز برومترك المعتمده. وهى منشرة فى القاهره و الأسكندريه و بعض المحافظات. سعر الأمتحان فقط لهذه الشهاده 142 جنيه استرلينى. لمزيد من المعلومات عن هذه الشهاده.
امتحان و التدريب لهذه الشهاده يؤخذ فى شركة لينكس بلاس او فى شركة ماستر لينكسRHCE &RHCT.
تعد شركه MasterLinux لهذه الشهادة
هذه الشركات تعطى برامج تدربيه. منها من يعد للحصول على شهدات، و بعضهم بعطى دورات للمبتدئين فى نظام لينكس.
28 شارع سوريا ،
المهندسين
الجيزه
Phone: (202)-760 44 90
FAX: (202)-760 44 90
Web: aza-group.com
Email: info@aza-group.com
برج سراى المعادى (A)
كورنيش النيل
7 شارع المواصلات
المعادى ,
القاهرة
Tel: +202 – 524 0745
Fax: +202 – 524 0 745
Web: Linux-plus.com
١٣٠ شارع جسر السويس, عمارة مركز البنيان
الدور السادس
القاهرة
Phone: +202 2581683
Fax: +202 4545394
email: info@masterlinux.net
masterlinux@post.com
Web : masterlinux.net
الدورات المتوفرة
1.Fundamentals of Linux | مبادئ لينكس
2. Linux System Administration | ادارة انظمة لينكس
3. Linux Network Administration | ادارة شبكات لينكس
4. Linux Shell Scripting | برمجة البيئة التفاعلية للينكس
5. Perl Programming | برمجة بلغة بيرل
ويعطى فرع المعهد فى الأسكندرية نفس هذة الدورات
عنوان فرع الأسكندرية
18 شارع على باشا ذو الفقار - مصطفى كامل
متفرع من شارع خليل الخياط
035439742
alex@iti-idsc.net.eg
15 محمد يوسف القاضى
كلية البنات
القاهرة 11341
Tel: 20 2 4175036
Linux Fundamentals course
1 Syria st, Deeb Mall. 10th floor, Admin. section.
Alexandria
010 1708851 - 5411521
MEHRD@ayoooo.com
GAMAL ABDEL NASER AVENUE
MIAMI
ALEXANDRIA
35502640
19 KAEM MAKAM AHMED ABD EL AZI
ROSHDY
ALEXANDRIA
20 35444177
24 MOHAMED GHONEIM STREET
KOLIET EL BANAT
HELIOPOLIS
CAIRO
20 2 4146388
11 El Negma Street
Abed El Aziz Fahmy
Cairo 11351
026359613
95 HAFEZ RAMADAN STR.
NASR CITY
CAIRO 11371
202 275 6721
125, Hegaz Street,
Heliopolis Square
Heliopolis
CAIRO 11351
20 2 6359609
9 IBN AL WARDI STREET
HEGAZ SQUARE
HELIOPOLIS
CAIRO
20 2 6249444
101 HAROUN EL RASHID ST.
HELIOPOLIS
CAIRO 11351
2406294
6347903
11, MANDOUR STREET
RABA'A
NASR CITY
CAIRO 11371
20 22624488
59 IRAN ST
DOKKI
GIZA
202 360 5440
80, SHEHAB ST.
8TH FLOOR
EL MOHANDESSIN
GIZA
20 2 345 1500 600
55 Elkholafaa El Rashedeen str.
Mansoura
101766950
EL GOMHORYA ST.
MANSOURA UNIVERSITY
MANSOURA
502258847
29 Seif Eldawla Str.
Crossed with Botros Str.
Tanta 31111
4033221388
by ramez.hanna
This is not a reference to IPTABLES in any way it is just a start that i gathered from several other documents with my humble knowledge and experience and i hope it could get you started with the firewalls configuration. This document is far from complete and I'll be adding more as soon as i have the time
Before we mention anything about firewalls i need to point out a critical point “a firewall’s power lies within the configuration” meaning that no matter what
the firewall application power is, a weak configuration will weaken
it.And also remember that security is not just a firewall. Think of a firewall as just a first line of defense you need to secure your applications and keep your system updated and patched for any exploits to secure your applications
Mainly a firewall is used to block or allow certain traffic based upon the network needs, it may block all incoming requests or it may allow requests to go through to the mail server within the local network
The firewall in Linux sits in the kernel waiting for network traffic from the NICs and handles it as mentioned in the configuration file.
It works on layer 3 and 4 of the OSI network model this mean it operates on the IP and TCP/UDP level thus it cannot filter upon the content of the packet and hence cannot be used to check mails for viruses or block unwanted content in web
pages
IPTABLES configuration file (/etc/sysconfig/iptables) consists of a set of rules, each line contains one rule
The IPTABLES daemon goes through the configuration file line by line, so it is important to pay attention for the order of the rules. When a packet is processed by the daemon for a certain match criteria it is directed to a certain
destination (REJECT/DROP/ACCEPT) the next time the same criteria is met the rule is ignored because this specific packet has been already filtered, only when you use the LOG destination it is logged and then the same criteria can be used again
There are two ways of creating the config file either by editing the config file directly or by using the #iptables command so here is this document I'll edit the file directly (no reason just that i used to do it both ways are good
but some people prefer using the command as it is more flexible)
IPTABLES has 3 tables :
THE FILTER TABLE
The filter table has 3 default chains
A rule is a match criteria applied to the packets in a certain chain that reach the firewall machine. These match criteria are define packet properties and
information such as source IP, destination IP, etc . . .
I'll start by giving you the quick steps and some quick notes first then
I'll go through them one by one
So lets go into more details
"Add/Insert/Delete the rule” as mentioned before the rules are placed in order so you just define -A to append a new rule, -I to insert a rule in a certain place, -D to delete a certain rule
-A
"Define the chain” define which chain you are dealing with
-A INPUT
"Create your match” will talk about this in details later
-A INPUT some match criteria
"Determine the action” tell the daemon what to do
-A INPUT some match criteria -j ACCEPT
Generally the matches that can be defined are:
--sport : to define the source port of the packet- --dport : to define the destination port of the packet
state- --state : to define the connection state NEW, RELATED, ESTABLISHED, INVALID
--syn : to define that the packet contains a syn request equivalent to --state NEW- -i : to define the incoming interface
- -o : to define the outgoing interface
-A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
The above example rule will accept incoming pop requests to the local server
-A OUTPUT -p tcp --dport 80 -m --syn -j ACCEPT
The above example rule will accept outgoing web requests
here is an example configuration file
The first line determines which table we are using
The following three lines set the default behavior
Then comes the rules
Then at the end to apply these rules you add COMMIT
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A FORWARD -i lo -j ACCEPT -A INPUT -p icmp --icmp-type any -j ACCEPT -A FORWARD -p icmp --icmp-type any -j ACCEPT -A INPUT -p 50 -j ACCEPT -A FORWARD -p 50 -j ACCEPT -A INPUT -p 51 -j ACCEPT -A FORWARD -p 51 -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
IRC is a text based chatting protocol. You as a user chat through what is called IRC client. The client is a program installed on your system and connects to an IRC network. A network is a group of servers connected to each other to manage the exchange of messages. Users connected to the same network can chat together even if each is connected to a different server as long as these servers belong to the same network. Each network has a group of what is called chat rooms or channels reaching to thousands of channels. If one join a room he'll be able to chat with all those who joined the same room in a conference fashion. As complicated as it might sound, it's actully very easy to use. Just bare with us to the end of this Howto.
When using any of the previously mentioned IM protocols you probably chat with individuals in private conversations. In order to start a conversation someone you must know his ICQ number/ Hotmail email addresss / Yahoo! email address. With IRC its different, inorder to start a conversation you must know the room/channel you want to chat in. In the same way that you can search for individuals to chat with on (for example) ICQ , you can search for channels with topics of your interest to join on IRC. To wrap things up, previously mentioned protocols are used mainly for private conversations yet they support group chat rooms chatting, IRC on the other hand is mainly used for group chatting yet it supports private conversations.
IRC is a very popular way of asking for help concering FOSS. Forums are popular too but with forums you don't get real time response from the others. In an IRC channel you can ask a question and several users could walk you through your problem as you feedback them with your progress. The only drawback of such a method is that it's not publicly documented. Meaning that when you use a forum for asking about a specific problem others could later face the same problem , search the web for an answer and benefit from the replies you got. This is not the case with IRC. That's why you should be patient and polite when asking a question on IRC because many questions are asked over and over again making some people get bored answering them. IRC is also a way for developers coordinate they work and its the the preferred way for FOSS fans to just hang out and socialize.
You need to have an IRC client installed on your system. One that we recommend is XChat
http://www.silverex.info/download/gtk2-runtime-2.4.14-041220-ash.exe
http://www.silverex.info/download/xchat-2.4.1.exe
http://www.silverex.info/download/
You could just type /join #eglug in the main xchat window instead of the previous 2 steps
/msg alaa stop dancing
This is the raw minutes I took of our first EGLUG meeting, it needs to be summerized in a proper report. From the agenda:
Na6oosh is Eglug channel bot done by Mohammedsameer and it`s has some good feature:
it`s can search on goole all you have to do is:
na6oosh: google <foo>
and it`s give you an answer.
it`s can translate from english to arabic using arabeyes wordlist:
na6oosh: arabeyes <foo>
and u will got ur word.
jargon is a nice computer dict. u can get a definition for anything u want to know:
na6oosh: Dict <foo>
and it`s will get all the definitions for that word if there is was more than one.
spell is a spelling checker in english. u use it like
na6oosh: spell <foo>
and it`s will give u the right words.
7anafy Just for fun. u can ask a bout 7anafy for more Detials:
na6oosh: <foo> 7anafy <foo>
Have a fun .
and u can get the source code and more info from #eglug Bot Page
we took the 7:15 train from Cairo and arrived in el Menya @ 10:20. we were staying at a 3awama called Dahabeya, we went directly to it and had a lovely breakfast on the Nile.
we then went to meet the people from New Vision at their place, we spent around 2 hours there (details later).
we arrived @ Salah el Din school (for boys) in Abu Qorqas @ 14:00, we met with the teachers, 2 new teachers have joint the group as promised. we made a small introduction then started our work directly.
we started by remembering what we discussed in the previous time, in their words the points covered were:
which was a bit of a simplification, this means many details slip through after two weeks (expected).
one point they raised is the need for an Arabic interface, this is always a tricky question, some people demand Arabic and some demand English, we had this debate but all agreed that the children should use Arabized interfaces since that is how they learn windows (ministry rules).
while discussing Arabic interface we explored the concept of software localization and played with the Mandrake GNU/Linux locale tools.
the new trainees engaged us in a comparison between windows and GNU/Linux desktop, the group concluded that:
we explained the differences by pointing out that desktop is a set of paradigms, each operating system has its own paradigms, the desktop paradigms are mostly shared. however something like the "My Computer" paradigm is very specific to windows (one teacher pointed out that Mac OS has no similar paradigm).
from that we explained how GNU/Linux completely separates user roles, tasks like inspecting hardware, partitions etc is for the administrator only.
while comparing the two platforms the Unix single tree file system paradigm was explained, unfortunately it is not easy to make sense out of this system except in advanced scenarios (or what the forced simplicity of windows made us think of as advanced and complex scenarios), we built three different scenarios trying to relate them to a school situation to explain.
finally we ended up with looking at the Mandrake Control Center in more details this time, time was short and we had to stop.
one positive thing is the trainees don't get tired, they take the full thing without their attention dropping or asking for breaks or any of the usual stuff, they're definitely hard workers.
they already formed student groups, right now their focus is on the Windows platform, mostly the stuff that is in the ministry school books, but they say they're trying to give the kids more space to play, and they make sure its a 2 children per pc course (normal classes apparently involve squeezing in 4 times the lab capacity).
if they're to train the children on anything beyond the ministry curriculum, they might need help on how to approach training (we discussed making the courses fun, putting extra stuff that might not directly teach marketable skills but expose the kids to new things, Sherif equated this with music and art activities for the sake of art itself or for the sake of having fun).
we finished @ 17:30 and went to have dinner on the Nile :-) @ Dahabeya.
the plan was to begin the day with a group of 10 students (all boys), just to observe how they react to the new system and how they cope with the differences between the GNU/Linux and the windows platform.
We switched the computers to Arabic locale, this lead to few configuration problems, when Manal and Ezabi installed the computers they did not anticipate the Arabic locale requirement.
obviously EGLUG volunteers need a bit of briefing on Arabization, we just assumed people use English interfaces (the teachers are more comfortable with the English interface, the students the opposite).
we also keep hitting silly hardware problems anything from dead mice to badly maintained harddisks, we think the schools need training on basic maintenance (stuff like how its important to minimize the amount of dust that goes in the computers).
the various problems forced us to put 2 students per pc (which is ok really, pairing is sometimes a good tool).
we began by explaining quickly that GNU/Linux is an alternative operating system, we did not cover FOSS at all this time.
the kids started playing immediately, we quickly realized that any attempt at putting them on a focused track would be in vain, so we used an ad-hoc approach, each student was asked to suggest a common operating system task and we left them to explore how it can be done on GNU/Linux, each couple in their own style and at their own pace.
we explained that each one should get a chance to choose a task, and so we must respect our colleagues and listen to them when they talk, thats about the only structure the day had, we were busy answering their various (and surprising) questions.
as we expected the differences between the two platforms did not confuse them at all, they discovered how to do most tasks on their own. what we worried about was differences in translation but it worked out fine, the kids discussed the words among themselves and it all made sense to them, we are not sure how they'll cope with more complex dialogs and messages though, they tend to be very badly translated on both platforms, fortunately the KDE desktop uses icons and colorful visual indicators all over the place.
the session was great fun to all, and we learned alot from the kids
the kids accepted compatibility problems as a reality of life.
they obviously received no conceptual education at all, one used the opportunity of having what appeared like experts to ask questions about file extensions, how programs are written etc.
we think the FOSS platform is a good tool for education since its very design is open, one can show more details when asked questions like that, even the most simple things can make a difference, for instance when Annass asked about how and who made all these programs Manal showed him a credits screen from one of the programs, the credits screen is animated, looks alot like tv or movie credit screens and lists the hundreds of contributors, I think it drove home the fact that programmers are normal people and not masters of some secret magical lore more effectively than anything else and it also helps to show how large such a project is, "kol dol?!" was his comment.
we asked for a copy of all ministry books to be better prepared next time.
we had 3 teachers observing our work with the students, they did not participate at all in fact their input was highly negative always asking the kids to stop experimenting and just follow our orders, we had to ask the group of teachers to be quite many times when the level of noise got too high.
however after having a short discussion with the teachers we have a feeling that this is mostly classroom habits, a few of them where thrilled by our new approach and they agreed on the importance of letting the kids have more space and freedom, we explained how the high security of GNU/Linux allows us to give more freedom to the kids since they can't possibly make any permanent damage to the system.
one positive thing is how honest everyone is, even the mowageh, while inquiring about what the school curriculum covers and what they teach in the computer club, they mentioned HTML, we were obviously impressed but the mowageh was quick to explain how it only touched the surface and how the classroom situation is not conductive to learning. we think we have good partners in this community.
the kids (and their parents) are very enthusiastic about the project in general, we had to keep turning down more groups, a couple of girls where fighting with the teachers asking to either change the time of the computer club to late evening or to be allowed to leave math classes to attend the club sessions.
after the session with the students was over we had a short discussion on our goals and the next steps with the teachers and the local and regional mowagehin
each person was asked to identify a goal/outcome they care about
the goals where:
abstract information)
the teachers mentioned that they have their own personal goals in terms of what they want to learn and how they want to improve themselves, we promised to try and help with these as long as they're willing to share the knowledge with their students (realizing that maybe only a few students would be interested in the more advanced stuff).
they asked for someone to teach them graphics, we said we don't know any windows people but we might be able to find someone to show them graphics with FOSS tools, most of them are multiplatform tools that work on both windows and GNU/Linux anyway (''Arius, are u interested to participate in this project?'').
we concluded the discussion by arranging the next visit, we will visit Adeeb Wahba school this time and work with a group of students from there.
we will try to wrap up basic GNU/Linux training for the teachers next time.
finally we got back to training, we spent 3 hours exploring the various administration functions in the Mandrake Control Center, lack on Internet connection and even a local network greatly limits what can be covered, but we hope they'll explore on their own.
we concluded the day by doing a quick evaluation, we asked them to identify negative points at the start and then positive points so we make sure to part with the positive things fresh in our minds.
we finished @ 17:30 and went to have dinner a quick dinner with Sherif before we take our 19:00 train back to Cairo.
we took the 7:15 train from Cairo and arrived in el Menya @ 10:20. we were staying at The Gam3eyet El Sa3eed hotel in Abu Qurqas, so we decided to have breakfast first in Menya then head to Abu Qurqas.
We met a fellow Linux user from Menya (Dr. Ahmed), who knew us from the photos, he invited us to breakfast and we had a small talk on how EGLUG can help in doing a seminar about FOSS in the Menya university, which Dr. Ahmed and his collegues will try to organize.
we then went to our hotel, to get some rest before the training with the teachers.
we arrived at 14:30pm, this time the training was in Adeeb Wahba prep school (for boys and girls).
all participants where present except one teacher due to a death in the family.
a teacher from outside the project joined us.
One teacher downloaded and printed some Arabic documentation she found through a webforum, this was a very positive step.
as usual we began by going through what we covered last time:
then we asked if they had any questions, only 2 teachers had questions and appeared to have played with GNU/Linux in the past two weeks.
the labs are badly configured after all the messing around we did in the course so next time we hope to fix it a bit and maybe the teachers can learn from the experience.
the questions where mostly about partitioning and filesystems, most of them due to lack of understanding of the basic concepts (not practical questions), Alaa did a quick explanation of what filesystems are and what kind of filesystems are supported under windows and GNU/Linux and why one should care about the choice of filesystem (most users shouldn't).
some practical questions about how to deal with a mixed windows and GNU/Linux environment, we used the opportunity to give practical examples of using skills they learned the past two visits to automate tedious tasks (using symlinks to simplify access to windows files).
the idea was to give insight into how one uses the various tools provided by the OS to build efficient and customized use policies.
after the questions we went back to covering basic administration tasks through the mandrake control center. this time the teachers showed more enthusiasm but we where moving too slowly and covered a few topics only.
we could not cover networking at all since it turned out they knew nothing about basic networking concepts (TCP/IP, IPs, netmasks, switches, routers, gateways etc.), We think they need a day or two about that and that alone, no idea if this can fit with the projects tight schedule, We are hoping to find local volunteers who can help.
after that we took a break, went through the resources we provided them so far and used the break to fix configs in some of the machines.
we only brought one copy of the Open CD for each school, the next day one teacher made copies to all participants on his own initiative.
we promised to bring them more Arabic resources (we know of a couple of books in the market).
back to basic administration tasks, we tackled fonts, the most important part is how to import windows fonts to be able to share documents with windows comfortably. importing windows fonts is an example of a task that is better done through the command line, we used this opportunity to introduce the command line (we are not about to teach it, but they need to know it exists).
we explained how advanced tasks may require the command line, or may be more easily done through it, and how sometimes it is easier to explain command line solutions when helping someone remotely (imagine writing an email full of prose describing details of mouse, menu, button, icon interaction, and oppose this with a simple line that can be copied and pasted).
the feeling of power derived from using the command line (we showed them the one command that can completely destroy the system :-) made a deep impression on them, one teacher's interest in the whole thing grew and she even asked us to teach them how to use the command line for everything (not possible probably, but we told them they can start teaching themselves using the manuals and we'll be glad to answer any questions).
back to the Mandrake Control Center:
we explained the importance of keeping logs, Alaa always tries to borrow language from them, partly because our technical arabic is not great and partly to ensure they participate in discussions, while grasping for an explanation of logs one of them said its like the black box in an airplane, that was the perfect way to describe it.
we started early morning with a little trip to Bani Hassan, we wanted to see it so much and one of the teachers is from Bani Hassan, Sherif proposed we turn this into a social event for the whole group but at the last minute all the women canceled :-(
the trip was short but nice, we became friends (EGLUG volunteers, Sherif, a couple of teachers and the local mowageh).
went back at 12, had a little rest then went to the school at 12:45, we where supposed to work with 10 students for an hour, and we asked to be there 15 minutes early to prepare Arabic interfaces.
at 12:45 the kids where already there for half an hour (about an hour early), eagerly playing with the computers and waiting for us, we couldn't configure anything but we noticed they where using English windows so we asked them to choose whether they wanted to use GNU/Linux in Arabic or English, only 1 asked for arabic (he was the least comfortable with computers) but as we progressed all ended up switching to Arabic except 3 kids.
we started with 3 girls and 7 boys, then 3 more girls joined against our protests, but in the end we had to agree.
all where from 2nd and 3rd preparatory, no difference at all between the girls and boys not in enthusiasm, tendency to explore and experiment or previous knowledge and skills, the girls took more time to warm to us and to the system, but the difference was only in few minutes.
we used the same routine of quickly introducing ourselves and saying that GNU/Linux is an operating system among many operating systems and that we are showing them an alternative so they can learn more. then we told them our task is to find out if GNU/Linux is difficult, and to see if it is different from windows, each person will tell us of a task they know how to do in windows and together we'll try to do it in GNU/Linux.
things went smoothly, exactly like last time, no problems, no confusion, no complaints, we had to talk about language differences sometimes, it was a bit difficult explaining why changing the system clock required administrator password and to answer the where is "My Computer" question.
this time they guessed that Home is equivalent to My Documents, and they played a bit with programs and not just the desktop. we changed the approach a bit and introduced new features to them, for instance while looking for a way to change system date they stumbled upon an organizer application with integrated alarms, todo, events etc, so we explained what this is and how one can use it to organize her work specially among groups.
a girl asked: we know that who made Linux is a Finnish university student, but what is his name?? one of the teachers (we don't know who) told them that, we explained that while Linus began work on the core of the operating system he did not work alone and that tens of thousands of programmers from all over the world including Egypt (and including the very people who are now talking to them) help by adding small parts or modifying them.
that was it, we had no time for more reflection and discussion, but we had great fun.
back to the teachers, same teacher was absent, we started @ 14:15
they forgot the part about system logs, which was a bit disappointing since we played with it for a while and made a big fuss about it.
this time we started with the GNU/Linux security model, this was covered in a very broad sense on the 2nd visit, but this time we got the details and did practical experiments.
we explained users, groups of users, file and process ownership then we experimented with permissions on files and directories (read, write, execute, enter, delete). finally we explained how the security model applies for device access and network connections, in GNU/Linux everything is abstracted to a file, there is a special file for each device, for example the mouse file or the cdrom file etc.
we got back to the command line, learned how to inspect the contents of a file (we used this as an opportunity to demonstrate how all configuration is ultimately just modifying simple text files, and linked a certain file with the graphical configuration wizards we've been using). After learning how to inspect the contents of regular file, we asked them to inspect the contents of the mouse file. nothing happens until they start moving the mouse, then each movement prints a character on the screen.
the same permissions that control files can control devices because of this method of representing devices. we also explained that devices as files is useful for other tasks, for instance full harddisk images (complex tasks requiring extra software on windows) is a matter of copying the harddisk device file on GNU/Linux.
finally we showed them a couple of educational programs we thought might be interesting, one is a 3d fully interactive galaxy simulator (Celestia) , the students can move anywhere in the galaxy inspect planets, space ships, stars etc as if in a 3d game. unfortunately it turned out the pcs do not support 3d hardware acceleration so they cannot use this software (Alaa demonstrated it on his laptop anyway as an example of high quality educational FOSS).
the other example was of a tool that can achieve great results if they can cooperate with teachers from other subjects, its a periodic table of elements ( Kalzium from the KDEedu package) but with slight twists, it has a time slider and limit the table to the elements discovers at any given year, then another slider represent temperature, each state of matter has a color as temperatures rises solids turn into liquid and liquid into gas. the software itself is not fun, but a good science teacher can use it to weave stories about the discovery of elements (did you know the last element to be discovered was on 1994)?
no one is optimistic about cross discipline cooperation or the possibilities of using computers as learning aids, but we thought they deserve to know the potential of the technology and of their jobs, we then moved on to demonstrating multimedia software that can actually be covered in 2nd stage training with the kids.
thats it, we reached the end of the training, we thanked them and asked to do a quick evaluation then move on to discuss the work with the students and future plans.
finally we got to the part where we agreed on plans for the students training. we agreed that we need to focus on basics and cover these basics with all the children, afterwards there is a possibility of forming groups with the most interested/promising students and study more advanced stuff.
most of the discussion was on defining the basics that everyone should learn, a little bit was imagining how the special groups work would look like.
the first 2 parts are clearly planned, they'll sit together with the mowagehin and make a detailed plan with times and all (they probably need to experiment a bit with OpenOffice first). the 3rd part mostly relies on EGLUG volunteers suggesting software and maybe demonstrating how they can approach guiding the students.
starting from next week they should be teaching FOSS desktop for two days every week (the computer club is a 3 times a week), Sherif is supposed to follow up on that and track it.
the special groups is not a coherent idea yet, we just told them what EGLUG is willing to help with
We left @ 18:00, this time we weren't able to have dinner before the train, so Sherif asked the hotel to pack it for us so that we can eat it on the train.
We arrived at the train station 5 minutes before our 19:00 train...back to Cairo
Using The AutoTools
If you think one day to start programming on linux, sure you will use C language (not me, i will always use assembly), but when your program sources get biggers as its version increase or you want to publish its source code, how users gonna to use it, are they gonna to compile every source file separetely then link them all together, no it's a bad idea and very handy, you will have to use the autoscripts.
In this article i will describe how to use the autoscripts for your own program sources, so i will write a simple C sourcefile to show you how to use the autoscripts(autoheader,automake,autoconf).
Remark :
when you a compile a program from source you should have done this :
./configure
make
make install
That's what the autoscripts we gonna make.
I will use emacs in this article, but your free to use any text editor even pico.
Let's start by creating directories which will contain the source files, assume our program name is "ctest" , type the following in a bash prompt :
mkdir ctest
cd ctest
mkdir src
cd src
emacs main.c
/*
this is a sample C source to test autoscript
*/
#include
#include
#include "ctest.h"
int main(void)
{
printf("Programming In Assembly Is The Best \n");
return 0;
}
Save it like that : press f10 then f then s then f10 then f then e .
emacs ctest.h
/*
This is a sample header to test autoscripts
*/
#define _WHO_AM_I "Hacker"
#define _WHO_IS_MASLAN "Assembler"
Save it like that : press f10 then f then s then f10 then f then e .
now we have finished writing our program source files, so we gonna to create the compiling and installing script as follows.
emacs Makefile.am
bin_PROGRAMS = ctest
ctest_SOURCES = main.c ctest.h
Save it like that : press f10 then f then s then f10 then f then e .
we have created a file containing our program name "ctest" and our sources names "main.c , ctest.h", this file is used by automake.
cd..
emacs Makefile.am
SUBDIRS = src
Save it like that : press f10 then f then s then f10 then f then e .
we have just created another automake file which points to our src directory, in case if your program have more than source directory or have "po" subdirectory which contains other languages interface for your program.
emacs configure.in
AC_INIT(src/main.c)
AM_INIT_AUTOMAKE(ctest,0.0.1)
AM_CONFIG_HEADER(config.h)
AC_OUTPUT([
Makefile
src/Makefile
])
Save it like that : press f10 then f then s then f10 then f then e .
We have created a file used by autoconf, which will be used to generate ./configure script, which will create Makefile used by make.
now we have everything done, just type the following :
aclocal
autoheader
autoconf
automake --add-missing
You can test if it works , like that :
./configure
make
cd src
./ctest
Programming In Assembly Is The Best
I prefer to strip it in order to save space.
strip ctest
./ctest
Programming In Assembly Is The Best
The vi editor is certainly not the easiest and most user-friendly text editor, but because of its wide availability and existence on most linux systems
The vi editor operates in two basic modes:
when vi is started, it is in command mode. This mode allows you to enter commands to edit files or navigate your text file. However, you can only add or insert text by using the insert mode. from command mode, you can enter insert mode by typing the letter i. To return to command mode, use the Escape key
Editing text files:
vi filename
The filename can be a new or existing file. Remember that when you first start vi, you are initially in command mode. if you are working on a new file, you can immediately type the letter i to enter into insert mode and start adding text
If you are working on an existing file, you can use the cursor keys, or the h,j,k,l keys to navigate to where you want to begin.
You can use the CTRL-f or CTRL-b to move ahead or back a page
To insert text at an exact point, you can type the letter i for insert and start adding your text, Other options include the letter a, Which adds text next to the cursor location, and the letter o, which starts your text on the next line below the current one.
if you make a mistake while typing, you can use the backspace key to delete characters. if you want to delete characters in command mode, hit the Escape key, and then use the letter x to delete characters one at a time. If you want to delete an entire line, use the dd command. The command dw deletes only the entire word that your cursor is currently on
To save your file, hit the Escape key to enter command mode, and then type :w . To save and exit out the vi editor, use the :wq command. Or you can use an equivalent to the :wq command and type the letters ZZ in command mode to save and exit the file
If you want to exit without saving your file, use the :q command. This command asks you if you want to save the file before quitting. If you want to bypass the prompt, use the :q! command
No doubt that every single Yellow-Dog and Fedora user knows this awesome tool named YUM. In this article we will know what is YUM and how to use it and what are the advantages and disadvantages that exist in YUM. We will also talk a little bit about the yum.conf file. And finally we will get to know some useful links related to YUM. Here we go !. :)
YUM is an interactive, automated update program which can be used for maintaining systems using rpm . Meaning; You can use YUM to install new rpm packages or update exisiting packages. The word YUM stands for "Yellowdog Updater Modified".
YUM uses a configuration file named yum.conf this Configuration File is found in /etc/yum.conf. This yum.conf contains the configuration data needed by YUM . Such as the Debug Level, Cache Directory and finally and the most important are the URL's of the Fedora and YUM repositories which are needed inorder to get the requested packages from them. You can build up a yum.conf file by yourself but first you will need to check the "yum.conf" Manual Page in order to know more details concerning this configuration file
$ man yum.conf
Or you can get a Ready and Updated ''yum.conf''.
In this part we will get to know the basic commands and uses for YUM ... But first we have to configure our "yum.conf" file as stated in the above section and second you have to be using the root account as we will be dealing with rpm's installation and updates or you can switch from your account to the root account by using this command
$ su root
Now , some of the basic and important commands that you should know inorder To be able To use YUM.
# yum install Package1 Package2 Package3 ...
This command is used to install the latest version of a package or a group of packages while making sure that all the dependencies (The extra packages that the installed package needs inorder to work properly) are satisfied.
Here is a screenshot of YUM while it is installing "Kplayer" using this command that we've discussed:
Before you start getting packages from any repository using YUM ... You need To download the Header Files (YUM does this Automaticly). Every rpm has a header, that header contains a complete file list, package descriptions, lists of what features it provides, lists of what it requires, what it conflicts with ... In order for rpm to make a decision about what it will need to be installed, it needs the information in the header ... What Yum does is to copy the header from the repository, then the client part of yum uses those headers to determine what needs to be Installed/Upgraded/Erased.
# yum update Package1 Package2 Package3
This command updates the listed packages which are given as arguments to YUM while ensuring that all dependencies are satisfied ... If this command is ran without an argument list (Packages List) ... It updates every single package installed on your system ... Aint this pretty good ? hehe ... :)
# yum search [...]
This command is used to find any packages matching the argument you gave in the Package Name, Description, Summary. This command is useful if you only know a peice of the package name or somethin' related to it.
# yum remove Package1 Package2 Package3
This command is used to remove the specified packages from your system as well as removing any packages which depend on the package being removed.
Note These are the most important commands of YUM ... For more commands read the Manual page
$ man yum
find -name \*.cc | xargs wc -l):40141 and the size of codebase in YUM (find -name \*.py | xargs wc -l):4681.
hmmm ... Really didn't see any disadvantages ... Then the answer is NONE !
Nuthin's Left ... CYA Later
CVirus
مما لا شك فيه ان كل مستخدمى "fedora" و "yellow-dog" يعلمون هذه الادوات التى يطلق عليها yum و فى هذه القطعة سنعرف ما هو yum و كيفية أستخدامه و ما هى المميزات و العيوب الموجودة فيه. و سنتكلم عن ملف yum.conf"" و أخيرا سنتعرف على بعض الروابط المفيدة والمتعلقة بyum
هو متفاعل و هو من البرامج التى بها التحديث الذاتى و التى يمكنك أستخدامه فى حماية نظام التشغيل لمستخدم rpm. التى تعنى أنك تستطيع أستخدام yum لتحميل حزمة برامج ال rpm الجديدة او تحديث الحزمة الموجودة . فالكلمة yum تعنى "yellow dog updater modified"
يستخدم yum ملف اعداد يسمى "yum.conf" و هذا ملف الاعداد موجود فى /etc/yum.conf . و ملف "yum.conf" يحتوى على بعض بيانات الاعداد التى يحتاجها yum ,مثل مستوى التعديل, debug directory, و اخيرا و أهمها الurl's لfedora و مخزن او مستودع yum الذى نحتاجة للحصول على الحزمة المطلوبة له. يمكنك بناء ملف "yum.conf" بنفسك و لكن أولا ستحتاج للنظر اليدوى فى صفحة "yum.conf" لكى تعرف الكثير من التفصيل بالنسبة الى ملف الاعداد
$ man yum.conf
و يمكنك ان تحصل على yum.confجاهز ومتطور.
فى هذا الجزء سنتعرف على الاوامر الاساسية و أستخدمات yum ..... و لكن أولا يجب اعداد ملف "yum.conf" كما ذكرنا فى الفقرة السابقة . ثانيا يجب استخدام the root account كما انك ستتعامل مع تحميلات rpm و تحديثاتها او يمكنك تشغيل root account بهذا الامر
$ su root
الان, يجب ان تعرف بعض الاوامر الاساسية والمهمة التى تمكنك من استخدام yum
1. تحميل حزمة
# Yum install package1 package2 package3
هذا الامر يستخدم فى تحميل أحدث نسخة من الحزمة او مجموعة من الحزمة مع التأكد ان كل التبعيات (هى الحزمة الاضافية التى تحتاجها الحزمة الموجودة لتعمل بطريقة سليمة) مناسبة. هذه لقطة لyum أثناء تحميل "kplayer" بأستخدام الامر الذى كنا نناقشة
قبل الحصول على أى حزمة من اى مكان باستخدام yum ..... يجب تحميل The headers file (yum يفعل ذلك اتوماتيكى). كل rpm لديهم header ,فالheader يحتوى على قائمة ملفات كاملة, خصائص حزمة, قائمة بالاشياء المطلوبة, ما يتعارض معه...... من أجل ان الrpm تاخذ قرار عن ما تحتاج لتحميله, و تحتاج الملفات فى الheader ..... يقوم yum بنسخ المقدمة من قعدت البيانات و بعد ذلك يقوم عميل yum على الجهاز بتحديد ما سوف يحتاج التحديث, التثبيت, الحذف.
1. تحديث الحزمة
# Yum update package1 package2 package3
هذا الامر يقوم بتحديث الحزمة وهو يستخدم كمحور لyum اثناء التأكد من ان كل التبعيات مناسبة......و اذا عمل هذا الامر من غير قائمة الحزمة....ستقوم بتحديث كل حزمة بمفردها موجودة (متحملة) على نظام التشغيل
2. حذف الحزمة
# yum remove package1 package2 package3
هذا الامر يستخدم لحذف حزمة محددة من نظام التشغيل و حذف اى حزمة يعتمد على الحزمة المحذوفة. ملحوظة هذه هى اهم الاوامر لyum .....لمعرفة اوامر اكثر يجب قراءة بعض الصفحات
$ man yum
find -name \*.cc | xargs wc -l):40141
ومساحة the code base في yum
(find -name \*.py | xargs wc -l):4681
Nothin's Left ... CYA Later
Cvirus
Translated by mildewy
This is a category page, please don't edit this page, instead create a new book page and attach it here, or edit one of the pages listed below.
تحت كل اسم ستجد المناطق التى يتواجد فيها العضو و التوزيعات المتوفره لديه
ملاحظة:تأكد من قانونية اعادة توزيع التوزيعات التى لديك
بورسعيد و الاسماعلية
الزقازيق و أكاديمية العبور
المحله و طنطاوميت غمرواجا
سمنود و المنصورة و اجا وطنطا
طنطا
طنطا
دمياط و بورسعيد
ملحوظة:سعر الاسطوانة 5 جنيهات فقط و من فضلك تأكد من أن ترميز الرسالة يكون Unicode UTF-8 حيث أن جي ميل لا يدعم ترميز العربي الخاص بويندوز CP-1256
تحت كل اسم ستجد المناطق التى يتواجد فيها العضو و التوزيعات المتوفره لديه
ملاحظة:تأكد من قانونية اعادة توزيع التوزيعات التى لديك
أول فيصل - بالقرب من مرور فيصل - الجيزة - محمول 0101608639
Ask for any distro and we might be able to get.
مدينة نصر , المعادى
مدينة نصر
وادى حوف ,معادى, مدينة نصر, المهندسين ,حلوان ,مترو
(News)
مدينة نصر
الهرم- فيصل-جيزة-جامعة حلوان
-الجيزة -الحوامدية-حلوان الصف-العياط البدرشين
الهرم - مدينة نصر
مدينة نصروالقاهرة الجديدة والاكاديمية الحديثة بالمعادى
الهرم و الدقي و المعهد العالي للدرسات المتطورة
المهندسين , العجوزة , جيزة , إمبابة
المعادى، مصر الجديدة (phone: 010-1150977)
Always have latest releases of these:
المعادى &حلوان &وسط البلد & مدينة نصر
تحت كل اسم ستجد المناطق التى يتواجد فيها العضو و التوزيعات المتوفره لديه
ملاحظة:تأكد من قانونية اعادة توزيع التوزيعات التى لديك
الأسكندرية
الأسكندرية
الاسكندريه
Any other legal Distributions
اﻹسكندرية
من فضلك تأكد من أن ترميز الرسالة يكون Unicode UTF-8 حيث أن جي ميل لا يدعم ترميز العربي الخاص بويندوز CP-1256
I wish this page can help, i`ll try to say what i know about wiki syntax and html tags that can be used in our cute wiki. i know that my english and my explanation are not good at all but feel free to edit, fix mistakes and add new stuff it`s a Wiki ;-)
structured text is an easy method to input content to dynamic websites, it eleminates the need for using HTML for most content.
however structured text assumes only a few simple elements are required to format most content, anything that does not fit neatly with these few simple elements requires HTML, in drupal HTML and structured text can be mixed freely.
structured text is a Markup system, you write your content in plain text and put special symbols to mark elements like titles, links, images etc.
in structured text we try to focu on the structure of the content (sections, subsectios, paragraphs) and not on how it looks, a designer makes a general template that will change the way all content or some content looks like, but the content author should focus on the structure and meaning only.
it is every easy to learn, and very easy to edit and read and with the aid of a good designer the result can look very good.
Follows is the strucutred text or WikiSyntax that is supported in our drupal based website.
paragpraphs are easy, any lines of text without special marks are paragraphs, paragrpahs are seperated by empty lines, any consuctive lines not seperated by empty lines will be merged in one paragaph
this is a paragraph
this is a paragraph that was written on multiple lines
this is a rather longish paragraph we are trying to demonstrate how words will wrap when the text is rendered, do you think I can find enough stuff to say to make this a big paragraph, no a very big paragraph, or how about an extremly big paragraph, blah blah blah blah blah, etc.
use this:
this is a paragraph this is a paragraph that was written on multiple lines this is a rather longish paragraph we are trying to demonstrate how words will wrap when the text is rendered, do you think I can find enough stuff to say to make this a big paragraph, no a very big paragraph, or how about an extremly big paragraph, blah blah blah blah blah, etc.
lets have italics in the middle like this it will look darned pretty
Use this:
lets have italics in the middle ''like this'' it will look darned pretty
note it`s 2 of (') and it`s not (")
lets have bold in the middle like this it will look even prettier
Use this:
lets have bold in the middle __like this__ it will look even prettier
this is sooo important it is both bold and italics
like this:
''__this is sooo important__'' it is both __bold__ and ''italics''
this is the EGLUG website
Use this:
this is the [EGLUG | http://www.eglug.org] website
You can use this:
[Person's Name | mailto:email@eglug.org]
You can use this:
[http://www.gnu.org/graphics/gnu-head-sm.jpg]
This is how to do it:
[image:nodenumber]
Where nodenumber is the no# of the pic at the image galleries like mine has the url http://www.eglug.org/node/80 so i put the nodenumber as 80.
To place a large heading like this:
Use this:
!!! for titles
To place a 2nd level/medium heading like this:
Use this:
!! for sections
To place a small heading Like this:
Use this:
! for subsections
To make a bullet list of items:
Use this
* item 1 * item 2 * item 3
bullet lists can have sublists
use this
* item 1 * item 2 ** subitem 1 ** subitem 2 * item 3 ** subitem 1 *** subsubitem 1 *** subsubitem 2 ** subitem 2
To place numbered lists:
Use this:
#test #test2 #test3 #testN etcccccccccc
Nesting is possible, like this:
you can use this:
#foo ##fubar ##fu ### zot ### bot
you can mix the nesting of bullet and numbered lists:
Using this:
#foo ** bullet me ###[EGLUG SITE | http://www.eglug.org] ###[EGLUG | http://www.eglug.org] ** bullet me harder # fu
to make definition lists like this:
use this
;foo: a word used for any arbitirary example ;fubar: a word used for any arbitrary example of something that doesn't work ;recursive: adj. see recursive
where you put the word or expression you are defining between a semicolon and a colon followed by the definition statement.
definition lists are useful for glossaries, and for any key,value pairs (name, address, job, etc style information).
anywhere you want to add line breaks
like in this paragraph use:
anywhere you want to add line breaks %%% like in this paragraph use:
lists too
* line %%% breaks * work on %%% lists too
to add a horizental ruler like this:
use
----
To type code and commands:
$ls -la
Use this:
{{{ $ls -la }}}
you can also create WikiLinks, WikiLinks are links to pages based on their titles without knowing their address
for instance I might want to link to the Start of ArabDev Menya Training
like this:
for instance I might want to link to the [Start of ArabDev Menya Training]
[me not exist]
you can have simple tables using WikiSyntax
| table head 1 | table head 2 | table head 3 |
|---|---|---|
| table item 1,1 | table item 1,2 | table item 1,3 |
| table item 2,1 | table item 2,2 | table item 2,3 |
like this:
||table head 1 ||table head 2 ||table head 3 | table item 1,1 | table item 1,2 | table item 1,3 | table item 2,1 | table item 2,2 | table item 2,3
هذه المجموعة سجلت أساميها فى الدروس المجانية التى نقدمها فى ساقية عبد المنعم الصاوى و أكد كل منهم حضوره قبل بدء الكورس.
الاقبال على الكورسات شديد لدرجة اننا لا نجد الوقت الكافى لتغطية احتياجات الكل، أصدقائنا و أقاربنا عليهم الانتظار لمدة شهر و ربما لن يتمكنوا من حضور الكورس بعد ذلك.
و مع هذا فهده المجموعة لا تحترم المتطوعين و لا وقتهم، ولا احتياجات الاخرين.
ننشر هنا أساميهم بالكامل حتى لا نعرض نفسنا للاهانة ثانية، من لا يحترمنا لا يمكن أن ينفع مجموعتنا و من لا يحترم المتطوعين و رسالتهم لا يمكن أن ينفى مجتمع البرمجيات الحرة.
دفعة اخرى من المحترمين
فيما يبدو أن دفعات المحترمين لن تنتهى السؤال هو طالما المحترم سجل الكورس بمحض إراداته لماذا لم يائت ليستفيد ؟؟؟؟ أم أنه لم يكن بمحض إراداتك و سجلوا لك الكورس فى مكتب التنسيق
This group of people registered for our free courses in al sakia, and confirmed their intention to attend the course.
The demand for the courses is so high, we don't have the time or resources to cover it all, we have to ask our friends and relatives who are interested to wait for a whole month, and even then we're not sure they can attend the courses.
and yet this bunch does not respect our volunteers and does not respect their precious time, they do not respect the needs of others.
we publish their names here to avoid embaressing ourselves again, he who doesn't respect us cannot benefit our LUG and he who doesn't respect volunteerism cannot benefit the FOSS community. yet another bunch of respecatbles
تعتمد الشركات المصرية بصورة كبيرة على البرمجيات مغلقة المصدر لأداء اعمالها. وهناك الكثير من الأسباب لهذه الظاهرة وعلى رأسها نقص المعرفة و عدم الوعى ببدائل تلك البرامج فى عالم البرمجيات الحرة/مفتوحة المصدر. و نجد دائما أن مديرى و مالكى الشركات لا يثقون بالبرمجيات الحرة (ذات التكلفة المعدومة ) ويكونوا حذرين منها. و هناك دائما سؤال شائع وهو "كيف يمكن لنظام تشغيل حر و مجانى أن يكون بكفاءة الويندوز؟؟". تقريبا كل شخص يمتلك نوعا ما من الخبرة مع الويندوز و ذلك يشعره أن الحصول على الدعم التقنى سيكون سهل.
والآن, ما رأيك فى عرض شركة مصرية حقيقية تعتمد على البرمجيات الحرة مفتوحة المصدر وحدها؟؟
الأستاذ/عمر بهى الدين هو صاحب شركة أبو يوسف التى تعمل فى تجارة الملابس الجاهزة وهو يعتمد اعتماد تام فى عمله منذ سنوات عديدة على الجنو/ليونكس و البرمجيات الحرة/مفتوحة المصدر, وهو راض جدا عن مستوى الأداء لهذه البرمجيات. وقد نسى تماما المعانة مع الفيروسات وعدم استقرار و تلف النظام, و وفر العديد من الأموال. إليكم القصة بالتفصيل:
منذ ست سنوات قام أحد أقارب الأستاذ/عمر ( والذى كان يدرس بالولايات المتحدة الأمريكية ) بعرض نظام تشغيل غريب على الأستاذ/عمر و أخوه, وكان هذا النظام هو جنو/ليونكس الذى لم يكون سهل أو معروف فى مصر كما هو الحال الآن.
و فى ذلك الوقت كان نظام تشغيل ويندوز موجود بالفعل فى شركة الأستاذ/عمر على أجهزة الشبكة الداخلية (2 كمبيوتر سطح مكتب و 2 كمبيوتر محمول) و لكن كان هناك جهاز كمبيوتر 386 يعمل بنظام تشغيل جنو/ليونكس كخادم ملفات فى الشبكة الداخلية. و بفضل مرونة جنو/ليونكس كان النظام يعمل بسلاسة تامة على 386 بعد غلق الخدمات الغير ضرورية و الغير مستخدمة. وكان أيضا يستخدم برنامج FoxPro لقواعد البيانات و الحزمة المكتبية من ميكروسوفت على جميع الأجهزة التى تعمل بنظام ويندوز الموجودة فى الشركة. ولكن كل ذلك على وشك التغير.
و حدث هذا التغير منذ ثلاث سنوات عندما قامت مباحث المصنفات الفنية بإرسال خطاب الى الأستاذ/عمر تطلب منه ضبط أوضاعه و التخلص من أى برمجيات غير مرخصة إن وجدت و إلا سيواجه غرامات مالية كبيرة و مصادرة للمعدات و الأجهزة, و ربما أيضا محاكمة قانونية. فاختار الأستاذ/عمر أن ينسى كل هذه الأمور و يوفر المال بالأنتقال الى البرمجيات الحرة/مفتوحة المصدر و نظم جنو/ليونكس والاعتماد التام عليها فى شركته.
وبدأ بالنظام المحاسبى , و بعد النظر السريع فى كلا من Nola و Compier و SQL-Ledger وقع اختيار الأستاذ/عمر SQL-Ledger لأنه نظام محاسبى قوى يمكنه أداء كافة أنواع المعاملات المالية.
و ايضا يستخدم الأستاذ/عمر الحزمة المكتبية من OpenOffice.Org (وفى بعض الأوقات Koffice ليتمكن من قراءة الملفات ذات امتدادات الحزمة المكتبية من ميكروسوفت مثل *.doc و *.rtf), و يستخدم سطح المكتب KDE.
و يستخدم فى الشركة نظام ليونكس ماندريك 10 ( بعد تجربة رد هات و سلاكوير و دبيان ) و تم أختيار ماندريك لسهولة استخدامه و دعمه للعربية منذ وقت طويل. وفى الوقت الحاضر يفكر الأستاذ/عمر بالانتقال إلى دبيان بسبب الثابت الكبير المعروفة به هذه التوزيعة.
و لقد واجهت الأستاذ/عمر بعض المشاكل بالنسبة لعتاد الكمبوتر ودعمه فى نظام جنو/ليونكس ( بعض مشاكل كروت الصوت القديمة والتى تم دعمها فيما بعد ), و أحد تلك المشكلات هى مشكلة كارت المودم الداخلى , وتم تخطى هذه المشكلة باستخدام مودم خارجى و الأنتقال إلى ADSL فور إتاحته.
و يتم الحصول على الدعم التقنى من المواقع المجانية لمجتمع البرمجيات الحرة/مفتوحة المصدر على شبكة الانترنت, فى بعض الأحيان يكون من الصعب الحصول على الأجوبة و لكن كل ما يحتاجوا إليه هو القليل من البحث.
و الأستاذ/عمر راض كل الرضا عن أداء البرمجيات الحرة/مفتوحة المصدر. فبسبب انعدام الفيروسات و صغر احتمال اختراق النظام على عكس الويندوز يقول الأستاذ/عمر أنه سعيد بالأنتقال إلى جنو/ليونكس لأنه لم يتطلب مهارات خاصة من الموظفين فكل مايقومون به هى أشياء بسيطة مثل التى أعتادوا عليها فى نظام ويندوز مثل ملف---->أفتح. وأيضا الوجهات الرسومية و القوائم و مجالات إدخال البيانات و ما إلى ذلك, كلها أشياء تتميز بسهولة الأستخدام وشبيهة بتلك الموجودة على نظام الويندوز.
و على الرغم من أن الأستاذ/عمر و موظفيه غير مبرمجين فهم أيضا ليسوا مجرد مستخدمين عادين , ففى أحيان كثيرة يجد الأستاذ/عمر نفسه يستخدم سطر الأوامر و أدواته للبحث عن بعض الأشياء وهو يشعر أن ذلك أسرع من استخدام الواجهة الرسومية.
عندما واجه الأستاذ/عمر الأحتياج إلى برنامج/خاصية و لم يجده فى تطبيقات البرمجيات الحرة/مفتوحة المصدر, بدأ فى التفكير فى طريقة يستطيع من خلالها المساعدة فى حل تلك المشاكل. كانت أحدى هذه المشاكل هى تحويل النظام المحاسبى الى اللغة المحلية, و أدرك الأستاذ/عمر فى الحال أنهم إذا لم يقوموا بالتعديل بأنفسهم فلن يتم حل هذه المشكلة أبدا, وبعد معرفة أن العملية بسيطة جدا قام هو بالتعريب بنفسه, و حتى الآن لا يزال الأستاذ/عمر قائما على الترجمة العربية لبرنامج SQL-Ledger.
و فى الواقع إن البرمجيات الحرة/مفتوحة المصدر تصلح لكافة الأعمال. و ينصح الأستاذ/عمر مالكى الأعمال الصغيرة الآخرى بالانتقال إلى عالم البرمجيات الحرة/مفتوحة المصدر إن كانوا يستطيعون التعمق قليلا فى عالم الكمبيوتر (أو ايجاد الموظفون القادرون على ذلك).
و نشكر الأستاذ/عمر على تعاونه (البرمجيات الحرة/مفتوحة المصدر قائمة على التعاون و المشاركة) و نشكره لوقته الثمين وعرضه لبعض الخصائص المفيدة جدا لبرنامج SQL-Ledger.
ونأمل أن هذة المقابلة الصغيرة تشجع مالكى الأعمال الصغيرة الآخرين على الأنتقال إلى البرمجيات الحرة/مفتوحة المصدر و التمتع بفوائدها الكثيرة مثل الثبات و الأمان و توفير الأموال. فربما تكون رؤية شخص قام بذلك بالفعل هى كل ما نحتاجه لأخذ تلك الخطوة.
رجاء اخطارنا أذا كنت تعلم بأى حالات آخرى لاستخدام أو تطوير البرمجيات الحرة/مفتوحة المصدر حتى نتمكن من تغطيتها.
وهذة بعض صور SQL-Ledger أثناء أداء بعض الوظائف.
ملاحظة: لم نتمكن من الحصول على صورة من خطاب المصنفات.
فاتورة مبيعات جاهزة للطباعة
أنشاء الفواتير ويمكن تغيير العملة و ايضا يمكن اضافة عملات ليتم التعامل بها فى الفواتير و يمكن تعديل الدخلات من خامات أو خدمات و كذلك المنتجات و المخرجات لتناسب نشاط الشركة
هذا بيان دخل للشركة (تجريبى)
أحمد الشربينى و أحمد المكاوى
الأستاذ/عمر يشرح بعض الوظائف فى برنامج SQL-Ledger (شريف ناجى و أحمد الشربينى )
هذا جهاز الكمبيوتر الثانى فى الشبكة الداخلية