Version Numbering & License Terms

Version Numbering Before digging into programming, we’d like to comment on the version numbering scheme used in Linux and which versions are covered. First of all, note that every software package used in a Linux system has its own release number, and there are often interdependencies across them: you need a particular version of one … Read more

Security Issues

Security is an increasingly important concern in modern times. We will discuss security-related issues as they come up. There are a few general concepts, however, that are worth mentioning now. Security has two faces, which can be called deliberate and incidental. One security problem is the damage a user can cause through the misuse of … Read more

Classes of Devices and Modules

The Unix way of looking at devices distinguishes between three device types. Each module usually implements one of these types, and thus is classifiable as a char module, a block module, or a network module. This division of modules into different types, or classes, is not a rigid one; the programmer can choose to build … Read more

Splitting the Kernel

In a Unix system, several concurrent processes attend to different tasks. Each process asks for system resources, be it computing power, memory, network connectivity, or some other resource. The kernel is the big chunk of executable code in charge of handling all such requests. Though the distinction between the different kernel tasks isn’t always clearly … Read more

DEVICE DRIVERS

The Role of the Device Driver As a programmer, you will be able to make your own choices about your driver, choosing an acceptable trade-off between the programming time required and the flexibility of the result. Though it may appear strange to say that a driver is “flexible,” we like this word because it emphasizes … Read more

Security Manager vs Access Controller

The access controller has been introduced in the Java 2 platform. Before the access controller existed, the security manager had to rely on its internal logic to determine the security policy needed to be in effect, and any change in the security policy meant changing the security manager itself. Prior to Java 2, implementing customized … Read more

Java 2 Class Loading Mechanism

The class loading mechanism plays a critical role in Java security since the class loader is responsible for locating and fetching the class files, consulting the security policy, and defining the appropriate permissions associated with the class object. In JDK 1.1, local code and correctly signed remote code were generally trusted to have full access … Read more

Java 2 Protection Domain and Permissions Model

A protection domain can be scoped by a set of objects that are currently directly accessible by a principal, where a principal is an entity in the computer system to which permissions are granted. A principal can access objects in the protection domain by virtue of the permissions it enjoys over the objects in the … Read more

Evolution of the Java Security Model

The Java programming language is one of the fastest-growing technologies in use on the Internet today. The principal reason why Java has scored over other languages is the promise that an application written once in Java can be run from any machine that has a JVM. From the early stages of Java development, it was … Read more

The New Java Security Model

The Need for Java Security From its inception, Java has shown that it was designed for the net. Java brought about, for the first time on a large scale, the concept of dynamic loading of code from a source outside the system. Though this is very powerful, and adds several features to the system using … Read more