Speakup in userspace

Albert E. Sten-Clanton albert.e.sten_clanton at verizon.net
Thu Jun 21 09:25:27 EDT 2007


Thanks very much for the explanation below.

Al
----- Original Message ----- 
From: "Doug Sutherland" <doug at proficio.ca>
To: "Speakup is a screen review system for Linux." <speakup at braille.uwo.ca>
Sent: Wednesday, June 20, 2007 2:53 PM
Subject: Re: Speakup in userspace


> Consider the linux that most of use to be a "protected mode" 
> operating system as opposed to "real mode". Protected mode
> allows access to things like virtual memory, multi-threading, 
> and priviledge levels not available in real mode. Protected 
> mode has been the standard on x86 PCs since the 80286.
> 
> A protected mode system segregates virtual memory into 
> kernel space and user space. Kernel space is strictly reserved
> for running the kernel, device drivers, and kernel extensions.
> It is usually the case that kernel space memory is not swapped
> to disk since that is much slower, which user space memory 
> can be swapped to disk.
> 
> User space or "userland" processes cannot access the memory
> of other processes, the basis of memory protection which 
> makes linux very stable. Prior to win2k, the windows os was 
> not a protected memory system, hence the freezing up or 
> crashing of whole system from one bug in one driver or app.
> A user space process, although restricted in memory access,
> can request the kernel to map part of its memory onto its own
> space, and can also access shared memory. 
> 
> The kernel space is the direct hardware access space along
> with the management software that controls virtual memory,
> DMA, threads, processes, etc. You have kernel processes 
> and user processes. The kernel processes are supposed to 
> be basic things like the direct interface to hardware. User
> space is where applications run. So there is kernel space 
> memory, threads, and processes, and user space memory, 
> threads, and processes. 
> 
> Consider ALSA sound as an example. It's in the kernel but
> it's also not in the kernel. There are kernel drivers and there
> are user space libraries. The alsa-lib delegates sound control
> to user space. This allows application developers to do all 
> kinds of things without touching kernel code. The alsa-lib 
> provides various functionality like software mixing, support
> for the older OSS API, and user specific configuration, and
> it is multi-thread safe, essential for complex audio programs.
> 
> Alsa may not be the best example, but the idea is separating
> the core functionality from the application layer. Let's say I
> create an API for writing text to a speech synth. The code 
> that actually talks to the synth would ideally be abstracted 
> from the API such that the identical programming interface
> works for any synth using any protocol like serial or usb.
> Some hardware may not implement all parts of the API but
> where there are same functions the API should look the 
> same. An example of a very well abstracted API is the 
> Java API. It had to be done that way in order to make the
> programs portable on different systems. I may be biased 
> because I used to work there, but if you look at how much
> work was done on abstraction it's the most impressively 
> abstracted API around. I'm not talking about javascript, 
> that's like a virus hehe. Unfortunately Sun wanted Java to 
> be the answer to everything everywhere which it is not and
> will never be, and Java, like many good ideas, has become
> overly bloated and complex, although at least the various 
> parts of it are separate APIs, and the compact versions 
> like J2ME are still very efficient. They run on almost all 
> phones now. There is a good reason for this. I wrote some
> apps on blackberry and it was a breeze to do so. Compared
> with doing it in C or ASM it's an entirely different world.
> 
>   -- Doug
> 
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
> 
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.472 / Virus Database: 269.9.1/854 - Release Date: 6/19/2007 1:12 PM
> 
> 




More information about the Speakup mailing list