¿Qué puedo hacer para convertirme en un excelente desarrollador de kernel como Terry Lambert?

Entonces quieres ser parte de un club muy exclusivo. Permítame ayudarnos a comprender el papel del núcleo primero y los atributos de alto nivel que necesita:

  1. Un buen núcleo debe proporcionar la mejor abstracción posible del hardware para que los desarrolladores de aplicaciones puedan aprovechar los chips subyacentes utilizando lenguajes de nivel superior. Por ejemplo, piense en llamadas malloc / mmap mientras trata con memoria; llamadas de socket / connect para tratar con la red; abrir / cerrar / leer / escribir para tratar con archivos, etc. Todos operan independientemente del H / W subyacente, pero cada uno hace que el núcleo haga cosas masivas debajo (y muchos registros de lectura / escritura) que el escritor de aplicaciones no le importa. Por lo tanto, necesita una muy buena capacidad para comprender las abstracciones y lo que las aplicaciones necesitan ahora y en el futuro mientras se cruzan con una amplia variedad de plataformas.
  2. El objetivo es dar a las aplicaciones la mayor cantidad de recursos H / W posible. El mejor escenario para un núcleo es que nadie se da cuenta de que hay un núcleo. Por lo tanto, se trata de eficiencia, lo que significa hilos y bloqueos y rendimiento. Poder comprender su estructura de datos, el bloqueo, el subprocesamiento múltiple de adentro hacia afuera es de suma importancia. Observe que a propósito omití algoritmos. En general, los escritores del núcleo se esfuerzan por mantener algoritmos simples / bien conocidos para que las cosas sean más fáciles de depurar y mantener. Dado el crecimiento de la hiperescala, debe agregar sistemas distribuidos a la lista.
  3. Tu habilidad para predecir el futuro. Tanto desde H / W como desde el punto de vista de la plataforma y la aplicación necesita el punto de vista. Las versiones típicas del kernel se ejecutan en un ciclo de 18 a 24 meses y las actualizaciones importantes toman aún más tiempo. Su trabajo de hoy debe cruzarse con las necesidades de la aplicación del mañana y guiar el desarrollo de la plataforma / chip en consecuencia mientras descubre la competencia, etc.

Podría seguir con más cosas sobre mentalidad / disciplina, capacidad de visualizar sistemas grandes, necesidad de depurar cosas sobre la marcha bajo estrés, etc. pero al menos las tres cualidades anteriores me han beneficiado mucho de comenzar como un desarrollador joven en 1995 a tener 100 + emitió patentes en el espacio de virtualización y sistemas distribuidos y actualmente está construyendo un sistema operativo de conmutador distribuido muy exitoso.

El desarrollo del kernel es un trabajo muy ingrato a veces, pero cuando ve aplicaciones masivas que aprovechan su trabajo y cambian el paradigma existente, todo vale la pena. Acabo de regresar de una visita de un cliente donde ves una infraestructura masiva que se está moviendo hacia algo que desarrollamos en los últimos 2-3 años y era la hora del champán (pero mientras estábamos en desarrollo, fueron años oscuros 🙂

Espero que esto pueda ayudarlo a comenzar y preguntar cosas más específicas. Escribí esto para ayudar a influir en los brillantes estudiantes de hoy para que consideren el desarrollo del kernel como una carrera.

More Interesting

Para un técnico con un trabajo muy bien remunerado en una multinacional en la India, ¿realmente vale la pena dejar el trabajo y partir a Estados Unidos con la esperanza de una buena vida?

Cómo acercarse a las startups en lugar de ubicarse en TCS, Infosys o Cognizant

¿Cuáles son los pros y los contras de las finanzas computacionales?

¿Qué consejo le darías a un ex bibliotecario que busca volver al campo?

Soy un estudiante de ECE de tercer año, ¿qué cursos debo estudiar?

Me apasionan los roles no técnicos de gestión de productos de MBA. Estoy a punto de graduarme con un MBA en marketing. Anteriormente, trabajé durante 4 años como ingeniero de software senior y gestioné operaciones de fabricación para una empresa química. ¿Qué compañías ofrecen roles de gerente de producto no técnico aparte de Google, Facebook, Zynga y cuál debería ser mi estrategia?

¿El jefe de RAW obtiene seguridad Z + en India?

Tengo una aplicación que me gustaría promocionar. Mi presupuesto es de $ 2,500 para una prueba inicial. ¿Dónde debo promocionar mi aplicación (lista de las mejores redes publicitarias de aplicaciones)? ¿Debo pagar por clic o pagar por instalación?

Acabo de comenzar mi carrera en SAP - ABAP. ¿Cuáles son las perspectivas de futuro en este dominio> ¿Cómo será el trabajo y qué pasa con los salarios ofrecidos para personas con experiencia?

Soy ingeniero automotriz con 2 años de experiencia en el campo del software y no me gusta el trabajo que estoy haciendo. Pensé que debería dejar mi trabajo y prepararme para estudios superiores. ¿Es correcta mi decisión?

Cómo comenzar y hacer una carrera en planificación y diseño urbano

¿Qué habilidades técnicas debo mejorar antes de comenzar a trabajar como desarrollador?

¿Qué mejorará mi perfil de diseño web y será de utilidad en el futuro?

¿Qué respuesta espera el entrevistador cuando pregunta: "¿Tiene alguna pregunta para nosotros?"

Cómo seguir mi carrera en seguridad de la información y informática forense