Bazą dla wszelkich współczesnych systemów operacyjnych, jest, już wspomniany wcześniej system UNIX. Był on napisany w języku C - języku imperatywnym, którego najbardziej istotną, dla tej pracy, cechą jest to, iż jest on językiem imperatywnym, zawierającym ścisły podział między funkcjami (poleceniami przetwarzania danych/operacjami/małymi porcjami programów) a danymi. Zatem program może operować tylko na danych, niedostępne są dla niego wszelkie procesy (poza ich wynikami).
UNIX nie był systemem stworzonym pod aplikacje, jego głównym celem było stworzenie podstaw dla uruchamiania i tworzenia programów w wielu językach. Nie narzucał on więc zbyt wiele, stwarzał jedynie podstawy dla działania innych, najczęściej użytkowych programów. Jednakże wprowadził on jedne, niezwykle istotne ograniczenie - hierarchiczny system plików i folderów. To zupełnie nienaukowe założenie jest pierwszym, niezwykle istotnym ograniczeniem, obecnym do dziś we wszystkich systemach operacyjnych.
Kolejną bazą dla współczesnych personalnych systemów operacyjnych był system obecny na komputerach Xerox Alto. Zawierał on pierwszy graficzny interfejs użytkownika (PUI), wraz z kompletem aplikacji. Tu nastąpiła kolejna bardzo istotna zmiana - w tym systemie nie było możliwe programowanie. Co jeszcze bardziej istotne, wszelkie koncepcje obecne w PUI (łącznie z brakiem dostępu do programowania) zostały w całości przeniesione do pierwszego komputera i systemu operacyjnego, który odniósł globalny sukces - Macintosh. Kilka lat później, pojawiła się kopia systemu obecnego tam systemu - System Windows.
<I tu zaczynamy się rozmijać z tezami Nelsona, konkretniej co do kwestii języka Smalltalk, do którego dostęp miał znaleźć się w PUI. Nelson twierdzi że tak nie było, internet inaczej. Niemniej, w Macintoshu na 100% nie było żadnego języka>
Tu pojawia się do dziś aktualna koncepcja samych aplikacji. Mają mieć zamkniętą ilość funkcji, prosty interfejs, ograniczyć dostęp do swojej struktury, czego konsekwencją jest zupełny brak wiedzy, co do sposobu ich działania. Ich użycie, zawiera w sobie konieczność zaufania ich strukturze i dostosowania się w zupełności do zamysłu twórcy. W całym procesie korzystania z aplikacji użytkownik jest jedynie po to, by oglądać efekty i raz na jakiś czas wprowadzić dane. W aplikacji nie ma miejsca na błąd, każda z funkcji aplikacji zakłada swoje perfekcyjną realizacje, jakiekolwiek odejście od niej, powoduje aktywowanie kodu błędu, który powinien być przewidziany w programie. Zły, bądź nieperfekcyjny użytek, w tym przypadku, jest więc walką z samą aplikacją i jej twórcami. Pozostawienie możliwości użycia aplikacji niezgodnie z intencją twórcy nigdy nie jest celowa, ponieważ program ma być przede wszystkim kompletny. Wykryta możliwość nieperfekcyjnego użycia, winna być, wedle zasad etycznych "dobrego programowania" możliwie najszybciej zlikwidowana.
W takim układzie jedyną przewidzianą możliwością dyskusji z ograniczeniami danej aplikacji jest zbudowanie własnej. Wymaga to jednak eksperckiej wiedzy, która również zależna jest od twórcy systemu operacyjnego - by program był w stanie otworzyć się w danym systemie potrzebne jest zaimplementowanie tzw. API, kodu umożliwiającego zgodność programu z systemem operacyjnym, narzucającym przy okazji konkretne ograniczenia. Jak łatwo się domyśleć dostęp do API, jest również często uzależniony od względów biznesowych. Poza tym potrzeba oczywiście ogromnych środków czasowych i najczęściej wielu programistów (zależnie od stopnia skomplikowania aplikacji, którą chcemy stworzyć).
Tak, wiedza co do tego, jak działa rzeczywistość cyfrowa stała się udziałem nielicznych ekspertów, a jedynym partnerem do dyskusji nad sposobem i możliwościami działania danej aplikacji jest, dla jego twórcy wyłącznie osoba, która sama jest w stanie taką aplikacje stworzyć.
Choć sami programiści również nie byli w najlepszej sytuacji, tak ścisłe powiązanie ich prawa do programowania z ekonomią było dla całej informatyki ogromnym ograniczeniem. Cyfrowi aktywiści popierający hakerskie idee ruchu "wolnego oprogramowania" cały czas aktywnie działali (i nadal działają) na rzecz zmiany tej sytuacji. Rozwinął się, również oparty na UNIXie Linux, adaptujący koncepcje personalnego systemu operacyjnego, w zgodzie z filozofią swojego poprzednika (maksymalny brak ograniczeń), przepisano wiele translatorów języków programowania (tworząc ich otwarte odpowiedniki), które w ten sposób uwolniono od uwarunkowań ekonomicznych, na bazie których powstało wiele programów i aplikacji będących od wielu już lat w powszechnym użytku. Stworzono wiele języków programowania, opartych przykładowo o interpretery (aktywne translatory ze swojego języka na możliwie maksymalnie zgodny z charakterem systemu kod). Wszystkie te projekty zakładały pełną otwartość i powszechną dostępność swojego kodu (otwartość źródeł) i zyskały tak silną pozycje, że polityka globalnych korporacji musiała ulec zmianie. Tak, w 2001 roku, Apple, w systemie OSX zaimplementowało dostęp do powłoki UNIXa, a Microsoft również, choć bardzo niechętnie, podjął współpracę z twórcami wolnego oprogramowania. Ta idea pozwoliła odnieść sukces takim korporacjom jak przykładowo Facebook czy Google.
W ten sposób, społecznie, teoretycznie na powrót uzyskaliśmy dostęp do samej struktury komputera (pamiętajmy tu o ograniczeniach związanych z systemem operacyjnym i językami programowania), A co z aplikacjami, czy systemami operacyjnymi? Czy zatem, skoro nie użytkownicy, to chociaż programiści odzyskali na powrót dostęp do kodu obecnego w ich komputerach? Niestety nie. Przede wszystkim nie każdy kod został "otwarty", w pewnym uogólnieniu można powiedzieć że zostały otwarte wyłącznie programy użytkowe, oraz technologie i programy związane z konstruowaniem aplikacji. Zatem opisana wcześniej struktura samych aplikacji zupełnie nie uległa zmianie, umacniając nawet swoją pozycje.
Ponadto pozostaje jedna, wcześniej nieujęta w tej pracy kwestia - kwestia internetu, o tyle istotna, że przy pomocy internetu mechanizmy kontrolujące użytek komputera stały się znacznie silniejsze, niż kiedykolwiek. Struktura techniczna internetu nie jest dla tej pracy istotna, zdefiniujmy go zatem w powszechnie rozumiany sposób, jako możliwość zdalnego połączenia między dwoma komputerami. Ponadto, trzeba tu zaznaczyć, iż na ten moment rozwoju technologii cyfrowych, coraz trudniejsze staje się odróżnienie klasycznie pojmowanych aplikacji, które znajdują się na komputerze użytkownika, od aplikacji internetowych, znajdujących się na bliżej nieokreślonym komputerze, gdzie przesyłany nam jest wyłącznie fragment z którego aktualnie korzystamy. Potraktujmy więc oba te rodzaje jako jeden.
Dzięki temu, iż dostęp do internetu tak bardzo rozszerzył możliwości użytkowe komputerów, dostęp do niego jest stały i praktycznie niezbędny. Sprawia to, że w procesie użytkowania aplikacji, nie dość że mierzymy się z nieznanym nam kodem, to też z aktywnie działającym programem, uruchomionym na nieznanym nam komputerze. Zatem w korzystaniu z aplikacji już nic nie jest pewne. Nie możemy mieć pewności że aplikacja, przy każdym uruchomieniu zadziała tak samo. Nie wiemy jakie dane są pobierane na nasz komputer i z niego wysyłane. Nie wiemy nawet, czy dana aplikacja tym razem pozwoli nam się uruchomić. Z racji, że zaczynamy uzyskiwać co raz większy dostęp do kodu na naszych komputerach zaczyna on z nich znikać. Aplikacje stają się usługą dostarczaną przy użyciu internetu przez producentów.
W tej sytuacji, bardziej niż kiedykolwiek, istnieje potrzeba wniknięcia w struktury aplikacji. Skoro zaczynamy odzyskiwać kontrolę nad własnymi komputerami, to najwłaściwszym sposobem reakcji na postępujące uzależnienie aplikacji od internetu, byłoby przejęcie kontroli nad odbiornikami, z racji iż te odbiorniki nie znajdują się wyłącznie w komputerach i smartfonach (komputerach dużo bardziej mobilnych). Powszechny paradygmat, gdzie dotychczas niecyfrowe urządzenia, powinny zostać inteligentne (smart), opiera się właśnie na globalnym instalowaniu tego typu odbiorników. Tu niestety na powrót pojawia się kwestia ochrony własności intelektualnej, która tym razem przybrała dotychczas niespotykanie kuriozalny format.
<Akapit o Artykule 1201 DMCA>