LINUX NEWS
Resources & Links From CramSession.com
Thursday, November 1, 2001
TABLE OF CONTENTS
1) Sean’s Notes
2) Linux News
BMC PATROL to Support Linux
VM Disputes
Linus Responds to VM Questions
A Look at SuSE 7.3 Professional
3) Linux Resources
Using Samba: Free On Line
Programming Resources
Distro Watch
Kernel Newbies FAQ
Linux Performance Tuning
4) App o’ the week
~~~~~~~~~~~~~~~~~~~~~~ ADVERTISEMENT ~~~~~~~~~~~~~~~~~~~~~~~
Speed up your test success - this innovative and unusual study method increases learning, retention and faster recall…
Click Below To Read More! http://ad.brainbuzz.com/?RC06&AI%47
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For information on how to advertise in this newsletter please contact mailto:adsales@CramSession.com or visit http://cramsession.com/marketing/default.asp
1) Sean’s Notes
X-Windows was developed around 1984 as a way to add a GUI to Unix. Since then it’s evolved considerably, and currently runs on almost any hardware you can throw at it. This is, in a large part, due to its superior layered design, which I’ll do my best to explain this week.
X-Windows was designed with “network transparency” in mind. In a nutshell, it doesn’t matter if the monitor sits on the same desk as the computer, or across the world. It’s a client- server application, so all that’s required is that the client be able to talk to the server.
To explain how this works, it is helpful to define the client and the server. The server is the part that displays the images to a screen, and accepts the keyboard and mouse actions. The client is the application itself. Backward? Maybe. It seems kind of odd that you run a client on a server to connect to a server on a client, but that’s just the way it is.
The client and server speak the aptly-named X Protocol. This protocol is a basic drawing language, lines, clicks, and such. The server implements this protocol and ties it to the pixels on the screen. Thus, you can have a server for Windows, which needs no knowledge of Unix to run Unix applications in a local window (though, it is vital to note that the application itself (client) runs on the Unix side). A quick check of tucows.com shows 5 Windows X servers. On the Unix side, XFree 86 supports many video cards and frame buffers, not to mention the commercial X Servers that come with Solaris and the like. They all implement the X protocol, from the client’s perspective, it doesn’t matter. It all works.
Having each X client write the network code to speak the X protocol would not be good. Thus, Xlib was developed as a C interface to the X protocol. It’s not great, but it’s something. Rather than having to worry about the network code, using Xlib means that the programmer’s job is made more simple.
Xlib is still fairly bare metal; if you want to create a window, you’re responsible for everything about it. Xt Intrinsics bunches common things together into an easier to use API, and also creates “widgets”. A widget can be anything from a Window to a text entry box. Xt itself doesn’t actually make the widgets itself, it just provides the hooks for other people to do it.
Motif, Athena, GTK, and Qt are widget sets, AKA toolkits. They add functionality in the form of widgets, and tie in other functions of the lower layers to make the job easier for the programmer. I should note that there’s no restriction saying that a widget set can’t bypass Xt and go to Xlib, or even for a client to use GTK, Xt, and Xlib simultaneously. These widget sets implement the consistent look and feel you see on your desktop. Thus, you can change one configuration file, and have every application that uses, say, GTK, change appearance.
On top of all of this is where applications (clients) are built. Whew!
Think we’re done? Nope. So you’ve got a pretty looking window. It’s got a handy application running inside. You can’t move it around your screen. It sits at the top left, and is immovable. We need something that handles the desktop.
A Window Manager (WM) handles all the various windows. Examples of window managers are sawfish, enlightenment, KDE’s WM, NeXt Step, and tons of others. The WM marshals around the windows, adds in X clients of its own that do menubars, launchers, and other desktop-type things. Most WM’s implement virtual desktops, which allow you to have several active screens, but only display one at a time.
There is still yet another component that sits just under the Window Manager (sorry for skipping a step). It’s not necessary, but it “adds value”, as it were. The desktop environment, these days GNOME or KDE, allows interaction between applications, like drag and drop, and application registration. As long as a Window manager is compliant with one of the above, it can handle the extra features. If it isn’t, then that’s OK too.
This may seem like a big, ugly, and complex system when compared to Microsoft Windows. It’s big and complex, but it’s definitely not ugly. Since each layer builds upon the layers below it, using strictly defined APIs, we can get our network transparency for free. Display that CAD program on your Windows box. Use an old 486 as an XServer, and harness the power of that multiprocessor system.
This layering approach is found all over UNIX; kernel modules use it, and so do filesystems (i.e. mounting a file containing a CD image). By using this methodology, systems programmers can make sweeping changes in one part without affecting the others. Developers can use the toolkit of their choice, knowing that the results will work anywhere. Applications can be written without worrying about being in a terminal services environment.
With certain exceptions for hardware acceleration, X runs entirely in user land. A misbehaving X application might crash your session, but it’s very difficult to crash your system. This translates to fewer reboots, and a more stable system. It also means that a GUI is optional, or at least swappable. Don’t need fancy windows on your server that sits in a closet? Don’t run X.
Basic Xlib programming: http://tronche.com/gui/x/xlib-tutorial/
Explanation of the layers: http://www.google.com/search?qche:pKM5kfXwRyI:ccsweb.njit.edu/~jso wers/688/lectures/lecture_2/lesson2.ppt&hl=en&start
Good picture of the layers: http://www.cs.uregina.ca/~cdshaw/X11/intro.html
Long live the Penguin,
Sean mailto:swalberg@cramsession.com
Visit the Linux News Board at http://boards.brainbuzz.com/boards/vbt.asp?b2
2) Linux News
BMC PATROL to Support Linux
PATROL is a product used for network and desktop management. They’ve recently announced that their product will support Linux servers, and that they’ve entered a strategic partnership with IBM to support the ZSeries and mainframe boxes running Linux.
http://www.bmc.com/corporate/nr2001/102301_1.html
VM Disputes
I’m not an avid follower of the kernel mailing list, but when certain threads make it to Slashdot, I take notice. I’m more impressed with a single guy rewriting the entire virtual memory system than I am with the disputes over which one is better, but this article explains the importance of the VM system, and how it affects performance.
http://www.byte.com/documents/s36/byt20011024s0002/1029_moshe.html
Linus Responds to VM Questions
Hot on the tail of the last item is Linus’ response. I bring it to you mainly because he sets out some pretty clear milestones for the 2.5 Kernel and where he’d like to go with the VM system there.
http://www.newsforge.com/article.pl?sid/10/31/224202
A Look at SuSE 7.3 Professional
SuSE is unique in that it’s one of the last distributions to support the SPARC and Alpha architectures, in addition to the good old x86. This review is worth a read if you’re not familiar with SuSE, and what it has to offer.
http://www.firstlinux.com/articles/suse7.3/
3) Linux Resources
Using Samba: Free On Line
O’Reilly’s “Using Samba” book has been made available as a free online download in both HTML and PDF formats. This is quite the comprehensive work on the topic, so if you’re having Samba troubles, this is a good place to start looking!
http://www.oreilly.com/catalog/samba/
Programming Resources
If you have aspirations of becoming a programmer, but don’t know how to take advantage of the tools that Unix offers, start here. There are tutorials ranging from how to compile a program, through to debugging, and on to threads, sockets, and graphics.
http://users.actcom.co.il/~choo/lupg/tutorials/index.html
Distro Watch
I can’t believe I haven’t seen this site before. All the latest releases in distributions and major software, along with some comparisons and rankings.
http://www.distrowatch.com/
Kernel Newbies FAQ
Wondering what the differences are between the AC and Linus kernels? How do you apply a patch? What’s the deal with modules? This, and a whole lot more, are answered in the kernel newbies FAQ.
http://www.kernelnewbies.org/faq/index.php3
Linux Performance Tuning
A reader sent in this wonderful link to performance tuning hints. Many different systems are covered, such as file serving, web serving, and kernel tweaks. It’s updated frequently, so you can be sure you’ll have the latest info on how to squeeze the most performance out of your machine.
http://linuxperf.nl.linux.org/
4) App o’ the week
EBay is a pretty interesting place; a friend of mine has picked up lots of old UNIX workstations for quite cheap. The more I look at the web page, though, the more I realize things would be a lot easier if there were a program to manage the auctions and keep a watch on things for me. Surprisingly enough, there are several Unix programs out there that can do this. One of them, bidwatcher, runs in X, can watch your auctions, bid on your behalf, and more!
http://sourceforge.net/projects/bidwatcher/
(C) 2001 BrainBuzz.com. All Rights Reserved.
This message is from CramSession.com.
You are currently subscribed to the Hottest Linux News and Resources as: sean@ertw.com
To un-subscribe from this newsletter by e-mail: send a blank email message to: mailto:leave-linuxnews-3825955Y@list.cramsession.com
To Subscribe to this newsletter by e-mail: send a blank email message to: