Armağan S.

0 Followers
14 Following
28 Posts

arti et veritati
~ ~ ~ ~ ~ ~ ~ ~
Personal webpage:

www.armagansalman.one

@wanninger

What if we build a browser ecosystem from scratch with a fresh perspective?

I want to be able to have thousands of browser tabs running concurrently.
The modern hardware can handle this load if we build the browser with this goal.

How does Erlang handle thousands of "processes" easily? I know they are not real processes but the ideas from the Actor Model and Erlang can revolutionize how we create browsers.
.
Surely there can be a common system which handles thousands of "processes" as browser tabs.
Sharing common immutable data/code would help immensely if there was such a system.

Basically, a browser built on Actor Model, with high density bytecode and which shares code/data as much as possible.
Performant functional data structures and structural sharing systems will be written once as a common subsystem. That is not a concern.

I want these personally as a browser user (and someone with a computer engineering degree) who wants to experience the full power of modern hardware. Currently, most modern software is written sloppily.

If we care enough when creating software, the results might surprise us.

@wanninger How much RAM does security really need? It doesn't seem like it uses much in OS kernels.
How much would it use if it is taken to its practical minimum limit while preserving all its aspects?
Assets and even browser, JS code should be lazy loaded. I think that would help immensely.
JS code and data should be securely shared when its possible.
Ideas from Functional Data Structures can enable an efficient way for sharing (e.g. structural sharing).
The interpreter code and immutable data can be shared.
A new tab shouldn't use any RAM for JS if it doesn't have mutable JS data or code.

Even 3rd party code can be shared securely. Copy-on-write semantics can be used if it's modified by a tab.

If we share every possible code and data in a secure and efficient manner with every system/subsystem, and don't load any code or data until it's necessary, I think the RAM usage will drastically reduce.

How can I precisely and easily inspect how much RAM each part of browser's subsystems use?

Right now (2023-02-25T09:48+00) I have 10 tabs open in Firefox (Windows 10, x64, private window).
Their total RAM usage is around 1088 Mb.
Only 2 of them play videos (youtube). Others don't do any meaningful work.
How can a browser be designed and implemented such that it takes 1/100 as much RAM as current popular browsers take?
If that is PHYSICALLY IMPOSSIBLE, what about 1/80 or 1/50 or even 1/10?
Surely browsers can be better.
@nixCraft
The only sudoer is consciousness.
@lauren
The quarantine shall lift soon.

Thank you Dr. King for inspiring many generations of young activists. On this #MLKDay, I encourage us all to listen to the Black community, uplift their voices, celebrate their achievements, and lend support in the ongoing fight for racial justice and equality.

🖼️: Reader's Digest

@vy

Different axioms can be found. That would make that theorem irrelevant.

Micro-kernels have good ideas but the kernel I talked about doesn't have to be a micro-kernel.

A micro-kernel like efficient kernel.

Maybe it will be radically different than what we call kernels. Thus, no current limiting theories will hold.

@vy

I think, with all the knowledge and experiences we accumulated, we can achieve it now.

Why do we need Docker, virtualization technologies?
Because popular kernels are bulky, badly designed and don't provide the virtualization facilities we need.

I think a proper OS kernel should at least have these properties:

1) An OS kernel must not have any driver code for external devices. External devices should describe themselves.

2) An OS kernel source code line count must be in thousands, not millions. Only absolutely necessary code should be there. (isolation, protection...)

3) An OS kernel must provide its isolation, protection, resource management etc. source code as reusable libraries for user-level applications.

27+ Million lines of code in the Linux kernel [R0].
We should stop and think about what 'kernel' means.
I think of seed or atomic nucleus when I see the word kernel.

Operating system kernel lines of code should be fewer than one million (it should be a couple thousand at max). Drivers don't belong in kernel.

OS kernel should do only the most fundamental tasks (resource management, resource security etc.) and provide facilities to other programs, devices.

The C language should not be used unless it's absolutely necessary. A programming language like Rust must be used to create secure, formally provable software.

R0 ; (January 7, 2020): https://www.linux.com/news/linux-in-2020-27-8-million-lines-of-code-in-the-kernel-1-3-million-in-systemd/

Linux in 2020: 27.8 million lines of code in the kernel, 1.3 million in systemd - Linux.com

systemd is now approaching 1.3 million lines of code thanks to nearly 43,000 commits in 2019.

Linux.com