<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7999882</id><updated>2011-12-14T21:40:55.116-05:00</updated><title type='text'>Atlas OS</title><subtitle type='html'>Thus begins my plan to take over the world.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7999882.post-109344739566951653</id><published>2004-08-25T11:13:00.000-04:00</published><updated>2004-08-25T11:25:04.160-04:00</updated><title type='text'>Build 1: Hello World!</title><content type='html'>I defined my abstract display, but couldn't write the driver because too many details are fuzzy.  I need more of the underlying stuff to be figured out first, which brings me to Build 1, Hello World!  The idea here is to write a Hello World program in Java, then write all the supporting classes with only required methods implemented.  I've already done this, leading to the System, String, PrintStream, FilterOutputStream, and OutputStream classes (in Java) and the following Atlas OS classes: atlas.boot.IA32 (the loader), and in atlas.dev, we have Device, PortRange, and Console.  That's about all we need to run Hello World, except the platform dependent crap-- the boot loader, the JVM interpreter, and the PortRange implementation.  In order to meet my goal sooner than later, I'm opting for total inefficiency and lack of security.  After it actually does something, I'll see about the rest.&lt;br /&gt;&lt;br /&gt;Hello World!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109344739566951653?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109344739566951653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109344739566951653' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109344739566951653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109344739566951653'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/build-1-hello-world.html' title='Build 1: Hello World!'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109330923470705855</id><published>2004-08-23T20:43:00.000-04:00</published><updated>2004-08-23T21:02:14.526-04:00</updated><title type='text'>...or Defining an Abstract Display Driver</title><content type='html'>OK, so the ATI miniport driver thing ended when I started reading about windows display driver architecture. Modern video card programming is probably my biggest weak point, which is why I chose to hit that first. Anyway, it turns out that Windoze uses a layered driver approach with GDI, a display driver, a miniport driver, and a port driver. I've been vaguely aware of this, but didn't realize the details until trying to reverse the ATI driver. GDI is responsible for abstracting the details for user applications; it issues commands to the display driver and the miniport driver. The display driver has the job of actually rendering graphics, while the miniport driver handles configuration and mode setting type IO requests. The port driver is provided by Windoze and handles the bus interface (PCI, ISA, AGP, etc.). I'm happy to ignore the bus interface for now, but instead of simply copying Microsoft, I need to define my driver model. They have a pretty good reason for layering it the way they do, but this needs to look a little different within the Java framework.&lt;br /&gt;&lt;br /&gt;Java already has a few GDI-esque libraries: Graphics2D being the most obvious. However, it is not derived from the device hierarchy and is not exactly what I'm looking for. So, I think the appropriate approach would be to design an AbstractDisplay class which offers functions like path stroking and filling, bit-blitting, color settings, etc. Then I can extend the abstract class to the equivalent of a MS display driver. Most display cards transfer data by mapping video memory onto system memory in a "linear frame buffer". All rendering operations will be alike for cards that support a LFB, so maybe one extension would be a LFBDisplay. Other cards have hardware accelerators, so maybe an AcceleratedDisplay. Then for specific card families, these devices can be further extended to support the nitty-gritty configuration details. Perhaps my ATI card would be an AtiRageMobiliyDisplay, which extends LFBDisplay, which extends AbstractDisplay. Then packages like Graphics2D can lookup the default AbstractDisplay, and perform all rendering functions to it. This is my idea given what I know so far-- it is likely to change as I go, and I'm learning to accept that.&lt;br /&gt;&lt;br /&gt;So in the interest of both simplicity and genericism, I'm dropping the ATI project in favor of first implementing a generic VGA driver, after I define the abstract display class, of course. Mmmm, tasty details.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109330923470705855?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109330923470705855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109330923470705855' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109330923470705855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109330923470705855'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/or-defining-abstract-display-driver.html' title='...or Defining an Abstract Display Driver'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109302557803511371</id><published>2004-08-20T14:01:00.000-04:00</published><updated>2004-08-20T14:12:58.036-04:00</updated><title type='text'>Reverse Engineering an ATI Miniport Driver</title><content type='html'>OK, I decided to hold off on the Intel drivers, and instead go straight for the hard part. If I can do this then the Intel stuff will be easy, and I'll be well on my way to getting something started. So I downloaded a miniport driver for my Rage P/M Mobility AGP 2x card. I have disassembled the 70kb file and am wading through all of the defined miniport interfaces to examine how the device works. I'm trying to approximately rewrite the thing in Java as I go, but it's pretty messy-- there are at least 267 functions. It's just complex enough to be a total pain, but barely easy enough for me to attempt it. On the plus side, the driver I got appears to support many ATI display cards, so the end product might actually be useful to someone else.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109302557803511371?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109302557803511371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109302557803511371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109302557803511371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109302557803511371'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/reverse-engineering-ati-miniport.html' title='Reverse Engineering an ATI Miniport Driver'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109292848964138304</id><published>2004-08-19T11:04:00.000-04:00</published><updated>2004-08-20T14:00:40.246-04:00</updated><title type='text'>Device Scan Successful</title><content type='html'>I scanned my WinBook which I will use for initial testing, and it gave me the following list:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Intel 440BX/ZX AGPset Host Bridge [82443BX/ZX]&lt;br /&gt;Intel 440BX/ZX AGPset PCI-to-PCI bridge [82443BX/ZX]&lt;br /&gt;ESS Technology Solo-1 PCI AudioDrive family [ES1938/41/46]&lt;br /&gt;Agere Systems LT Winmodem 56K [1456VQH19R-1(INT)]&lt;br /&gt;Intel PIIX4/4E/4M ISA Bridge [82371AB/EB/MB]&lt;br /&gt;Intel PIIX4/4E/4M IDE Controller [82371AB/EB/MB]&lt;br /&gt;Intel PIIX4/4E/4M USB Interface [82371AB/EB/MB]&lt;br /&gt;Intel PIIX4/4E/4M Power Management Controller [82371AB/EB/MB]&lt;br /&gt;O2Micro CardBus Controller [OZ6832/3]&lt;br /&gt;O2Micro CardBus Controller [OZ6832/3]&lt;br /&gt;ATI Technologies Rage P/M Mobility AGP 2x [01541014]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;nbsp;&lt;br&gt;I think I'll write the intel drivers first since they hook up to core services.&lt;br /&gt;&lt;br /&gt;Here is the source code for reference:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;		bits 16&lt;br /&gt;		org 7C00h&lt;br /&gt;&lt;br /&gt;pci_scan&lt;br /&gt;		mov	ax,cs&lt;br /&gt;		mov	ds,ax&lt;br /&gt;		mov	ax,0B800h&lt;br /&gt;		mov	es,ax&lt;br /&gt;		xor	di,di&lt;br /&gt;		&lt;br /&gt;		mov	dx,0CF8h&lt;br /&gt;		mov	eax,80000000h&lt;br /&gt;		mov	ebx,eax&lt;br /&gt;		out	dx,eax&lt;br /&gt;		in	eax,dx&lt;br /&gt;		cmp	eax,ebx&lt;br /&gt;		jne	.error&lt;br /&gt;	&lt;br /&gt;  .again	mov	eax,ebx&lt;br /&gt;		out	dx,eax&lt;br /&gt;		add	dx,4&lt;br /&gt;		in	eax,dx&lt;br /&gt;		sub	dx,4&lt;br /&gt;		&lt;br /&gt;		cmp	eax,-1&lt;br /&gt;		je	.no_dev&lt;br /&gt;		call 	print_dev&lt;br /&gt;  .no_dev&lt;br /&gt;  		test	ebx,700h&lt;br /&gt;		jnz	.next&lt;br /&gt;		&lt;br /&gt;		mov	eax,ebx&lt;br /&gt;		mov	al,0Ch&lt;br /&gt;		out	dx,eax&lt;br /&gt;		add	dx,6&lt;br /&gt;		in	al,dx&lt;br /&gt;		sub	dx,6&lt;br /&gt;		test	al,80h&lt;br /&gt;		jnz	.next&lt;br /&gt;		&lt;br /&gt;		add	ebx,800h&lt;br /&gt;  .fin		cmp	ebx,80080000h&lt;br /&gt;		je	.done&lt;br /&gt;		&lt;br /&gt;		jmp 	short .again&lt;br /&gt;		&lt;br /&gt;  .next		add	ebx,100h&lt;br /&gt;		jmp	short .fin&lt;br /&gt;&lt;br /&gt;  .done		mov	si,.dn_msg&lt;br /&gt;  		mov	cx,(.dn_msg_end-.dn_msg) / 2&lt;br /&gt;  		rep	movsw&lt;br /&gt;  		jmp	short .halt&lt;br /&gt;  		&lt;br /&gt;  .error	mov	si,.err_msg&lt;br /&gt;  		mov	cx,(.err_msg_end-.err_msg) / 2&lt;br /&gt;  		rep	movsw&lt;br /&gt;  .halt		jmp	short .halt&lt;br /&gt;&lt;br /&gt;  .dn_msg	db	'D',7,'O',7,'N',7,'E',7&lt;br /&gt;  .dn_msg_end&lt;br /&gt;  .err_msg	db	'N',7,'O',7,' ',7,'P',7,'C',7,'I',7&lt;br /&gt;  .err_msg_end&lt;br /&gt;&lt;br /&gt;print_dev&lt;br /&gt;		mov	ecx,eax&lt;br /&gt;		mov	eax,ebx&lt;br /&gt;		bswap	eax&lt;br /&gt;		mov	al,ah&lt;br /&gt;		call	print_al&lt;br /&gt;		mov	ax,073Ah&lt;br /&gt;		stosw&lt;br /&gt;		shr	eax,16&lt;br /&gt;		push	ax&lt;br /&gt;		shr	al,3&lt;br /&gt;		call	print_al&lt;br /&gt;		mov	ax,073Ah&lt;br /&gt;		stosw&lt;br /&gt;		pop	ax&lt;br /&gt;		and	al,7&lt;br /&gt;		call	print_al&lt;br /&gt;		mov	ax,072Dh&lt;br /&gt;		stosw&lt;br /&gt;		mov	eax,ecx&lt;br /&gt;		xchg	al,ah&lt;br /&gt;		call	print_al&lt;br /&gt;		mov	al,ah&lt;br /&gt;		call	print_al&lt;br /&gt;		mov	ax,073Ah&lt;br /&gt;		stosw&lt;br /&gt;		shr	eax,16&lt;br /&gt;		xchg	al,ah&lt;br /&gt;		call	print_al&lt;br /&gt;		mov	al,ah&lt;br /&gt;		call	print_al&lt;br /&gt;		add	edi,160-18*2&lt;br /&gt;		ret&lt;br /&gt;&lt;br /&gt;print_al	push	ax&lt;br /&gt;		push	ax&lt;br /&gt;		shr	al,4&lt;br /&gt;		add	al,90h&lt;br /&gt;		daa&lt;br /&gt;		adc	al,40h&lt;br /&gt;		daa&lt;br /&gt;		mov	ah,7&lt;br /&gt;		stosw&lt;br /&gt;		pop	ax&lt;br /&gt;		and	al,0Fh&lt;br /&gt;		add	al,90h&lt;br /&gt;		daa&lt;br /&gt;		adc	al,40h&lt;br /&gt;		daa&lt;br /&gt;		mov	ah,7&lt;br /&gt;		stosw&lt;br /&gt;		pop	ax&lt;br /&gt;		ret&lt;br /&gt;&lt;br /&gt;times $$+510-$	db 0&lt;br /&gt;		dw	0AA55h&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109292848964138304?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109292848964138304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109292848964138304' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109292848964138304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109292848964138304'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/device-scan-successful.html' title='Device Scan Successful'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109292105301949155</id><published>2004-08-19T08:59:00.000-04:00</published><updated>2004-08-20T13:57:56.086-04:00</updated><title type='text'>First Step: Drivers</title><content type='html'>My first step will be to write device drivers for my system, and try to organize them hierarchically as I go, providing abstract implementations for many vendor specific devices.&lt;br /&gt;&lt;br /&gt;The nitty-gritty:  I'm going to write a short assembly language program that I can fit in a floppy boot sector and which will scan the PCI bus and print out a list of all devices found.  Then I will look those devices up in a PCI vendor/device database, and try to find existing drivers/documentation that I can use to create my own drivers.&lt;br /&gt;&lt;br /&gt;So far, I think that the basic hardware-independant functions that need to be supported for building device drivers is: IRQ mapping, I/O port access, memory-mapped I/O access, and maybe DMA but that might work best as a separate device.  In writing my Java device drivers, I will use the following methods that I assume are supported natively:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class Device {&lt;br /&gt;  void addInterruptListener(InterruptListener l);&lt;br /&gt;  void removeInterruptListener(InterruptListener l);&lt;br /&gt;  IORange getPortRange(long base, int len);&lt;br /&gt;  IORange getMemoryRange(long base, int len);&lt;br /&gt;}&lt;br /&gt;interface InterruptListener {&lt;br /&gt;  void interruptOccurred();&lt;br /&gt;}&lt;br /&gt;class IORange {&lt;br /&gt;  int readByte(int offset);&lt;br /&gt;  int readShort(int offset);&lt;br /&gt;  int readInt(int offset);&lt;br /&gt;  void writeByte(int offset, int data);&lt;br /&gt;  void writeShort(int offset, int data);&lt;br /&gt;  void writeInt(int offset, int data);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109292105301949155?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109292105301949155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109292105301949155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109292105301949155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109292105301949155'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/first-step-drivers.html' title='First Step: Drivers'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109292036035086366</id><published>2004-08-19T08:48:00.000-04:00</published><updated>2004-08-19T08:59:20.350-04:00</updated><title type='text'>Strategy: Write it in Java</title><content type='html'>My strategy for achieving tenet 2 is to do all programming in Java.  The underlying machine-level kernel will cache an optimized compilation of each class during installation.  This will then allow the code to run at native speed in exchange for a one-time delay during installation in most cases.  In order to have mass appeal, a mechanism for validating other executable formats and converting them to Java bytecode will exist.  There is a problem when code uses unsafe procedures, like pointer arithmetic, but we can wrap these and through exceptions when they misbehave.&lt;br /&gt;&lt;br /&gt;As for low-level machine programming, boot code will be architecture specific, and a certain base level functionality will be provided by a machine specific kernel.  I have in mind to implement the java.lang package and an OS specific device driver package natively.&lt;br /&gt;&lt;br /&gt;Ideally, all drivers would be written in Java and linked to some sort of Device base class, but there must also be a mechanism for using drivers written for other OS's.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109292036035086366?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109292036035086366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109292036035086366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109292036035086366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109292036035086366'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/strategy-write-it-in-java.html' title='Strategy: Write it in Java'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109288802713687176</id><published>2004-08-18T23:55:00.000-04:00</published><updated>2004-08-19T00:00:27.136-04:00</updated><title type='text'>Tenet 3: For Dummies</title><content type='html'>The success of Windows has been largely because of this factor. If I am to gain the general favor of the world population, then it must be usable by dummies. This means: automatic configuration of drivers, intuitive interfaces, and verbose explanations. All features will be fully customizable through wizards or expert interfaces. Also, there will be no obscure config files as in Linux. No system info will be accessible via the file system. All applications will be installed as a package rather than a big collection of files, etc., etc.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109288802713687176?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109288802713687176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109288802713687176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288802713687176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288802713687176'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/tenet-3-for-dummies.html' title='Tenet 3: For Dummies'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109288343002602500</id><published>2004-08-18T22:34:00.000-04:00</published><updated>2004-08-18T22:43:50.026-04:00</updated><title type='text'>Tenet 2: Any Software, Any Hardware</title><content type='html'>That's right. It follows from tenet 1, that any terminal on the network must be able to run software from any other terminal. In the simplest case, this implies homogeneous hardware and software. More robustly, we could write the OS in a way that allows translation from one platform to another. This appeals to my sense of adventure, and also to the one-world-order that I am attempting. The ideal here is to end up with one OS which renders all others totally obsolete.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109288343002602500?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109288343002602500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109288343002602500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288343002602500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288343002602500'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/tenet-2-any-software-any-hardware.html' title='Tenet 2: Any Software, Any Hardware'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109288287607750816</id><published>2004-08-18T22:20:00.000-04:00</published><updated>2004-08-18T22:44:41.243-04:00</updated><title type='text'>Tenet 1: The Network is The Computer</title><content type='html'>This is straight from Sun Microsystems, and it is good. Future computer users will expect to turn on their machine and command the world's resources. Extending this assumption a bit further than Sun has thus far, we see an OS which does not distinguish unnecessarily between local and remote resources. Users can log into any PC that is connected to the network identically to any other terminal, except for where locality specific features make sense, such as identifying the default printer. Also, this implies load balancing over network nodes, enabling very large scale distributed applications.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109288287607750816?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109288287607750816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109288287607750816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288287607750816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288287607750816'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/tenet-1-network-is-computer.html' title='Tenet 1: The Network is The Computer'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7999882.post-109288094462567097</id><published>2004-08-18T21:57:00.000-04:00</published><updated>2004-08-18T22:02:24.660-04:00</updated><title type='text'>Introduction</title><content type='html'>My wife and I made a pact recently--actually it's more of a competition--in which I have to take over the world and she has to become a fitness instructor. It's a little lopsided maybe, but we set our own goals and we've agreed to them. "Taking over the world" in this case implies developing an operating system that will replace Windows, Linux, MacOS, etc. That's right. Welcome to the next, next level. You may follow the thought process that goes into the development of such an OS if you dare.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7999882-109288094462567097?l=atlasos.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://atlasos.blogspot.com/feeds/109288094462567097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7999882&amp;postID=109288094462567097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288094462567097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7999882/posts/default/109288094462567097'/><link rel='alternate' type='text/html' href='http://atlasos.blogspot.com/2004/08/introduction_18.html' title='Introduction'/><author><name>chopper</name><uri>http://www.blogger.com/profile/15420341908091801707</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/img/123/1410/640/silly.jpg'/></author><thr:total>0</thr:total></entry></feed>
